<?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:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" xml:lang="en" xml:base="http://devplant.net/wp-atom.php">
	<title type="text">devPlant</title>
	<subtitle type="text">Plant for developers or developement plant</subtitle>

	<updated>2010-05-04T10:06:59Z</updated>

	<link rel="alternate" type="text/html" href="http://devplant.net" />
	<id>http://devplant.net/feed/atom/</id>
	

	<generator uri="http://wordpress.org/" version="3.0">WordPress</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/devplant" /><feedburner:info uri="devplant" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry>
		<author>
			<name>leafnode</name>
						<uri>http://devplant.net/</uri>
					</author>
		<title type="html"><![CDATA[[Linux] PHP not working in userdir (public_html)]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/devplant/~3/qL8ModDPpvE/" />
		<id>http://devplant.net/?p=149</id>
		<updated>2010-05-04T10:06:59Z</updated>
		<published>2010-05-04T10:06:59Z</published>
		<category scheme="http://devplant.net" term="Apache" /><category scheme="http://devplant.net" term="Linux" /><category scheme="http://devplant.net" term="debian" /><category scheme="http://devplant.net" term="php" />		<summary type="html"><![CDATA[Today I wanted to give my users possibility to test their PHP scripts, but without all the fuss with creating virtual hosts for each one of them. My first and obvious choice was userdir &#8211; user creates public_html directory in his home dir, puts there files, and those files are accessible via http://servername/~username/ URL. To [...]]]></summary>
		<content type="html" xml:base="http://devplant.net/2010/05/04/linux-php-not-working-in-userdir-public_html/"><![CDATA[<p>Today I wanted to give my users possibility to test their PHP scripts, but without all the fuss with creating virtual hosts for each one of them. My first and obvious choice was userdir &#8211; user creates public_html directory in his home dir, puts there files, and those files are accessible via http://servername/~username/ URL. To enable this behavior you only have to enable userdir module (a2enmod userdir), and remember to set correct permissions to the userdir (chmod +x $HOME) and public_html (chmod 755 $HOME/public_html). I did this, and everything was working fine, except PHP scripts &#8211; browser wanted to download them instead of displaying proper processed content. It appeared that apache in Debian has by default PHP disabled for userdirs. To enable scripting in this dirctory, open file <tt>/etc/apache2/mods-enabled/php5.conf</tt>, find that piece of code:</p>
<pre class="brush: plain;">
    &lt;IfModule mod_userdir.c&gt;
        &lt;Directory /home/*/public_html&gt;
            php_admin_value engine Off
        &lt;/Directory&gt;
    &lt;/IfModule&gt;
</pre>
<p>and disable it, either by deleting or by commenting it out (precede each line with # sign). You can also change <tt>php_admin_value engine</tt> setting to On, but if you do that, you will be unable to turn off PHP engine in .htaccess files.</p>
]]></content>
		<link rel="replies" type="text/html" href="http://devplant.net/2010/05/04/linux-php-not-working-in-userdir-public_html/#comments" thr:count="3" />
		<link rel="replies" type="application/atom+xml" href="http://devplant.net/2010/05/04/linux-php-not-working-in-userdir-public_html/feed/atom/" thr:count="3" />
		<thr:total>3</thr:total>
	<feedburner:origLink>http://devplant.net/2010/05/04/linux-php-not-working-in-userdir-public_html/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>leafnode</name>
						<uri>http://devplant.net/</uri>
					</author>
		<title type="html"><![CDATA[[linux] Upgrading Debian Lenny to Testing halts on udev package]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/devplant/~3/UYv1Bl_48Ho/" />
		<id>http://devplant.net/?p=134</id>
		<updated>2010-03-26T11:34:45Z</updated>
		<published>2010-03-26T11:34:45Z</published>
		<category scheme="http://devplant.net" term="Linux" /><category scheme="http://devplant.net" term="debian" /><category scheme="http://devplant.net" term="lenny" /><category scheme="http://devplant.net" term="squeeze" /><category scheme="http://devplant.net" term="stable" /><category scheme="http://devplant.net" term="testing" /><category scheme="http://devplant.net" term="upgrade" /><category scheme="http://devplant.net" term="virtualbox" />		<summary type="html"><![CDATA[Few days ago I wanted to create VirtualBox image of Debian Squeeze (current testing release). I already had Debian Lenny (stable) image, so the whole process seemed relatively easy &#8211; dist-upgrade Lenny, switch to &#8220;testing&#8221; apt sources, then dist-upgrade. It appeared easy, but in fact there were some bumps on the road. Dist-upgrade broke on [...]]]></summary>
		<content type="html" xml:base="http://devplant.net/2010/03/26/linux-upgrading-debian-lenny-to-testing-halts-on-udev-package/"><![CDATA[<p>Few days ago I wanted to create VirtualBox image of Debian Squeeze (current testing release). I already had Debian Lenny (stable) image, so the whole process seemed relatively easy &#8211; dist-upgrade Lenny, switch to &#8220;testing&#8221; apt sources, then dist-upgrade. It appeared easy, but in fact there were some bumps on the road. Dist-upgrade broke on &#8220;udev&#8221; package. From what I&#8217;ve understood, udev didn&#8217;t want to be upgraded while working with old kernel, and kernel wouldn&#8217;t be upgraded because of some unmet dependencies. At first it seemed that the upgrade upgrade process broke down the dependency system and the easiest way was to install the system from scratch. But udev package has an &#8220;emergency rope&#8221;. When you pull it, you promise udev that before the next reboot you will upgrade kernel &#8211; and udev will believe you and install. To use that rope, create an empty file /etc/udev/kernel-upgrade and then manually install the udev package, which already resides in /var/cache/apt/archives directory. After this you can continue dist-upgrade, using -f switch. So the whole set of commands to upgrade the distribution is:</p>
<pre class="brush: plain;">
apt-get update
apt-get dist-upgrade
cat &gt; /etc/apt/sources.list &lt;&lt; ENDF
deb http://ftp.us.debian.org/debian/ testing main
deb-src http://ftp.us.debian.org/debian/ testing main

deb http://security.debian.org/ testing/updates main contrib
deb-src http://security.debian.org/ testing/updates main contrib
ENDF

apt-get update
apt-get dist-upgrade
touch /etc/udev/kernel-upgrade
dpkg -i  /var/cache/apt/archives/udev_151-3_i386.deb
apt-get dist-upgrade -f
</pre>
<p>After that upgrade should finish. But be warned &#8211; after switching from lenny to squeeze I&#8217;ve experienced some problems like kernel not booting (I run previous version and regenerated initrd &#8211; it, or something else, helped), problems with VirtualBox guest additions (had to install kernel sources for guest additions to build themselves, then reinstalled virtualbox-ose-dkms package, and then reinstalled guest additions from the CD image attached to VirtualBox).</p>
<p>Upgraded system needs a few touches, but that&#8217;s not unusual. Don&#8217;t worry about &#8220;udevd : SYSFS{}= will be removed in a future udev version, please use ATTR{}= to match the event device&#8221; and similar messages while booting &#8211; it will be silenced in future versions of some packages. You can fix it if you want by replacing SYSFS with ATTR in /etc/udev/rules.d/* files, but other similar warnings will appear. You can also run <tt>upgrade-from-grub-legacy</tt> script, if you chose to chainload new grub from the old one during the upgrade. There is also significant amount of files in /var/cache/apt/archives, which can be safely deleted after successful upgrade (in my case it was 2.5GB of data).</p>
<p>Phew, now everything works and I have a proper VirtualBox image of Debian Squeeze.</p>
]]></content>
		<link rel="replies" type="text/html" href="http://devplant.net/2010/03/26/linux-upgrading-debian-lenny-to-testing-halts-on-udev-package/#comments" thr:count="9" />
		<link rel="replies" type="application/atom+xml" href="http://devplant.net/2010/03/26/linux-upgrading-debian-lenny-to-testing-halts-on-udev-package/feed/atom/" thr:count="9" />
		<thr:total>9</thr:total>
	<feedburner:origLink>http://devplant.net/2010/03/26/linux-upgrading-debian-lenny-to-testing-halts-on-udev-package/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>leafnode</name>
						<uri>http://devplant.net/</uri>
					</author>
		<title type="html"><![CDATA[[linux] Efficiently copy whole directory trees]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/devplant/~3/jHL7qTETaIc/" />
		<id>http://devplant.net/?p=104</id>
		<updated>2010-03-05T07:29:17Z</updated>
		<published>2010-03-04T09:35:54Z</published>
		<category scheme="http://devplant.net" term="Linux" /><category scheme="http://devplant.net" term="backup" /><category scheme="http://devplant.net" term="copy" /><category scheme="http://devplant.net" term="tar" />		<summary type="html"><![CDATA[Recently I&#8217;ve upgraded my A/V storage disk from 1TB to 2TB (size of modern HDDs are amazing&#8230;), and I had to transfer data from one disk to another in some way. Easiest was of course to simply use cp to copy the whole directory structure. But as USB interface is slow enough, I wanted to [...]]]></summary>
		<content type="html" xml:base="http://devplant.net/2010/03/04/linux-efficiently-copy-whole-directory-trees/"><![CDATA[<p>Recently I&#8217;ve upgraded my A/V storage disk from 1TB to 2TB (size of modern HDDs are amazing&#8230;), and I had to transfer data from one disk to another in some way. Easiest was of course to simply use <tt>cp</tt> to copy the whole directory structure. But as USB interface is slow enough, I wanted to employ any possible method to speed things up.</p>
<p>From the old times as a sysadmin I&#8217;ve remembered that copying, doesn&#8217;t matter local or over the network, was faster if data was copied in chunks &#8211; that was true especially when having a lot of small files.</p>
<p>So, to kill two birds with one stone, I employed&#8230; <strong>tar</strong>. Yeah, it&#8217;s a very versatile tool &#8211; in some time I&#8217;ll describe how to use it as a part of a network encrypted backup solution. But here, I used only two instances of tar. You have to remember that if you specify absolute path to the directory you want to transfer, tar will record all elements of the path, only stripping &#8220;/&#8221; from the beginning. So there are two ways: either record whole path and strip it when &#8220;decompressing&#8221;, or not to include it at all.</p>
<p>Lets assume that we&#8217;re copying data from /media/external0 to /media/external1.</p>
<p>First option:</p>
<pre class="brush: plain;">
cd /media/external1
tar cf - /media/external0 | tar x -f - --strip-components=2
</pre>
<p>Second option:</p>
<pre class="brush: plain;">
cd /media/external0
tar cf - * | tar x -C /media/external1 -f -
</pre>
<p>The first tar command &#8220;compresses&#8221; the data (either from given directory or from the current one), sends it to the standard output, which goes into the second tar&#8217;s input, which decompresses it into the target directory.</p>
<p>To see the progress, you can put cpipe application in the middle like that:</p>
<pre class="brush: plain;">
tar cf - /media/external0 | cpipe -vt | tar x -f - --strip-components=2
</pre>
<p>One note on an improved performance using this method. I didn&#8217;t do any benchmarks, but it shouldn&#8217;t be worse than a standard <tt>cp</tt>. <tt>tar</tt> will be better if the OS is not using any smart pre-buffering. Also I&#8217;ve decided to write this entry as an introduction to a future one about over-the-net backup using <tt>tar</tt></p>
]]></content>
		<link rel="replies" type="text/html" href="http://devplant.net/2010/03/04/linux-efficiently-copy-whole-directory-trees/#comments" thr:count="3" />
		<link rel="replies" type="application/atom+xml" href="http://devplant.net/2010/03/04/linux-efficiently-copy-whole-directory-trees/feed/atom/" thr:count="3" />
		<thr:total>3</thr:total>
	<feedburner:origLink>http://devplant.net/2010/03/04/linux-efficiently-copy-whole-directory-trees/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>leafnode</name>
						<uri>http://devplant.net/</uri>
					</author>
		<title type="html"><![CDATA[[Android] Disable screen timeout when charging]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/devplant/~3/HKV_5dazX7w/" />
		<id>http://devplant.net/?p=109</id>
		<updated>2010-03-02T19:34:08Z</updated>
		<published>2010-03-02T19:34:08Z</published>
		<category scheme="http://devplant.net" term="Android" /><category scheme="http://devplant.net" term="screen" /><category scheme="http://devplant.net" term="timeout" />		<summary type="html"><![CDATA[If you ever wondered if it&#8217;s possible to keep screen from blanking/locking while the device is plugged into a charger, the answer is yes, it is possible, without any additional apps. Only the setting for this is strangely placed. To enable this feature, go into Menu → Settings → Applications → Development and tick &#8220;Stay [...]]]></summary>
		<content type="html" xml:base="http://devplant.net/2010/03/02/android-disable-screen-timeout-when-charging/"><![CDATA[<p>If you ever wondered if it&#8217;s possible to keep screen from blanking/locking while the device is plugged into a charger, the answer is yes, it is possible, without any additional apps. Only the setting for this is strangely placed. To enable this feature, go into Menu → Settings → Applications → Development and tick &#8220;Stay Awake&#8221;. That&#8217;s it.</p>
<p><a href="http://devplant.net/wp-content/uploads/2010/03/android-full.png" rel="lightbox"><img src="http://devplant.net/wp-content/uploads/2010/03/android-thumb.png" alt="" title="Screenshots" width="485" height="183" class="aligncenter size-full wp-image-113" /></a></p>
]]></content>
		<link rel="replies" type="text/html" href="http://devplant.net/2010/03/02/android-disable-screen-timeout-when-charging/#comments" thr:count="2" />
		<link rel="replies" type="application/atom+xml" href="http://devplant.net/2010/03/02/android-disable-screen-timeout-when-charging/feed/atom/" thr:count="2" />
		<thr:total>2</thr:total>
	<feedburner:origLink>http://devplant.net/2010/03/02/android-disable-screen-timeout-when-charging/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>leafnode</name>
						<uri>http://devplant.net/</uri>
					</author>
		<title type="html"><![CDATA[[PowerShell snippet] Resolving hostname]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/devplant/~3/YZhM2yj698w/" />
		<id>http://devplant.net/?p=75</id>
		<updated>2009-11-30T12:45:08Z</updated>
		<published>2009-11-30T12:45:08Z</published>
		<category scheme="http://devplant.net" term="Programming" /><category scheme="http://devplant.net" term="Software" /><category scheme="http://devplant.net" term="dns" /><category scheme="http://devplant.net" term="powershell" /><category scheme="http://devplant.net" term="resolve" /><category scheme="http://devplant.net" term="snippets" />		<summary type="html"><![CDATA[Recently I&#8217;ve started to embrace PowerShell&#8217;s great possibilities, and as a result of that, I&#8217;ll post some of my &#8220;toys&#8221;. On Unix-like operating system I&#8217;m using host command to resolve hostnames into IP&#8217;s and the other way. On Windows, there&#8217;s a nslookup tool, which works just like the Unix equivalent, but to get accustomed to [...]]]></summary>
		<content type="html" xml:base="http://devplant.net/2009/11/30/powershell-snippet-resolving-hostname/"><![CDATA[<p><em>Recently I&#8217;ve started to embrace PowerShell&#8217;s great possibilities, and as a result of that, I&#8217;ll post some of my &#8220;toys&#8221;.</em></p>
<p>On Unix-like operating system I&#8217;m using <tt>host</tt> command to resolve hostnames into IP&#8217;s and the other way. On Windows, there&#8217;s a <tt>nslookup</tt> tool, which works just like the Unix equivalent, but to get accustomed to PowerShell, I&#8217;ve decided to write a function, which uses internal command to do NS lookups.</p>
<p>Generally, to resolve a hostname you can use this one-liner:</p>
<pre class="brush: powershell;">
[System.Net.Dns]::GetHostAddresses(&quot;devplant.net&quot;)
</pre>
<p>You can shorten it by declaring a short function.</p>
<pre class="brush: powershell;">
function resolve( [string] $in ){
   [System.Net.Dns]::GetHostAddresses($in)
}
</pre>
<p>(Defining functions remember not to collide with pre-existing variable names)</p>
<p>But this is only one-way command &#8211; to resolve IP address into a hostname, you have to use other command:</p>
<pre class="brush: powershell;">
[System.Net.Dns]::GetHostbyAddress(&quot;72.21.210.250&quot;)
</pre>
<p>To combine both functionalities, you can extend our function, using regular expression to do a naive recognition of IP addresses.</p>
<pre class="brush: powershell;">
function resolve( [string] $in ){
	if ($in -match &quot;(\d{1,3}\.){3}(\d{1,3})&quot;) {
		[System.Net.Dns]::GetHostbyAddress($in)
	} else {
		[System.Net.Dns]::GetHostAddresses($in)
	}
}
</pre>
<p>Now here&#8217;s how you can use it:</p>
<pre class="brush: plain;">
PS C:\Users\leafnode&gt; resolve devplant.net

IPAddressToString : 91.192.224.142
Address           : 2397093979
AddressFamily     : InterNetwork
ScopeId           :
IsIPv6Multicast   : False
IsIPv6LinkLocal   : False
IsIPv6SiteLocal   : False

PS C:\Users\leafnode&gt; resolve 72.21.210.250

HostName                Aliases           AddressList
--------                -------           -----------
210-250.amazon.com      {}                {72.21.210.250}

PS C:\Users\leafnode&gt;
</pre>
]]></content>
		<link rel="replies" type="text/html" href="http://devplant.net/2009/11/30/powershell-snippet-resolving-hostname/#comments" thr:count="1" />
		<link rel="replies" type="application/atom+xml" href="http://devplant.net/2009/11/30/powershell-snippet-resolving-hostname/feed/atom/" thr:count="1" />
		<thr:total>1</thr:total>
	<feedburner:origLink>http://devplant.net/2009/11/30/powershell-snippet-resolving-hostname/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>leafnode</name>
						<uri>http://devplant.net/</uri>
					</author>
		<title type="html"><![CDATA[Fix for extensions incompatible with Firefox 3.5 (and any other)]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/devplant/~3/iu3JEGOzb-8/" />
		<id>http://devplant.net/?p=68</id>
		<updated>2009-07-01T08:55:48Z</updated>
		<published>2009-07-01T08:22:29Z</published>
		<category scheme="http://devplant.net" term="Software" /><category scheme="http://devplant.net" term="add-ons" /><category scheme="http://devplant.net" term="extensions" /><category scheme="http://devplant.net" term="firefox" />		<summary type="html"><![CDATA[You want to try Firefox 3.5 but your favourite extensions are not compatible with the new version? There is a possible solution for this problem. As in case of extension interface nothing much changed between Firefox 3.0.* and 3.5, it is possible that extension compatible with older version will work without any changes &#8211; except [...]]]></summary>
		<content type="html" xml:base="http://devplant.net/2009/07/01/fix-for-extensions-incompatible-with-firefox-3-5-and-any-other/"><![CDATA[<p><a rel="lightbox[68]" title="MR Tech Toolkit menu" href="http://devplant.net/wp-content/uploads/2009/07/make_compatible.png"><img class="alignright size-full wp-image-71" title="Make compatible" src="http://devplant.net/wp-content/uploads/2009/07/make_compatible_thumb.png" alt="Make compatible" width="150" height="131" /></a>You want to try Firefox 3.5 but your favourite extensions are not compatible with the new version? There is a possible solution for this problem.</p>
<p>As in case of extension interface nothing much changed between Firefox 3.0.* and 3.5, it is possible that extension compatible with older version will work without any changes &#8211; except the maxVersion setting, which prevents Firefox from installing apparently incompatible extension. Manually, you&#8217;d have to download XPI file, decompress, edit settings, re-compress, and install from file. Quite cumbersome, but&#8230;</p>
<p>Extension <a href="https://addons.mozilla.org/en-US/firefox/addon/421">MR Tech Toolkit</a> allows you to tweak some of the extensions&#8217; settings, including maxVersion, without any hassle. Just right-click on an incompatible extension, select &#8220;Make compatible&#8221; from the menu, and that&#8217;s it! After Firefox restarts, if extension really is compatible, it will be working fine.</p>
]]></content>
		<link rel="replies" type="text/html" href="http://devplant.net/2009/07/01/fix-for-extensions-incompatible-with-firefox-3-5-and-any-other/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://devplant.net/2009/07/01/fix-for-extensions-incompatible-with-firefox-3-5-and-any-other/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://devplant.net/2009/07/01/fix-for-extensions-incompatible-with-firefox-3-5-and-any-other/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>leafnode</name>
						<uri>http://devplant.net/</uri>
					</author>
		<title type="html"><![CDATA[Operating system on a memory card]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/devplant/~3/hAoQouGAqeg/" />
		<id>http://devplant.net/?p=39</id>
		<updated>2009-06-30T12:50:32Z</updated>
		<published>2009-06-29T15:46:57Z</published>
		<category scheme="http://devplant.net" term="Linux" /><category scheme="http://devplant.net" term="msi wind" /><category scheme="http://devplant.net" term="flash drive" /><category scheme="http://devplant.net" term="memory card" /><category scheme="http://devplant.net" term="usb storage" /><category scheme="http://devplant.net" term="wind" /><category scheme="http://devplant.net" term="windows" />		<summary type="html"><![CDATA[Windows XP on a netbook works fine with me, but as a person with Linux background it seemed natural to try some distribution on my Wind. As I wanted to try it first, I&#8217;ve decided to user some live distribution first. I don&#8217;t have an external CD device, but on a previous occasion I&#8217;ve managed [...]]]></summary>
		<content type="html" xml:base="http://devplant.net/2009/06/29/operating-system-on-a-memory-card/"><![CDATA[<p><a rel="lightbox[39]" href="http://devplant.net/wp-content/uploads/2009/06/IMG_0059.jpg"><img src="http://devplant.net/wp-content/uploads/2009/06/IMG_0059-150x150.jpg" alt="MicroSD card" title="MicroSD card" width="150" height="150" class="alignright size-thumbnail wp-image-49" /></a>Windows XP on a netbook works fine with me, but as a person with Linux background it seemed natural to try some distribution on my Wind. As I wanted to try it first, I&#8217;ve decided to user some live distribution first. I don&#8217;t have an external CD device, but on a <a title="http://devplant.net/2009/06/19/msi-wind-system-booting-problems-after-bios-update/ (../2009/06/19/msi-wind-system-booting-problems-after-bios-update/) (../2009/06/19/msi-wind-system-booting-problems-after-bios-update/) (../2009/06/19/msi-wind-system-booting-problems-after-bios-update/) (../2009/06/19/msi-wind-system-booting-problems-after-bios-update/) (../2009/06/19/msi-wind-system-booting-problems-after-bios-update/) (../2009/06/19/msi-wind-system-booting-problems-after-bios-update/)" href="../2009/06/19/msi-wind-system-booting-problems-after-bios-update/">previous occasion</a> I&#8217;ve managed to cope with bootable USB drives, so it was a natural (and only) choice. I was just about to re-format pendrive I&#8217;ve used to boot Linux from, but then I remembered that I have couple of loose 2GB microSD cards I&#8217;ve bought just because they were cheap, and an USB card reader. Idea of having an operating system on a so tiny memory card was very appealing!<br />
<span id="more-39"></span><br />
I&#8217;ve plugged in my SD card and started looking for some distribution. On some web page I had seen that there is some Ubuntu edition prepared especially for netbooks, so I decided to go with this one. It is called &#8220;<strong>Ubuntu Netbook Remix</strong>&#8220;. Some time ago to make a bootable USB drive you had to struggle with tons of command-line utilities, but now there is a Windows utility to do all the work: prepare a device: create boot record and then copy data &#8211; it is called <strong>Image Writer for Windows</strong>. So, lets get to work.</p>
<p>First, you have to download files: <a title="http://releases.ubuntu.com/jaunty/ubuntu-9.04-netbook-remix-i386.img (http://releases.ubuntu.com/jaunty/ubuntu-9.04-netbook-remix-i386.img) (http://releases.ubuntu.com/jaunty/ubuntu-9.04-netbook-remix-i386.img) (http://releases.ubuntu.com/jaunty/ubuntu-9.04-netbook-remix-i386.img) (http://releases.ubuntu.com/jaunty/ubuntu-9.04-netbook-remix-i386.img)" href="http://releases.ubuntu.com/jaunty/ubuntu-9.04-netbook-remix-i386.img">Ubuntu Netbook Remix disk image</a> (about 1GB) and <a title="http://launchpad.net/win32-image-writer/0.1/0.1/+download/win32diskimager-RELEASE-0.1-r15-win32.zip (http://launchpad.net/win32-image-writer/0.1/0.1/+download/win32diskimager-RELEASE-0.1-r15-win32.zip) (http://launchpad.net/win32-image-writer/0.1/0.1/+download/win32diskimager-RELEASE-0.1-r15-win32.zip) (http://launchpad.net/win32-image-writer/0.1/0.1/+download/win32diskimager-RELEASE-0.1-r15-win32.zip) (http://launchpad.net/win32-image-writer/0.1/0.1/+download/win32diskimager-RELEASE-0.1-r15-win32.zip)" href="http://launchpad.net/win32-image-writer/0.1/0.1/+download/win32diskimager-RELEASE-0.1-r15-win32.zip">Image Writer for Windows</a>. Then, plug in your desired USB flash device and run Image Writer. Choose click on &#8220;&#8230;&#8221; button, choose downloaded Ubuntu image, select drive letter of your desired device (<strong>be careful</strong> as this device is gonna be totally overwritten), and click &#8220;Write&#8221;.</p>
<p>And that&#8217;s it! From now on, you can boot operating system from this device as long as computer&#8217;s BIOS supports that.</p>
<p><a rel="lightbox[39]" href="http://devplant.net/wp-content/uploads/2009/06/IMG_3954.jpg"><img src="http://devplant.net/wp-content/uploads/2009/06/IMG_3954-150x150.jpg" alt="Device select screen" title="Device select screen" width="150" height="150" class="alignleft size-thumbnail wp-image-50" /></a>As for MSI Wind, during bootup, you can press F11 to enter booting device choosing menu. Then you can select your USB device &#8211; some devices show as an empty line, but you can still choose it. In this menu you can see also mult-card-reader &#8211; and yes, this means that you can just plug SD card into your reader and boot operating system using built-in reader!</p>
<p>Links:</p>
<ul>
<li>Ubuntu Netbook Remix disk image: <a title="http://releases.ubuntu.com/jaunty/ubuntu-9.04-netbook-remix-i386.img (http://releases.ubuntu.com/jaunty/ubuntu-9.04-netbook-remix-i386.img) (http://releases.ubuntu.com/jaunty/ubuntu-9.04-netbook-remix-i386.img) (http://releases.ubuntu.com/jaunty/ubuntu-9.04-netbook-remix-i386.img) (http://releases.ubuntu.com/jaunty/ubuntu-9.04-netbook-remix-i386.img)" href="http://releases.ubuntu.com/jaunty/ubuntu-9.04-netbook-remix-i386.img">http://releases.ubuntu.com/jaunty/ubuntu-9.04-netbook-remix-i386.img</a></li>
<li>Image Writer for Windows: <a title="http://launchpad.net/win32-image-writer/0.1/0.1/+download/win32diskimager-RELEASE-0.1-r15-win32.zip (http://launchpad.net/win32-image-writer/0.1/0.1/+download/win32diskimager-RELEASE-0.1-r15-win32.zip) (http://launchpad.net/win32-image-writer/0.1/0.1/+download/win32diskimager-RELEASE-0.1-r15-win32.zip) (http://launchpad.net/win32-image-writer/0.1/0.1/+download/win32diskimager-RELEASE-0.1-r15-win32.zip) (http://launchpad.net/win32-image-writer/0.1/0.1/+download/win32diskimager-RELEASE-0.1-r15-win32.zip)" href="http://launchpad.net/win32-image-writer/0.1/0.1/+download/win32diskimager-RELEASE-0.1-r15-win32.zip">http://launchpad.net/win32-image-writer/0.1/0.1/+download/win32diskimager-RELEASE-0.1-r15-win32.zip</a></li>
</ul>
]]></content>
		<link rel="replies" type="text/html" href="http://devplant.net/2009/06/29/operating-system-on-a-memory-card/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://devplant.net/2009/06/29/operating-system-on-a-memory-card/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://devplant.net/2009/06/29/operating-system-on-a-memory-card/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>leafnode</name>
						<uri>http://devplant.net/</uri>
					</author>
		<title type="html"><![CDATA[SVN problems in Debian Squeeze/testing]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/devplant/~3/ZMpujc3ycPQ/" />
		<id>http://devplant.net/?p=36</id>
		<updated>2009-06-30T12:51:07Z</updated>
		<published>2009-06-19T12:39:33Z</published>
		<category scheme="http://devplant.net" term="Linux" /><category scheme="http://devplant.net" term="debian" /><category scheme="http://devplant.net" term="squeeze" /><category scheme="http://devplant.net" term="subversion" /><category scheme="http://devplant.net" term="testing" />		<summary type="html"><![CDATA[If you get error messages like &#8220;svn: OPTIONS of &#8216;http://svn.example.com/svn/module&#8217;: could not connect to server (http://svn.example.com)&#8221; in Debian Squeeze/testing, you probably have the same problem as I. It appears that recently a broken neon library was transferred to debian/testing repository, what broke subversion client functionality. There are few options. First, you can wait until fixed [...]]]></summary>
		<content type="html" xml:base="http://devplant.net/2009/06/19/svn-problems-in-debian-squeeze-testing/"><![CDATA[<p>If you get error messages like &#8220;svn: OPTIONS of &#8216;http://svn.example.com/svn/module&#8217;: could not connect to server (http://svn.example.com)&#8221; in Debian Squeeze/testing, you probably have the same problem as I. It appears that recently a broken neon library was transferred to debian/testing repository, what broke subversion client functionality. There are few options.<br />
<span id="more-36"></span><br />
First, you can wait until fixed versions of those packages are included and then upgrade them &#8211; but God only knows when this will happen.</p>
<p>Second, you can get fixed packages from unstable branch of Debian repository. This generally works, but you would have to include all dependent packages, what could be quite large amount. All necessary packages can be found <a href="http://www.joseluisdibiase.com.ar/files/debs__to_get_svn_work.tar.bz2">here</a>, but I didn&#8217;t test them.</p>
<p>Third option, which I have chosen, is to do a temporary fix by adding line <code>http-library=serf</code> to your  <code>~/.subversion/servers</code> file, and after new packages are available, upgrade them.</p>
]]></content>
		<link rel="replies" type="text/html" href="http://devplant.net/2009/06/19/svn-problems-in-debian-squeeze-testing/#comments" thr:count="6" />
		<link rel="replies" type="application/atom+xml" href="http://devplant.net/2009/06/19/svn-problems-in-debian-squeeze-testing/feed/atom/" thr:count="6" />
		<thr:total>6</thr:total>
	<feedburner:origLink>http://devplant.net/2009/06/19/svn-problems-in-debian-squeeze-testing/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>leafnode</name>
						<uri>http://devplant.net/</uri>
					</author>
		<title type="html"><![CDATA[MSI Wind system booting problems after BIOS update]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/devplant/~3/hWw11FxF790/" />
		<id>http://devplant.net/?p=33</id>
		<updated>2009-06-30T12:51:40Z</updated>
		<published>2009-06-19T10:01:27Z</published>
		<category scheme="http://devplant.net" term="Hardware" /><category scheme="http://devplant.net" term="bios" /><category scheme="http://devplant.net" term="msi" /><category scheme="http://devplant.net" term="update" /><category scheme="http://devplant.net" term="wind" />		<summary type="html"><![CDATA[As I have spent some time resolving the problem, I&#8217;ve decided to share the solution with you. I have bought my MSI Wind as soon as they were available in Poland, in July last year. It was quite some time ago, so I decided to update BIOS. I downloaded it from MSI official page, prepared [...]]]></summary>
		<content type="html" xml:base="http://devplant.net/2009/06/19/msi-wind-system-booting-problems-after-bios-update/"><![CDATA[<p>As I have spent some time resolving the problem, I&#8217;ve decided to share the solution with you.</p>
<p>I have bought my <strong>MSI Wind</strong> as soon as they were available in Poland, in July last year. It was quite some time ago, so I decided to <strong>update BIOS</strong>. I downloaded it from <a href="http://www.msi.com/index.php?func=downloaddetail&amp;type=bios&amp;maincat_no=135&amp;prod_no=1474">MSI official page</a>, prepared bootable pendrive using <strong>HP USB Storage Disk Format Tool</strong> (downloadable from <a href="http://files.extremeoverclocking.com/file.php?f=197">here</a>) and Windows 98 boot files from my own archives (you can find some boot disk images at <a href="http://www.bootdisk.com/bootdisk.htm">bootdisk.com</a>). After extracting BIOS files to the pendrive, I&#8217;ve booted system from it.<br />
<span id="more-33"></span><br />
First trail of running <em>flash.bat</em> failed with message &#8220;<strong><em>ERROR</em>: <em>BIOS</em> has no flash information available</strong>&#8220;, and it appeared that I have to have an AC adapter connected throughout BIOS update procedure &#8211; quite obvious, but I forgot about it. First reboot, everthing went fine, <strong>Windows XP</strong> found some new device and that was it. But I&#8217;ve also updated some drivers which required system to reboot, so I did.</p>
<p>And system did not start after reboot &#8211; it all finished at the black screen with XP logo and animated slider. Safe mode also didn&#8217;t help &#8211; all I received was black text-mode screen with blinking cursor after loading drivers.</p>
<p>My first thought was that some new driver was not functioning properly, so I decided to try to repair system using Windows XP install CD. I spent two hours struggling with creating XP installation pendrive (as I don&#8217;t have external CD drive), but with a partial success &#8211; now I have XP setup pendrive, but I didn&#8217;t solve my problem: Windows installer hung with &#8220;Setup is now starting Windows&#8221; message. I thought that maybe even SP2 install needs SATA drivers, so I built another installation drive using nLite to include Wind driver pack, but result was the same.</p>
<p>After some googling I found hints to try to go through BIOS settings and disable unnecessary things, and that was a bullseye. I got into BIOS setup and first thing I seen was a message &#8220;I you have changed overclock settings and system is not booting, try to unplug AC adaptor, remove battery, reattach battery and AC adaptor and try again&#8221;. And that was it. System booted smoothly.</p>
<p>I hope that this will save some trouble if anyone encounters problem like I did.</p>
]]></content>
		<link rel="replies" type="text/html" href="http://devplant.net/2009/06/19/msi-wind-system-booting-problems-after-bios-update/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://devplant.net/2009/06/19/msi-wind-system-booting-problems-after-bios-update/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://devplant.net/2009/06/19/msi-wind-system-booting-problems-after-bios-update/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>leafnode</name>
						<uri>http://devplant.net/</uri>
					</author>
		<title type="html"><![CDATA[Where are you going, MySQL?]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/devplant/~3/LW-sKl6XakI/" />
		<id>http://devplant.net/?p=12</id>
		<updated>2009-06-30T12:54:57Z</updated>
		<published>2008-09-01T10:36:47Z</published>
		<category scheme="http://devplant.net" term="Programming" /><category scheme="http://devplant.net" term="Webdev" /><category scheme="http://devplant.net" term="database" /><category scheme="http://devplant.net" term="drizzle" /><category scheme="http://devplant.net" term="mysql" /><category scheme="http://devplant.net" term="postgresql" /><category scheme="http://devplant.net" term="rdbms" />		<summary type="html"><![CDATA[Recently Brian Aker announced that he will develop RDBMS trimmed especially to use with web-apps. It will be named Drizzle. Features of Drizzle What will be changed in Drizzle in comparison to MySQL? First of all, whole architecture will be changed. Drizzle will be not monolithic chunk of software like its predecessor, but it will [...]]]></summary>
		<content type="html" xml:base="http://devplant.net/2008/09/01/where-are-you-going-mysql/"><![CDATA[<p>Recently <a href="http://krow.livejournal.com/602409.html">Brian Aker announced</a> that he will develop <a href="http://en.wikipedia.org/wiki/RDBMS">RDBMS</a> trimmed especially to use with web-apps. It will be named Drizzle.</p>
<h2>Features of Drizzle</h2>
<p>What will be changed in Drizzle in comparison to MySQL? First of all, whole architecture will be changed. Drizzle will be not monolithic chunk of software like its predecessor, but it will be based on <a href="http://en.wikipedia.org/wiki/Microkernel">microkernel</a> idea. Most features will be moved from core to optional modules. Those features, like triggers, views, or even query cache, are standard for modern database servers, but are very rarely used in webapps (which is very strange for me, but I&#8217;ll come back to this later). One of these modules will be <a href="http://en.wikipedia.org/wiki/InnoDB">InnoDB</a> engine (owned by Oracle, double licensed), which would make upgrading to newest version of that engine easier. UTF-8 will be standard. Generally &#8211; looks nice.</p>
<p>On the other hand, Windows users will be sad, because probably (but not for sure), Drizzle will be available only for Linux and MacOS X. Maybe it&#8217;s not such a big deal, because most of production servers are working under non-windows OS&#8217;, but for development it would be nice to have a possibility to test-install this RDBMS on Windows.<br />
<span id="more-12"></span><br />
Some highlights from features list:</p>
<ul>
<li> Based on MySQL 6.0 source tree</li>
<li> No shipped libraries</li>
<li> POSIX compliance</li>
<li> Micro kernel design</li>
<li> Pluggable Architecture for views, stored procedures, UDFs, storage engines etc.</li>
<li> Sharding across multiple nodes</li>
<li> Intelligent proxy</li>
<li> Multi CPU/Multi Core</li>
<li> Optimized field types</li>
<li> Efficient memory usage</li>
<li> No internal ACL, use LDAP/PAM</li>
<li> No database data formatting</li>
<li> Cleaned up make system</li>
<li> InnoDB default storage engine</li>
<li> Windows compatibility removed</li>
</ul>
<h2>Is it good?</h2>
<p>When I first got into web programming, PHP was used mainly for guest books and simple visitor counters &#8211; as an extension of good old perl CGI&#8217;s. And even for those puny applications SQL databases were used &#8211; most commonly MySQL. It annoyed me, as I thought that installing RDBMS for that sole reason was a terrible overkill. On the other hand, using files was quite cumbersome, as a programmer had to take care of file locking (and still from time to time data tended to disappear). That time, something like &#8220;raw data files with concurrency&#8221; would be great. But times have changed, and web sites are something more than a set of HTML files with CGI-like gizmos. Now everyone can use a CMS system to create web page without any knowledge of Internet voodoo. Every CMS is backed by a database server, but I haven&#8217;t seen a CMS system that uses database for something more than a data storage &#8211; no triggers, views, stored procedures &#8211; nothing. I could understand if it was because of support for many different RDMBS&#8217;, but usually even if software supports e.g. MySQL and PostgreSQL, the second one is broken/unusable/modules use MySQL non-standard methods.</p>
<p>And here comes Drizzle. RDBMS with basic SQL support (but it&#8217;s not any standardized SQL dialect), with optional advanced features like views (views support is &#8216;advanced feature&#8217;&#8230; <em>o tempora, o mores&#8230;</em>) For webapps &#8211; great solution, if only it&#8217;d become a standard (because of not standardized SQL syntax).</p>
<p>But what about &#8220;big&#8221; MySQL? I&#8217;ve never considered it as a tool for more complex projects. Websites &#8211; maybe, if software does not provide proper support for PostgreSQL. PostgreSQL is my choice for hobby projects (and those without big funding), Oracle for other.</p>
<p>MySQL was never percieved as a free replacement for expensive databases (except for people not knowing what they are talking about), so what would be MySQL&#8217;s &#8220;biotope&#8221; with poor opinion from large traffic applications programmers and Drizzle taking its place as a choice for webapps?</p>
<p>I know that my opinions on MySQL may be controversial, but they are based on my personal experience, and please don&#8217;t argue with that :)</p>
<ul>
<li><a href="http://drizzle.wikia.com/wiki/Drizzle_Wiki">Drizzle website</a></li>
</ul>
]]></content>
		<link rel="replies" type="text/html" href="http://devplant.net/2008/09/01/where-are-you-going-mysql/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://devplant.net/2008/09/01/where-are-you-going-mysql/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://devplant.net/2008/09/01/where-are-you-going-mysql/</feedburner:origLink></entry>
	</feed>
