<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;CU4GRn4_cCp7ImA9WhRUGEk.&quot;"><id>tag:blogger.com,1999:blog-593663383710482559</id><updated>2012-01-29T05:32:07.048-08:00</updated><category term="autoconf" /><category term="live-hdd" /><category term="c/c++" /><category term="one-liner" /><category term="floppy" /><category term="perl" /><category term="locale" /><category term="gallery2" /><category term="fonts" /><category term="disk" /><category term="wine" /><category term="photos" /><category term="dbus" /><category term="upgrade" /><category term="dvd" /><category term="grml" /><category term="gnome" /><category term="daemon" /><category term="console" /><category term="webserver" /><category term="tcsh" /><category term="syntax-highlight" /><category term="powerpc" /><category term="git" /><category term="google desktop search" /><category term="remote access" /><category term="hebrew" /><category term="browser" /><category term="printer" /><category term="keyboard" /><category term="debian" /><category term="gimp" /><category term="windows" /><category term="email" /><category term="podcasts" /><category term="vim" /><category term="firewall" /><category term="cron" /><category term="work" /><category term="hardware" /><category term="backup" /><category term="undbx" /><category term="scanner" /><category term="screen" /><category term="digicam" /><category term="virtualbox" /><category term="emacs" /><category term="boot" /><category term="office" /><category term="gdm" /><category term="java" /><category term="mysql" /><category term="cygwin" /><category term="php" /><category term="usb" /><category term="webdav" /><category term="security" /><category term="awesome" /><category term="programming" /><category term="baculafs" /><category term="screensaver" /><category term="memory" /><category term="cloud" /><category term="hal" /><category term="vnc" /><category term="sshd" /><category term="blog" /><category term="multimedia" /><category term="wordpress" /><category term="pdf" /><category term="time" /><category term="x" /><category term="source" /><category term="bluetooth" /><category term="fax" /><category term="drivers" /><category term="kernel" /><category term="power" /><category term="samba" /><category term="qemu" /><category term="network" /><category term="fun" /><category term="ubuntu" /><category term="udev" /><category term="window manager" /><category term="gpm" /><category term="nautilus" /><title>Machine Cycle</title><subtitle type="html" /><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://machine-cycle.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://machine-cycle.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/593663383710482559/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Zung!</name><uri>http://www.blogger.com/profile/07718442985309348694</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="29" height="32" src="http://lh5.google.com/image/zungbang/RbfSJp67VwI/AAAAAAAAAAg/fOkC3QmzRcE/s288/cogs.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>185</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/machine-cycle" /><feedburner:info uri="machine-cycle" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><logo>http://photos1.blogger.com/x/blogger2/3979/1315/1600/545307/gse_multipart57591.gif</logo><entry gd:etag="W/&quot;D0MGQX4_fCp7ImA9WhRUFks.&quot;"><id>tag:blogger.com,1999:blog-593663383710482559.post-2584403080053587727</id><published>2012-01-27T03:57:00.000-08:00</published><updated>2012-01-27T03:57:00.044-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-27T03:57:00.044-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="firewall" /><category scheme="http://www.blogger.com/atom/ns#" term="sshd" /><category scheme="http://www.blogger.com/atom/ns#" term="debian" /><category scheme="http://www.blogger.com/atom/ns#" term="remote access" /><title>Digging Tunnels: Connection Problem on Debian</title><content type="html">If you follow the instructions on my first &lt;a href="http://machine-cycle.blogspot.com/2011/01/digging-tunnels-part-1.html"&gt;"Digging Tunnels"&lt;/a&gt; post, to setup &lt;code&gt;ssh&lt;/code&gt; tunneling over SSL with &lt;code&gt;stunnel&lt;/code&gt;, then you may find that you can't access your Debian box from another Debian box. I got the following error:&lt;pre&gt;SSL_accept: 1408F10B: error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number&lt;/pre&gt;&lt;br /&gt;
The fix (found on &lt;a href="http://serverfault.com/questions/303090/stunnel-wont-work-with-sslv3-from-some-hosts"&gt;&lt;code&gt;serverfault.com&lt;/code&gt;&lt;/a&gt;) is to make sure you have the following in lines in &lt;code&gt;/etc/stunnel/stunnel.conf&lt;/code&gt;:&lt;pre&gt;sslVersion = all
options = NO_SSLv2&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/593663383710482559-2584403080053587727?l=machine-cycle.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/MjphrFvOlygFBHoIWYVSS6QqLkc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/MjphrFvOlygFBHoIWYVSS6QqLkc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/MjphrFvOlygFBHoIWYVSS6QqLkc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/MjphrFvOlygFBHoIWYVSS6QqLkc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=dwQsJWlxPM0:8SiTaF-Ljls:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=dwQsJWlxPM0:8SiTaF-Ljls:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=dwQsJWlxPM0:8SiTaF-Ljls:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=dwQsJWlxPM0:8SiTaF-Ljls:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=dwQsJWlxPM0:8SiTaF-Ljls:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=dwQsJWlxPM0:8SiTaF-Ljls:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=dwQsJWlxPM0:8SiTaF-Ljls:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=dwQsJWlxPM0:8SiTaF-Ljls:wF9xT3WuBAs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=dwQsJWlxPM0:8SiTaF-Ljls:wF9xT3WuBAs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=dwQsJWlxPM0:8SiTaF-Ljls:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=dwQsJWlxPM0:8SiTaF-Ljls:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=dwQsJWlxPM0:8SiTaF-Ljls:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=dwQsJWlxPM0:8SiTaF-Ljls:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=dwQsJWlxPM0:8SiTaF-Ljls:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=dwQsJWlxPM0:8SiTaF-Ljls:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/machine-cycle/~4/dwQsJWlxPM0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://machine-cycle.blogspot.com/feeds/2584403080053587727/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://machine-cycle.blogspot.com/2012/01/digging-tunnels-connection-problem-on.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/593663383710482559/posts/default/2584403080053587727?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/593663383710482559/posts/default/2584403080053587727?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/machine-cycle/~3/dwQsJWlxPM0/digging-tunnels-connection-problem-on.html" title="Digging Tunnels: Connection Problem on Debian" /><author><name>Zung!</name><uri>http://www.blogger.com/profile/07718442985309348694</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="29" height="32" src="http://lh5.google.com/image/zungbang/RbfSJp67VwI/AAAAAAAAAAg/fOkC3QmzRcE/s288/cogs.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://machine-cycle.blogspot.com/2012/01/digging-tunnels-connection-problem-on.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEYAQXs-cCp7ImA9WhRUEEo.&quot;"><id>tag:blogger.com,1999:blog-593663383710482559.post-7093362360951637491</id><published>2012-01-20T07:09:00.000-08:00</published><updated>2012-01-20T07:09:00.558-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-20T07:09:00.558-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="grml" /><category scheme="http://www.blogger.com/atom/ns#" term="floppy" /><category scheme="http://www.blogger.com/atom/ns#" term="live-hdd" /><category scheme="http://www.blogger.com/atom/ns#" term="boot" /><title>Boot Floppy and ISO Images with GRUB2 on Debian</title><content type="html">I've once described my &lt;a href="http://machine-cycle.blogspot.com/2009/09/boot-pc-from-floppy-image-w-grub2-and.html"&gt;setup&lt;/a&gt; for booting floppy disk images. That setup works rather nicely, but there's a better &lt;a href="http://michael-prokop.at/blog/2011/01/07/booting-iso-images-from-within-grub2/"&gt;way&lt;/a&gt; of doing this on &lt;a href="http://packages.debian.org/search?keywords=grub-imageboot"&gt;Debian&lt;/a&gt;:&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;install &lt;code&gt;grub-imageboot&lt;/code&gt;:&lt;pre&gt;aptitude install grub-imageboot&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;put all image files you want to be able to boot in &lt;code&gt;/boot/images&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;run (as &lt;code&gt;root&lt;/code&gt;): &lt;pre&gt;update-grub&lt;/pre&gt;&lt;/li&gt;
&lt;/ol&gt;and that's it!&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;grub-imageboot&lt;/code&gt; performs the same task as my original setup, in much the same way, but it also &lt;b&gt;supports ISO images&lt;/b&gt;, is easier to install and &lt;i&gt;much&lt;/i&gt; easier to uninstall.&lt;br /&gt;
&lt;br /&gt;
A related tool, from the same authors (the fine &lt;a href="http://grml.org/"&gt;Grml&lt;/a&gt; team) is &lt;a href="http://packages.debian.org/search?keywords=grml-rescueboot"&gt;&lt;code&gt;grml-rescueboot&lt;/code&gt;&lt;/a&gt;, which lets you boot into a Grml rescue system from Grml ISO images placed in &lt;code&gt;/boot/grml&lt;/code&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/593663383710482559-7093362360951637491?l=machine-cycle.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/J1q_19KBQW8Ih0sfpFXOburT958/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/J1q_19KBQW8Ih0sfpFXOburT958/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/J1q_19KBQW8Ih0sfpFXOburT958/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/J1q_19KBQW8Ih0sfpFXOburT958/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=e-mLGvM6UQ8:GL183V_BvIY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=e-mLGvM6UQ8:GL183V_BvIY:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=e-mLGvM6UQ8:GL183V_BvIY:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=e-mLGvM6UQ8:GL183V_BvIY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=e-mLGvM6UQ8:GL183V_BvIY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=e-mLGvM6UQ8:GL183V_BvIY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=e-mLGvM6UQ8:GL183V_BvIY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=e-mLGvM6UQ8:GL183V_BvIY:wF9xT3WuBAs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=e-mLGvM6UQ8:GL183V_BvIY:wF9xT3WuBAs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=e-mLGvM6UQ8:GL183V_BvIY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=e-mLGvM6UQ8:GL183V_BvIY:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=e-mLGvM6UQ8:GL183V_BvIY:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=e-mLGvM6UQ8:GL183V_BvIY:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=e-mLGvM6UQ8:GL183V_BvIY:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=e-mLGvM6UQ8:GL183V_BvIY:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/machine-cycle/~4/e-mLGvM6UQ8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://machine-cycle.blogspot.com/feeds/7093362360951637491/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://machine-cycle.blogspot.com/2012/01/boot-floppy-and-iso-images-with-grub2.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/593663383710482559/posts/default/7093362360951637491?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/593663383710482559/posts/default/7093362360951637491?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/machine-cycle/~3/e-mLGvM6UQ8/boot-floppy-and-iso-images-with-grub2.html" title="Boot Floppy and ISO Images with GRUB2 on Debian" /><author><name>Zung!</name><uri>http://www.blogger.com/profile/07718442985309348694</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="29" height="32" src="http://lh5.google.com/image/zungbang/RbfSJp67VwI/AAAAAAAAAAg/fOkC3QmzRcE/s288/cogs.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://machine-cycle.blogspot.com/2012/01/boot-floppy-and-iso-images-with-grub2.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUECQX05eip7ImA9WhRVE0U.&quot;"><id>tag:blogger.com,1999:blog-593663383710482559.post-2926027008522386787</id><published>2012-01-12T09:01:00.000-08:00</published><updated>2012-01-12T09:01:00.322-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-12T09:01:00.322-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="multimedia" /><category scheme="http://www.blogger.com/atom/ns#" term="udev" /><category scheme="http://www.blogger.com/atom/ns#" term="usb" /><title>Stuttering Video Playback Due To USB Device Reset</title><content type="html">My kids don't usually complain when they're watching a movie on my PC, if video playback stutters. It seems that as long as playback resumes in a second or less, they don't mind the interruptions. I guess they've learned that if they do complain, chances are that they'll have to wait several long minutes, until their OCD inflicted dad "fixes" the problem.&lt;br /&gt;
&lt;br /&gt;
I hate it when video playback stutters. So much so that I usually first download whatever video I want to watch and then watch it offline. Which is why I am a &lt;a href="http://code.google.com/p/get-flash-videos/"&gt;get-flash-videos&lt;/a&gt; fanboy.&lt;br /&gt;
&lt;br /&gt;
But last time we were hit with such a problem, our lame ISP was not the culprit. This time, the video source was a backup ISO image of some DVD, stored on an external hard disk, connected to a Debian box (my old, headless laptop) over USB, accessed via SAMBA over a wireless connection, and played back on my WinXP laptop. The hiccups were rather noticeable, even by my lag-tolerant kids, to the point that they complained about it. &lt;br /&gt;
&lt;br /&gt;
At first, it seemed that debugging this would be a daunting task - there are just so many factors involved. But I got lucky - I tried playing that same DVD image on my wife's laptop, over a wired network connection, and was hit  by the same playback hiccups. This ruled out most of the suspects except for my old Debian laptop.&lt;br /&gt;
&lt;br /&gt;
And yet, I had no idea what to look for now, especially because I can't just playback video on my old laptop - it's screen is busted... So I just browsed for any suspicious message in the output of &lt;code&gt;dmesg&lt;/code&gt; - and found the following message, repeated several times:&lt;br /&gt;
&lt;pre&gt;"reset high speed USB device using ehci_hcd and address 3"&lt;/pre&gt;&lt;br /&gt;
These messages seemed very relevant, and a quick search brought me to several &lt;a href="http://gordonazmo.wordpress.com/2010/08/26/reset-high-speed-usb-device-using-ehci_hcd-and-address-3-your-syslog-and-what-fixed-it-for-me/"&gt;blog posts&lt;/a&gt;, &lt;a href="http://www.linuxquestions.org/questions/slackware-14/usb-external-hd-issue-reset-high-speed-usb-device-using-ehci_hcd-545519/"&gt;forum&lt;/a&gt; &lt;a href="http://ubuntuforums.org/showthread.php?t=1338541"&gt;threads&lt;/a&gt; and &lt;a href="https://bugs.launchpad.net/ubuntu/+source/linux-source-2.6.20/+bug/88746"&gt;bug reports&lt;/a&gt;.&lt;br /&gt;
I tried one the solutions/workarounds suggested on those links:&lt;br /&gt;
&lt;pre&gt;echo 128 &amp;gt; /sys/block/sdc/device/max_sectors&lt;/pre&gt;and it actually did the trick and made the hiccups go away.&lt;br /&gt;
&lt;br /&gt;
The next challenge was to make this happen on system start-up. The Right Thing™ to do would have been to modify &lt;code&gt;/etc/sysctl.conf&lt;/code&gt;, but there's always the chance that the relevant block device would be renamed, e.g. when another external disk drive is attached. So I ended up adding the following line line to &lt;code&gt;/etc/init.d/bootmisc.sh&lt;/code&gt;:&lt;br /&gt;
&lt;pre&gt;echo 128 &amp;gt; /sys/block/$(readlink -f &lt;span style="color: red;"&gt;/dev/data&lt;/span&gt; | sed -e 's/1//g' -e 's/\/dev\///g')/device/max_sectors&lt;/pre&gt;where &lt;code&gt;&lt;span style="color: red;"&gt;/dev/data&lt;/span&gt;&lt;/code&gt; is a symbolic link that points to this block device, which is generated with an appropriate &lt;a href="http://machine-cycle.blogspot.com/search/label/udev"&gt;UDEV&lt;/a&gt; rule.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/593663383710482559-2926027008522386787?l=machine-cycle.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/8PvNPBVoIFI_tqBfVF6D22JBS1k/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/8PvNPBVoIFI_tqBfVF6D22JBS1k/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/8PvNPBVoIFI_tqBfVF6D22JBS1k/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/8PvNPBVoIFI_tqBfVF6D22JBS1k/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=DtGauRfapkU:DvM8ZsBubJk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=DtGauRfapkU:DvM8ZsBubJk:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=DtGauRfapkU:DvM8ZsBubJk:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=DtGauRfapkU:DvM8ZsBubJk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=DtGauRfapkU:DvM8ZsBubJk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=DtGauRfapkU:DvM8ZsBubJk:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=DtGauRfapkU:DvM8ZsBubJk:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=DtGauRfapkU:DvM8ZsBubJk:wF9xT3WuBAs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=DtGauRfapkU:DvM8ZsBubJk:wF9xT3WuBAs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=DtGauRfapkU:DvM8ZsBubJk:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=DtGauRfapkU:DvM8ZsBubJk:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=DtGauRfapkU:DvM8ZsBubJk:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=DtGauRfapkU:DvM8ZsBubJk:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=DtGauRfapkU:DvM8ZsBubJk:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=DtGauRfapkU:DvM8ZsBubJk:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/machine-cycle/~4/DtGauRfapkU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://machine-cycle.blogspot.com/feeds/2926027008522386787/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://machine-cycle.blogspot.com/2012/01/stuttering-video-playback-due-to-usb.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/593663383710482559/posts/default/2926027008522386787?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/593663383710482559/posts/default/2926027008522386787?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/machine-cycle/~3/DtGauRfapkU/stuttering-video-playback-due-to-usb.html" title="Stuttering Video Playback Due To USB Device Reset" /><author><name>Zung!</name><uri>http://www.blogger.com/profile/07718442985309348694</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="29" height="32" src="http://lh5.google.com/image/zungbang/RbfSJp67VwI/AAAAAAAAAAg/fOkC3QmzRcE/s288/cogs.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://machine-cycle.blogspot.com/2012/01/stuttering-video-playback-due-to-usb.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkEDSHw4cSp7ImA9WhdbGUo.&quot;"><id>tag:blogger.com,1999:blog-593663383710482559.post-4460043001969127091</id><published>2011-10-18T13:44:00.000-07:00</published><updated>2011-10-18T13:44:39.239-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-18T13:44:39.239-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="debian" /><category scheme="http://www.blogger.com/atom/ns#" term="undbx" /><title>UnDBX in Debian!</title><content type="html">&lt;a href="http://code.google.com/p/undbx/"&gt;UnDBX&lt;/a&gt; is now officially &lt;a href="http://packages.qa.debian.org/u/undbx.html"&gt;packaged&lt;/a&gt; in &lt;a href="http://www.debian.org"&gt;Debian&lt;/a&gt;!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/593663383710482559-4460043001969127091?l=machine-cycle.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/9Qkl3RJxErVciPWq22C4L3Bey38/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/9Qkl3RJxErVciPWq22C4L3Bey38/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/9Qkl3RJxErVciPWq22C4L3Bey38/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/9Qkl3RJxErVciPWq22C4L3Bey38/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=JvP2dldTnCo:Pti2j3Az63U:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=JvP2dldTnCo:Pti2j3Az63U:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=JvP2dldTnCo:Pti2j3Az63U:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=JvP2dldTnCo:Pti2j3Az63U:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=JvP2dldTnCo:Pti2j3Az63U:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=JvP2dldTnCo:Pti2j3Az63U:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=JvP2dldTnCo:Pti2j3Az63U:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=JvP2dldTnCo:Pti2j3Az63U:wF9xT3WuBAs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=JvP2dldTnCo:Pti2j3Az63U:wF9xT3WuBAs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=JvP2dldTnCo:Pti2j3Az63U:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=JvP2dldTnCo:Pti2j3Az63U:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=JvP2dldTnCo:Pti2j3Az63U:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=JvP2dldTnCo:Pti2j3Az63U:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=JvP2dldTnCo:Pti2j3Az63U:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=JvP2dldTnCo:Pti2j3Az63U:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/machine-cycle/~4/JvP2dldTnCo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://machine-cycle.blogspot.com/feeds/4460043001969127091/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://machine-cycle.blogspot.com/2011/10/undbx-in-debian.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/593663383710482559/posts/default/4460043001969127091?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/593663383710482559/posts/default/4460043001969127091?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/machine-cycle/~3/JvP2dldTnCo/undbx-in-debian.html" title="UnDBX in Debian!" /><author><name>Zung!</name><uri>http://www.blogger.com/profile/07718442985309348694</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="29" height="32" src="http://lh5.google.com/image/zungbang/RbfSJp67VwI/AAAAAAAAAAg/fOkC3QmzRcE/s288/cogs.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://machine-cycle.blogspot.com/2011/10/undbx-in-debian.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0UMQXk7eCp7ImA9WhdSGUo.&quot;"><id>tag:blogger.com,1999:blog-593663383710482559.post-3329060195630242088</id><published>2011-07-29T13:28:00.000-07:00</published><updated>2011-07-29T13:28:00.700-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-29T13:28:00.700-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="podcasts" /><title>Configuring hpodder To Handle Compressed Podcast Feeds</title><content type="html">My &lt;a href="http://europe.nokia.com/find-products/devices/nokia-2730-classic"&gt;Nokia 2730 classic&lt;/a&gt; &lt;a href="http://www.urbandictionary.com/define.php?term=dumbphone"&gt;dumbphone&lt;/a&gt; is surprisingly smart. Unbeknownst to me at the time of purchase, was the fact that it has a 2GB MicroSD card, and can play MP3 files. But eventually I did stumble upon this feature and it wasn't too long before I started tuning in on &lt;a href="http://en.wikipedia.org/wiki/Podcast"&gt;podcasts&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
I use &lt;a href="https://github.com/jgoerzen/hpodder/wiki"&gt;&lt;code&gt;hpodder&lt;/code&gt;&lt;/a&gt; (launched from a &lt;a href="http://en.wikipedia.org/wiki/Cron"&gt;cron&lt;/a&gt; job) to follow podcast feeds and download episodes to my computer, and a semi-scripted procedure to move these files to my phone's memory card over a USB connection.&lt;br /&gt;
&lt;br /&gt;
Lately, &lt;code&gt;hpodder&lt;/code&gt; started complaining:&lt;pre wrap&gt;*** 12: Failure parsing feed: Lexical error in  file http://escapepod.org/feed/  at line 1 col 1:
  unrecognised token: ^_\213^H^@&lt;/pre&gt;So I tried to download the feed manually:&lt;pre wrap&gt;$ curl http://escapepod.org/feed/&lt;/pre&gt;and the terminal filled up with gibberish to the point that I had to blindly type &lt;code&gt;reset&lt;/code&gt; in order to fix it.&lt;br /&gt;
