<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>worldgonemad.com &#187; Open Source</title>
	<atom:link href="http://worldgonemad.com/blogs/category/open-source/feed/" rel="self" type="application/rss+xml" />
	<link>http://worldgonemad.com/blogs</link>
	<description>If the world was perfect, it wouldn&#039;t be.      - Yogi Berra</description>
	<lastBuildDate>Tue, 23 Mar 2010 16:26:05 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>MySQL spins and forks</title>
		<link>http://worldgonemad.com/blogs/pantoniades/2010/03/mysql-spins-and-forks/</link>
		<comments>http://worldgonemad.com/blogs/pantoniades/2010/03/mysql-spins-and-forks/#comments</comments>
		<pubDate>Tue, 23 Mar 2010 16:07:53 +0000</pubDate>
		<dc:creator>pantoniades</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Open Source]]></category>

		<guid isPermaLink="false">http://worldgonemad.com/blogs/?p=20</guid>
		<description><![CDATA[There are many claimed forks of MySQL. But are they? Spin seems a better term. ]]></description>
			<content:encoded><![CDATA[<p>I was reading <a href="http://mtocker.livejournal.com/50931.html">another</a> <a href="http://openlife.cc/blogs/2010/march/map-mysql-forks-and-branches">post</a> comparing the different forks of MySQL (disclaimer: <a href="http://www.mysql.com/" target="_blank">my employer</a>), and again it seemed to me the term &#8220;fork&#8221; is somewhat imprecise. I agree with Morgan Tocker that &#8220;delta&#8221; does not capture these other creatures either &#8211; after all, isn&#8217;t a delta what makes a fork not a copy?</p>
<p><a href="http://en.wikipedia.org/wiki/Fork_(software_development)" target="_blank">Wikipedia</a> cites <a href="http://www.catb.org/~esr/" target="_blank">Eric Raymond</a>&#8217;s definition that <em>&#8220;The most important characteristic of a fork is that it spawns competing projects that cannot later exchange code, splitting the potential developer community&#8221;, </em>but also notes &#8220;However, this is not common present usage&#8221;. Kind of a shame &#8211; at least esr drew a hard line. The definition we&#8217;re left with could include any copy of MySQL with a patch or even a UDF attached to it.</p>
<p>&#8220;Fork&#8221; implies a complete departure. <a href="https://launchpad.net/drizzle" target="_blank">Drizzle</a> is no doubt a fork of MySQL. They took the source, dramatically reworked it, and made something brand new. Can&#8217;t wait to see where it goes. Tracking MySQL development and maintaining a set of additions and enhancements seems to be a different concept.</p>
<p>&#8220;Distribution&#8221; is the OS-derived term that some people prefer, but I&#8217;d like to propose a different one: <a href="http://dev.mysql.com/" target="_blank">MySQL</a> now has several <a href="http://spins.fedoraproject.org/" target="_blank">spins</a>. Quoth Fedora: &#8220;<em>spins are alternate version (sic) of [the software], tailored for various types of users via hand-picked application set or customizations.</em>&#8221;</p>
<p>What&#8217;s the difference? Drizzle has a limited ability to incorporate what the MySQL development team comes up with next, and vice versa. There is much compatibility, but it is likely only going to become less over time, not more. If you are using a &#8220;<a href="http://askmonty.org/wiki/MariaDB" target="_blank">drop-in replacement branch of the MySQL Database Server</a>&#8220;, or a binary that &#8220;<a href="http://www.percona.com/percona-lab.html" target="_blank">adds enhancements to the MySQL server code</a>&#8220;, I should think you are counting on it <em>not</em> being a fork. So what seems like an issue of semantics is really an attempt to give end users a sense of current &amp; future compatibility.</p>
<p>Terminology is important. Comments are welcome.</p>
]]></content:encoded>
			<wfw:commentRss>http://worldgonemad.com/blogs/pantoniades/2010/03/mysql-spins-and-forks/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>In search of the Ubuntu desktop</title>
		<link>http://worldgonemad.com/blogs/pantoniades/2010/03/in-search-of-the-ubuntu-desktop/</link>
		<comments>http://worldgonemad.com/blogs/pantoniades/2010/03/in-search-of-the-ubuntu-desktop/#comments</comments>
		<pubDate>Thu, 11 Mar 2010 01:32:20 +0000</pubDate>
		<dc:creator>pantoniades</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://worldgonemad.com/blogs/?p=17</guid>
		<description><![CDATA[Looking to buy new linux gear.]]></description>
			<content:encoded><![CDATA[<p>Shouldn&#8217;t really be that hard, should it? Ubuntu (current <a href="https://wiki.ubuntu.com/LTS" target="_blank">LTS</a> is fine) on a mini-tower, with the hardware certified and supported.</p>
<p><a title="Dell Linux " href="http://content.dell.com/us/en/enterprise/linux-components.aspx" target="_blank">Dell</a> has a lot to say about linux, but pretty much on the server. You get to the laptops &amp; workstations, and Linux is up there with FreeDOS. I&#8217;m scared to even ask for a quote (which you have to do by email) from <a href="http://www.penguincomputing.com/hardware/linux_workstations" target="_blank">Penguin Computing</a>, because they are really geared toward the <a href="http://www.penguincomputing.com/hardware/linux_workstations/configurator/niveus4200" target="_blank">power workstation</a>.</p>
<p>I don&#8217;t think I&#8217;m so unique: I&#8217;ve had a linux desktop for 10+ years, my employer pays for my main work machine, and I want a second box for home stuff. &#8216;Zat so hard?</p>
]]></content:encoded>
			<wfw:commentRss>http://worldgonemad.com/blogs/pantoniades/2010/03/in-search-of-the-ubuntu-desktop/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Reusing models outside of Rails</title>
		<link>http://worldgonemad.com/blogs/pantoniades/2010/01/reusing-models-outside-of-rails/</link>
		<comments>http://worldgonemad.com/blogs/pantoniades/2010/01/reusing-models-outside-of-rails/#comments</comments>
		<pubDate>Wed, 06 Jan 2010 12:34:17 +0000</pubDate>
		<dc:creator>pantoniades</dc:creator>
				<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://worldgonemad.com/blogs/pantoniades/2010/01/reusing-models-outside-of-rails/</guid>
		<description><![CDATA[Using rails models and activerecord in standalone ruby scripts
]]></description>
			<content:encoded><![CDATA[<p>If you have done a good job of building your rails models, you may find that they are helpful for your non-rails system maintenance and such. They may even be <i>necessary</i> to reuse if you follow the rails model of using activerecord validations (rather that database RI) to preserve the integrity of your data. </p>
<p>Or you may just find yourself rewriting the same code again and again, and want all that good railsiness to make it easier to write and maintain. Personally I find myself in some instance of ./script/console as often as irb just so I can get the activesupport helper methods ( <font face="courier new,courier,monospace">4.days.from_now</font> and such) that many rails developers are surprised to find are not actually a standard part of ruby. </p>
<p>So, the good news is it is easy to reuse rails code outside of rails. </p>
<p>Let&#8217;s say you want to do some data manipulation (reporting, loading, scrubbing, etc) in your rails db, and want to use your models to do it. A few imports in your ruby script gets the necessary environment in place:</p>
<p><font face="courier new,courier,monospace">require &#8216;rubygems&#8217;<br />require &#8216;yaml&#8217;<br />require &#8216;active_record&#8217;<br />require &#8216;logger&#8217;</font></p>
<p>and a few more will load up your models (note: they&#8217;re probably not in the same location as mine, unless you are also working on an app called &#8217;seweb&#8217; in your home dir):</p>
<p><font face="courier new,courier,monospace">PROJECT_HOME = &quot;#{ENV['HOME']}/seweb/&quot;<br />require &quot;#{PROJECT_HOME}/app/models/sales_rep.rb&quot;<br />require &quot;#{PROJECT_HOME}/app/models/organization.rb&quot;<br />require &quot;#{PROJECT_HOME}/app/models/team.rb&quot;</font></p>
<p>Then connect to the appropriate database (note I&#8217;m connecting to the development environment &#8211; can you guess how I&#8217;d connect to &#8216;test&#8217; or &#8216;production&#8217;?), with rails logging enabled:</p>
<p><font face="courier new,courier,monospace">ActiveRecord::Base.logger = Logger.new( STDERR )<br />db_config = YAML::load( File.open(&quot;#{seweb_home}/config/database.yml&quot;))<br />ActiveRecord::Base.establish_connection( db_config[&quot;development&quot;])</font></p>
<p>And you are good! If you are using a transactional database (such as my personal favorite, MySQL with InnoDB), you can make nice transaction wrappers for your work thusly:</p>
<p><font face="courier new,courier,monospace">ActiveRecord::Base.transaction do</font></p>
<p><font face="courier new,courier,monospace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rep = SalesRep.find_or_initialize_by_name( &#8216;Kyllin D. Quota&#8217; )<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; # create the component parts<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if( rep.changed? )<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; rep.organization = Organization.find_or_create_by_name &#8216;APAC&#8217;<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; rep.team = Team.find_or_create_by_name &#8216;Enterprise&#8217;<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; rep.save!<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; end</font></p>
<p><font face="courier new,courier,monospace">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; rescue Exception<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; raise ActiveRecord::Rollback, &quot;Invalid record for #{rep.name}&quot;<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; end</font></p>
<p><font face="courier new,courier,monospace">end</font></p>
<p>Pow. You get your rails sugar, rails validations, rails logging. Are you happy? Why yes, yes you are.</p>
]]></content:encoded>
			<wfw:commentRss>http://worldgonemad.com/blogs/pantoniades/2010/01/reusing-models-outside-of-rails/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gentlemen, Slap your Engines!</title>
		<link>http://worldgonemad.com/blogs/pantoniades/2009/04/gentlemen-slap-your-engines/</link>
		<comments>http://worldgonemad.com/blogs/pantoniades/2009/04/gentlemen-slap-your-engines/#comments</comments>
		<pubDate>Thu, 23 Apr 2009 20:40:21 +0000</pubDate>
		<dc:creator>pantoniades</dc:creator>
				<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://worldgonemad.com/blogs/pantoniades/2009/04/gentlemen-slap-your-engines/</guid>
		<description><![CDATA[Fun with bash scripting and mysqlslap
]]></description>
			<content:encoded><![CDATA[<p>Once again, I was unable to attend all of the sessions I wanted to at this year&#8217;s <a title="MySQL User Conference website" href="http://www.mysqluc.com">User Converence</a>, but I was happy to make it to <a title="UC Bio page" href="http://www.mysqlconf.com/mysql2009/profile/15053">Bob Burgess</a>&#8216; talk on <a title="session abstract" href="http://www.mysqlconf.com/mysql2009/public/schedule/detail/7060">bash scripting with mysql</a>. The slides and examples aren&#8217;t up yet, but when they are (which may be as you read this, check the last link), they would probably also be a great tutorial. </p>
<p>So, I got bore^D^D^D^D inspired later that day to put some of the practices into use, and worked up a script to run mysqlslap in various ways against a server, and then added a couple funcitons to try it out on each storage engine. The script is below in its entirety &#8211; bash scripters, please be kind in your comments. No, I didn&#8217;t write all this just for the pun in the subject. But I&#8217;m not above that.</p>
<p>The result? </p>
<p> <i>Why</i> don&#8217;t I use more BLACKHOLE tables? They are <i>blazing fast</i>! </p>
<p>&nbsp;My results (on my lenovo T61, Fedora 10):</p>
</p>
<p><font face="courier new,courier,monospace">SLAP Base values:<br />&nbsp;50 simultaneous connections ||&nbsp; 10 runs through <br />&nbsp;Writes : 1000, 500 unique (Commit every 500) || Queries: 1000, 200 unique <br />&nbsp;Schema: 4 character columns, 8 numeric with auto-increment PK and 10 secondary indexes<br />For InnoDB: 0.389 Average, 0.299 Min, 0.651 Max<br />For MyISAM: 0.364 Average, 0.355 Min, 0.377 Max<br />For BLACKHOLE: 0.137 Average, 0.124 Min, 0.147 Max<br />For CSV: n/a Average, n/a Min, n/a Max<br />For MEMORY: 0.375 Average, 0.363 Min, 0.444 Max<br />For ARCHIVE: n/a Average, n/a Min, n/a Max<br />For MRG_MYISAM: n/a Average, n/a Min, n/a Max</font></p>
<p>The &quot;n/a&quot; ones are tables that, generally for obvious reasons, couldn&#8217;t do the slap. My error handling needs work. </p>
<p>There are some expected trends that are good to validate &#8211; InnoDB improves with more concurrency (in a relative sense), MEMORY has remarkably little fluxuation in response time, things like that. But the marketing guys really have to capitalize on those BLACKHOLE numbers <img src='http://worldgonemad.com/blogs/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<blockquote><address> <font face="courier new,courier,monospace" size="3">#!/bin/bash</font></address>
<address><font face="courier new,courier,monospace" size="3">shopt -s -o nounset</font></address>
<address><font face="courier new,courier,monospace" size="3">printf &quot;Enter root pwd: &quot;</font></address>
<address><font face="courier new,courier,monospace" size="3">read -s PASSWORD</font></address>
<address><font face="courier new,courier,monospace" size="3"># get the list of active engines from MySQL</font></address>
<address><font face="courier new,courier,monospace" size="3">ENGINES=`mysql -uroot -p$PASSWORD -B -N -e &quot;SELECT ENGINE from ENGINES WHERE SUPPORT&lt;&gt;&#8217;NO&#8217;&quot; INFORMATION_SCHEMA`</font></address>
<address><font face="courier new,courier,monospace" size="3">#for e in $ENGINES; do</font></address>
<address><font face="courier new,courier,monospace" size="3">#&nbsp;&nbsp; &nbsp;printf &quot;\nFound engines: %s&quot; $e</font></address>
<address><font face="courier new,courier,monospace" size="3">#done</font></address>
<address><font face="courier new,courier,monospace" size="3"> </font></address>
<address><font face="courier new,courier,monospace" size="3">printf &quot;\nStarting test at %s \n&quot; `date +%H:%M:%S`</font></address>
<address><font face="courier new,courier,monospace" size="3"># default initial settings</font></address>
<address><font face="courier new,courier,monospace" size="3">ITERATIONS=10</font></address>
<address><font face="courier new,courier,monospace" size="3">CONCURRENCY=50</font></address>
<address><font face="courier new,courier,monospace" size="3">COMMIT=500</font></address>
<address><font face="courier new,courier,monospace" size="3">WRITES=1000</font></address>
<address><font face="courier new,courier,monospace" size="3">let &quot;UNIQUE_WRITES=$WRITES/2&quot;</font></address>
<address><font face="courier new,courier,monospace" size="3">QUERIES=1000</font></address>
<address><font face="courier new,courier,monospace" size="3">let &quot;UNIQUE_QUERIES=$QUERIES/5&quot;</font></address>
<address><font face="courier new,courier,monospace" size="3">LOAD_TYPE=mixed</font></address>
<address><font face="courier new,courier,monospace" size="3">CHARS=4</font></address>
<address><font face="courier new,courier,monospace" size="3">INTS=8</font></address>
<address><font face="courier new,courier,monospace" size="3">INDX=10</font></address>
<address><font face="courier new,courier,monospace" size="3">SLAP=&quot;mysqlslap -u root -p$PASSWORD -h 127.0.0.1 -a -c $CONCURRENCY -i $ITERATIONS &#8211;auto-generate-sql-add-autoincrement &#8211;auto-generate-sql-secondary-indexes=$INDX &#8211;auto-generate-sql-write-number=$WRITES &#8211;auto-generate-sql-unique-write-number=$UNIQUE_WRITES &#8211;auto-generate-sql-unique-query-number=$UNIQUE_QUERIES -x $CHARS&nbsp; -y $INTS &#8211;number-of-queries=$QUERIES &#8211;commit=$COMMIT &#8211;auto-generate-sql-load-type=$LOAD_TYPE &quot;</font></address>
<address><font face="courier new,courier,monospace" size="3">function parse_slap {</font></address>
<address><font face="courier new,courier,monospace" size="3">&nbsp;&nbsp; &nbsp;if [ $# -lt 1 ]; then</font></address>
<address><font face="courier new,courier,monospace" size="3">&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;AVERAGE=&quot;n/a&quot;</font></address>
<address><font face="courier new,courier,monospace" size="3">&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;MINIMUM=&quot;n/a&quot;</font></address>
<address><font face="courier new,courier,monospace" size="3">&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;MAXIMUM=&quot;n/a&quot;</font></address>
<address><font face="courier new,courier,monospace" size="3">&nbsp;&nbsp; &nbsp;else</font></address>
<address><font face="courier new,courier,monospace" size="3">&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;AVERAGE=$1</font></address>
<address><font face="courier new,courier,monospace" size="3">&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;MINIMUM=$2</font></address>
<address><font face="courier new,courier,monospace" size="3">&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;MAXIMUM=$3</font></address>
<address><font face="courier new,courier,monospace" size="3">&nbsp;&nbsp; &nbsp;fi&nbsp;&nbsp; &nbsp;</font></address>
<address><font face="courier new,courier,monospace" size="3">}</font></address>
<address><font face="courier new,courier,monospace" size="3">function run_slap {</font></address>
<address><font face="courier new,courier,monospace" size="3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf &quot;%s\n&quot; &quot;SLAP $1:&quot;</font></address>
<address><font face="courier new,courier,monospace" size="3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf &quot;%s\n&quot; &quot; $CONCURRENCY simultaneous connections ||&nbsp; $ITERATIONS runs through &quot;</font></address>
<address><font face="courier new,courier,monospace" size="3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf &quot;%s\n&quot; &quot; Writes : $WRITES, $UNIQUE_WRITES unique (Commit every $COMMIT) || Queries: $QUERIES, $UNIQUE_QUERIES unique &quot;</font></address>
<address><font face="courier new,courier,monospace" size="3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf &quot;%s\n&quot; &quot; Schema: $CHARS character columns, $INTS numeric with auto-increment PK and $INDX secondary indexes&quot;</font></address>
<address><font face="courier new,courier,monospace" size="3">for engine in $ENGINES </font></address>
<address><font face="courier new,courier,monospace" size="3">&nbsp;&nbsp; &nbsp;do</font></address>
<address><font face="courier new,courier,monospace" size="3">&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;SLAPPED=`$SLAP -e $engine 2&gt;/dev/null | cut -c48-53 | tr -d \n`</font></address>
<address><font face=<br />
"courier new,courier,monospace" size="3">&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;echo $SLAPPED &gt;&gt; $0.txt</font></address>
<address><font face="courier new,courier,monospace" size="3">&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;parse_slap $SLAPPED</font></address>
<address><font face="courier new,courier,monospace" size="3">&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;printf &quot;For %s: %s Average, %s Min, %s Max\n&quot; $engine $AVERAGE $MINIMUM $MAXIMUM </font></address>
<address><font face="courier new,courier,monospace" size="3">&nbsp;&nbsp; &nbsp;done</font></address>
<address><font face="courier new,courier,monospace" size="3">}</font></address>
<address><font face="courier new,courier,monospace" size="3">run_slap &quot;Base values&quot;</font></address>
<address><font face="courier new,courier,monospace" size="3">echo</font></address>
<address><font face="courier new,courier,monospace" size="3">let WRITES=WRITES*10</font></address>
<address><font face="courier new,courier,monospace" size="3">let QUERIES=QUERIES*100</font></address>
<address><font face="courier new,courier,monospace" size="3">let UNIQUE_QUERIES=QUERIES/4</font></address>
<address><font face="courier new,courier,monospace" size="3">run_slap &quot;more reads&quot;</font></address>
<address><font face="courier new,courier,monospace" size="3">echo </font></address>
<address><font face="courier new,courier,monospace" size="3">UNIQUE_QUERIES=$QUERIES</font></address>
<address><font face="courier new,courier,monospace" size="3">UNIQUE_WRITES=$WRITES</font></address>
<address><font face="courier new,courier,monospace" size="3">let COMMIT=COMMIT*3</font></address>
<address><font face="courier new,courier,monospace" size="3">run_slap &quot;More unique reads and writes&quot;</font></address>
<address><font face="courier new,courier,monospace" size="3">echo</font></address>
<address><font face="courier new,courier,monospace" size="3">let INTS=INTS*5</font></address>
<address><font face="courier new,courier,monospace" size="3">let CHARS=CHARS*5</font></address>
<address><font face="courier new,courier,monospace" size="3">let INDX=INTS+CHARS-1</font></address>
<address><font face="courier new,courier,monospace" size="3">run_slap &quot;wide indexed tables&quot;</font></address>
<address><font face="courier new,courier,monospace" size="3">echo</font></address>
<address><font face="courier new,courier,monospace" size="3">let CONCURRENCY=CONCURRENCY*10</font></address>
<address><font face="courier new,courier,monospace" size="3">run_slap &quot;massive concurrency&quot;</font></address>
</blockquote>
<p></p>
<p></p>
]]></content:encoded>
			<wfw:commentRss>http://worldgonemad.com/blogs/pantoniades/2009/04/gentlemen-slap-your-engines/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Is the 64bit desktop really still so far off?</title>
		<link>http://worldgonemad.com/blogs/pantoniades/2009/02/is-the-64bit-desktop-really-still-so-far-off/</link>
		<comments>http://worldgonemad.com/blogs/pantoniades/2009/02/is-the-64bit-desktop-really-still-so-far-off/#comments</comments>
		<pubDate>Wed, 04 Feb 2009 13:20:24 +0000</pubDate>
		<dc:creator>pantoniades</dc:creator>
				<category><![CDATA[Open Source]]></category>

		<guid isPermaLink="false">http://worldgonemad.com/blogs/pantoniades/2009/02/is-the-64bit-desktop-really-still-so-far-off/</guid>
		<description><![CDATA[I try to run fedora x86_64, and am stymied.
]]></description>
			<content:encoded><![CDATA[<p>Lately I find myself running quite a few large compiles and virtual machines, so I tricked out my Thinkpad T61 with a full 4 GB of RAM. Anyone with a more than a casual acquaintance with 32-bit operating systems and/or the powers of 2 will quickly see the problem I faced &#8211; on next boot Suse proudly reported I had a full 3.8G of RAM available. </p>
<p>&nbsp;Now, to a man of my age that means that there is more memory laying fallow on this machine than I have had in most of the machines I&#8217;ve worked on throughout my career, and that&#8217;s just a shame. So I decided to dual-boot and try out a 64-bit distribution. </p>
<p>&nbsp;At this point let&#8217;s reflect &#8211; when was the last time you actually worked on a 32bit desktop? Can you buy a laptop with a true 32-bit processor in it? Shouldn&#8217;t this charade have ended long ago? </p>
<p>&nbsp;Well, I tried Fedora 10 x86_64, and I can tell you the charade has not ended. There is hope: For your browsing pleasure, Adobe now has an alpha available of their <a title="Adobe" href="http://labs.adobe.com/technologies/flashplayer10/">64 bit flash plugin for linux</a>, and my own employer just this month released <a title="Latest J2SE" href="http://java.sun.com/javase/downloads/index.jsp">update 6 of the JDK/JRE</a> featuring for the first time a 64 bit Java plugin for mozilla. That&#8217;s right, folks, 64 bit linux will soon have cutting edge technology like Flash and Java applets in production-ready form! </p>
<p>Now for the bad news. Webex does not like the 64-bit Java environment (though admittedly I have yet to try the actual release, I have been using the final beta), which is a showstopper for me. Skype is still in 32-bit form, and while it works fine for chat &amp; voice I never did get video to do anything but crash it. And I&#8217;ve found some really bad (freeze-your-laptop bad) bugs with the nvidia driver and NetworkManager &#8211; more and worse than this laptop has seen in a lot of distro-hopping.&nbsp;</p>
<p>&nbsp;The more cynical may say that my experience of instability could be chalked up to the fact that I&#8217;m not acutally comparing apples to apples &#8211; I went from OpenSuse 11.0 to Fedora 10 as well. I will say OpenSuse is the most stable distro I&#8217;ve used, but I don&#8217;t think Fedora is so lacking to explain the experience. I&#8217;m temped to re-install the whole box OpenSuse 11.1 in both flavors of bitness&#8230; but I&#8217;ll probably just go to 11.1 x86. </p>
<p>&nbsp;I will still feel wasteful and depressed every time I run `free`, though. </p>
</p>
<p></p>
<p></p>
]]></content:encoded>
			<wfw:commentRss>http://worldgonemad.com/blogs/pantoniades/2009/02/is-the-64bit-desktop-really-still-so-far-off/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Suse, I can&#8217;t turn you loose</title>
		<link>http://worldgonemad.com/blogs/pantoniades/2008/09/suse-i-cant-turn-you-loose/</link>
		<comments>http://worldgonemad.com/blogs/pantoniades/2008/09/suse-i-cant-turn-you-loose/#comments</comments>
		<pubDate>Fri, 05 Sep 2008 21:42:39 +0000</pubDate>
		<dc:creator>pantoniades</dc:creator>
				<category><![CDATA[Open Source]]></category>

		<guid isPermaLink="false">http://worldgonemad.com/blogs/pantoniades/2008/09/suse-i-cant-turn-you-loose/</guid>
		<description><![CDATA[I'm still on OpenSuse 11.
]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been running OpenSuse for <a href="http://blogs.sun.com/philip/entry/suse_11_so_far_so" title="My last Suse post">a while now</a>, and there are some genuinely annoying things about it: </p>
<p><u>Sudo</u><br />&#8216;Defaults targetpw&#8217; (e.g. require root&#8217;s password to do anything as root) is not a good idea. Having the installer recommend I make my password also be root&#8217;s password compounds the stupidity. </p>
<p><u>Path</u><br />So sudo is already backwards, now I also have to remember what is in /sbin/ or /usr/sbin/ because they&#8217;re not in my path? Regular users don&#8217;t use ifconfig? </p>
<p>Ok, so I should have reconfigured both of these things (edited one file to change each) on day one and gotten these complaints out of the way. But I have this idea that you should try the <i>spirit</i> of a distro (after all, what else is there?). I do have bigger gripes, namely:</p>
<p><u>lsusb</u><br />I don&#8217;t have it. /proc/ doesn&#8217;t have what I&#8217;m looking for. Wtf?</p>
<p><u>RPM</u><br />I&#8217;ve been to the mountaintop. I&#8217;ve seen aptitude. I&#8217;ve abandoned fedora more than once in mire of dependencies and conflicting repositories. No, it hasn&#8217;t happened yet here, but I&#8217;m still wary. <br />Yet Suse is just So Stable. Somehow it is able to just do what I need it to when I need it to, and the packages are updated <i>just often enough</i>. I ditched <a href="http://www.ubuntu.com/products/whatisubuntu/804features/" title="Ubuntu 8.04 features">Hardy</a>, after all, for the lack of crucial features on my T61, and Suse was able to deliver all of them. <br />And it still does have Just Enough. I&#8217;m worried by what will happen when I really need to work to get something to work (for the reasons listed above)&#8230; but I haven&#8217;t yet. </p>
<p>Thanks Suse.</p>
]]></content:encoded>
			<wfw:commentRss>http://worldgonemad.com/blogs/pantoniades/2008/09/suse-i-cant-turn-you-loose/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Suse 11: So far, so good</title>
		<link>http://worldgonemad.com/blogs/pantoniades/2008/06/suse-11-so-far-so-good/</link>
		<comments>http://worldgonemad.com/blogs/pantoniades/2008/06/suse-11-so-far-so-good/#comments</comments>
		<pubDate>Fri, 20 Jun 2008 19:31:52 +0000</pubDate>
		<dc:creator>pantoniades</dc:creator>
				<category><![CDATA[Open Source]]></category>

		<guid isPermaLink="false">http://worldgonemad.com/blogs/pantoniades/2008/06/suse-11-so-far-so-good/</guid>
		<description><![CDATA[My thinkpad T61 is now a Suse 11 box.&#160;
]]></description>
			<content:encoded><![CDATA[<p>After 4 good releases, Ubuntu let me down with 8.04. Maybe it was the timing &#8211; I upgraded my laptop as part of restoring it from a hard drive crash a few weeks ago &#8211; but isn&#8217;t a brand new disk a good time to change your OS version?&nbsp;</p>
<p>&nbsp;On the upside, Hardy was the first OS I&#8217;ve installed where I opted to keep the default wallpaper (the bird is purty). And I&#8217;m pretty sure suspend (nVidia driver and all) was working better than previously, which is always good news.&nbsp;</p>
<p>But I no longer had use of the VGA port for cloned or extended desktop, and I was unable to find a solution. That&#8217;s a dealbreaker for anyone who needs to do frequent presentations (or, for that matter, uses their laptop as a primary workstation and has a &gt; 15&quot; monitor). </p>
<p>Worse, vpnc was, at best, squirrelly. I do quite a lot over VPN, and we still have two of them (Sun &amp; MySQL). My sunray solves half of that problem for me, but until that mobile sunray comes out&#8230; </p>
<p>So I was on the market. One of my <a href="http://lenz.homelinux.org/" title="Lenz">coworkers</a> mentioned to me that he was already using the RC of Suse 11 on his laptop &#8211; same model as mine, and with the same list of concerns &#8211; and so I thought I&#8217;d give it a shot. </p>
<p>There are a lot of good things to be said for Suse 11. A lot of the notebook stuff works better &#8211; suspend/resume, monitor changes, network switching &#8211; I hold my breath a lot less than i used to. NetworkManager recognized my WLAN card and integrated it in seamlessly (no more wvdial for me). For a dot-zero release it is also remarkably stable, and I even took the plunge and went with KDE4. </p>
<p>My only complaints thus far have been in the UI department &#8211; and those may be taken with a grain of salt coming from an Ubuntu/GNOME person.&nbsp; I was unable to actually create a new VPN connection from the NetworkManager applet (though once configured, it did show up). I&#8217;ve had some confusion over what to do in YaST and what is part of desktop management &#8211; the former changes between an external and laptop screen, the later can change resolutions. I can&#8217;t seem to tell Suse to conserve power more when the laptop is unplugged, or allow me to use an external monitor with the laptop closed.&nbsp;</p>
<p>And then Suse has different ideas about the root password than I do. The default setting when creating an initial user at install time was &quot;Use same password for root&quot; &#8211; I am guessing this is a compramise for Suse&#8217;s default sudo setting of requiring the root password rather than the user&#8217;s, which I&#8217;ve always thought odd. But Suse 11 did gently prod me into using enigmail and was very thorough about gpg key management, so they still get high marks on security from me. </p>
<p>So I&#8217;m sticking with Suse 11 for a while, though I might go over to GNOME depending on how the KDE4 thing shakes out over the next few weeks. </p>
]]></content:encoded>
			<wfw:commentRss>http://worldgonemad.com/blogs/pantoniades/2008/06/suse-11-so-far-so-good/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>