&lt;br /&gt;
That was weird: after all, the feed is nothing more than an XML file - a text file, which should be perfectly readable with the naked eye.&lt;br /&gt;
&lt;br /&gt;
I saved the feed with&lt;pre wrap&gt;$ curl -o feed.bin http://escapepod.org/feed/&lt;/pre&gt;and then determined its type:&lt;pre wrap&gt;$ file -b -i feed.bin
application/x-gzip; charset=binary
$ zcat feed.bin | file -b -i - 
application/xml; charset=utf-8&lt;/pre&gt;I.e. a GZIP compressed XML file.&lt;br /&gt;
&lt;br /&gt;
So &lt;code&gt;hpodder&lt;/code&gt; choked on a compressed feed. &lt;br /&gt;
&lt;br /&gt;
I consulted the &lt;a href="http://jgoerzen.github.com/hpodder/hpodder.pdf"&gt;manual&lt;/a&gt; and found out that &lt;code&gt;hpodder&lt;/code&gt; delegates downloads to &lt;a href="http://curl.haxx.se/"&gt;cURL&lt;/a&gt;. I skimmed through the cURL &lt;a href="http://manpages.debian.net/cgi-bin/man.cgi?query=curl"&gt;manpage&lt;/a&gt;, found about the &lt;code&gt;--compressed&lt;/code&gt; command line option, tried the download again - and got the uncompressed XML contents. Hoozah!&lt;br /&gt;
&lt;br /&gt;
Apparently, the server, that's serving that particular feed, is mis-configured to always compress its replies, even if not specifically asked to do it. The &lt;code&gt;--compressed&lt;/code&gt; command line options tells cURL to request the server to compress its replies, and cURL decompresses them.&lt;br /&gt;
&lt;br /&gt;
I tried downloading other feeds with the &lt;code&gt;--compressed&lt;/code&gt; added, and it worked fine. So either this option is supported by all the other servers on my list of feeds, or that cURL does nothing when the reply is not compressed. I dunno.&lt;br /&gt;
&lt;br /&gt;
All that I needed now was a way to convince &lt;code&gt;hpodder&lt;/code&gt; to launch cURL the same way.&lt;br /&gt;
&lt;br /&gt;
Turns out that &lt;code&gt;hpodder&lt;/code&gt; is a rather nice piece of software (and rather well documented too). The &lt;code&gt;hpodder&lt;/code&gt; manual pointed me to &lt;code&gt;~/.hpodder/curlrc&lt;/code&gt;:&lt;pre wrap&gt;$ echo compressed &gt;&gt; ~/.hpodder/curlrc
&lt;/pre&gt;and now &lt;code&gt;hpodder&lt;/code&gt; works like a charm again (and probably faster than before, because it always asks for compressed replies).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/593663383710482559-3329060195630242088?l=machine-cycle.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/QRgwuVy6Ewjg1C4LiPYO2ywte_w/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/QRgwuVy6Ewjg1C4LiPYO2ywte_w/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/QRgwuVy6Ewjg1C4LiPYO2ywte_w/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/QRgwuVy6Ewjg1C4LiPYO2ywte_w/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=QPy8iWrrUfc:HM4AsAYMm9A:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=QPy8iWrrUfc:HM4AsAYMm9A:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=QPy8iWrrUfc:HM4AsAYMm9A:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=QPy8iWrrUfc:HM4AsAYMm9A:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=QPy8iWrrUfc:HM4AsAYMm9A:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=QPy8iWrrUfc:HM4AsAYMm9A:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=QPy8iWrrUfc:HM4AsAYMm9A:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=QPy8iWrrUfc:HM4AsAYMm9A:wF9xT3WuBAs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=QPy8iWrrUfc:HM4AsAYMm9A:wF9xT3WuBAs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=QPy8iWrrUfc:HM4AsAYMm9A:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=QPy8iWrrUfc:HM4AsAYMm9A:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=QPy8iWrrUfc:HM4AsAYMm9A:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=QPy8iWrrUfc:HM4AsAYMm9A:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=QPy8iWrrUfc:HM4AsAYMm9A:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=QPy8iWrrUfc:HM4AsAYMm9A:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/machine-cycle/~4/QPy8iWrrUfc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://machine-cycle.blogspot.com/feeds/3329060195630242088/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://machine-cycle.blogspot.com/2011/07/configuring-hpodder-to-handle.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/593663383710482559/posts/default/3329060195630242088?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/593663383710482559/posts/default/3329060195630242088?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/machine-cycle/~3/QPy8iWrrUfc/configuring-hpodder-to-handle.html" title="Configuring hpodder To Handle Compressed Podcast Feeds" /><author><name>Zung!</name><uri>http://www.blogger.com/profile/07718442985309348694</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="29" height="32" src="http://lh5.google.com/image/zungbang/RbfSJp67VwI/AAAAAAAAAAg/fOkC3QmzRcE/s288/cogs.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://machine-cycle.blogspot.com/2011/07/configuring-hpodder-to-handle.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0EEQH4_fyp7ImA9WhdSE0g.&quot;"><id>tag:blogger.com,1999:blog-593663383710482559.post-1294185261893033294</id><published>2011-07-22T09:20:00.000-07:00</published><updated>2011-07-22T09:20:01.047-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-22T09:20:01.047-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="git" /><category scheme="http://www.blogger.com/atom/ns#" term="work" /><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu" /><title>Cloning a GitHub GIT Repository on Ubuntu 8.04 LTS</title><content type="html">At work, we're still running &lt;a href="http://releases.ubuntu.com/8.04/"&gt;Ubuntu 8.04 LTS&lt;/a&gt; on most PCs with Linux. Most of the time the age of the operating system isn't a problem - but sometimes it can be a pain. Case in point: cloning a &lt;a href="http://git-scm.com/"&gt;GIT&lt;/a&gt; repository hosted on &lt;a href="https://github.com/"&gt;GitHub&lt;/a&gt;. This used to work just fine, until they switched to HTTPS:&lt;pre&gt;$ git clone https://github.com/user/repo.git
Initialized empty Git repository in /current/directory/repo/.git/
Cannot get remote repository information.
Perhaps git-update-server-info needs to be run there?
&lt;/pre&gt;When this first happened, I shrugged it off as a problem with the remote end, and just downloaded a source tarball from &lt;code&gt;https://github.com/user/repo/tarball/master&lt;/code&gt;. But a few weeks later I got this error again with a different repository, and got annoyed. I tried the same command at home (Debian/testing, GIT version 1.7.5.4):&lt;pre&gt;$ git clone https://github.com/user/repo.git
Cloning into repo...
remote: Counting objects: 81, done.
remote: Compressing objects: 100% (72/72), done.
remote: Total 81 (delta 34), reused 55 (delta 8)
Unpacking objects: 100% (81/81), done.
&lt;/pre&gt;So, this is a problem with either GIT at work, or the Net connection. I downloaded the GIT source tarball and installed it locally in my account (at &lt;code&gt;~/local&lt;/code&gt;):&lt;pre&gt;wget -c http://kernel.org/pub/software/scm/git/git-1.7.6.tar.bz2
tar xvjf git-1.7.6.tar.bz2
cd git-1.7.6
ls
./configure --prefix=$HOME/local
make
make install
&lt;/pre&gt;and since we're using &lt;a href="http://www.tcsh.org"&gt;&lt;code&gt;tcsh&lt;/code&gt;&lt;/a&gt; at work (don't ask), I also had to type &lt;code&gt;rehash&lt;/code&gt; in order to convince the shell to use the newly installed GIT.&lt;br /&gt;
&lt;br /&gt;
Here's what I got this time:&lt;pre WRAP&gt;$ git clone https://github.com/user/repo.git
Cloning into repo...
error: SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed while accessing https://github.com/user/repo.git/info/refs

fatal: HTTP request failed
&lt;/pre&gt;... which is useful: Google directed me to a &lt;a href="http://stackoverflow.com/questions/3777075/https-github-access"&gt;question&lt;/a&gt; on Stack-Overflow. Most of the answers there deal with installing &lt;a href="http://en.wikipedia.org/wiki/Certificate_authority"&gt;CA certificates&lt;/a&gt;, but the following trick works nicely with git version 1.5.4.3 on Ubuntu 8.04.4 LTS:&lt;pre WRAP&gt;$ env &lt;font color="red"&gt;GIT_SSL_NO_VERIFY=true&lt;/font&gt; git clone https://github.com/user/repo.git
Cloning into repo...
remote: Counting objects: 81, done.
remote: Compressing objects: 100% (72/72), done.
remote: Total 81 (delta 34), reused 55 (delta 8)
Unpacking objects: 100% (81/81), done.
&lt;/pre&gt;(no need for &lt;code&gt;env&lt;/code&gt; in &lt;a href="http://www.gnu.org/s/bash/"&gt;&lt;code&gt;bash&lt;/code&gt;&lt;/a&gt;).&lt;br /&gt;
&lt;br /&gt;
And while we're at it, here's another trick that might be handy in the future:&lt;pre wrap&gt;$ env &lt;font color="red"&gt;GIT_CURL_VERBOSE=1&lt;/font&gt; git clone https://github.com/user/repo.git
Cloning into repo...
* Couldn't find host github.com in the .netrc file, using defaults
* About to connect() to github.com port 443 (#0)
*   Trying 207.97.227.239... * Connected to github.com (207.97.227.239) port 443 (#0)
* successfully set certificate verify locations:
*   CAfile: /etc/ssl/certs/ca-certificates.crt
  CApath: none
* SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
* Expire cleared
* Connection #0 to host github.com left intact
* Couldn't find host github.com in the .netrc file, using defaults
* Connection #0 seems to be dead!
* Closing connection #0
* About to connect() to github.com port 443 (#0)
*   Trying 207.97.227.239... * Connected to github.com (207.97.227.239) port 443 (#0)
* successfully set certificate verify locations:
*   CAfile: /etc/ssl/certs/ca-certificates.crt
  CApath: none
* SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
* Expire cleared
* Connection #0 to host github.com left intact
error: SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed while accessing https://github.com/user/repo.git/info/refs

fatal: HTTP request failed
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/593663383710482559-1294185261893033294?l=machine-cycle.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Qg7zrZF2n4FP5uK5OTGTJTIZ6nE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Qg7zrZF2n4FP5uK5OTGTJTIZ6nE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Qg7zrZF2n4FP5uK5OTGTJTIZ6nE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Qg7zrZF2n4FP5uK5OTGTJTIZ6nE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=5ZOPUW9T5PE:CzqgSciWljg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=5ZOPUW9T5PE:CzqgSciWljg:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=5ZOPUW9T5PE:CzqgSciWljg:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=5ZOPUW9T5PE:CzqgSciWljg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=5ZOPUW9T5PE:CzqgSciWljg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=5ZOPUW9T5PE:CzqgSciWljg:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=5ZOPUW9T5PE:CzqgSciWljg:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=5ZOPUW9T5PE:CzqgSciWljg:wF9xT3WuBAs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=5ZOPUW9T5PE:CzqgSciWljg:wF9xT3WuBAs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=5ZOPUW9T5PE:CzqgSciWljg:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=5ZOPUW9T5PE:CzqgSciWljg:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=5ZOPUW9T5PE:CzqgSciWljg:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=5ZOPUW9T5PE:CzqgSciWljg:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=5ZOPUW9T5PE:CzqgSciWljg:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=5ZOPUW9T5PE:CzqgSciWljg:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/machine-cycle/~4/5ZOPUW9T5PE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://machine-cycle.blogspot.com/feeds/1294185261893033294/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://machine-cycle.blogspot.com/2011/07/cloning-github-git-repository-on-ubuntu.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/593663383710482559/posts/default/1294185261893033294?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/593663383710482559/posts/default/1294185261893033294?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/machine-cycle/~3/5ZOPUW9T5PE/cloning-github-git-repository-on-ubuntu.html" title="Cloning a GitHub GIT Repository on Ubuntu 8.04 LTS" /><author><name>Zung!</name><uri>http://www.blogger.com/profile/07718442985309348694</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="29" height="32" src="http://lh5.google.com/image/zungbang/RbfSJp67VwI/AAAAAAAAAAg/fOkC3QmzRcE/s288/cogs.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://machine-cycle.blogspot.com/2011/07/cloning-github-git-repository-on-ubuntu.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk4CQX8yeCp7ImA9WhZXEEQ.&quot;"><id>tag:blogger.com,1999:blog-593663383710482559.post-1791989252544109488</id><published>2011-04-29T09:36:00.000-07:00</published><updated>2011-04-29T09:36:00.190-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-29T09:36:00.190-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="blog" /><category scheme="http://www.blogger.com/atom/ns#" term="backup" /><title>Backup a Blogger Blog - Revisited</title><content type="html">I recently found out that the method I used to &lt;a href="http://machine-cycle.blogspot.com/2009/01/backup-blogger-blog.html"&gt;backup this blog&lt;/a&gt; automatically, has stopped working. It all hinged on the observation that one can retrieve a single web page with the full text of all the posts of a given Blogger blog, by retrieving the link &lt;pre&gt;http://&lt;font color="red"&gt;blogname&lt;/font&gt;.blogspot.com/search?max-results=&lt;font color="red"&gt;N&lt;/font&gt;&lt;/pre&gt;with a large enough &lt;code&gt;N&lt;/code&gt;, e.g. 10000. This is not true anymore - at the moment I can only retrieve the latest 42 posts on this blog, from a total of 178. &lt;br /&gt;
&lt;br /&gt;
I'm not sure when this method stopped working, or, for that matter, if it ever really worked. The fact remains, however, that I have a blog that I want to backup, so I spent the better part of an evening figuring out how to properly do this.&lt;br /&gt;
&lt;br /&gt;
My new Blogger blog backup script, shown below, makes use of the Google Data services API to export and download the blog archive in XML format, and then extracts from it the links of all the posts, and mirrors these pages locally, with &lt;a href="http://www.httrack.com/"&gt;HTTrack&lt;/a&gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;!-- Generator: GNU source-highlight 3.1.4
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite --&gt;&lt;br /&gt;
&lt;pre&gt;&lt;tt&gt;&lt;i&gt;&lt;font color="#9A1900"&gt;#! /bin/bash&lt;/font&gt;&lt;/i&gt;

&lt;font color="#009900"&gt;BLOGGER_EMAIL&lt;/font&gt;&lt;font color="#990000"&gt;=&lt;/font&gt;user@gmail&lt;font color="#990000"&gt;.&lt;/font&gt;com
&lt;font color="#009900"&gt;BLOGGER_PASSWD&lt;/font&gt;&lt;font color="#990000"&gt;=&lt;/font&gt;password
&lt;font color="#009900"&gt;BLOGGER_BLOGID&lt;/font&gt;&lt;font color="#990000"&gt;=&lt;/font&gt;&lt;font color="#993399"&gt;000000000000000000&lt;/font&gt;
&lt;font color="#009900"&gt;BLOGGER_BLOG&lt;/font&gt;&lt;font color="#990000"&gt;=&lt;/font&gt;blogname

&lt;font color="#009900"&gt;DEST_DIR&lt;/font&gt;&lt;font color="#990000"&gt;=&lt;/font&gt;/path/to/backup/directory&lt;font color="#990000"&gt;/&lt;/font&gt;
mkdir -p &lt;font color="#009900"&gt;${DEST_DIR}&lt;/font&gt;
cd &lt;font color="#009900"&gt;${DEST_DIR}&lt;/font&gt;

&lt;b&gt;&lt;font color="#0000FF"&gt;eval&lt;/font&gt;&lt;/b&gt; &lt;font color="#009900"&gt;$(&lt;/font&gt; &lt;font color="#990000"&gt;\&lt;/font&gt;
    curl -s &lt;font color="#FF0000"&gt;"https://www.google.com/accounts/ClientLogin"&lt;/font&gt; &lt;font color="#990000"&gt;\&lt;/font&gt;
    --data-urlencode &lt;font color="#009900"&gt;Email&lt;/font&gt;&lt;font color="#990000"&gt;=&lt;/font&gt;&lt;font color="#009900"&gt;$BLOGGER_EMAIL&lt;/font&gt; --data-urlencode &lt;font color="#009900"&gt;Passwd&lt;/font&gt;&lt;font color="#990000"&gt;=&lt;/font&gt;&lt;font color="#009900"&gt;$BLOGGER_PASSWD&lt;/font&gt; &lt;font color="#990000"&gt;\&lt;/font&gt;
    -d &lt;font color="#009900"&gt;accountType&lt;/font&gt;&lt;font color="#990000"&gt;=&lt;/font&gt;GOOGLE &lt;font color="#990000"&gt;\&lt;/font&gt;
    -d &lt;b&gt;&lt;font color="#0000FF"&gt;source&lt;/font&gt;&lt;/b&gt;&lt;font color="#990000"&gt;=&lt;/font&gt;MachineCycle-cURL-BlogBackup &lt;font color="#990000"&gt;\&lt;/font&gt;
    -d &lt;font color="#009900"&gt;service&lt;/font&gt;&lt;font color="#990000"&gt;=&lt;/font&gt;blogger &lt;font color="#990000"&gt;|&lt;/font&gt; grep &lt;font color="#FF0000"&gt;'Auth='&lt;/font&gt;
&lt;font color="#990000"&gt;)&lt;/font&gt;

curl -s &lt;font color="#FF0000"&gt;"http://www.blogger.com/feeds/$BLOGGER_BLOGID/archive"&lt;/font&gt; &lt;font color="#990000"&gt;\&lt;/font&gt;
    --header &lt;font color="#FF0000"&gt;"Authorization: GoogleLogin auth=$Auth"&lt;/font&gt; &lt;font color="#990000"&gt;\&lt;/font&gt;
    --header &lt;font color="#FF0000"&gt;"GData-Version: 2"&lt;/font&gt; &lt;font color="#990000"&gt;\&lt;/font&gt;
    &lt;font color="#990000"&gt;|&lt;/font&gt; xml_pp &lt;font color="#990000"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#009900"&gt;${BLOGGER_BLOG}&lt;/font&gt;&lt;font color="#990000"&gt;.&lt;/font&gt;blogspot&lt;font color="#990000"&gt;.&lt;/font&gt;com&lt;font color="#990000"&gt;.&lt;/font&gt;archive&lt;font color="#990000"&gt;.&lt;/font&gt;xml

grep -o -e &lt;font color="#FF0000"&gt;'&amp;lt;link href="http://'&lt;/font&gt;&lt;font color="#009900"&gt;$BLOGGER_BLOG&lt;/font&gt;&lt;font color="#FF0000"&gt;'.blogspot.com/..../[^&lt;/font&gt;&lt;font color="#CC33CC"&gt;\.&lt;/font&gt;&lt;font color="#FF0000"&gt;]*.html" rel="alternate" title='&lt;/font&gt; &lt;font color="#990000"&gt;\&lt;/font&gt;
    &lt;font color="#009900"&gt;${BLOGGER_BLOG}&lt;/font&gt;&lt;font color="#990000"&gt;.&lt;/font&gt;blogspot&lt;font color="#990000"&gt;.&lt;/font&gt;com&lt;font color="#990000"&gt;.&lt;/font&gt;archive&lt;font color="#990000"&gt;.&lt;/font&gt;xml &lt;font color="#990000"&gt;|&lt;/font&gt; &lt;font color="#990000"&gt;\&lt;/font&gt;
    sed -e &lt;font color="#FF0000"&gt;'s@.link href="@@g'&lt;/font&gt; -e &lt;font color="#FF0000"&gt;'s@" rel="alternate" title=@@g'&lt;/font&gt; &lt;font color="#990000"&gt;|&lt;/font&gt; &lt;font color="#990000"&gt;\&lt;/font&gt;
    sort -ur &lt;font color="#990000"&gt;&amp;gt;&lt;/font&gt; &lt;font color="#009900"&gt;${BLOGGER_BLOG}&lt;/font&gt;&lt;font color="#990000"&gt;.&lt;/font&gt;links

mkdir -p &lt;font color="#009900"&gt;${BLOGGER_BLOG}&lt;/font&gt;
cd &lt;font color="#009900"&gt;${BLOGGER_BLOG}&lt;/font&gt;
httrack &lt;font color="#990000"&gt;\&lt;/font&gt;
    -&lt;font color="#990000"&gt;%&lt;/font&gt;v0 &lt;font color="#990000"&gt;\&lt;/font&gt;
    -&lt;font color="#990000"&gt;%&lt;/font&gt;e0 &lt;font color="#990000"&gt;\&lt;/font&gt;
    -X&lt;font color="#993399"&gt;0&lt;/font&gt; &lt;font color="#990000"&gt;\&lt;/font&gt;
    --verbose &lt;font color="#990000"&gt;\&lt;/font&gt;
    --update &lt;font color="#990000"&gt;\&lt;/font&gt;
    -&lt;font color="#990000"&gt;%&lt;/font&gt;L &lt;font color="#990000"&gt;../&lt;/font&gt;&lt;font color="#009900"&gt;${BLOGGER_BLOG}&lt;/font&gt;&lt;font color="#990000"&gt;.&lt;/font&gt;links &lt;font color="#990000"&gt;\&lt;/font&gt;
    -&lt;font color="#FF0000"&gt;"http://${BLOGGER_BLOG}.blogspot.com/"&lt;/font&gt; &lt;font color="#990000"&gt;\&lt;/font&gt;
    -&lt;font color="#FF0000"&gt;"${BLOGGER_BLOG}.blogspot.com/*widgetType=BlogArchive*"&lt;/font&gt; &lt;font color="#990000"&gt;\&lt;/font&gt;
    -&lt;font color="#FF0000"&gt;"${BLOGGER_BLOG}.blogspot.com/search*"&lt;/font&gt; &lt;font color="#990000"&gt;\&lt;/font&gt;
    -&lt;font color="#FF0000"&gt;"${BLOGGER_BLOG}.blogspot.com/*_archive.html*"&lt;/font&gt; &lt;font color="#990000"&gt;\&lt;/font&gt;
    -&lt;font color="#FF0000"&gt;"${BLOGGER_BLOG}.blogspot.com/feeds/*"&lt;/font&gt; &lt;font color="#990000"&gt;\&lt;/font&gt;
    -&lt;font color="#FF0000"&gt;"${BLOGGER_BLOG}.blogspot.com/*.html?showComment=*"&lt;/font&gt; &lt;font color="#990000"&gt;\&lt;/font&gt;
    &lt;font color="#990000"&gt;+&lt;/font&gt;&lt;font color="#FF0000"&gt;"*.gif"&lt;/font&gt; &lt;font color="#990000"&gt;\&lt;/font&gt;
    &lt;font color="#990000"&gt;+&lt;/font&gt;&lt;font color="#FF0000"&gt;"*.jpg"&lt;/font&gt; &lt;font color="#990000"&gt;\&lt;/font&gt;
    &lt;font color="#990000"&gt;+&lt;/font&gt;&lt;font color="#FF0000"&gt;"*.png"&lt;/font&gt;
&lt;/tt&gt;&lt;/pre&gt;A few comments are in order:&lt;ol&gt;&lt;li&gt;the script contains the Blogger username and password - keep it safe!&lt;/li&gt;
&lt;li&gt;the blog id is the number that appears in the URL of most links accessible from the Blogger dashboard, after the &lt;code&gt;blogID=&lt;/code&gt; part&lt;/li&gt;
&lt;li&gt;the XML blog archive may later be used to restore/migrate the blog&lt;/li&gt;
&lt;li&gt;local mirroring isn't really necessary - I just like it that I can view the blog contents offline&lt;/li&gt;
&lt;li&gt;another unnecessary step: I use &lt;a href="http://packages.debian.org/search?keywords=xml-twig-tools"&gt;&lt;code&gt;xml_pp&lt;/code&gt;&lt;/a&gt; to beautify the exported XML file&lt;/li&gt;
&lt;li&gt;currently, the script performs no error checking - I may add some checks if and when I observe failures&lt;/li&gt;
&lt;li&gt;sources: &lt;a href="http://code.google.com/intl/iw/apis/gdata/articles/using_cURL.html"&gt;Using cURL to interact with Google Data services&lt;/a&gt;, &lt;a href="http://code.google.com/intl/iw/apis/blogger/docs/2.0/developers_guide_protocol.html#ExportFormat"&gt;Blogger export format&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/593663383710482559-1791989252544109488?l=machine-cycle.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/-q_j_ZvsE2IXkacfgbX13l4wqhI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-q_j_ZvsE2IXkacfgbX13l4wqhI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/-q_j_ZvsE2IXkacfgbX13l4wqhI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-q_j_ZvsE2IXkacfgbX13l4wqhI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=t2h1xiIjY5I:KseU7AzGKzA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=t2h1xiIjY5I:KseU7AzGKzA:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=t2h1xiIjY5I:KseU7AzGKzA:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=t2h1xiIjY5I:KseU7AzGKzA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=t2h1xiIjY5I:KseU7AzGKzA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=t2h1xiIjY5I:KseU7AzGKzA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=t2h1xiIjY5I:KseU7AzGKzA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=t2h1xiIjY5I:KseU7AzGKzA:wF9xT3WuBAs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=t2h1xiIjY5I:KseU7AzGKzA:wF9xT3WuBAs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=t2h1xiIjY5I:KseU7AzGKzA:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=t2h1xiIjY5I:KseU7AzGKzA:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=t2h1xiIjY5I:KseU7AzGKzA:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=t2h1xiIjY5I:KseU7AzGKzA:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=t2h1xiIjY5I:KseU7AzGKzA:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=t2h1xiIjY5I:KseU7AzGKzA:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/machine-cycle/~4/t2h1xiIjY5I" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://machine-cycle.blogspot.com/feeds/1791989252544109488/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://machine-cycle.blogspot.com/2011/04/backup-blogger-blog-revisited.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/593663383710482559/posts/default/1791989252544109488?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/593663383710482559/posts/default/1791989252544109488?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/machine-cycle/~3/t2h1xiIjY5I/backup-blogger-blog-revisited.html" title="Backup a Blogger Blog - Revisited" /><author><name>Zung!</name><uri>http://www.blogger.com/profile/07718442985309348694</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="29" height="32" src="http://lh5.google.com/image/zungbang/RbfSJp67VwI/AAAAAAAAAAg/fOkC3QmzRcE/s288/cogs.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://machine-cycle.blogspot.com/2011/04/backup-blogger-blog-revisited.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEQEQH4-fCp7ImA9WhRTFUs.&quot;"><id>tag:blogger.com,1999:blog-593663383710482559.post-6961768272011614613</id><published>2011-04-15T02:34:00.000-07:00</published><updated>2011-11-05T23:51:41.054-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-05T23:51:41.054-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="multimedia" /><title>Fixing Normalize Audio Feature in K3b</title><content type="html">I usually burn and copy optical media with &lt;a href="http://k3b.plainblack.com/"&gt;K3b&lt;/a&gt;. I don't do this often, but when I do, it usually just works. Except when it doesn't.&lt;br /&gt;
&lt;br /&gt;
My wife asked me to create an audio CD for her, from an assortment of audio tracks she collected from various sources. It was easy enough to accomplish this with K3b. But the resulting audio CD was annoying to listen to, because I had to change the volume setting for each track.&lt;br /&gt;
&lt;br /&gt;
It's a classic noob's mistake: I should've enabled &lt;a href="http://en.wikipedia.org/wiki/Audio_normalization"&gt;audio normalization&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
So I tried it again, but found that I couldn't enable audio normalization in K3b. Turns out that K3b uses an external application (called - surprise! - &lt;tt&gt;normalize-audio&lt;/tt&gt;) to perform this task, and K3b just couldn't find it - a fact that was clearly (?) stated in the programs section of the K3b settings dialog.&lt;br /&gt;
&lt;br /&gt;
I tried launching &lt;tt&gt;normalize-audio&lt;/tt&gt; at the command line, and it seemed to be installed alright. A quick Net search brought me to Debian bug &lt;a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=597155"&gt;#597155&lt;/a&gt; and Ubuntu bug &lt;a href="https://bugs.launchpad.net/ubuntu/+source/k3b/+bug/45026"&gt;#45026&lt;/a&gt;. The root cause of the problem is that &lt;tt&gt;normalize-audio&lt;/tt&gt; reports its version number as &lt;pre&gt;normalize 0.7.7&lt;/pre&gt;while K3b expects &lt;pre&gt;normalize-audio 0.7.7&lt;/pre&gt;&lt;br /&gt;
This can be fixed either in K3b or in &lt;tt&gt;normalize-audio&lt;/tt&gt;, and patches for both sides have already been posted. But neither has been incorporated yet. In the meantime, I've implemented a workaround, based on suggestions in those bug reports:&lt;ol&gt;&lt;li&gt;create (as root) an executable script named &lt;tt&gt;normalize-audio&lt;/tt&gt; under &lt;tt&gt;/usr/local/bin/&lt;/tt&gt; with the following contents:&lt;!-- Generator: GNU source-highlight 3.1.4
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite --&gt;&lt;br /&gt;
&lt;pre&gt;&lt;tt&gt;&lt;i&gt;&lt;font color="#9A1900"&gt;#!/bin/bash&lt;/font&gt;&lt;/i&gt;
&lt;b&gt;&lt;font color="#0000FF"&gt;case&lt;/font&gt;&lt;/b&gt; &lt;font color="#FF0000"&gt;"$1"&lt;/font&gt; &lt;b&gt;&lt;font color="#0000FF"&gt;in&lt;/font&gt;&lt;/b&gt;    
    --version&lt;font color="#990000"&gt;)&lt;/font&gt;
        /usr/bin/normalize-audio --version &lt;font color="#990000"&gt;|&lt;/font&gt; sed -e &lt;font color="#FF0000"&gt;'s/normalize/normalize-audio/g'&lt;/font&gt;
        &lt;font color="#990000"&gt;;;&lt;/font&gt;
    &lt;font color="#990000"&gt;*)&lt;/font&gt;
        /usr/bin/normalize-audio &lt;font color="#009900"&gt;"$@"&lt;/font&gt;
        &lt;font color="#990000"&gt;;;&lt;/font&gt;
&lt;b&gt;&lt;font color="#0000FF"&gt;esac&lt;/font&gt;&lt;/b&gt;&lt;/tt&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;make this script executable:&lt;pre&gt;chmod a+x /usr/local/bin/normalize-audio&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;this script is supposed to be used as a wrapper for &lt;tt&gt;normalize-audio&lt;/tt&gt;, so make sure that &lt;tt&gt;/usr/local/bin/&lt;/tt&gt; appears in the &lt;tt&gt;PATH&lt;/tt&gt; environment variable, and that it comes before &lt;tt&gt;/usr/bin&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;launch K3b from a new command shell - it should now detect &lt;tt&gt;normalize-audio&lt;/tt&gt; and allow you to use it&lt;/li&gt;
&lt;/ol&gt;&lt;br /&gt;
Time to &lt;a href="http://vimeo.com/3685071"&gt;Burn&lt;/a&gt;!
&lt;br /&gt;[05 Nov 2011] &lt;b&gt;UPDATE:&lt;/b&gt; fixed script to work with file names/paths that contain spaces (Thanks anonymous commenter!)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/593663383710482559-6961768272011614613?l=machine-cycle.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Q3CSm0ZGBVISaDR3t0-wdM8iXOo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Q3CSm0ZGBVISaDR3t0-wdM8iXOo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Q3CSm0ZGBVISaDR3t0-wdM8iXOo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Q3CSm0ZGBVISaDR3t0-wdM8iXOo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=3o2u6l1UtuU:-pw7d1lZjkQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=3o2u6l1UtuU:-pw7d1lZjkQ:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=3o2u6l1UtuU:-pw7d1lZjkQ:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=3o2u6l1UtuU:-pw7d1lZjkQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=3o2u6l1UtuU:-pw7d1lZjkQ:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=3o2u6l1UtuU:-pw7d1lZjkQ:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=3o2u6l1UtuU:-pw7d1lZjkQ:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=3o2u6l1UtuU:-pw7d1lZjkQ:wF9xT3WuBAs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=3o2u6l1UtuU:-pw7d1lZjkQ:wF9xT3WuBAs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=3o2u6l1UtuU:-pw7d1lZjkQ:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=3o2u6l1UtuU:-pw7d1lZjkQ:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=3o2u6l1UtuU:-pw7d1lZjkQ:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=3o2u6l1UtuU:-pw7d1lZjkQ:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=3o2u6l1UtuU:-pw7d1lZjkQ:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=3o2u6l1UtuU:-pw7d1lZjkQ:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/machine-cycle/~4/3o2u6l1UtuU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://machine-cycle.blogspot.com/feeds/6961768272011614613/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://machine-cycle.blogspot.com/2011/04/fixing-normalize-audio-feature-in-k3b.html#comment-form" title="9 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/593663383710482559/posts/default/6961768272011614613?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/593663383710482559/posts/default/6961768272011614613?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/machine-cycle/~3/3o2u6l1UtuU/fixing-normalize-audio-feature-in-k3b.html" title="Fixing Normalize Audio Feature in K3b" /><author><name>Zung!</name><uri>http://www.blogger.com/profile/07718442985309348694</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="29" height="32" src="http://lh5.google.com/image/zungbang/RbfSJp67VwI/AAAAAAAAAAg/fOkC3QmzRcE/s288/cogs.jpg" /></author><thr:total>9</thr:total><feedburner:origLink>http://machine-cycle.blogspot.com/2011/04/fixing-normalize-audio-feature-in-k3b.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0EMQX4zeyp7ImA9WhZTFEg.&quot;"><id>tag:blogger.com,1999:blog-593663383710482559.post-114606936034056679</id><published>2011-03-18T07:48:00.000-07:00</published><updated>2011-03-18T07:48:00.083-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-18T07:48:00.083-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="screen" /><category scheme="http://www.blogger.com/atom/ns#" term="windows" /><category scheme="http://www.blogger.com/atom/ns#" term="hardware" /><title>Setting Default Laptop Screen Brightness when Running on Battery Power</title><content type="html">A few weeks ago the screen of my "new" laptop (read: my wife's old WinXP laptop) started flickering.&lt;br /&gt;
&lt;br /&gt;
It was almost imperceptible at first, but it got worse over time, to the point that the screen would, at random intervals, suddenly dim gradually and then brighten back, for a second or so. &lt;br /&gt;
&lt;br /&gt;
I suspected that the laptop screen was failing. The prospect of having another &lt;a href="http://machine-cycle.blogspot.com/2010/04/busted-laptop.html"&gt;headless laptop&lt;/a&gt; made me anxious. But after a while I noticed that whenever the screen brightness flickered, a battery icon would show up momentarily in the system tray.&lt;br /&gt;
&lt;br /&gt;
So I came up with a theory: it may be some kind of a power supply problem that causes the laptop, for very brief periods of time, to think that it is disconnected from the mains power, causing it to switch to battery power, which, in turn, causes the OS to lower the screen brightness in order to reduce power consumption.&lt;br /&gt;
&lt;br /&gt;
This theory seemed plausible, but with the warranty long-since expired, and without spare parts (power cord, power supply, battery, motherboard, etc.), my only option was to let it go. After all, other than this issue, the laptop seemed to be as functional as it can be.&lt;br /&gt;
&lt;br /&gt;
The flickering, however, made me crazy, so I searched for a way to prevent Windows from automatically darkening the screen when the laptop is switched to battery power.&lt;br /&gt;
&lt;br /&gt;
Well, it's easy, but it ain't obvious:&lt;ol&gt;&lt;li&gt;disconnect the laptop from the mains power - the screen dims&lt;/li&gt;
&lt;li&gt;use the screen brightness controls to brighten the display back to the same brightness level when the mains power is connected&lt;/li&gt;
&lt;li&gt;reconnect the mains power&lt;/li&gt;
&lt;/ol&gt;That's it - I kid you not.&lt;br /&gt;
&lt;br /&gt;
A few days ago the laptop switched to battery power and stayed there. I took a little chance and purchased a replacement AC adapter over at eBay. Surprisingly enough, that was it. Happy Happy Joy Joy.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/593663383710482559-114606936034056679?l=machine-cycle.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/mmo18hvoRuElcVyf30GqvXojnP8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/mmo18hvoRuElcVyf30GqvXojnP8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/mmo18hvoRuElcVyf30GqvXojnP8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/mmo18hvoRuElcVyf30GqvXojnP8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=gj5xLdx37Zw:iJm6wes9iRM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=gj5xLdx37Zw:iJm6wes9iRM:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=gj5xLdx37Zw:iJm6wes9iRM:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=gj5xLdx37Zw:iJm6wes9iRM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=gj5xLdx37Zw:iJm6wes9iRM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=gj5xLdx37Zw:iJm6wes9iRM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=gj5xLdx37Zw:iJm6wes9iRM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=gj5xLdx37Zw:iJm6wes9iRM:wF9xT3WuBAs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=gj5xLdx37Zw:iJm6wes9iRM:wF9xT3WuBAs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=gj5xLdx37Zw:iJm6wes9iRM:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=gj5xLdx37Zw:iJm6wes9iRM:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=gj5xLdx37Zw:iJm6wes9iRM:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=gj5xLdx37Zw:iJm6wes9iRM:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=gj5xLdx37Zw:iJm6wes9iRM:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=gj5xLdx37Zw:iJm6wes9iRM:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/machine-cycle/~4/gj5xLdx37Zw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://machine-cycle.blogspot.com/feeds/114606936034056679/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://machine-cycle.blogspot.com/2011/03/setting-default-laptop-screen.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/593663383710482559/posts/default/114606936034056679?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/593663383710482559/posts/default/114606936034056679?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/machine-cycle/~3/gj5xLdx37Zw/setting-default-laptop-screen.html" title="Setting Default Laptop Screen Brightness when Running on Battery Power" /><author><name>Zung!</name><uri>http://www.blogger.com/profile/07718442985309348694</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="29" height="32" src="http://lh5.google.com/image/zungbang/RbfSJp67VwI/AAAAAAAAAAg/fOkC3QmzRcE/s288/cogs.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://machine-cycle.blogspot.com/2011/03/setting-default-laptop-screen.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkAGQX8yeyp7ImA9Wx9aEk8.&quot;"><id>tag:blogger.com,1999:blog-593663383710482559.post-9145956405004494896</id><published>2011-03-04T00:52:00.000-08:00</published><updated>2011-03-04T00:52:00.193-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-04T00:52:00.193-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="security" /><title>Getting Rid of rkhunter's False Warning about Xzibit Rootkit</title><content type="html">I've installed &lt;a href="http://packages.debian.org/search?keywords=rkhunter&amp;searchon=names&amp;suite=all&amp;section=all"&gt;&lt;tt&gt;rkhunter&lt;/tt&gt;&lt;/a&gt; &lt;a href="http://machine-cycle.blogspot.com/2008/03/running-script-automatically-after.html"&gt;a long while ago&lt;/a&gt;, mostly because it seemed irresponsible not to install some sort of "protection". But, as is the case with any such tool, I started getting warnings, which, after I got over the induced anxiety attacks, were invariably confirmed as false positives.&lt;br /&gt;
&lt;br /&gt;
It was usually rather simple to silence these warnings from the &lt;tt&gt;rkhunter&lt;/tt&gt; configuration file &lt;tt&gt;/etc/rkhunter.conf&lt;/tt&gt; - most of the time it was just a matter of un-commenting one or more lines, and occasionally updating &lt;tt&gt;rkhunter&lt;/tt&gt;:&lt;pre&gt;rkhunter --propupd&lt;/pre&gt;(say, for instance, after upgrading packages).&lt;br /&gt;
&lt;br /&gt;
One false positive that was somewhat more complicated to disable was a warning about the Xzibit Rootkit. This warning is triggered by files containing the string &lt;tt&gt;hdparm&lt;/tt&gt; - it's a known bug (see Debian bug &lt;a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=576680"&gt;#576680&lt;/a&gt;), and the workaround is to "use the &lt;tt&gt;RTKT_FILE_WHITELIST&lt;/tt&gt; option to whitelist initscripts stating this string" - e.g. &lt;tt&gt;/etc/init.d/hdparm&lt;/tt&gt; ...&lt;br /&gt;
&lt;br /&gt;
The comments in the configuration file, suggest that the proper method of whitelisting a file is to also add it to &lt;tt&gt;USER_FILEPROP_FILES_DIRS&lt;/tt&gt; and then update &lt;tt&gt;rkhunter&lt;/tt&gt;. But this makes &lt;tt&gt;rkhunter&lt;/tt&gt; complain that &lt;tt&gt;/etc/init.d/hdparm&lt;/tt&gt; is an executable script, so I had to also add it to &lt;tt&gt;SCRIPTWHITELIST&lt;/tt&gt;.&lt;br /&gt;
&lt;br /&gt;
Bottom line - add the following lines to &lt;tt&gt;/etc/rkhunter.conf&lt;/tt&gt;:&lt;pre&gt;USER_FILEPROP_FILES_DIRS="/etc/init.d/hdparm /etc/init.d/.depend.boot"
SCRIPTWHITELIST=/etc/init.d/hdparm
RTKT_FILE_WHITELIST="/etc/init.d/hdparm /etc/init.d/.depend.boot"
&lt;/pre&gt;and the run&lt;pre&gt;rkhunter --propupd&lt;/pre&gt;Verify by running:&lt;pre&gt;rkhunter --check&lt;/pre&gt;I can only hope that I won't hit any false negatives...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/593663383710482559-9145956405004494896?l=machine-cycle.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ElyLUPKtvIHBYiKVOc7RQqsKzMs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ElyLUPKtvIHBYiKVOc7RQqsKzMs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ElyLUPKtvIHBYiKVOc7RQqsKzMs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ElyLUPKtvIHBYiKVOc7RQqsKzMs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=elRQbCCJOyU:ge7dCdLLvTc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=elRQbCCJOyU:ge7dCdLLvTc:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=elRQbCCJOyU:ge7dCdLLvTc:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=elRQbCCJOyU:ge7dCdLLvTc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=elRQbCCJOyU:ge7dCdLLvTc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=elRQbCCJOyU:ge7dCdLLvTc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=elRQbCCJOyU:ge7dCdLLvTc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=elRQbCCJOyU:ge7dCdLLvTc:wF9xT3WuBAs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=elRQbCCJOyU:ge7dCdLLvTc:wF9xT3WuBAs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=elRQbCCJOyU:ge7dCdLLvTc:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=elRQbCCJOyU:ge7dCdLLvTc:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=elRQbCCJOyU:ge7dCdLLvTc:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=elRQbCCJOyU:ge7dCdLLvTc:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=elRQbCCJOyU:ge7dCdLLvTc:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=elRQbCCJOyU:ge7dCdLLvTc:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/machine-cycle/~4/elRQbCCJOyU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://machine-cycle.blogspot.com/feeds/9145956405004494896/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://machine-cycle.blogspot.com/2011/03/getting-rid-of-rkhunters-false-warning.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/593663383710482559/posts/default/9145956405004494896?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/593663383710482559/posts/default/9145956405004494896?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/machine-cycle/~3/elRQbCCJOyU/getting-rid-of-rkhunters-false-warning.html" title="Getting Rid of rkhunter's False Warning about Xzibit Rootkit" /><author><name>Zung!</name><uri>http://www.blogger.com/profile/07718442985309348694</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="29" height="32" src="http://lh5.google.com/image/zungbang/RbfSJp67VwI/AAAAAAAAAAg/fOkC3QmzRcE/s288/cogs.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://machine-cycle.blogspot.com/2011/03/getting-rid-of-rkhunters-false-warning.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0cMQXs6eCp7ImA9Wx9bFks.&quot;"><id>tag:blogger.com,1999:blog-593663383710482559.post-6434596246991585919</id><published>2011-02-25T12:18:00.000-08:00</published><updated>2011-02-25T12:18:00.510-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-25T12:18:00.510-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="one-liner" /><category scheme="http://www.blogger.com/atom/ns#" term="syntax-highlight" /><category scheme="http://www.blogger.com/atom/ns#" term="console" /><title>One Liner: Pretty Print, Syntax Highlight and Page Online XML Data</title><content type="html">Useful when leaching a bunch of video clips from YouTube:&lt;br /&gt;
&lt;pre wrap=""&gt;curl -s &lt;span style="color: red;"&gt;"http://gdata.youtube.com/feeds/api/playlists/916175AB005C0FB6"&lt;/span&gt; | xml_pp | pygmentize -l xml | less -R&lt;/pre&gt;(required packages: &lt;a href="http://packages.debian.org/search?keywords=curl"&gt;curl&lt;/a&gt;, &lt;a href="http://packages.debian.org/search?keywords=xml-twig-tools"&gt;xml-twig-tools&lt;/a&gt;, &lt;a href="http://packages.debian.org/search?keywords=python-pygments"&gt;python-pygments&lt;/a&gt;)&lt;br /&gt;
&lt;br /&gt;
Actually, &lt;tt&gt;xml-pp&lt;/tt&gt; isn't really needed with YouTube - it can do the &lt;a href="http://code.google.com/apis/youtube/2.0/developers_guide_protocol.html#prettyprintsp"&gt;pretty-printing&lt;/a&gt; for you:&lt;pre wrap=""&gt;curl -s "http://gdata.youtube.com/feeds/api/playlists/916175AB005C0FB6&lt;span style="color: blue;"&gt;?prettyprint=true&lt;/span&gt;" | pygmentize -l xml | less -R&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/593663383710482559-6434596246991585919?l=machine-cycle.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/29XJNcQYIbAoz-fK_K4eLD87xas/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/29XJNcQYIbAoz-fK_K4eLD87xas/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/29XJNcQYIbAoz-fK_K4eLD87xas/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/29XJNcQYIbAoz-fK_K4eLD87xas/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=emkipvcABkw:GEJrCZXTIoY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=emkipvcABkw:GEJrCZXTIoY:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=emkipvcABkw:GEJrCZXTIoY:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=emkipvcABkw:GEJrCZXTIoY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=emkipvcABkw:GEJrCZXTIoY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=emkipvcABkw:GEJrCZXTIoY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=emkipvcABkw:GEJrCZXTIoY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=emkipvcABkw:GEJrCZXTIoY:wF9xT3WuBAs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=emkipvcABkw:GEJrCZXTIoY:wF9xT3WuBAs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=emkipvcABkw:GEJrCZXTIoY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=emkipvcABkw:GEJrCZXTIoY:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=emkipvcABkw:GEJrCZXTIoY:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=emkipvcABkw:GEJrCZXTIoY:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=emkipvcABkw:GEJrCZXTIoY:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=emkipvcABkw:GEJrCZXTIoY:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/machine-cycle/~4/emkipvcABkw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://machine-cycle.blogspot.com/feeds/6434596246991585919/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://machine-cycle.blogspot.com/2011/02/one-liner-pretty-print-syntax-highlight.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/593663383710482559/posts/default/6434596246991585919?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/593663383710482559/posts/default/6434596246991585919?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/machine-cycle/~3/emkipvcABkw/one-liner-pretty-print-syntax-highlight.html" title="One Liner: Pretty Print, Syntax Highlight and Page Online XML Data" /><author><name>Zung!</name><uri>http://www.blogger.com/profile/07718442985309348694</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="29" height="32" src="http://lh5.google.com/image/zungbang/RbfSJp67VwI/AAAAAAAAAAg/fOkC3QmzRcE/s288/cogs.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://machine-cycle.blogspot.com/2011/02/one-liner-pretty-print-syntax-highlight.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak8CQH4_cSp7ImA9Wx9bEE4.&quot;"><id>tag:blogger.com,1999:blog-593663383710482559.post-4462567202302422746</id><published>2011-02-18T06:21:00.000-08:00</published><updated>2011-02-18T06:21:01.049-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-18T06:21:01.049-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="browser" /><title>Firefox Crash Recovery</title><content type="html">Just the other day, I was left with no option other than to power-cycle my Ubuntu workstation at work. After this, Firefox, which was open when my workstation died on me, would not start anymore. It just insisted that "Firefox is already running, but is not responding. To open a new window, you must first close the existing Firefox process, or restart your system." - a useless piece of &lt;strike&gt;crap&lt;/strike&gt; advice.&lt;br /&gt;
&lt;br /&gt;
This happened to me before, but I never bothered to document the recovery process. I learned my lesson, thank you very much:&lt;ol&gt;&lt;li&gt;&lt;a href="http://support.mozilla.com/en-US/kb/profiles"&gt;step #0&lt;/a&gt;: find the location of the default Firefox user profile, and then cd to it:&lt;pre&gt;cd ~/.mozilla/firefox/&lt;font color=red&gt;pefasakk.default&lt;/font&gt;/&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://support.mozilla.com/en-US/kb/Firefox%20is%20already%20running%20but%20is%20not%20responding"&gt;step #1&lt;/a&gt;: remove the previous session's lock file:&lt;pre&gt;rm .parentlock&lt;/pre&gt;you may be lucky, and all may just work now. I wasn't, and it didn't.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://support.mozilla.com/en-US/kb/The%20bookmarks%20and%20history%20system%20will%20not%20be%20functional"&gt;step #2&lt;/a&gt;: if Firefox complains that bookmarks and history have been disabled, then you should move away the places database and try again:&lt;pre&gt;mv places.sqlite places.sqlite.backup
mv places.sqlite-journal places.sqlite-journal.backup&lt;/pre&gt;the good news is that Firefox will most likely start with your bookmarks intact, the bad news is that you've just reset your browsing history... &lt;/li&gt;
&lt;li&gt;&lt;a href="http://support.mozilla.com/en-US/kb/Cannot%20log%20in%20to%20websites#w_remove-corrupt-cookies-file"&gt;step #3&lt;/a&gt;: I thought I was out of the woods - everything looked normal enough, until I restarted Firefox - a few hours later - only to discover that Firefox stopped saving cookies, so that I had to re-login to every web site that required it (so many!). I fixed this by moving away the cookies database:&lt;pre&gt;mv cookies.sqlite cookies.sqlite.backup
mv cookies.sqlite-journal cookies.sqlite-journal.backup&lt;/pre&gt;&lt;/li&gt;
&lt;/ol&gt;Now back to our regularly scheduled programming (pun intended).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/593663383710482559-4462567202302422746?l=machine-cycle.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/YMM11vlyHrkOkCzT-hgUFt3-Y5o/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/YMM11vlyHrkOkCzT-hgUFt3-Y5o/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/YMM11vlyHrkOkCzT-hgUFt3-Y5o/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/YMM11vlyHrkOkCzT-hgUFt3-Y5o/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=l6oHYJk1ETo:2HJ5F16fnaw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=l6oHYJk1ETo:2HJ5F16fnaw:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=l6oHYJk1ETo:2HJ5F16fnaw:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=l6oHYJk1ETo:2HJ5F16fnaw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=l6oHYJk1ETo:2HJ5F16fnaw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=l6oHYJk1ETo:2HJ5F16fnaw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=l6oHYJk1ETo:2HJ5F16fnaw:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=l6oHYJk1ETo:2HJ5F16fnaw:wF9xT3WuBAs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=l6oHYJk1ETo:2HJ5F16fnaw:wF9xT3WuBAs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=l6oHYJk1ETo:2HJ5F16fnaw:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=l6oHYJk1ETo:2HJ5F16fnaw:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=l6oHYJk1ETo:2HJ5F16fnaw:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=l6oHYJk1ETo:2HJ5F16fnaw:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=l6oHYJk1ETo:2HJ5F16fnaw:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=l6oHYJk1ETo:2HJ5F16fnaw:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/machine-cycle/~4/l6oHYJk1ETo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://machine-cycle.blogspot.com/feeds/4462567202302422746/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://machine-cycle.blogspot.com/2011/02/firefox-crash-recovery.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/593663383710482559/posts/default/4462567202302422746?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/593663383710482559/posts/default/4462567202302422746?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/machine-cycle/~3/l6oHYJk1ETo/firefox-crash-recovery.html" title="Firefox Crash Recovery" /><author><name>Zung!</name><uri>http://www.blogger.com/profile/07718442985309348694</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="29" height="32" src="http://lh5.google.com/image/zungbang/RbfSJp67VwI/AAAAAAAAAAg/fOkC3QmzRcE/s288/cogs.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://machine-cycle.blogspot.com/2011/02/firefox-crash-recovery.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEEGQX88fCp7ImA9Wx9UFEQ.&quot;"><id>tag:blogger.com,1999:blog-593663383710482559.post-4580424844911986832</id><published>2011-02-11T22:37:00.000-08:00</published><updated>2011-02-11T22:37:00.174-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-11T22:37:00.174-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="samba" /><category scheme="http://www.blogger.com/atom/ns#" term="windows" /><title>How To Disconnect from a Network Share on Windows</title><content type="html">My wife's employer issued her an &lt;a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.com%2Fs%3Fie%3DUTF8%26scn%3D1232596011%26redirect%3Dtrue%26ref_%3Dsr_nr_scat_1232596011_ln%26keywords%3DAsus%2520Eee%2520PC%25201005%26qid%3D1296576247%26h%3Db1880472773a2920bff29ebd95a0973bd0e30774%26rh%3Dn%253A1232596011%252Ck%253AAsus%2520Eee%2520PC%25201005&amp;tag=theztra-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=390957"&gt;Asus Eee PC 1005P Netbook&lt;/a&gt;&lt;img src="https://www.assoc-amazon.com/e/ir?t=theztra-20&amp;l=ur2&amp;o=1" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /&gt;. She rarely needs to use it, so that it's usually turned off. But, whenever it is turned on, I encounter new system administration problems. The latest problem was with network shares.&lt;br /&gt;
&lt;br /&gt;
Windows 7 Starter, which is the OS installed on this netbook, doesn't seem to allow access to multiple network shares, with &lt;i&gt;different credentials&lt;/i&gt;. One has to disconnect from the currently connected network share before connecting to another one.&lt;br /&gt;
&lt;br /&gt;
Disconnecting from a network share that's been mapped as a network drive is easy enough (the menu item to look for starts with 'Disconnect' ...) - but there's no obvious way to disconnect from a network share that has not been mapped as a network drive.&lt;br /&gt;
&lt;br /&gt;
I found a solution on &lt;a href="http://www.howtofixcomputers.com/forums/xp-networking/how-do-i-disconnect-network-share-103434.html"&gt;this forum thread&lt;/a&gt; - run the following command in a command window:&lt;pre&gt;net use &lt;font color=red&gt;\\MACHINE\share&lt;/font&gt; /d&lt;/pre&gt;where you should replace &lt;code&gt;&lt;font color=red&gt;\\MACHINE\share&lt;/font&gt;&lt;/code&gt; with the path of the network share you want to disconnect from.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/593663383710482559-4580424844911986832?l=machine-cycle.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/jkvAv-sd-BmosO4oj5lx61CjyxI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jkvAv-sd-BmosO4oj5lx61CjyxI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/jkvAv-sd-BmosO4oj5lx61CjyxI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jkvAv-sd-BmosO4oj5lx61CjyxI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=nrYVUlAlDwY:gezU4Bd8SCA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=nrYVUlAlDwY:gezU4Bd8SCA:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=nrYVUlAlDwY:gezU4Bd8SCA:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=nrYVUlAlDwY:gezU4Bd8SCA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=nrYVUlAlDwY:gezU4Bd8SCA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=nrYVUlAlDwY:gezU4Bd8SCA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=nrYVUlAlDwY:gezU4Bd8SCA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=nrYVUlAlDwY:gezU4Bd8SCA:wF9xT3WuBAs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=nrYVUlAlDwY:gezU4Bd8SCA:wF9xT3WuBAs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=nrYVUlAlDwY:gezU4Bd8SCA:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=nrYVUlAlDwY:gezU4Bd8SCA:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=nrYVUlAlDwY:gezU4Bd8SCA:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=nrYVUlAlDwY:gezU4Bd8SCA:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=nrYVUlAlDwY:gezU4Bd8SCA:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=nrYVUlAlDwY:gezU4Bd8SCA:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/machine-cycle/~4/nrYVUlAlDwY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://machine-cycle.blogspot.com/feeds/4580424844911986832/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://machine-cycle.blogspot.com/2011/02/how-to-disconnect-from-network-share-on.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/593663383710482559/posts/default/4580424844911986832?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/593663383710482559/posts/default/4580424844911986832?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/machine-cycle/~3/nrYVUlAlDwY/how-to-disconnect-from-network-share-on.html" title="How To Disconnect from a Network Share on Windows" /><author><name>Zung!</name><uri>http://www.blogger.com/profile/07718442985309348694</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="29" height="32" src="http://lh5.google.com/image/zungbang/RbfSJp67VwI/AAAAAAAAAAg/fOkC3QmzRcE/s288/cogs.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://machine-cycle.blogspot.com/2011/02/how-to-disconnect-from-network-share-on.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkcBSXkzeyp7ImA9WhdTGUg.&quot;"><id>tag:blogger.com,1999:blog-593663383710482559.post-6322734971595527817</id><published>2011-02-04T04:13:00.000-08:00</published><updated>2011-07-17T20:00:58.783-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-17T20:00:58.783-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="c/c++" /><category scheme="http://www.blogger.com/atom/ns#" term="programming" /><category scheme="http://www.blogger.com/atom/ns#" term="emacs" /><title>Highlight #if 0 ... #else ... #endif in Emacs</title><content type="html">This seems to be a FAQ, and a rather annoying missing feature in Emacs. Especially once you see it working in Vim. I guess it's the closest I can get to penis envy.&lt;br /&gt;
&lt;br /&gt;
Well, envy no more - just add the code below to your &lt;tt&gt;.emacs&lt;/tt&gt; and you're good to go. &lt;br /&gt;
&lt;br /&gt;
It'll highlight, as comments, bits of C/C++ code that are disabled with &lt;tt&gt;#if 0 ... #else ... #endif&lt;/tt&gt; and &lt;tt&gt;#if 1 ... #else ... #endif&lt;/tt&gt;. This is done by configuring &lt;a href="http://www.gnu.org/software/emacs/manual/html_node/emacs/Other-C-Commands.html#index-preprocessor-highlighting-2172"&gt;&lt;tt&gt;cpp-highlight-buffer&lt;/tt&gt;&lt;/a&gt; to recognize &lt;tt&gt;"0"&lt;/tt&gt; as an undefined C preprocessor label and &lt;tt&gt;"1"&lt;/tt&gt; as defined, and then causing &lt;tt&gt;cpp-highlight-buffer&lt;/tt&gt; to be called every time the buffer is highlighted. &lt;br /&gt;
&lt;br /&gt;
If you feel adventurous, I suggest you remove the first few lines - those that start with &lt;tt&gt;(setq ...&lt;/tt&gt; - and use, instead, the Emacs customization interface to configure &lt;tt&gt;cpp-highlight-buffer&lt;/tt&gt;:&lt;pre&gt;M-x customize-group RET cpp RET&lt;/pre&gt;It should be pretty easy to recreate the setup below, and then you may want to experiment:&lt;ol&gt;&lt;li&gt;handle any &lt;tt&gt;#ifdef ... #else ... #endif&lt;/tt&gt; blocks, by adding more pre-defined labels (e.g. &lt;tt&gt;HAVE_CONFIG_H&lt;/tt&gt;)&lt;/li&gt;
&lt;li&gt;make disabled code read-only&lt;/li&gt;
&lt;li&gt;make disabled code completely invisible!&lt;/li&gt;
&lt;li&gt;use &lt;tt&gt;(background-color . "gray")&lt;/tt&gt; instead of &lt;tt&gt;font-lock-comment-face&lt;/tt&gt;, so that disabled code is still syntax highlighted as usual, only grayed-out&lt;/li&gt;
&lt;li&gt;...&lt;/li&gt;
&lt;/ol&gt;(don't forget to save your settings once done)&lt;br /&gt;
&lt;br /&gt;
To be fair with Vim, this is a (potentially CPU intensive) hack, but then again, what isn't?&lt;br /&gt;
&lt;!-- Generator: GNU source-highlight 3.1.4
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite --&gt;&lt;br /&gt;
&lt;pre&gt;&lt;tt&gt;&lt;font color="#FF0000"&gt;(&lt;/font&gt;setq cpp-known-face &lt;font color="#009900"&gt;'default&lt;/font&gt;&lt;font color="#FF0000"&gt;)&lt;/font&gt;
&lt;font color="#FF0000"&gt;(&lt;/font&gt;setq cpp-unknown-face &lt;font color="#009900"&gt;'default&lt;/font&gt;&lt;font color="#FF0000"&gt;)&lt;/font&gt;
&lt;font color="#FF0000"&gt;(&lt;/font&gt;setq cpp-known-writable &lt;font color="#009900"&gt;'t&lt;/font&gt;&lt;font color="#FF0000"&gt;)&lt;/font&gt;
&lt;font color="#FF0000"&gt;(&lt;/font&gt;setq cpp-unknown-writable &lt;font color="#009900"&gt;'t&lt;/font&gt;&lt;font color="#FF0000"&gt;)&lt;/font&gt;
&lt;font color="#FF0000"&gt;(&lt;/font&gt;setq cpp-edit-list '&lt;font color="#FF0000"&gt;((&lt;/font&gt;&lt;font color="#FF0000"&gt;"0"&lt;/font&gt; font-lock-comment-face default both&lt;font color="#FF0000"&gt;)&lt;/font&gt;
                      &lt;font color="#FF0000"&gt;(&lt;/font&gt;&lt;font color="#FF0000"&gt;"1"&lt;/font&gt; default font-lock-comment-face both&lt;font color="#FF0000"&gt;)))&lt;/font&gt;

&lt;font color="#FF0000"&gt;(&lt;/font&gt;&lt;b&gt;&lt;font color="#0000FF"&gt;defun&lt;/font&gt;&lt;/b&gt; my-c-mode-font-lock-if0 &lt;font color="#FF0000"&gt;(&lt;/font&gt;limit&lt;font color="#FF0000"&gt;)&lt;/font&gt;
  &lt;font color="#FF0000"&gt;(&lt;/font&gt;cpp-highlight-buffer t&lt;font color="#FF0000"&gt;)&lt;/font&gt;
  nil&lt;font color="#FF0000"&gt;)&lt;/font&gt;

&lt;font color="#FF0000"&gt;(&lt;/font&gt;&lt;b&gt;&lt;font color="#0000FF"&gt;defun&lt;/font&gt;&lt;/b&gt; my-c-mode-common-hook &lt;font color="#FF0000"&gt;()&lt;/font&gt;
  &lt;font color="#FF0000"&gt;(&lt;/font&gt;font-lock-add-keywords
   nil
   '&lt;font color="#FF0000"&gt;((&lt;/font&gt;my-c-mode-font-lock-if0 &lt;font color="#FF0000"&gt;(&lt;/font&gt;&lt;font color="#993399"&gt;0&lt;/font&gt; font-lock-comment-face prepend&lt;font color="#FF0000"&gt;)))&lt;/font&gt;
   &lt;font color="#009900"&gt;'add-to-end&lt;/font&gt;&lt;font color="#FF0000"&gt;))&lt;/font&gt;
&lt;/tt&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/593663383710482559-6322734971595527817?l=machine-cycle.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/iEBZXySkecD0tf2AsEviNG_pUmI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/iEBZXySkecD0tf2AsEviNG_pUmI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/iEBZXySkecD0tf2AsEviNG_pUmI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/iEBZXySkecD0tf2AsEviNG_pUmI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=EfVTPXhJNOk:C75PEL-oKto:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=EfVTPXhJNOk:C75PEL-oKto:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=EfVTPXhJNOk:C75PEL-oKto:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=EfVTPXhJNOk:C75PEL-oKto:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=EfVTPXhJNOk:C75PEL-oKto:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=EfVTPXhJNOk:C75PEL-oKto:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=EfVTPXhJNOk:C75PEL-oKto:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=EfVTPXhJNOk:C75PEL-oKto:wF9xT3WuBAs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=EfVTPXhJNOk:C75PEL-oKto:wF9xT3WuBAs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=EfVTPXhJNOk:C75PEL-oKto:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=EfVTPXhJNOk:C75PEL-oKto:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=EfVTPXhJNOk:C75PEL-oKto:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=EfVTPXhJNOk:C75PEL-oKto:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=EfVTPXhJNOk:C75PEL-oKto:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=EfVTPXhJNOk:C75PEL-oKto:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/machine-cycle/~4/EfVTPXhJNOk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://machine-cycle.blogspot.com/feeds/6322734971595527817/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://machine-cycle.blogspot.com/2011/02/highlight-if-0-else-endif-in-emacs.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/593663383710482559/posts/default/6322734971595527817?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/593663383710482559/posts/default/6322734971595527817?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/machine-cycle/~3/EfVTPXhJNOk/highlight-if-0-else-endif-in-emacs.html" title="Highlight #if 0 ... #else ... #endif in Emacs" /><author><name>Zung!</name><uri>http://www.blogger.com/profile/07718442985309348694</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="29" height="32" src="http://lh5.google.com/image/zungbang/RbfSJp67VwI/AAAAAAAAAAg/fOkC3QmzRcE/s288/cogs.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://machine-cycle.blogspot.com/2011/02/highlight-if-0-else-endif-in-emacs.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CE4EQXo-eyp7ImA9Wx9VEk8.&quot;"><id>tag:blogger.com,1999:blog-593663383710482559.post-2998963011703465457</id><published>2011-01-28T05:55:00.000-08:00</published><updated>2011-01-28T05:55:00.453-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-01-28T05:55:00.453-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="firewall" /><category scheme="http://www.blogger.com/atom/ns#" term="sshd" /><category scheme="http://www.blogger.com/atom/ns#" term="windows" /><category scheme="http://www.blogger.com/atom/ns#" term="remote access" /><title>Digging Tunnels (part 2)</title><content type="html">&lt;b&gt;WARNING&lt;/b&gt;: following the instructions below can get you in trouble.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;REMINDER&lt;/b&gt;: most system administrators can and do &lt;a href="http://en.wiktionary.org/wiki/google"&gt;google&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
As &lt;a href="http://machine-cycle.blogspot.com/2011/01/digging-tunnels-part-1.html"&gt;promised&lt;/a&gt;, this time I'll show how to tunnel from your workstation at work, to your PC at home, through a protocol aware firewall - only that this time with the client workstation running Windows.&lt;br /&gt;
&lt;br /&gt;
Server setup is the same as in the previous post. If your home machine runs Windows, then you may want to research setting up &lt;a href="http://www.cygwin.com/"&gt;Cygwin&lt;/a&gt; with an SSH daemon and &lt;a href="http://www.stunnel.org/"&gt;&lt;tt&gt;stunnel&lt;/tt&gt;&lt;/a&gt; directing traffic to it. I haven't done it myself, so you're on your own here.&lt;br /&gt;
&lt;br /&gt;
Client side, at work, is easy, if you already have Cygwin installed there: &lt;ol&gt;&lt;li&gt;install &lt;tt&gt;stunnel&lt;/tt&gt; using Cygwin's &lt;tt&gt;setup.exe&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;add the following stanza in &lt;tt&gt;~/.ssh/config&lt;/tt&gt; (where &lt;tt&gt;sshd.example.com&lt;/tt&gt; stands for the address of your home PC):&lt;pre&gt;Host &lt;font color="red"&gt;sshd.example.com&lt;/font&gt;
  Port 443
  ProxyCommand stunnel3 -c -f -r %h:%p   
&lt;/pre&gt;&lt;/li&gt;
&lt;/ol&gt;If you don't have Cygwin, then do this:&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;download and install &lt;a href="http://www.stunnel.org/download/binaries.html"&gt;&lt;tt&gt;stunnel&lt;/tt&gt; for Windows&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;open &lt;tt&gt;stunnel.conf&lt;/tt&gt; for editing by selecting 'Edit stunnel.conf' from the newly created &lt;tt&gt;stunnel&lt;/tt&gt; sub-menu in the Windows Start menu&lt;/li&gt;
&lt;li&gt;replace its contents with the following:&lt;pre&gt;client = yes
debug = 7
[putty]
accept = localhost:&lt;span style="color: red;"&gt;60022&lt;/span&gt;
connect = &lt;span style="color: red;"&gt;sshd.exmaple.com&lt;/span&gt;:443 
&lt;/pre&gt;(replace the stuff in &lt;span style="color: red;"&gt;red&lt;/span&gt; with your own stuff)&lt;/li&gt;
&lt;li&gt;start &lt;tt&gt;stunnel&lt;/tt&gt; by selecting 'Run stunnel' from the same &lt;tt&gt;stunnel&lt;/tt&gt; sub-menu as before&lt;/li&gt;
&lt;li&gt;use &lt;a href="http://www.chiark.greenend.org.uk/%7Esgtatham/putty/"&gt;PuTTY&lt;/a&gt; to connect to your home PC, by pointing it to &lt;tt&gt;localhost:&lt;span style="color: red;"&gt;60022&lt;/span&gt;&lt;/tt&gt;&lt;/li&gt;
&lt;li&gt;if you hit any problem, then you may be able to troubleshoot it by going over the &lt;tt&gt;stunnel&lt;/tt&gt; log messages, which can be accessed from the &lt;tt&gt;stunnel&lt;/tt&gt; tray icon context menu&lt;/li&gt;
&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/593663383710482559-2998963011703465457?l=machine-cycle.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Z9o8FR5KjFh1QdMnH6y19KTPaQY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Z9o8FR5KjFh1QdMnH6y19KTPaQY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Z9o8FR5KjFh1QdMnH6y19KTPaQY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Z9o8FR5KjFh1QdMnH6y19KTPaQY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=S1_QNsi3w5k:jwJuY5KRjbA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=S1_QNsi3w5k:jwJuY5KRjbA:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=S1_QNsi3w5k:jwJuY5KRjbA:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=S1_QNsi3w5k:jwJuY5KRjbA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=S1_QNsi3w5k:jwJuY5KRjbA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=S1_QNsi3w5k:jwJuY5KRjbA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=S1_QNsi3w5k:jwJuY5KRjbA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=S1_QNsi3w5k:jwJuY5KRjbA:wF9xT3WuBAs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=S1_QNsi3w5k:jwJuY5KRjbA:wF9xT3WuBAs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=S1_QNsi3w5k:jwJuY5KRjbA:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=S1_QNsi3w5k:jwJuY5KRjbA:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=S1_QNsi3w5k:jwJuY5KRjbA:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=S1_QNsi3w5k:jwJuY5KRjbA:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=S1_QNsi3w5k:jwJuY5KRjbA:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=S1_QNsi3w5k:jwJuY5KRjbA:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/machine-cycle/~4/S1_QNsi3w5k" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://machine-cycle.blogspot.com/feeds/2998963011703465457/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://machine-cycle.blogspot.com/2011/01/digging-tunnels-part-2.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/593663383710482559/posts/default/2998963011703465457?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/593663383710482559/posts/default/2998963011703465457?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/machine-cycle/~3/S1_QNsi3w5k/digging-tunnels-part-2.html" title="Digging Tunnels (part 2)" /><author><name>Zung!</name><uri>http://www.blogger.com/profile/07718442985309348694</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="29" height="32" src="http://lh5.google.com/image/zungbang/RbfSJp67VwI/AAAAAAAAAAg/fOkC3QmzRcE/s288/cogs.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://machine-cycle.blogspot.com/2011/01/digging-tunnels-part-2.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUQCRH85fyp7ImA9Wx9VEE8.&quot;"><id>tag:blogger.com,1999:blog-593663383710482559.post-1606492660111238718</id><published>2011-01-21T12:07:00.000-08:00</published><updated>2011-01-25T23:36:05.127-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-01-25T23:36:05.127-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="firewall" /><category scheme="http://www.blogger.com/atom/ns#" term="sshd" /><category scheme="http://www.blogger.com/atom/ns#" term="remote access" /><title>Digging Tunnels (part 1)</title><content type="html">&lt;b&gt;WARNING&lt;/b&gt;: following the instructions below can get you in trouble.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;REMINDER&lt;/b&gt;: most system administrators can and do &lt;a href="http://en.wiktionary.org/wiki/google"&gt;google&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
You're at work, behind a restrictive protocol-aware firewall, which allows outgoing connections only through &lt;a href="http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol"&gt;HTTP&lt;/a&gt; (port 80) and &lt;a href="http://en.wikipedia.org/wiki/HTTP_Secure"&gt;HTTPS&lt;/a&gt; (port 443), and blocks other protocols, specifically &lt;a href="http://en.wikipedia.org/wiki/Secure_Shell"&gt;SSH&lt;/a&gt;, regardless of the destination port (read about &lt;a href="http://en.wikipedia.org/wiki/Deep_packet_inspection"&gt;Deep Packet Inspection&lt;/a&gt;, to see how it's done).&lt;br /&gt;
&lt;br /&gt;
And you want to access your Debian/Linux box at home, over SSH.&lt;br /&gt;
&lt;br /&gt;
As long as said firewall allows HTTPS, you can use &lt;a href="http://www.stunnel.org/"&gt;&lt;tt&gt;stunnel&lt;/tt&gt;&lt;/a&gt; to tunnel SSH traffic through the firewall.&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;Server side (PC at home):&lt;ol&gt;&lt;li&gt;configure your firewall to accept connections on port 443&lt;/li&gt;
&lt;li&gt;configure your SSH daemon to listen to (the default) port 22 (note that it need not be accessible to the outside world)&lt;/li&gt;
&lt;li&gt;install &lt;tt&gt;stunnel&lt;/tt&gt;:&lt;pre&gt;aptitude install stunnel4&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;comment out unwanted services from &lt;tt&gt;/etc/stunnel/stunnel.conf&lt;/tt&gt; and add the following:&lt;pre&gt;[sshd]
accept  = 443
connect = 22
TIMEOUTclose = 0
&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;generate (as &lt;tt&gt;root&lt;/tt&gt;) a new self-signed SSL certificate:&lt;pre wrap&gt;openssl req -new -x509 -days 999999 -nodes -out /etc/ssl/certs/stunnel.pem -keyout /etc/ssl/certs/stunnel.pem
openssl gendh &gt;&gt; /etc/ssl/certs/stunnel.pem
&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;enable the &lt;tt&gt;stunnel&lt;/tt&gt; daemon in &lt;tt&gt;/etc/default/stunnel4&lt;/tt&gt; like this:&lt;pre&gt;ENABLED=1
&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;start the daemon:&lt;pre&gt;invoke-rc.d stunnel4 start&lt;/pre&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;Client side (PC at work):&lt;ol&gt;&lt;li&gt;download, compile and install &lt;tt&gt;stunnel&lt;/tt&gt; in your account&lt;/li&gt;
&lt;li&gt;add the following stanza in &lt;tt&gt;~/.ssh/config&lt;/tt&gt; (where &lt;tt&gt;sshd.example.com&lt;/tt&gt; stands for the address of your home PC):&lt;pre&gt;Host &lt;font color="red"&gt;sshd.example.com&lt;/font&gt;
  Port 443
  ProxyCommand stunnel3 -c -f -r %h:%p   
&lt;/pre&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/li&gt;
&lt;/ol&gt;You should now be able to connect to your home PC over SSH.&lt;br /&gt;
&lt;br /&gt;
Next time: same scenario, but with your work PC running Windows.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/593663383710482559-1606492660111238718?l=machine-cycle.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/8W_WZc_JYkZzdVlpk5QkBylmHIk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/8W_WZc_JYkZzdVlpk5QkBylmHIk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/8W_WZc_JYkZzdVlpk5QkBylmHIk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/8W_WZc_JYkZzdVlpk5QkBylmHIk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=s9SaYXClI54:WkAFsnAPukw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=s9SaYXClI54:WkAFsnAPukw:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=s9SaYXClI54:WkAFsnAPukw:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=s9SaYXClI54:WkAFsnAPukw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=s9SaYXClI54:WkAFsnAPukw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=s9SaYXClI54:WkAFsnAPukw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=s9SaYXClI54:WkAFsnAPukw:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=s9SaYXClI54:WkAFsnAPukw:wF9xT3WuBAs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=s9SaYXClI54:WkAFsnAPukw:wF9xT3WuBAs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=s9SaYXClI54:WkAFsnAPukw:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=s9SaYXClI54:WkAFsnAPukw:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=s9SaYXClI54:WkAFsnAPukw:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=s9SaYXClI54:WkAFsnAPukw:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=s9SaYXClI54:WkAFsnAPukw:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=s9SaYXClI54:WkAFsnAPukw:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/machine-cycle/~4/s9SaYXClI54" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://machine-cycle.blogspot.com/feeds/1606492660111238718/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://machine-cycle.blogspot.com/2011/01/digging-tunnels-part-1.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/593663383710482559/posts/default/1606492660111238718?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/593663383710482559/posts/default/1606492660111238718?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/machine-cycle/~3/s9SaYXClI54/digging-tunnels-part-1.html" title="Digging Tunnels (part 1)" /><author><name>Zung!</name><uri>http://www.blogger.com/profile/07718442985309348694</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="29" height="32" src="http://lh5.google.com/image/zungbang/RbfSJp67VwI/AAAAAAAAAAg/fOkC3QmzRcE/s288/cogs.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://machine-cycle.blogspot.com/2011/01/digging-tunnels-part-1.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A08DSX49fip7ImA9Wx9XEkQ.&quot;"><id>tag:blogger.com,1999:blog-593663383710482559.post-5909459347088906433</id><published>2010-12-31T00:31:00.000-08:00</published><updated>2011-01-05T23:44:38.066-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-01-05T23:44:38.066-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="baculafs" /><category scheme="http://www.blogger.com/atom/ns#" term="backup" /><title>BaculaFS v0.1.7: Batch Mode</title><content type="html">Last night I released &lt;a href="http://code.google.com/p/baculafs"&gt;BaculaFS&lt;/a&gt; v0.1.7. I've added two main features:&lt;ol&gt;&lt;li&gt;batch mode: in this mode BaculaFS behaves as a frontend for the &lt;a href="http://manpages.debian.net/cgi-bin/man.cgi?query=bextract"&gt;&lt;tt&gt;bextract&lt;/tt&gt;&lt;/a&gt; utility, and will launch it in order to extract the list of files, specified by BaculaFS' cache prefetch options, to the path pointed to by the mount point parameter&lt;/li&gt;
&lt;li&gt;cache prefetch from a list of files&lt;/li&gt;
&lt;/ol&gt;These two features were designed to allow operations like the following:&lt;ol&gt;&lt;li&gt;incremental update of a snapshot on a mounted storage device, in a single command:&lt;pre wrap&gt;baculafs -o batch_extract,prefetch_diff=/path/to/snapshot,cleanup -o client=client-fd,fileset=client-fileset /path/to/snapshot/&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;if the destination snapshot is on a remote file system, you can either mount it as a local filesystem (e.g. with &lt;a href="http://fuse.sourceforge.net/sshfs.html"&gt;&lt;tt&gt;sshfs&lt;/tt&gt;&lt;/a&gt;) and then use &lt;tt&gt;-o prefetch_diff&lt;/tt&gt; to prefetch the modified files before copying them with &lt;a href="http://manpages.debian.net/cgi-bin/man.cgi?query=rsync"&gt;&lt;tt&gt;rsync&lt;/tt&gt;&lt;/a&gt;, or generate the file prefetch list with &lt;tt&gt;rsync&lt;/tt&gt; like this:&lt;pre wrap&gt;# mount a view of the current bacula backup
baculafs -o client=client-fd,fileset=client-fileset,prefetch_symlinks /path/to/first/mount/point
# mount another view, this time with prefetch list generated by rsync
rsync -in --out-format='/%n' -a /path/to/first/mount/point/ /url/or/path/of/remote/snapshot/ | baculafs -o prefetch_list=-,client=client-fd,fileset=client-fileset /path/to/second/mount/point
# and now copy files for real
rsync -a /path/to/second/mount/point/ /url/or/path/of/remote/snapshot/
fusermount -u /path/to/first/mount/point
fusermount -u /path/to/second/mount/point&lt;/pre&gt;&lt;/li&gt;
&lt;/ol&gt;Happy New Year!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/593663383710482559-5909459347088906433?l=machine-cycle.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/MMSrXWj_Ma15bhK8KlArvs7N_HU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/MMSrXWj_Ma15bhK8KlArvs7N_HU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/MMSrXWj_Ma15bhK8KlArvs7N_HU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/MMSrXWj_Ma15bhK8KlArvs7N_HU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=Pe8AF3Ys5S8:wrUNsey3VbM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=Pe8AF3Ys5S8:wrUNsey3VbM:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=Pe8AF3Ys5S8:wrUNsey3VbM:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=Pe8AF3Ys5S8:wrUNsey3VbM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=Pe8AF3Ys5S8:wrUNsey3VbM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=Pe8AF3Ys5S8:wrUNsey3VbM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=Pe8AF3Ys5S8:wrUNsey3VbM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=Pe8AF3Ys5S8:wrUNsey3VbM:wF9xT3WuBAs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=Pe8AF3Ys5S8:wrUNsey3VbM:wF9xT3WuBAs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=Pe8AF3Ys5S8:wrUNsey3VbM:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=Pe8AF3Ys5S8:wrUNsey3VbM:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=Pe8AF3Ys5S8:wrUNsey3VbM:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=Pe8AF3Ys5S8:wrUNsey3VbM:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=Pe8AF3Ys5S8:wrUNsey3VbM:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=Pe8AF3Ys5S8:wrUNsey3VbM:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/machine-cycle/~4/Pe8AF3Ys5S8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://machine-cycle.blogspot.com/feeds/5909459347088906433/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://machine-cycle.blogspot.com/2010/12/baculafs-v017-batch-mode.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/593663383710482559/posts/default/5909459347088906433?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/593663383710482559/posts/default/5909459347088906433?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/machine-cycle/~3/Pe8AF3Ys5S8/baculafs-v017-batch-mode.html" title="BaculaFS v0.1.7: Batch Mode" /><author><name>Zung!</name><uri>http://www.blogger.com/profile/07718442985309348694</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="29" height="32" src="http://lh5.google.com/image/zungbang/RbfSJp67VwI/AAAAAAAAAAg/fOkC3QmzRcE/s288/cogs.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://machine-cycle.blogspot.com/2010/12/baculafs-v017-batch-mode.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEIESX0zfyp7ImA9Wx9SGUU.&quot;"><id>tag:blogger.com,1999:blog-593663383710482559.post-5711530997971193321</id><published>2010-12-10T00:51:00.000-08:00</published><updated>2010-12-10T04:01:48.387-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-12-10T04:01:48.387-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="x" /><category scheme="http://www.blogger.com/atom/ns#" term="dbus" /><category scheme="http://www.blogger.com/atom/ns#" term="remote access" /><title>SSH and DBUS Sessions</title><content type="html">Applications that need access to the current &lt;a href="http://www.freedesktop.org/wiki/Software/dbus"&gt;&lt;tt&gt;D-BUS&lt;/tt&gt;&lt;/a&gt; session bus, require special attention when launched from within an SSH session.&lt;br /&gt;
&lt;br /&gt;
Sometimes it's enough to just set the &lt;tt&gt;DISPLAY&lt;/tt&gt; environment variable to the appropriate X display number (e.g. &lt;tt&gt;localhost:0.0&lt;/tt&gt;, or &lt;tt&gt;localhost:10.0&lt;/tt&gt; - the default when forwarding X connections over &lt;tt&gt;SSH&lt;/tt&gt;), but it's usually not enough.&lt;br /&gt;
&lt;br /&gt;
These applications need to know the so called &lt;tt&gt;D-BUS&lt;/tt&gt; session bus address. This may be scraped from the environment of applications that are already running, and do have access to the session bus, as the value of &lt;tt&gt;DBUS_SESSION_ADDRESS&lt;/tt&gt;, like this:&lt;br /&gt;
&lt;pre&gt;export $(strings /proc/*/environ| grep DBUS_SESSION | tail -1)&lt;/pre&gt;But there may be several possible values when more than one X session is used, and you'll need to select the right one, maybe by also matching the value of &lt;tt&gt;DISPLAY&lt;/tt&gt;.&lt;br /&gt;
&lt;br /&gt;
There is, however, a somewhat cleaner way to do this. The &lt;tt&gt;D-BUS&lt;/tt&gt; environment variables may be set by running one of the machine generated files under &lt;tt&gt;~/.dbus/session-bus&lt;/tt&gt; - the files there all have names like &lt;tt&gt;479864458729b195d5497c4bb663c100-10&lt;/tt&gt;, where the string of hexadecimal digits before the dash is the machine UUID and the number after the dash is the X display number.&lt;br /&gt;
&lt;br /&gt;
Here's how I do it in my &lt;tt&gt;~/.bashrc&lt;/tt&gt;:&lt;br /&gt;
&lt;pre&gt;session="$HOME/.dbus/session-bus/$(dbus-uuidgen --get)-$(echo $DISPLAY | sed -e 's/\([^:]*:\)//g' -e 's/\..*$//g')"
if [ -e $session ] ; then
    source $session
fi&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/593663383710482559-5711530997971193321?l=machine-cycle.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/f8FiNzdv27-m7rxTXIdyQ1YklLs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/f8FiNzdv27-m7rxTXIdyQ1YklLs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/f8FiNzdv27-m7rxTXIdyQ1YklLs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/f8FiNzdv27-m7rxTXIdyQ1YklLs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=pZ3LVTMc_Zg:VW6t0YbvTz0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=pZ3LVTMc_Zg:VW6t0YbvTz0:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=pZ3LVTMc_Zg:VW6t0YbvTz0:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=pZ3LVTMc_Zg:VW6t0YbvTz0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=pZ3LVTMc_Zg:VW6t0YbvTz0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=pZ3LVTMc_Zg:VW6t0YbvTz0:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=pZ3LVTMc_Zg:VW6t0YbvTz0:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=pZ3LVTMc_Zg:VW6t0YbvTz0:wF9xT3WuBAs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=pZ3LVTMc_Zg:VW6t0YbvTz0:wF9xT3WuBAs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=pZ3LVTMc_Zg:VW6t0YbvTz0:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=pZ3LVTMc_Zg:VW6t0YbvTz0:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=pZ3LVTMc_Zg:VW6t0YbvTz0:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=pZ3LVTMc_Zg:VW6t0YbvTz0:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=pZ3LVTMc_Zg:VW6t0YbvTz0:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=pZ3LVTMc_Zg:VW6t0YbvTz0:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/machine-cycle/~4/pZ3LVTMc_Zg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://machine-cycle.blogspot.com/feeds/5711530997971193321/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://machine-cycle.blogspot.com/2010/12/ssh-and-dbus-sessions.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/593663383710482559/posts/default/5711530997971193321?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/593663383710482559/posts/default/5711530997971193321?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/machine-cycle/~3/pZ3LVTMc_Zg/ssh-and-dbus-sessions.html" title="SSH and DBUS Sessions" /><author><name>Zung!</name><uri>http://www.blogger.com/profile/07718442985309348694</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="29" height="32" src="http://lh5.google.com/image/zungbang/RbfSJp67VwI/AAAAAAAAAAg/fOkC3QmzRcE/s288/cogs.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://machine-cycle.blogspot.com/2010/12/ssh-and-dbus-sessions.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D08FRX4yeip7ImA9Wx5bGUo.&quot;"><id>tag:blogger.com,1999:blog-593663383710482559.post-6254233444425756423</id><published>2010-11-05T09:50:00.000-07:00</published><updated>2010-11-05T09:50:14.092-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-11-05T09:50:14.092-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="network" /><category scheme="http://www.blogger.com/atom/ns#" term="remote access" /><title>Update No-IP.com and DynDNS.com Dynamic DNS with ddclient</title><content type="html">I have registered several host names with two dynamic DNS service providers: &lt;a href="http://www.dyndns.com/"&gt;DynDNS.com&lt;/a&gt; and &lt;a href="http://www.no-ip.com/"&gt;No-IP.com&lt;/a&gt;, and I've been using &lt;a href="http://packages.debian.org/search?keywords=ddclient&amp;searchon=names&amp;suite=all&amp;section=all"&gt;&lt;code&gt;ddclient&lt;/code&gt;&lt;/a&gt; and &lt;a href="http://packages.debian.org/search?keywords=noip2&amp;searchon=names&amp;suite=all&amp;section=all"&gt;&lt;code&gt;noip2&lt;/code&gt;&lt;/a&gt; to update my dynamic IP address with these services, respectively.&lt;br /&gt;
&lt;br /&gt;
I've recently installed a wireless router, so I poked at &lt;code&gt;ddclient&lt;/code&gt; trying to figure out how to use it when the computer running it is behind a router, such that its IP address is an internal address (10.x.x.x) and not the external IP address that needs to be sent over to the dynamic DNS service.&lt;br /&gt;
&lt;br /&gt;
This turns out to be pretty easy: just add &lt;code&gt;use=web&lt;/code&gt; to &lt;code&gt;/etc/ddclient.conf&lt;/code&gt; to have &lt;code&gt;ddclient&lt;/code&gt; discover the external IP via the DynDNS.com &lt;a href="http://checkip.dyndns.com/"&gt;IP checking&lt;/a&gt; service.&lt;br /&gt;
&lt;br /&gt;
Along the way I've discovered that &lt;code&gt;ddclient&lt;/code&gt; also supports No-IP.com - a fact that's only mentioned in the usage message that's displayed when running&lt;pre&gt;ddclient --help&lt;/pre&gt;and after some futzing around I've come up with the following configuration file, in order to update both services with the same client, using their respective IP checking services:&lt;pre&gt;use=web
web=http://ip1.dynupdate.no-ip.com/
protocol=noip, login=username, password='password' group_or_comma_separated_host_list
protocol=dyndns2, use=web, web=dyndns, server=members.dyndns.org, login=username, password='password' hostname&lt;/pre&gt;(according to the help message, it should've been possible to specify the first two lines inside the third line, but this doesn't work for some reason - I guess it's a bug).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/593663383710482559-6254233444425756423?l=machine-cycle.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/3rk7JUIhD0VMyF7DOB0_izuTeWs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/3rk7JUIhD0VMyF7DOB0_izuTeWs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/3rk7JUIhD0VMyF7DOB0_izuTeWs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/3rk7JUIhD0VMyF7DOB0_izuTeWs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=VuvJPn7TrEE:jEaFmOq_fnU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=VuvJPn7TrEE:jEaFmOq_fnU:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=VuvJPn7TrEE:jEaFmOq_fnU:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=VuvJPn7TrEE:jEaFmOq_fnU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=VuvJPn7TrEE:jEaFmOq_fnU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=VuvJPn7TrEE:jEaFmOq_fnU:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=VuvJPn7TrEE:jEaFmOq_fnU:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=VuvJPn7TrEE:jEaFmOq_fnU:wF9xT3WuBAs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=VuvJPn7TrEE:jEaFmOq_fnU:wF9xT3WuBAs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=VuvJPn7TrEE:jEaFmOq_fnU:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=VuvJPn7TrEE:jEaFmOq_fnU:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=VuvJPn7TrEE:jEaFmOq_fnU:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=VuvJPn7TrEE:jEaFmOq_fnU:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=VuvJPn7TrEE:jEaFmOq_fnU:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=VuvJPn7TrEE:jEaFmOq_fnU:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/machine-cycle/~4/VuvJPn7TrEE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://machine-cycle.blogspot.com/feeds/6254233444425756423/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://machine-cycle.blogspot.com/2010/11/update-no-ipcom-and-dyndnscom-dynamic.html#comment-form" title="6 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/593663383710482559/posts/default/6254233444425756423?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/593663383710482559/posts/default/6254233444425756423?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/machine-cycle/~3/VuvJPn7TrEE/update-no-ipcom-and-dyndnscom-dynamic.html" title="Update No-IP.com and DynDNS.com Dynamic DNS with ddclient" /><author><name>Zung!</name><uri>http://www.blogger.com/profile/07718442985309348694</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="29" height="32" src="http://lh5.google.com/image/zungbang/RbfSJp67VwI/AAAAAAAAAAg/fOkC3QmzRcE/s288/cogs.jpg" /></author><thr:total>6</thr:total><feedburner:origLink>http://machine-cycle.blogspot.com/2010/11/update-no-ipcom-and-dyndnscom-dynamic.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak4BSH8zcSp7ImA9Wx5bE0s.&quot;"><id>tag:blogger.com,1999:blog-593663383710482559.post-4666501972827195883</id><published>2010-10-29T07:57:00.000-07:00</published><updated>2010-10-29T09:15:59.189-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-10-29T09:15:59.189-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="windows" /><category scheme="http://www.blogger.com/atom/ns#" term="programming" /><title>Windows x64 Cross Compiling with  Microsoft Visual Studio 2010 Express</title><content type="html">Here's what works for me:&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;Download, install and register &lt;a href="http://www.microsoft.com/express/Windows/"&gt;Microsoft Visual Studio 2010 Express&lt;/a&gt; - it's free of charge&lt;/li&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/windows/bb980924.aspx"&gt;Download&lt;/a&gt; and install the &lt;a href="http://en.wikipedia.org/wiki/Microsoft_Windows_SDK"&gt;Windows SDK&lt;/a&gt; - be sure to install the x64 toolchain (and/or the Itanium toolchain)&lt;/li&gt;
&lt;li&gt;Create a shortcut on the desktop for each hardware platform you want to compile for:&lt;pre wrap&gt;C:\WINDOWS\system32\cmd.exe /E:ON /V:ON /T:0E /C ""C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" &lt;font color=red&gt;/x86&lt;/font&gt; &amp; "C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\VCExpress" /useenv"&lt;/pre&gt;(replace &lt;tt&gt;/x86&lt;/tt&gt; with &lt;tt&gt;/x64&lt;/tt&gt; and &lt;tt&gt;/ia64&lt;/tt&gt; for x64 and Itanium, respectively).&lt;br /&gt;
The "Start in" folder should be set to &lt;pre wrap&gt;"C:\Program Files\Microsoft SDKs\Windows\v7.1\"&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;Launch VCExpress via one of these shortcuts, and open a project that you want to cross compile. If it already contains the needed platform, then just switch to it and build. Otherwise, you should first use the configuration manager to add a new solution platform to the project - it's pretty straight forward&lt;/li&gt;
&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/593663383710482559-4666501972827195883?l=machine-cycle.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/hWdqby7NkvcF6rx0kqo2hk99AII/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/hWdqby7NkvcF6rx0kqo2hk99AII/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/hWdqby7NkvcF6rx0kqo2hk99AII/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/hWdqby7NkvcF6rx0kqo2hk99AII/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=OPqgXs3mmh4:XZvtrWGpJVU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=OPqgXs3mmh4:XZvtrWGpJVU:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=OPqgXs3mmh4:XZvtrWGpJVU:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=OPqgXs3mmh4:XZvtrWGpJVU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=OPqgXs3mmh4:XZvtrWGpJVU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=OPqgXs3mmh4:XZvtrWGpJVU:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=OPqgXs3mmh4:XZvtrWGpJVU:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=OPqgXs3mmh4:XZvtrWGpJVU:wF9xT3WuBAs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=OPqgXs3mmh4:XZvtrWGpJVU:wF9xT3WuBAs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=OPqgXs3mmh4:XZvtrWGpJVU:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=OPqgXs3mmh4:XZvtrWGpJVU:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=OPqgXs3mmh4:XZvtrWGpJVU:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=OPqgXs3mmh4:XZvtrWGpJVU:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=OPqgXs3mmh4:XZvtrWGpJVU:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=OPqgXs3mmh4:XZvtrWGpJVU:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/machine-cycle/~4/OPqgXs3mmh4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://machine-cycle.blogspot.com/feeds/4666501972827195883/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://machine-cycle.blogspot.com/2010/10/windows-x64-cross-compiling-with.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/593663383710482559/posts/default/4666501972827195883?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/593663383710482559/posts/default/4666501972827195883?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/machine-cycle/~3/OPqgXs3mmh4/windows-x64-cross-compiling-with.html" title="Windows x64 Cross Compiling with  Microsoft Visual Studio 2010 Express" /><author><name>Zung!</name><uri>http://www.blogger.com/profile/07718442985309348694</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="29" height="32" src="http://lh5.google.com/image/zungbang/RbfSJp67VwI/AAAAAAAAAAg/fOkC3QmzRcE/s288/cogs.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://machine-cycle.blogspot.com/2010/10/windows-x64-cross-compiling-with.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkENQX88fip7ImA9Wx5UEUs.&quot;"><id>tag:blogger.com,1999:blog-593663383710482559.post-8571306973270773795</id><published>2010-10-15T09:36:00.000-07:00</published><updated>2010-10-15T09:38:10.176-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-10-15T09:38:10.176-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="x" /><category scheme="http://www.blogger.com/atom/ns#" term="cygwin" /><category scheme="http://www.blogger.com/atom/ns#" term="locale" /><title>Cygwin/X Keyboard Layout Switching</title><content type="html">The current Cygwin X server supports keyboard layouts! what a nice surprise! and it can all be configured at the command line!&lt;br /&gt;
&lt;br /&gt;
Here's how I launch X on my wife's new laptop, with two keyboard layouts (us/il) and SHIFT-CAPS used to switch between layouts:&lt;pre wrap&gt;C:\cygwin\bin\run.exe /usr/bin/bash.exe -l -c '/usr/bin/startxwin -- -xkblayout us,il -xkbmodel pc105 -xkbvariant ,lyx -xkboptions grp:shift_caps_toggle'&lt;/pre&gt;Ain't it cool?&lt;br /&gt;
&lt;br /&gt;
(you've probably guessed by now: I suffer from an extreme case of sleep deprivation)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/593663383710482559-8571306973270773795?l=machine-cycle.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/AGBfvexYHbW2sd_NLVETXTMetPo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/AGBfvexYHbW2sd_NLVETXTMetPo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/AGBfvexYHbW2sd_NLVETXTMetPo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/AGBfvexYHbW2sd_NLVETXTMetPo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=6r6rlUEP-b8:zwY4j9WDX-c:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=6r6rlUEP-b8:zwY4j9WDX-c:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=6r6rlUEP-b8:zwY4j9WDX-c:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=6r6rlUEP-b8:zwY4j9WDX-c:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=6r6rlUEP-b8:zwY4j9WDX-c:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=6r6rlUEP-b8:zwY4j9WDX-c:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=6r6rlUEP-b8:zwY4j9WDX-c:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=6r6rlUEP-b8:zwY4j9WDX-c:wF9xT3WuBAs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=6r6rlUEP-b8:zwY4j9WDX-c:wF9xT3WuBAs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=6r6rlUEP-b8:zwY4j9WDX-c:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=6r6rlUEP-b8:zwY4j9WDX-c:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=6r6rlUEP-b8:zwY4j9WDX-c:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=6r6rlUEP-b8:zwY4j9WDX-c:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=6r6rlUEP-b8:zwY4j9WDX-c:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=6r6rlUEP-b8:zwY4j9WDX-c:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/machine-cycle/~4/6r6rlUEP-b8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://machine-cycle.blogspot.com/feeds/8571306973270773795/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://machine-cycle.blogspot.com/2010/10/cygwinx-keyboard-layout-switching.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/593663383710482559/posts/default/8571306973270773795?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/593663383710482559/posts/default/8571306973270773795?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/machine-cycle/~3/6r6rlUEP-b8/cygwinx-keyboard-layout-switching.html" title="Cygwin/X Keyboard Layout Switching" /><author><name>Zung!</name><uri>http://www.blogger.com/profile/07718442985309348694</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="29" height="32" src="http://lh5.google.com/image/zungbang/RbfSJp67VwI/AAAAAAAAAAg/fOkC3QmzRcE/s288/cogs.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://machine-cycle.blogspot.com/2010/10/cygwinx-keyboard-layout-switching.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUMMQXw6cSp7ImA9Wx5XGEw.&quot;"><id>tag:blogger.com,1999:blog-593663383710482559.post-4647816184283653722</id><published>2010-09-18T05:38:00.000-07:00</published><updated>2010-09-18T05:38:00.219-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-09-18T05:38:00.219-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="x" /><category scheme="http://www.blogger.com/atom/ns#" term="cygwin" /><title>Automatically Launching Cygwin's X Server</title><content type="html">We have a new &lt;a href="http://www.dell.com/us/en/dfo/notebooks/inspiron-13r/pd.aspx?refid=inspiron-13r&amp;s=dfo"&gt;Dell Inspiron 13R&lt;/a&gt; laptop. One of the first things I do on any Windows machine I get is install &lt;a href="http://www.cygwin.com/"&gt;Cygwin&lt;/a&gt; on it. One of the main reasons for this is to be able to run an X Server.&lt;br /&gt;
&lt;br /&gt;
I wanted the X Server to start automatically at login, so I copied the shortcut named "XWin Server" that was installed to the Start-&gt;Programs-&gt;Cygwin-X menu and pasted it into the Start-&gt;Programs-&gt;Startup menu. This shortcut launches Cygwin's &lt;a href="http://x.cygwin.com/docs/man1/startxwin.1.html"&gt;&lt;code&gt;startxwin&lt;/code&gt;&lt;/a&gt;, which, in turn, launches the &lt;a href="http://x.cygwin.com/docs/man1/XWin.1.html"&gt;XWin&lt;/a&gt; server itself.&lt;br /&gt;
&lt;br /&gt;
This works nicely, except for one annoyance: &lt;code&gt;startxwin&lt;/code&gt;, by default, launches an X terminal. This makes sense if you manually click the "XWin Server" shortcut, but not (in my opinion) when it's launched automatically. I wanted it to start silently.&lt;br /&gt;
&lt;br /&gt;
I followed a few false trails before I bothered to Read The Fine &lt;a href="http://x.cygwin.com/docs/man1/startxwin.1.html"&gt;Man-page&lt;/a&gt;. The solution is pretty simple: create an empty &lt;code&gt;.startxwinrc&lt;/code&gt; in my home directory:&lt;pre&gt;$ touch ~/.startxwinrc&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/593663383710482559-4647816184283653722?l=machine-cycle.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/_4wvtVv-ZtOcI8Ejyhc7xDSAa6A/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_4wvtVv-ZtOcI8Ejyhc7xDSAa6A/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/_4wvtVv-ZtOcI8Ejyhc7xDSAa6A/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_4wvtVv-ZtOcI8Ejyhc7xDSAa6A/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=o7zz_953mpE:WmktKJJnZCM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=o7zz_953mpE:WmktKJJnZCM:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=o7zz_953mpE:WmktKJJnZCM:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=o7zz_953mpE:WmktKJJnZCM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=o7zz_953mpE:WmktKJJnZCM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=o7zz_953mpE:WmktKJJnZCM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=o7zz_953mpE:WmktKJJnZCM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=o7zz_953mpE:WmktKJJnZCM:wF9xT3WuBAs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=o7zz_953mpE:WmktKJJnZCM:wF9xT3WuBAs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=o7zz_953mpE:WmktKJJnZCM:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=o7zz_953mpE:WmktKJJnZCM:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=o7zz_953mpE:WmktKJJnZCM:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=o7zz_953mpE:WmktKJJnZCM:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=o7zz_953mpE:WmktKJJnZCM:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=o7zz_953mpE:WmktKJJnZCM:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/machine-cycle/~4/o7zz_953mpE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://machine-cycle.blogspot.com/feeds/4647816184283653722/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://machine-cycle.blogspot.com/2010/09/automatically-launching-cygwins-x.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/593663383710482559/posts/default/4647816184283653722?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/593663383710482559/posts/default/4647816184283653722?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/machine-cycle/~3/o7zz_953mpE/automatically-launching-cygwins-x.html" title="Automatically Launching Cygwin's X Server" /><author><name>Zung!</name><uri>http://www.blogger.com/profile/07718442985309348694</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="29" height="32" src="http://lh5.google.com/image/zungbang/RbfSJp67VwI/AAAAAAAAAAg/fOkC3QmzRcE/s288/cogs.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://machine-cycle.blogspot.com/2010/09/automatically-launching-cygwins-x.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk8GQ3Y7fyp7ImA9Wx5QFU8.&quot;"><id>tag:blogger.com,1999:blog-593663383710482559.post-1405523638335623453</id><published>2010-09-03T07:40:00.000-07:00</published><updated>2010-09-03T07:40:22.807-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-09-03T07:40:22.807-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="upgrade" /><category scheme="http://www.blogger.com/atom/ns#" term="hardware" /><title>Changes</title><content type="html">A few weeks ago, following &lt;a href="http://machine-cycle.blogspot.com/2010/06/new-antivirus.html"&gt;an overdose of bad luck&lt;/a&gt;, we bought a new laptop for my wife - a &lt;a href="http://www.dell.com/us/en/dfo/notebooks/inspiron-13r/pd.aspx?refid=inspiron-13r&amp;s=dfo"&gt;Dell Inspiron 13R&lt;/a&gt; (marketed locally as N3010).&lt;br /&gt;
&lt;br /&gt;
Along with the new machine we bought an &lt;a href="http://www.edimax.com/en/support_detail.php?pd_id=339&amp;pl1_id=3&amp;pl2_id=18"&gt;EDIMAX BR-6424n V2&lt;/a&gt; wireless router, in order to network all of our three laptops.&lt;br /&gt;
&lt;br /&gt;
About the same time, we finally replaced both of our failing cellular phones with a new pair of &lt;a href="http://www.amazon.com/gp/product/B003NFK6US?ie=UTF8&amp;tag=theztra-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B003NFK6US"&gt;Nokia 2730&lt;/a&gt;&lt;img src="http://www.assoc-amazon.com/e/ir?t=theztra-20&amp;l=as2&amp;o=1&amp;a=B003NFK6US" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /&gt;phones.&lt;br /&gt;
&lt;br /&gt;
And two weeks later my wife started a new part time job, where they issued her an &lt;a href="http://www.amazon.com/gp/product/B003UNF0JK?ie=UTF8&amp;tag=theztra-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B003UNF0JK"&gt;ASUS Eee PC 1015P Netbook&lt;/a&gt;&lt;img src="http://www.assoc-amazon.com/e/ir?t=theztra-20&amp;l=as2&amp;o=1&amp;a=B003UNF0JK" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /&gt;- when it rains it pours.&lt;br /&gt;
&lt;br /&gt;
My plan is to setup the new box for my wife, take over her old laptop, and convert it to Debian (I'll probably replace its 80GB hard disk drive with a larger one).&lt;br /&gt;
&lt;br /&gt;
So, I'm up to my neck with system administration chores. I intend to post some updates as soon as the dust settles down.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/593663383710482559-1405523638335623453?l=machine-cycle.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/4O-LYxF0Lql7d3Z6omtYQ0C71RU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4O-LYxF0Lql7d3Z6omtYQ0C71RU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/4O-LYxF0Lql7d3Z6omtYQ0C71RU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4O-LYxF0Lql7d3Z6omtYQ0C71RU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=pe7Khq_e0oY:viIvOLTWywk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=pe7Khq_e0oY:viIvOLTWywk:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=pe7Khq_e0oY:viIvOLTWywk:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=pe7Khq_e0oY:viIvOLTWywk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=pe7Khq_e0oY:viIvOLTWywk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=pe7Khq_e0oY:viIvOLTWywk:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=pe7Khq_e0oY:viIvOLTWywk:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=pe7Khq_e0oY:viIvOLTWywk:wF9xT3WuBAs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=pe7Khq_e0oY:viIvOLTWywk:wF9xT3WuBAs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=pe7Khq_e0oY:viIvOLTWywk:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=pe7Khq_e0oY:viIvOLTWywk:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=pe7Khq_e0oY:viIvOLTWywk:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=pe7Khq_e0oY:viIvOLTWywk:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=pe7Khq_e0oY:viIvOLTWywk:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=pe7Khq_e0oY:viIvOLTWywk:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/machine-cycle/~4/pe7Khq_e0oY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://machine-cycle.blogspot.com/feeds/1405523638335623453/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://machine-cycle.blogspot.com/2010/09/changes.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/593663383710482559/posts/default/1405523638335623453?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/593663383710482559/posts/default/1405523638335623453?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/machine-cycle/~3/pe7Khq_e0oY/changes.html" title="Changes" /><author><name>Zung!</name><uri>http://www.blogger.com/profile/07718442985309348694</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="29" height="32" src="http://lh5.google.com/image/zungbang/RbfSJp67VwI/AAAAAAAAAAg/fOkC3QmzRcE/s288/cogs.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://machine-cycle.blogspot.com/2010/09/changes.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DU4CQX84fCp7ImA9Wx5REUg.&quot;"><id>tag:blogger.com,1999:blog-593663383710482559.post-3663573034238503210</id><published>2010-08-18T11:59:00.000-07:00</published><updated>2010-08-18T11:59:20.134-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-18T11:59:20.134-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="upgrade" /><category scheme="http://www.blogger.com/atom/ns#" term="php" /><category scheme="http://www.blogger.com/atom/ns#" term="cron" /><title>Cron Daemon Complains About PHP Warnings</title><content type="html">A recent upgrade of &lt;a href="http://packages.debian.org/search?keywords=php5-common"&gt;php5-common&lt;/a&gt; brought with it an annoying side effect - the root account is being spammed with email messages from the Cron Daemon, every 30 minutes:&lt;br /&gt;
&lt;pre&gt;Date: Wed, 18 Aug 2010 20:09:01 +0300                                                                                                                                                             
From: Cron Daemon &lt;root@machine-cycle.home&gt;                                                                                                                                                       
To: root@machine-cycle.home                                                                                                                                                                       
Subject: Cron &lt;root@machine-cycle&gt;   [ -x /usr/lib/php5/maxlifetime ] &amp;&amp; [ -d /var/lib/php5 ] &amp;&amp; find /var/lib/php5/ -type f -cmin +$(/usr/lib/php5/maxlifetime) -print0 | xargs -n 200 -r -0 rm  
                                                                                                                                                                                                  
PHP Warning:  Directive 'register_long_arrays' is deprecated in PHP 5.3 and greater in Unknown on line 0                                                                                          
PHP Warning:  Directive 'magic_quotes_gpc' is deprecated in PHP 5.3 and greater in Unknown on line 0                                                                                              
&lt;/pre&gt;First, I had to determine the package causing the trouble:&lt;pre&gt;# dpkg -S /usr/lib/php5/maxlifetime
php5-common: /usr/lib/php5/maxlifetime&lt;/pre&gt;While some of the &lt;a href="http://bugs.debian.org/cgi-bin/pkgreport.cgi?package=php5-common"&gt;bugs&lt;/a&gt; listed at the Debian BTS seemed relevant, none seemed to match my exact situation. &lt;br /&gt;
&lt;br /&gt;
I searched for the exact error messages I got, and found a few references on the &lt;a href="http://bugs.php.net/"&gt;PHP BTS&lt;/a&gt;. Some of these revolved around a problem with disabling warning reports from the PHP interpreter. &lt;br /&gt;
&lt;br /&gt;
I decided it was time to follow the code instead of hyperlinks.&lt;br /&gt;
&lt;br /&gt;
The file &lt;code&gt;/usr/lib/php5/maxlifetime&lt;/code&gt; is a short shell script which calls the PHP command line interpreter, like this:&lt;pre&gt;php5 -c /etc/php5/apache2/php.ini -r 'print ini_get("session.gc_maxlifetime");'&lt;/pre&gt;I tried it at the command line, and I got the same warnings. Got it!&lt;br /&gt;
&lt;br /&gt;
But now what? after all, I know next to nothing about PHP... &lt;br /&gt;
&lt;br /&gt;
Well, it did seem plausible that the problem had to do with the configuration file &lt;code&gt;/etc/php5/apache2/php.ini&lt;/code&gt;, so I stared at it for a while until I found that warning messages can be disabled like this:&lt;pre&gt;error_reporting  =  E_ALL &amp; ~E_NOTICE &lt;font color=red&gt;&amp; ~E_WARNING&lt;/font&gt;&lt;/pre&gt;I got rid of the annoying email messages alright, but I didn't really &lt;i&gt;solve&lt;/i&gt; the problem - it's just a workaround. &lt;br /&gt;
&lt;br /&gt;
Life's full of workarounds, and I'm slowly getting used to it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/593663383710482559-3663573034238503210?l=machine-cycle.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/vSZn2tFZ3rLOYoTEKuQ7XV-qy-0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/vSZn2tFZ3rLOYoTEKuQ7XV-qy-0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/vSZn2tFZ3rLOYoTEKuQ7XV-qy-0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/vSZn2tFZ3rLOYoTEKuQ7XV-qy-0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=rdjUHAXaJ4w:z1rJSVTMYvg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=rdjUHAXaJ4w:z1rJSVTMYvg:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=rdjUHAXaJ4w:z1rJSVTMYvg:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=rdjUHAXaJ4w:z1rJSVTMYvg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=rdjUHAXaJ4w:z1rJSVTMYvg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=rdjUHAXaJ4w:z1rJSVTMYvg:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=rdjUHAXaJ4w:z1rJSVTMYvg:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=rdjUHAXaJ4w:z1rJSVTMYvg:wF9xT3WuBAs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=rdjUHAXaJ4w:z1rJSVTMYvg:wF9xT3WuBAs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=rdjUHAXaJ4w:z1rJSVTMYvg:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=rdjUHAXaJ4w:z1rJSVTMYvg:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=rdjUHAXaJ4w:z1rJSVTMYvg:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=rdjUHAXaJ4w:z1rJSVTMYvg:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=rdjUHAXaJ4w:z1rJSVTMYvg:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=rdjUHAXaJ4w:z1rJSVTMYvg:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/machine-cycle/~4/rdjUHAXaJ4w" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://machine-cycle.blogspot.com/feeds/3663573034238503210/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://machine-cycle.blogspot.com/2010/08/cron-daemon-complains-about-php.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/593663383710482559/posts/default/3663573034238503210?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/593663383710482559/posts/default/3663573034238503210?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/machine-cycle/~3/rdjUHAXaJ4w/cron-daemon-complains-about-php.html" title="Cron Daemon Complains About PHP Warnings" /><author><name>Zung!</name><uri>http://www.blogger.com/profile/07718442985309348694</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="29" height="32" src="http://lh5.google.com/image/zungbang/RbfSJp67VwI/AAAAAAAAAAg/fOkC3QmzRcE/s288/cogs.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://machine-cycle.blogspot.com/2010/08/cron-daemon-complains-about-php.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkYAQX06eCp7ImA9Wx5TFEQ.&quot;"><id>tag:blogger.com,1999:blog-593663383710482559.post-86310627244865958</id><published>2010-07-30T05:49:00.000-07:00</published><updated>2010-07-30T05:49:00.310-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-30T05:49:00.310-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="disk" /><category scheme="http://www.blogger.com/atom/ns#" term="windows" /><category scheme="http://www.blogger.com/atom/ns#" term="virtualbox" /><title>Enlarge VirtualBox NTFS Disk Image</title><content type="html">I ran out of disk space on my virtual Windows XP computer. I deleted some files and uninstalled a few unnecessary applications, but this didn't quite cut it, so I decided to enlarge the disk image from 10GB to 30GB - a sizeable upgrade, that should be enough for quite a while:&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;backup and then shutdown the Windows VM&lt;/li&gt;
&lt;li&gt;create a new virtual disk with the appropriate size, via the File-&gt;Virtual Media Manager tool&lt;/li&gt;
&lt;li&gt;attach this disk image to the Windows VM via the storage settings dialog&lt;/li&gt;
&lt;li&gt;download the &lt;a href="http://gparted.sourceforge.net/livecd.php"&gt;GParted Live&lt;/a&gt; ISO image (I used the "testing" image)&lt;/li&gt;
&lt;li&gt;mount the ISO image on the Windows' VM virtual optical drive (again, via the storage settings dialog)&lt;/li&gt;
&lt;li&gt;boot the VM from the ISO image (should happen automatically)&lt;/li&gt;
&lt;li&gt;use GParted to &lt;b&gt;copy&lt;/b&gt; the NTFS partition from the small disk image, and then &lt;b&gt;paste&lt;/b&gt; it to the new large disk image&lt;/li&gt;&lt;li&gt;GParted should now ask you for the size of the new pasted partition: modify its size so that it takes up all available space on the new disk image&lt;/li&gt;
&lt;li&gt;&lt;b&gt;apply&lt;/b&gt; the chages, and wait for the process to finish&lt;/li&gt;
&lt;li&gt;set the boot flag on the new partition&lt;/li&gt;
&lt;li&gt;close GParted and shutdown the VM&lt;/li&gt;
&lt;li&gt;remove the CD image from the virtual optical disk drive, and set the new disk image as the only disk image attached to the VM&lt;/li&gt;
&lt;li&gt;start the Windows VM - it should boot (unless you missed the boot flag part above) and then Windows will automatically run a disk check and start normally afterwards&lt;/li&gt;
&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/593663383710482559-86310627244865958?l=machine-cycle.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/EjSIKICphZKNzF9A8mdVWsAhtnI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/EjSIKICphZKNzF9A8mdVWsAhtnI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/EjSIKICphZKNzF9A8mdVWsAhtnI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/EjSIKICphZKNzF9A8mdVWsAhtnI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=82i4PjeV83Y:WauXL4D2N7g:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=82i4PjeV83Y:WauXL4D2N7g:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=82i4PjeV83Y:WauXL4D2N7g:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=82i4PjeV83Y:WauXL4D2N7g:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=82i4PjeV83Y:WauXL4D2N7g:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=82i4PjeV83Y:WauXL4D2N7g:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=82i4PjeV83Y:WauXL4D2N7g:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=82i4PjeV83Y:WauXL4D2N7g:wF9xT3WuBAs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=82i4PjeV83Y:WauXL4D2N7g:wF9xT3WuBAs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=82i4PjeV83Y:WauXL4D2N7g:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=82i4PjeV83Y:WauXL4D2N7g:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=82i4PjeV83Y:WauXL4D2N7g:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=82i4PjeV83Y:WauXL4D2N7g:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/machine-cycle?a=82i4PjeV83Y:WauXL4D2N7g:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/machine-cycle?i=82i4PjeV83Y:WauXL4D2N7g:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/machine-cycle/~4/82i4PjeV83Y" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://machine-cycle.blogspot.com/feeds/86310627244865958/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://machine-cycle.blogspot.com/2010/07/enlarge-virtualbox-ntfs-disk-image.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/593663383710482559/posts/default/86310627244865958?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/593663383710482559/posts/default/86310627244865958?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/machine-cycle/~3/82i4PjeV83Y/enlarge-virtualbox-ntfs-disk-image.html" title="Enlarge VirtualBox NTFS Disk Image" /><author><name>Zung!</name><uri>http://www.blogger.com/profile/07718442985309348694</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="29" height="32" src="http://lh5.google.com/image/zungbang/RbfSJp67VwI/AAAAAAAAAAg/fOkC3QmzRcE/s288/cogs.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://machine-cycle.blogspot.com/2010/07/enlarge-virtualbox-ntfs-disk-image.html</feedburner:origLink></entry></feed>

