<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-12913358</id><updated>2011-11-02T00:01:59.841-07:00</updated><title type='text'>PRNG: Pseudo Random Noise Generator</title><subtitle type='html'>Just making noise.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://prng.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://prng.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Greg Stein</name><uri>http://www.blogger.com/profile/02475017701402788075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_n9NbgRy5yZI/SKX8IjtohGI/AAAAAAAAA0Q/0Kne7j009Mc/s1600-R/2003729424_a0ed4e7331.jpg%3Fv%3D0'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>46</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-12913358.post-576894943046334624</id><published>2011-10-31T14:06:00.000-07:00</published><updated>2011-10-31T14:06:52.011-07:00</updated><title type='text'>Installing Zabbix on Mac OS (Leopard)</title><content type='html'>My friend Sam Ruby dabbles in a lot of technology, and he tends to do writeups on &lt;a href="http://intertwingly.net/blog/"&gt;his blog&lt;/a&gt; as he experiments with the stuff. I figured to take a page from his book, and share my own issues/troubles getting &lt;a href="http://www.zabbix.com/"&gt;Zabbix&lt;/a&gt; up and running on my MacBook (running Leopard).&lt;br /&gt;&lt;br /&gt;I grabbed the 1.8.8 tarball and unpacked it. For my scenario, I needed the server, the agent, and the frontend (but not the proxy). For simplicity in testing, and because I don't need to monitor bunches o' boxes, I decided to go with SQLite for the database. Zabbix uses the standard "configure/make/make install" pattern, so no hassle so far.&lt;br /&gt;&lt;br /&gt;Burp. The compilation failed. Investigating, I found that I needed to apply the patch from &lt;a href="https://support.zabbix.com/browse/ZBX-4085"&gt;ZBX-4085&lt;/a&gt;. The build completed, so started to look at the frontend.&lt;br /&gt;&lt;br /&gt;The Frontend is written in PHP, which is natively available (along with Apache) on my laptop. With some configuration, I got the frontend to load in my browser. There is a click-through GPL license (huh?) and then a really awesome page that checks your setup. I quickly realized that the builtin PHP was not going to work. Sigh.&lt;br /&gt;&lt;br /&gt;I've got MacPorts installed on my laptop, so I just continued with that. Homebrew is all the new rage with the kids, but it doesn't have builtin recipes for PHP. There are a few out on the 'net, but I really didn't want to monkey with that stuff.&lt;br /&gt;&lt;br /&gt;Lots of packages were needed: &lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;php5&lt;/span&gt;, &lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;php5-gd&lt;/span&gt;, &lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;php5-mbstring&lt;/span&gt;, &lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;php5-sockets&lt;/span&gt;, &lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;php5-sqlite3&lt;/span&gt;, &lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;sqlite3&lt;/span&gt;. A hojillion dependencies were installed, including another copy of Apache (sigh).&lt;br /&gt;&lt;br /&gt;Reloading the setup page, it continued to say SQLite wasn't installed. Looking at the frontend source, it was using a function named &lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;sqlite3_open()&lt;/span&gt;. With some investigation, I found &lt;a href="http://lists.macosforge.org/pipermail/macports-users/2009-January/013658.html"&gt;an email describing the SQLite interfaces for PHP&lt;/a&gt;. Zabbix was using an unmaintained version. Rather than monkeying with that, I just edited the code to use the &lt;a href="http://php.net/manual/en/book.sqlite3.php"&gt;preferred PHP SQLite interface&lt;/a&gt;, and filed issue &lt;a href="https://support.zabbix.com/browse/ZBX-4289"&gt;ZBX-4289&lt;/a&gt; to push my changes upstream.&lt;br /&gt;&lt;br /&gt;Finally, I needed to tweak&amp;nbsp;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;/opt/local/etc/php5/php.ini&lt;/span&gt; for the recommended Zabbix settings (after copying &lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;php.ini-development&lt;/span&gt; to &lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;php.ini&lt;/span&gt;). This included some timezone settings, timeouts, upload sizes, etc. The Zabbix setup page is quite good about guiding you here.&lt;br /&gt;&lt;br /&gt;So I created my initial SQLite &lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;.db&lt;/span&gt; file based on the instructions from the manual and pointed the Zabbix configuration page at it (taking a moment to realize it wanted the &lt;b&gt;pathname&lt;/b&gt; put into the &lt;b&gt;database&lt;/b&gt; field of the form). The test connection worked and then Zabbix saved the configuration file into &lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;frontends/php/conf/zabbix.conf.php&lt;/span&gt;. It looks like there is a "download" option for that configuration file, which I presume appears when the &lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;conf&lt;/span&gt; directory is not writeable. The Apache server (running from MacPorts now, using the MacPorts PHP) was running as myself, so it had no problem writing that configuration file.&lt;br /&gt;&lt;br /&gt;Next up: wrestling with the zabbix-server. The first annoying problem was that you cannot give it a configuration file in the current directory. It fails trying to lock "." for some dumb reason. Solution: pass an absolute path to the custom configuration file (the default is in &lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;/etc&lt;/span&gt; or somesuch, which I didn't want to monkey with). Getting the server running was very frustrating because it spawns multiple processes which communicate using shared memory. It kept failing with errors about not being able to allocate the shared memory segments. After some research, I found that Mac OS defaults to some pretty small limits. Given that I wasn't about to reconfigure my kernel (using sysctl and some recipes I found on the web), I went to rejigger all the various cache sizes in the &lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;zabbix_server.conf&lt;/span&gt; file.&lt;br /&gt;&lt;br /&gt;It ended up that I had to drop all the sizes to their minimum 128k setting:&amp;nbsp;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;CacheSize&lt;/span&gt;,&amp;nbsp;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;HistoryCacheSize&lt;/span&gt;,&amp;nbsp;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;TrendCacheSize&lt;/span&gt;,&amp;nbsp;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;HistoryTextCacheSize&lt;/span&gt;. Each were set to 131072. Finally, the server started. Whew.&lt;br /&gt;&lt;br /&gt;When I returned to the frontend to "Finish" the installation and bring up the console... it hung. No response from the server. Huge sigh. With a bunch of investigation, I found that something was holding an &lt;b&gt;exclusive lock&lt;/b&gt; on the whole damned SQLite file. Nothing else could write to it (and it seems the frontend likes to test its writability by creating/dropping a dummy table).&lt;br /&gt;&lt;br /&gt;Fuck. Time to scrap the whole damned "simple SQLite" idea. Fine... I've used MySQL before, so I went with that. Back to MacPorts to install MySQL, the server, and the PHP driver for MySQL. Then I fired it up, created a "zabbix" user, loaded in all the tables, and zapped the &lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;zabbix.conf.php&lt;/span&gt; file to trigger reconfiguration (after noting to restart Apache to pick up the PHP changes).&lt;br /&gt;&lt;br /&gt;The frontend looked happy now, so I tweaked the server's configuration file for MySQL and restarted the server. No workee. Damn. Forgot to reconfigure the server using &lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;--with-mysql=/opt/local/lib/mysql5/bin/mysql_config&lt;/span&gt;. After reconfiguring, the link failed with unsatisfied references to &lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;iconv()&lt;/span&gt;, &lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;iconv_open()&lt;/span&gt;, and &lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;iconv_close()&lt;/span&gt;. The MySQL interface in the server needs these for some UTF-8 conversions. The builtin Mac OS libiconv should work, but my MacPorts copy of libiconv was interfering, and these functions are named &lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;libiconv()&lt;/span&gt;, &lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;libiconv_open()&lt;/span&gt;, and &lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;libiconv_close()&lt;/span&gt;. My patience was ending, so I was not about to delve into autoconf bullshit and conditional compilation and all that. I simply edited&amp;nbsp;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;src/libs/zbxcommon/str.c&lt;/span&gt; to call the &lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;libiconv*&lt;/span&gt; versions of the functions. The compile and link succeeded, and I re-installed the newly built server.&lt;br /&gt;&lt;br /&gt;Yay! The server restarted, and the website loads up with a nifty little default console.&lt;br /&gt;&lt;br /&gt;After a day to get this sucker installed, now I gotta start figuring out how to &lt;b&gt;use&lt;/b&gt; it. Oh, joy.&lt;br /&gt;&lt;br /&gt;I hope this post will help some future person treading these waters. Good luck!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;ps. I may have missed some steps or packages to install or whatever. YMMV, but I think that I've got most of it down. Zabbix is supposed to be some hotness, and I &lt;b&gt;do&lt;/b&gt; like its custom agent capability. But hoo-wee. Not a simple package to bring up (I hope it will be easier on a recent Ubuntu, than it was on my creaky Leopard install).&lt;/i&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12913358-576894943046334624?l=prng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prng.blogspot.com/feeds/576894943046334624/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12913358&amp;postID=576894943046334624' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/576894943046334624'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/576894943046334624'/><link rel='alternate' type='text/html' href='http://prng.blogspot.com/2011/10/installing-zabbix-on-mac-os-leopard.html' title='Installing Zabbix on Mac OS (Leopard)'/><author><name>Greg Stein</name><uri>http://www.blogger.com/profile/02475017701402788075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_n9NbgRy5yZI/SKX8IjtohGI/AAAAAAAAA0Q/0Kne7j009Mc/s1600-R/2003729424_a0ed4e7331.jpg%3Fv%3D0'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12913358.post-437187423344657831</id><published>2011-08-15T09:54:00.000-07:00</published><updated>2011-08-15T09:54:41.818-07:00</updated><title type='text'>Blast from the past: removing the GIL</title><content type='html'>Way back in 1996, I created a patch to remove the &lt;a href="http://en.wikipedia.org/wiki/Global_Interpreter_Lock"&gt;GIL&lt;/a&gt; from Python's interpreter (version 1.4!). Dave Beazley just picked up the patch and tore it apart, and writing &lt;a href="http://dabeaz.blogspot.com/2011/08/inside-look-at-gil-removal-patch-of.html"&gt;a fantastic blog post&lt;/a&gt;. It is quite nostalgic for me, from back in the day when I was working at Microsoft on their electronic commerce efforts.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;[ I &lt;a href="http://dabeaz.blogspot.com/2011/08/inside-look-at-gil-removal-patch-of.html?showComment=1313426575375#c6890423699055362381"&gt;commented&lt;/a&gt; on Dave's post; it provides some context that you may also be interested in reading ]&lt;/span&gt;&lt;/i&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/12913358-437187423344657831?l=prng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prng.blogspot.com/feeds/437187423344657831/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12913358&amp;postID=437187423344657831' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/437187423344657831'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/437187423344657831'/><link rel='alternate' type='text/html' href='http://prng.blogspot.com/2011/08/blast-from-past-removing-gil.html' title='Blast from the past: removing the GIL'/><author><name>Greg Stein</name><uri>http://www.blogger.com/profile/02475017701402788075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_n9NbgRy5yZI/SKX8IjtohGI/AAAAAAAAA0Q/0Kne7j009Mc/s1600-R/2003729424_a0ed4e7331.jpg%3Fv%3D0'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12913358.post-1362160008263985216</id><published>2010-11-29T13:50:00.000-08:00</published><updated>2010-11-30T03:28:31.313-08:00</updated><title type='text'>Open Languages are Not Required</title><content type='html'>I just posted again to &lt;a href="http://blogs.computerworlduk.com/apache-asserts/"&gt;Apache Asserts&lt;/a&gt; on Computerworld UK: &lt;a href="http://goo.gl/yk33n"&gt;Open Languages are Not Required&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;And please note that I'm speaking primarily to enterprise (internal) software developers, who are the vast majority of developers on the planet. They shouldn't really have to worry about the language that they use for their development. Having an open language is critical for us FLOSS developers, but that is an entirely separate discussion. &lt;span class="Apple-style-span" style="font-size: x-small;"&gt;(hat tip to &lt;a href="http://webmink.com/"&gt;webmink&lt;/a&gt;, to clarify my point here)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;Note: the publish date is wrong (says last month); dunno what's up with that.&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update&lt;/b&gt;: corrected link after the publish date was fixed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12913358-1362160008263985216?l=prng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prng.blogspot.com/feeds/1362160008263985216/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12913358&amp;postID=1362160008263985216' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/1362160008263985216'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/1362160008263985216'/><link rel='alternate' type='text/html' href='http://prng.blogspot.com/2010/11/open-languages-are-not-required.html' title='Open Languages are Not Required'/><author><name>Greg Stein</name><uri>http://www.blogger.com/profile/02475017701402788075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_n9NbgRy5yZI/SKX8IjtohGI/AAAAAAAAA0Q/0Kne7j009Mc/s1600-R/2003729424_a0ed4e7331.jpg%3Fv%3D0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12913358.post-6710992550966233983</id><published>2010-10-29T13:08:00.000-07:00</published><updated>2010-10-29T13:08:36.904-07:00</updated><title type='text'>Are You An Open Source Friend?</title><content type='html'>The &lt;a href="http://www.apache.org/"&gt;Apache Software Foundation&lt;/a&gt; was invited to find some people for &lt;a href="http://www.computerworlduk.com/"&gt;Computerworld UK&lt;/a&gt; to write for a new blog named "&lt;a href="http://blogs.computerworlduk.com/apache-asserts/"&gt;Apache Asserts&lt;/a&gt;". Myself and a few others were selected to post our thoughts on open source, the enterprise, and whatever else we may find interesting.&lt;br /&gt;&lt;br /&gt;My first post has been published... &lt;a href="http://bit.ly/bjwSP3"&gt;check it out&lt;/a&gt;!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12913358-6710992550966233983?l=prng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prng.blogspot.com/feeds/6710992550966233983/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12913358&amp;postID=6710992550966233983' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/6710992550966233983'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/6710992550966233983'/><link rel='alternate' type='text/html' href='http://prng.blogspot.com/2010/10/are-you-open-source-friend.html' title='Are You An Open Source Friend?'/><author><name>Greg Stein</name><uri>http://www.blogger.com/profile/02475017701402788075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_n9NbgRy5yZI/SKX8IjtohGI/AAAAAAAAA0Q/0Kne7j009Mc/s1600-R/2003729424_a0ed4e7331.jpg%3Fv%3D0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12913358.post-6155710024268432948</id><published>2010-08-15T21:39:00.000-07:00</published><updated>2010-08-15T21:39:47.272-07:00</updated><title type='text'>Android uses Java? Um... no</title><content type='html'>I've seen a lot of misinformation over the weekend, talking about the &lt;a href="http://news.google.com/news?pz=1&amp;amp;ned=us&amp;amp;hl=en&amp;amp;q=oracle+google+lawsuit"&gt;Oracle/Google lawsuit&lt;/a&gt;. Many of these blog posts and article talks about how "Android uses Java". Heh. That simply isn't true.&lt;br /&gt;&lt;br /&gt;Android applications are written using the Java &lt;b&gt;programming language&lt;/b&gt;. True. But those applications&lt;a href="http://www.betaversion.org/~stefano/linotype/news/110/"&gt; run on the Dalvik virtual machine&lt;/a&gt;. Not the Java virtual machine. Source code is owned/copyright by the author and is entirely unbound from any intellectual property concerns based around the syntax/grammar of that language.&lt;br /&gt;&lt;br /&gt;Class libraries? Not Java either. Much of the core libraries come from &lt;a href="http://harmony.apache.org/"&gt;Apache Harmony&lt;/a&gt;, and the rest are libraries that Google wrote. Given that Apache was never provided &lt;a href="http://www.apache.org/jcp/sunopenletter.html"&gt;access to the Java Compatibility Kit&lt;/a&gt;, Harmony is not labeled as "Java-certified". Also note that Harmony is a clean-room implementation of the Java class libraries.&lt;br /&gt;&lt;br /&gt;So, people: stop saying that Android "uses Java". It doesn't.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;(obviously, some of these various components may trample on Oracle's patents; I have no idea, and that is an entirely separate question)&lt;/span&gt;&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12913358-6155710024268432948?l=prng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prng.blogspot.com/feeds/6155710024268432948/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12913358&amp;postID=6155710024268432948' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/6155710024268432948'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/6155710024268432948'/><link rel='alternate' type='text/html' href='http://prng.blogspot.com/2010/08/android-uses-java-um-no.html' title='Android uses Java? Um... no'/><author><name>Greg Stein</name><uri>http://www.blogger.com/profile/02475017701402788075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_n9NbgRy5yZI/SKX8IjtohGI/AAAAAAAAA0Q/0Kne7j009Mc/s1600-R/2003729424_a0ed4e7331.jpg%3Fv%3D0'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12913358.post-681242944008945299</id><published>2010-08-04T23:46:00.000-07:00</published><updated>2010-08-04T23:46:45.887-07:00</updated><title type='text'>Outcomes</title><content type='html'>Nights out with a friend can be quite interesting. &lt;b&gt;Especially&lt;/b&gt; if they are single and "looking". I've found there are generally three possible outcomes with these nights out:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;b&gt;The Cock-Block&lt;/b&gt;.&lt;br /&gt;Your friend is trying to hook up or otherwise get especially friendly with somebody, but you monopolize the "target's" attention in some way to distract them from your friend's intent. Obviously, this outcome is "poor", unless you're some kind of dickhead that doesn't want your friend departing early with the target. Quite selfish, to try and keep them out with you. Of course, there are all sorts of minor rules variants here, that are rather crass: e.g if you're both interested in the target, who steps forward, who holds back? It's simply best to avoid this scenario because it never turns out well.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;The Wingman&lt;/b&gt;.&lt;br /&gt;Oh yah. We all know this one... the friend who props up the other and makes them ever more desirable. Talk up their strengths, ensure that the person-of-interest gets excited to know more about your friend. This is the ideal outcome, especially if they make some kind of lasting connection.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;The Bus-Tosser&lt;/b&gt;.&lt;br /&gt;This isn't nearly as bad as the Cock-Block, but your friend isn't going to be all that happy with you. At least for a short while. This is where you &lt;i&gt;think&lt;/i&gt; your friend is interested in somebody, so you move into Wingman mode. Provide lots of opportunity for the two to talk and hang out, provide some good commentary, etc. Like any good Wingman would do. But afterwards, you find out your friend was &lt;b&gt;not&lt;/b&gt; interested. At all. This is the "thanks for throwing me under the bus" maneuver, putting your friend into harms way. Especially if the purported target &lt;b&gt;is&lt;/b&gt; interested and giving undue attention to your friend. ... Thankfully, in the long run, this provides lots of laughable material for how you sucked as a myopic Wingman.&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;I think the best answer all around is to simply go out and have a great time with your friend. Anything that will involve a possible third person can fall into a poor outcome, or simply distract from an awesome evening with a friend.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12913358-681242944008945299?l=prng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prng.blogspot.com/feeds/681242944008945299/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12913358&amp;postID=681242944008945299' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/681242944008945299'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/681242944008945299'/><link rel='alternate' type='text/html' href='http://prng.blogspot.com/2010/08/outcomes.html' title='Outcomes'/><author><name>Greg Stein</name><uri>http://www.blogger.com/profile/02475017701402788075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_n9NbgRy5yZI/SKX8IjtohGI/AAAAAAAAA0Q/0Kne7j009Mc/s1600-R/2003729424_a0ed4e7331.jpg%3Fv%3D0'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12913358.post-7254605211318194368</id><published>2010-05-19T11:53:00.000-07:00</published><updated>2010-05-19T11:53:08.935-07:00</updated><title type='text'>svn stash</title><content type='html'>This is the third of (at least four) posts in my miniseries about Subversion's next-generation working copy library. See &lt;a href="http://prng.blogspot.com/2010/04/what-is-subversions-wc-ng.html"&gt;the introduction&lt;/a&gt; and &lt;a href="http://prng.blogspot.com/2010/04/wc-ng-changes.html"&gt;what we're doing to fix things&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Once we have this fancy new code, it will provide a stable and robust base for building &lt;b&gt;new&lt;/b&gt; features. The DVCS systems have done a great job exploring new areas and needs of version control users. One feature in particular is called &lt;i&gt;stashing&lt;/i&gt; or &lt;i&gt;shelving&lt;/i&gt; (see "&lt;a href="http://www.kernel.org/pub/software/scm/git/docs/git-stash.html"&gt;git stash&lt;/a&gt;" and "&lt;a href="http://mercurial.selenic.com/wiki/ShelveExtension"&gt;hg shelve&lt;/a&gt;").&lt;br /&gt;&lt;br /&gt;For those not familiar with the stash concept: consider the scenario where you've been doing some work, and a high-priority bug arrives, needing to be fixed right away. Classically, a Subversion user would check out a fresh working copy, fix the bug, perform the commit, and go back to their work in the original working copy. Instead, when using stash, it takes all of your current work and sets it aside, leaving you with an unchanged working copy, ready for your&amp;nbsp;bug-fix&amp;nbsp;work. After your commit, you retrieve the changes that were stashed. The presumption here, of course, is that stashing is a much faster and simpler operation than setting up a new working copy.&lt;br /&gt;&lt;br /&gt;We'll be able implement this feature quite easily using the WC-NG datastore. It will take just a few operations:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;preserve all metadata about local changes&lt;/li&gt;&lt;li&gt;place a copy of each locally-modified into pristine storage, recording their SHA-1 key with the stashed metadata&lt;/li&gt;&lt;li&gt;revert all local changes&lt;/li&gt;&lt;/ol&gt;Since the metadata is recorded in a single SQLite database, step 1 is "simply" some copying of those changes off to a separate set of tables. The pristine storage is a generalized mapping of SHA-1 keys to file contents that we'll be using for storing more things (such as merge sources, pending conflict resolution), so it can easily hold stashed items. And step 3 has been in Subversion for a long time :-)&lt;br /&gt;&lt;br /&gt;Recovering the changes from the stash is effectively running a big "svn merge" operation. The merge is required because you may have made other changes to the working copy (your bug-fix) and/or updated to the latest revision.&lt;br /&gt;&lt;br /&gt;Other features, such as multiple stashes, management of those changes, applying subsets, and whatnot would be added, too. The feature set has not (yet) been designed, so I have no idea what is required or how we would present this to our users. We'll definitely be looking at git and hg as we explore the needs around stashing/shelving.&lt;br /&gt;&lt;br /&gt;"&lt;b&gt;When?&lt;/b&gt;" is your next question, I'm sure :-) ... Well, we're releasing WC-NG in Subversion 1.7. That will probably happen this fall. We want to get those changes out the door since that will mark 18 months of development time. WC-NG is a feature in itself, and we want to get it into people's hands without further delays [waiting for additional features]. After that, I'm interested in adding stash support (and a "checkpoint" feature (described in my next post)). So let's say stashing will appear in 1.8 which should be released around this time next year.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12913358-7254605211318194368?l=prng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prng.blogspot.com/feeds/7254605211318194368/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12913358&amp;postID=7254605211318194368' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/7254605211318194368'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/7254605211318194368'/><link rel='alternate' type='text/html' href='http://prng.blogspot.com/2010/05/svn-stash.html' title='svn stash'/><author><name>Greg Stein</name><uri>http://www.blogger.com/profile/02475017701402788075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_n9NbgRy5yZI/SKX8IjtohGI/AAAAAAAAA0Q/0Kne7j009Mc/s1600-R/2003729424_a0ed4e7331.jpg%3Fv%3D0'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12913358.post-4577714428728956369</id><published>2010-05-05T07:07:00.000-07:00</published><updated>2010-05-05T07:07:10.399-07:00</updated><title type='text'>Heading to Berlin!</title><content type='html'>In June, in Berlin, &lt;a href="http://www.elegosoft.com/"&gt;elego&lt;/a&gt; is hosting a "&lt;a href="http://www.elegosoft.com/en/company/start/svnday.html"&gt;Subversion Day&lt;/a&gt;", along with workshops and a hackathon/sprint. And with great thanks to elego, I will be able to attend and contribute to the event. I'll be in Berlin from June 9th through the 14th.&lt;br /&gt;&lt;br /&gt;As always, I'm looking forward to meeting up with my fellow Subversion developers, but there are quite a few others in Berlin that I want to spend time with. Torsten, Valerie, Erik -- I'm looking at you! Julian: road trip from Münster? Who else am I missing? Torsten says that he'll arrange for one of the regular Apache-people dinners. Want to join?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12913358-4577714428728956369?l=prng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prng.blogspot.com/feeds/4577714428728956369/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12913358&amp;postID=4577714428728956369' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/4577714428728956369'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/4577714428728956369'/><link rel='alternate' type='text/html' href='http://prng.blogspot.com/2010/05/heading-to-berlin.html' title='Heading to Berlin!'/><author><name>Greg Stein</name><uri>http://www.blogger.com/profile/02475017701402788075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_n9NbgRy5yZI/SKX8IjtohGI/AAAAAAAAA0Q/0Kne7j009Mc/s1600-R/2003729424_a0ed4e7331.jpg%3Fv%3D0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12913358.post-3867878998807192903</id><published>2010-04-26T18:19:00.000-07:00</published><updated>2010-04-26T18:19:57.160-07:00</updated><title type='text'>WC-NG Changes</title><content type='html'>In my &lt;a href="http://prng.blogspot.com/2010/04/what-is-subversions-wc-ng.html"&gt;last post&lt;/a&gt;, I described how &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;libsvn_wc&lt;/span&gt; had become brittle and hard to manage. The WC-NG process is working to solve that problem, and though we're not yet done, I believe we're on the right path.&lt;br /&gt;&lt;br /&gt;The basic question that needed answering is, "&lt;i&gt;where did we go wrong?&lt;/i&gt;" While version control is a hard problem (especially if you version directories!), it does not inherently lead to a brittle library. Somewhere, we had gone wrong in the design, the data model, or simply the implementation.&lt;br /&gt;&lt;br /&gt;Before I had started working on the problem (almost) two years ago, one of the Subversion developers (Erik Hülsmann, I believe) laid out his thoughts for a next-generation library. In those notes, he postulated on what I now call the &lt;b&gt;Three-Tree Model&lt;/b&gt;:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;the tree you checked out&lt;/li&gt;&lt;li&gt;the above tree, plus structural changes (add, delete, move, copy)&lt;/li&gt;&lt;li&gt;the above tree, plus content changes (file edits, property edits)&lt;/li&gt;&lt;/ul&gt;Any working copy operation generally affects one of these trees. &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;svn&amp;nbsp;update&lt;/span&gt; and &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;svn&amp;nbsp;switch&lt;/span&gt; work on the first tree. &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;svn&amp;nbsp;add&lt;/span&gt; and &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;svn&amp;nbsp;merge&lt;/span&gt; modify the second tree. Your editor and &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;svn&amp;nbsp;propset&lt;/span&gt; affect the last tree.&lt;br /&gt;&lt;br /&gt;This was the &lt;b&gt;key&lt;/b&gt; insight. In our "wc-1" implementation, the &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;svn_wc_entry_t&lt;/span&gt; structure blended all three trees together. Making a change to that structure could have been operating on any of the three trees depending on its flags. Its &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;checksum&lt;/span&gt; field could correspond to a checked-out file, or a locally-copied file. To determine, you had to look at the &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;schedule&lt;/span&gt; field and the&amp;nbsp;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;copied&lt;/span&gt; field. And hell will rain upon you, should you mess up the flags or forget to check one.&lt;br /&gt;&lt;br /&gt;For WC-NG, we have built a new data storage system with an API designed around this three-tree model. This has isolated our storage mechanism behind a solid encapsulation (wc-1 code had too much knowledge of the old "entries" storage model). Operations are now understandable: "copy nodes in the restructuring tree" instead of "set &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;entry-&amp;gt;schedule&lt;/span&gt;".&lt;br /&gt;&lt;br /&gt;This new storage subsystem could produce an entire post on its own. It is radically different from the prior model (a single &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;.svn&lt;/span&gt; subdir at the root of the working copy and SQLite-based storage). This is causing huge challenges in upgrades/migrations to the new format, and backwards compatibility for our classic APIs.&lt;br /&gt;&lt;br /&gt;Another radical change was our move to using absolute paths to refer to items. The prior model used an "access baton" which implied a relative directory, along with a path relative to that baton. These relative batons and paths caused enormous problems because it led to the question, "relative to &lt;i&gt;what&lt;/i&gt;?" In most cases, the answer was "the operating system's current working directory," which is a terrible basis for a deterministic API. In switching to absolute paths, this rendered the access batons obsolete. Since they were a core part of the public API for &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;libsvn_wc&lt;/span&gt; (not to mention the widespread internal changes!), this has had a huge impact on the API and its users (such as Subversion's &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;libsvn_client&lt;/span&gt; library and its command-line tools).&lt;br /&gt;&lt;br /&gt;These two items (data model and absolute paths) are the core changes in WC-NG. The ripple effect from just these two items is &lt;b&gt;immense&lt;/b&gt;. We will need to rewrite almost every one of the 40,000 lines of code in the library. And given our incremental approach, many of those will be changed &lt;i&gt;multiple&lt;/i&gt; times. We're a solid year into this (although we saw downtime last fall due to our &lt;a href="http://www.apache.org/foundation/press/pr_2009_11_04.html"&gt;move to the Apache Software Foundation&lt;/a&gt;), and we probably have another several months of basic grunt work ahead of us. Stabilization and testing will put our 1.7 release into late summer or possibly this fall.&lt;br /&gt;&lt;br /&gt;I could really go on and on about this stuff, but I hope this post provides some basic background on the WC-NG efforts. Please feel free to post any questions (I have no idea what aspects you may want to hear more about!), and I'll work on answering them.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12913358-3867878998807192903?l=prng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prng.blogspot.com/feeds/3867878998807192903/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12913358&amp;postID=3867878998807192903' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/3867878998807192903'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/3867878998807192903'/><link rel='alternate' type='text/html' href='http://prng.blogspot.com/2010/04/wc-ng-changes.html' title='WC-NG Changes'/><author><name>Greg Stein</name><uri>http://www.blogger.com/profile/02475017701402788075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_n9NbgRy5yZI/SKX8IjtohGI/AAAAAAAAA0Q/0Kne7j009Mc/s1600-R/2003729424_a0ed4e7331.jpg%3Fv%3D0'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12913358.post-4977805313134798826</id><published>2010-04-13T08:25:00.000-07:00</published><updated>2010-04-13T08:25:03.265-07:00</updated><title type='text'>What is Subversion's WC-NG?</title><content type='html'>When I started working on the &lt;a href="http://subversion.apache.org/"&gt;Subversion&lt;/a&gt; project (again) back in August 2008, I wanted to do something that was interesting, technically challenging, and important to the project. For many years, the developers had been complaining about the "working copy" (WC) library. This library was one of the first that we worked on back in June 2000, and had grown (ahem) "organically" over the following eight years. By "organically", I mean it had become a rat's nest of brittle code. Hard to work with, not fun to modify, and difficult as hell to build new features reliably. Over such a lengthy time frame, most actively-developed code tends to end up like this, unless you work real hard against it.&lt;br /&gt;&lt;br /&gt;In 2000, we didn't even know all the requirements for the library. Nobody had ever done versioning for directories. Just files. In fact, I think that Subversion may (still) be the only version control system (VCS) out there which treats a directory as a first-class object. It is a very difficult problem, along with being able to work with only pieces of your repository (which leads to "mixed-revision" working copies; something that distributed VCS systems like Git and Mercurial don't have to deal with, much to their enjoyment!).&lt;br /&gt;&lt;br /&gt;So we started the library and figured things out as we went. Then it was too slow, so we added stuff to make it work faster. Then we added more features. And revamped some stuff to make it go faster again. More features. And even more.&lt;br /&gt;&lt;br /&gt;By this time, the library had become brittle. Adding a feature usually broke something else. There were too many considerations, and internal layering/hiding was not present. Everything could, and did, manipulate a public structure (called &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;svn_wc_entry_t&lt;/span&gt;). If you didn't do it right, then something broke. And there was some very deep and hard to understand relationships in the handling of data in that structure. Forward progress was being stifled.&lt;br /&gt;&lt;br /&gt;The developers had been talking about fixing the WC library for years, but most of them had other priorities. I had no such baggage, and the WC problem had everything I was looking for: interesting problems to fix, challenging to accomplish, and very important to Subversion's future. Some people had already written up some thoughts on a next generation of the WC library, calling it "WC-NG". After I started digging in, and some other developers joined, the project took on the WC-NG title in earnest and in day-to-day use.&lt;br /&gt;&lt;br /&gt;WC-NG is Subversion's name for an entirely new working copy library. We have a new design, and we're incrementally rebuilding the library towards this new design. Due to stringent backwards-compatibility requirements, and the complexity of the system, we cannot simply "rewrite from scratch". This effort is the current focus of our upcoming 1.7 release, and it will provide a Subversion client that will be vastly &lt;b&gt;faster&lt;/b&gt;, much more &lt;b&gt;robust&lt;/b&gt; and &lt;b&gt;capable&lt;/b&gt;, and provide a &lt;b&gt;solid foundation&lt;/b&gt; for new features.&lt;br /&gt;&lt;br /&gt;In future posts, I'll provide some more detail about WC-NG's design (and how the original WC was broken). I also want to talk about a couple of these new features that will be implemented upon this new foundation. Stay tuned!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12913358-4977805313134798826?l=prng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prng.blogspot.com/feeds/4977805313134798826/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12913358&amp;postID=4977805313134798826' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/4977805313134798826'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/4977805313134798826'/><link rel='alternate' type='text/html' href='http://prng.blogspot.com/2010/04/what-is-subversions-wc-ng.html' title='What is Subversion&apos;s WC-NG?'/><author><name>Greg Stein</name><uri>http://www.blogger.com/profile/02475017701402788075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_n9NbgRy5yZI/SKX8IjtohGI/AAAAAAAAA0Q/0Kne7j009Mc/s1600-R/2003729424_a0ed4e7331.jpg%3Fv%3D0'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12913358.post-4267256338863239102</id><published>2010-03-29T17:40:00.000-07:00</published><updated>2010-03-29T17:40:14.709-07:00</updated><title type='text'>Version Control</title><content type='html'>Last week, I spent some time in NYC with friends of mine talking about Subversion. The conversion focused around the long-term vision and roadmap. I'll post more on that soon, along with some specific ideas on how I'd like to build some features that other version control (VC) systems have demonstrated as useful and demanded by users.&lt;br /&gt;&lt;br /&gt;For this post, I wanted to share a &lt;a href="http://martinfowler.com/bliki/VersionControlTools.html"&gt;discussion document&lt;/a&gt; written by &lt;a href="http://www.martinfowler.com/"&gt;Martin Fowler&lt;/a&gt;. This is one of the best, level-headed comparisons between Subversion, Git, and Mercurial. I believe these are the Big Three VC systems that the industry will be using over the next decade, and to see a useful discussion, absent of rhetoric, is very encouraging.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12913358-4267256338863239102?l=prng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prng.blogspot.com/feeds/4267256338863239102/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12913358&amp;postID=4267256338863239102' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/4267256338863239102'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/4267256338863239102'/><link rel='alternate' type='text/html' href='http://prng.blogspot.com/2010/03/version-control.html' title='Version Control'/><author><name>Greg Stein</name><uri>http://www.blogger.com/profile/02475017701402788075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_n9NbgRy5yZI/SKX8IjtohGI/AAAAAAAAA0Q/0Kne7j009Mc/s1600-R/2003729424_a0ed4e7331.jpg%3Fv%3D0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12913358.post-4314765079032058982</id><published>2010-03-15T04:01:00.000-07:00</published><updated>2010-03-15T04:06:30.339-07:00</updated><title type='text'>Are Insurers the real Bad Guys?</title><content type='html'>"In 2009, the largest 14 insurers had profits of roughly $9 billion; that approached 0.4 percent of total health spending of $2.472 trillion. This hardly explains high health costs." --&amp;nbsp;&lt;a href="http://www.washingtonpost.com/wp-dyn/content/article/2010/03/14/AR2010031401389.html"&gt;Robert J. Samuelson, Washington Post&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;yet...&lt;br /&gt;"the five largest health-insurance companies racked up combined profits of $12.2 billion, up 56 percent over 2008" --&amp;nbsp;&lt;a href="http://seattletimes.nwsource.com/html/nationworld/2011050573_healthprofits12.html"&gt;Noam N. Levey, The Seattle Times&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Which is right? But then again... &lt;b&gt;who cares&lt;/b&gt;? Either value is small compared to the total costs (given by Samuelson, and &lt;a href="http://en.wikipedia.org/wiki/Health_care_in_the_United_States#Health_care_spending"&gt;Wikipedia&lt;/a&gt;). So why ostracize and penalize insurers? They're just the middlemen. What am I missing?&lt;br /&gt;&lt;br /&gt;My belief is that a lack of cost/value/benefit feedback is the basic problem. There is no pricing-pushback from the consumer, so the prices escalate without control. (you ever see the prices for toothbrush, toothpaste, or slippers in a hospital stay?) We've seen similar problems with higher education where financial aid covered "any" gap between ability to pay, and the amount requested, so the schools simply requested more.&lt;br /&gt;&lt;br /&gt;So why all the rhetoric against insurers? Removing all of their profit will reduce overall health care purchasing by less than one percent. It appears they are a scapegoat, to be blamed in lieu of proper analysis and approaches at reducing health care costs.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12913358-4314765079032058982?l=prng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prng.blogspot.com/feeds/4314765079032058982/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12913358&amp;postID=4314765079032058982' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/4314765079032058982'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/4314765079032058982'/><link rel='alternate' type='text/html' href='http://prng.blogspot.com/2010/03/are-insurers-real-bad-guys.html' title='Are Insurers the real Bad Guys?'/><author><name>Greg Stein</name><uri>http://www.blogger.com/profile/02475017701402788075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_n9NbgRy5yZI/SKX8IjtohGI/AAAAAAAAA0Q/0Kne7j009Mc/s1600-R/2003729424_a0ed4e7331.jpg%3Fv%3D0'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12913358.post-3834571942372331466</id><published>2010-01-25T13:58:00.000-08:00</published><updated>2010-01-25T13:58:12.701-08:00</updated><title type='text'>Columbia Code Camp, and my Subversion talk</title><content type='html'>I'm going to be at the &lt;a href="http://columbiacodecamp.com/"&gt;Columbia Code Camp&lt;/a&gt; this-coming Saturday (January 30th). If you're in the Columbia, SC area, then come find me. Join in the Code Camp, or we can meet in the evening to share some beers.&lt;br /&gt;&lt;br /&gt;I'll be talking about the rewrite of the working copy library in &lt;a href="http://subversion.apache.org/"&gt;Subversion&lt;/a&gt;&amp;nbsp;(see the "Rebuilding Subversion's Working Copy Library" on the&amp;nbsp;&lt;a href="http://columbiacodecamp.com/Session"&gt;sessions page&lt;/a&gt;).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12913358-3834571942372331466?l=prng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prng.blogspot.com/feeds/3834571942372331466/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12913358&amp;postID=3834571942372331466' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/3834571942372331466'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/3834571942372331466'/><link rel='alternate' type='text/html' href='http://prng.blogspot.com/2010/01/columbia-code-camp-and-my-subversion.html' title='Columbia Code Camp, and my Subversion talk'/><author><name>Greg Stein</name><uri>http://www.blogger.com/profile/02475017701402788075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_n9NbgRy5yZI/SKX8IjtohGI/AAAAAAAAA0Q/0Kne7j009Mc/s1600-R/2003729424_a0ed4e7331.jpg%3Fv%3D0'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12913358.post-5933946421785924496</id><published>2010-01-06T14:26:00.000-08:00</published><updated>2010-01-06T14:26:08.144-08:00</updated><title type='text'>100k apps ... so what?</title><content type='html'>Why do people keep saying that the iPhone App Store has an "advantage" over others because it has 100,000 applications?&lt;br /&gt;&lt;br /&gt;Would it still have an advantage at 90,000? 50,000? How many does it &lt;b&gt;really&lt;/b&gt; take?&lt;br /&gt;&lt;br /&gt;A month or so ago, Apple wiped out all 1000 applications from a single vendor. Did anybody miss those applications? Probably not. So how many other thousands could be wiped out without taking a hit to its success?&lt;br /&gt;&lt;br /&gt;Google stopped putting the "pages indexed" on its front page many years ago because it realized a key principle: the value is in the &lt;b&gt;results&lt;/b&gt;, not the &lt;b&gt;quantity&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;The Android Market is definitely behind -- it is missing some nice applications. But not many! All the apps that I used to have on my iPhone are &lt;i&gt;now available&lt;/i&gt; on my Android phone. Thus, Apple's App Store has &lt;b&gt;zero&lt;/b&gt; "advantage" for me. How many other people are like me? Or conversely, how many people want and use all of those 100k applications?&lt;br /&gt;&lt;br /&gt;I think the conversation should be rephrased into "do the apps exist, that a typical consumer wants?" rather than focusing on a mere count. &lt;b&gt;That&lt;/b&gt; is the success of any app store.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12913358-5933946421785924496?l=prng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prng.blogspot.com/feeds/5933946421785924496/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12913358&amp;postID=5933946421785924496' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/5933946421785924496'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/5933946421785924496'/><link rel='alternate' type='text/html' href='http://prng.blogspot.com/2010/01/100k-apps-so-what.html' title='100k apps ... so what?'/><author><name>Greg Stein</name><uri>http://www.blogger.com/profile/02475017701402788075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_n9NbgRy5yZI/SKX8IjtohGI/AAAAAAAAA0Q/0Kne7j009Mc/s1600-R/2003729424_a0ed4e7331.jpg%3Fv%3D0'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12913358.post-505473322496788645</id><published>2009-12-13T14:40:00.000-08:00</published><updated>2009-12-13T14:51:11.551-08:00</updated><title type='text'>How to Screw Your (Open Source Software) Customers</title><content type='html'>I've been reading with interest (and amusement) a lot of the brouhaha around Oracle's acquisition of Sun, with specific relation to Sun's ownership of the MySQL database. The first salvo came from&lt;a href="http://keionline.org/ec-mysql"&gt; Stallman's concerns&lt;/a&gt; about MySQL being licensed under the GPL (ha!!) (also see Matt Asay's &lt;a href="http://news.cnet.com/8301-13505_3-10379280-16.html"&gt;review of that event&lt;/a&gt;). Next up was Monty's &lt;a href="http://monty-says.blogspot.com/2009/10/importance-of-license-model-of-mysql-or.html"&gt;discussion of MySQL's licensing&lt;/a&gt;, followed by yesterday's &lt;a href="http://monty-says.blogspot.com/2009/12/help-saving-mysql.html"&gt;request to "save MySQL"&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;My opinion: the GPL has screwed customers worldwide.&lt;br /&gt;&lt;br /&gt;All those customers who believed they were buying an Open Source database were misled. They bought a proprietary database, plain and simple. The GPL version was not available to them because they needed a license that didn't not require them to GPL their own software. They needed a version that could be combined with their own proprietary software.&lt;br /&gt;&lt;br /&gt;Monty is entirely correct -- Oracle can totally screw them. It could raise licensing prices or even discontinue that licensing. It can cease development and third-parties could not fork and continue development under the MySQL name (it's trademarked).&lt;br /&gt;&lt;br /&gt;But the fault lies in MySQL AB's choice of a business model. They chose to develop the software under GPL and require customers to pay for a less-restrictive license. Now that the software has moved beyond their control, their customers are subject to the whim's of Oracle. I'm making no predictions of Oracle's behavior, but there is no doubt who holds all the cards.&lt;br /&gt;&lt;br /&gt;Much of the problem lies in the chosen business model (GPL with pay-for-permissive), but the &lt;i&gt;enabler&lt;/i&gt; here is the GPL license. It gives undue control to the copyright owner. When that owner changes hands... the customers lose.&lt;br /&gt;&lt;br /&gt;Contrast with a permissive license, such as the &lt;a href="http://www.apache.org/licenses/"&gt;Apache License&lt;/a&gt;. Absolutely none of this discussion would have happened. Everybody would have rights to use the software, in exactly the same way. Customers could not market under the (MySQL) trademark, but they wouldn't care -- the database is a component in a larger system they are delivering to their own customers. There would not be a need to discuss the internal pieces, though they could still say "this produce includes MySQL(tm) software" and the trademark owner could not do anything about it.&lt;br /&gt;&lt;br /&gt;If you are developing Open Source software for use by your customers, and you &lt;b&gt;care&lt;/b&gt; about those customers, then choose a permissive license. You have no idea who will own the copyrights in the future (shoot... you might be &lt;i&gt;trying&lt;/i&gt; for an acquisition!).&lt;br /&gt;&lt;br /&gt;Sure, a permissive license will prevent this kind of business model, but we've now seen the dangers of the model.&lt;br /&gt;&lt;br /&gt;Find a better model rather than hanging your customers out to dry.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;Update&lt;/i&gt;&lt;/b&gt;: PJ has written a &lt;a href="http://www.groklaw.net/article.php?story=20091208104422384"&gt;great article about this topic&lt;/a&gt;&amp;nbsp;over at Groklaw&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12913358-505473322496788645?l=prng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prng.blogspot.com/feeds/505473322496788645/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12913358&amp;postID=505473322496788645' title='16 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/505473322496788645'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/505473322496788645'/><link rel='alternate' type='text/html' href='http://prng.blogspot.com/2009/12/how-to-screw-your-open-source-software.html' title='How to Screw Your (Open Source Software) Customers'/><author><name>Greg Stein</name><uri>http://www.blogger.com/profile/02475017701402788075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_n9NbgRy5yZI/SKX8IjtohGI/AAAAAAAAA0Q/0Kne7j009Mc/s1600-R/2003729424_a0ed4e7331.jpg%3Fv%3D0'/></author><thr:total>16</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12913358.post-6186870523710799461</id><published>2009-10-26T12:02:00.000-07:00</published><updated>2009-10-26T12:02:47.692-07:00</updated><title type='text'>SubConf and ApacheCon</title><content type='html'>I'm about to head to the airport, leaving for Munich, Germany. &lt;a href="http://www.subconf.de/"&gt;SubConf&lt;/a&gt; is happening there this week. Last year, I gave a keynote; this year, I'm not giving any talks, but simply attending to work with the other Subversion committers. &lt;a href="http://www.collab.net/"&gt;CollabNet&lt;/a&gt;, &lt;a href="http://www.elego.de/"&gt;elego&lt;/a&gt;, and &lt;a href="http://www.wandisco.com/"&gt;WANdisco&lt;/a&gt; have all pitched in to make my trip possible (thanks, guys!). Their businesses are built on Subversion, and getting committers together is a great way to make Subversion better, and grow their business.&lt;br /&gt;&lt;br /&gt;I guess that I don't post enough about my hacking here, but Subversion has been occupying all my coding over the past year+. I'm working on rebuilding its "working copy library" -- the library that manages all those ".svn" subdirectories you see when using Subversion. There are several other people in the community that are working on this change, too. It is a huge amount of work, but will make Subversion much, &lt;b&gt;much&lt;/b&gt; faster. The new library will appear in Subversion 1.7, which should be released early next year.&lt;br /&gt;&lt;br /&gt;After SubConf, then I'm flying off to San Francisco. Going to see a bunch of people over the weekend, bar crawl on Halloween, and then spend next week at &lt;a href="http://us.apachecon.com/c/acus2009/"&gt;ApacheCon&lt;/a&gt; in Oakland. This is going to be a big event, as we're celebrating the ten year anniversary of the Apache Software Foundation. Huge milestone!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12913358-6186870523710799461?l=prng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prng.blogspot.com/feeds/6186870523710799461/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12913358&amp;postID=6186870523710799461' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/6186870523710799461'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/6186870523710799461'/><link rel='alternate' type='text/html' href='http://prng.blogspot.com/2009/10/subconf-and-apachecon.html' title='SubConf and ApacheCon'/><author><name>Greg Stein</name><uri>http://www.blogger.com/profile/02475017701402788075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_n9NbgRy5yZI/SKX8IjtohGI/AAAAAAAAA0Q/0Kne7j009Mc/s1600-R/2003729424_a0ed4e7331.jpg%3Fv%3D0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12913358.post-5145097205354901813</id><published>2009-10-23T15:56:00.000-07:00</published><updated>2009-10-23T15:56:21.468-07:00</updated><title type='text'>Posting about the Xbox again</title><content type='html'>For a couple years, I posted quite regularly to &lt;a href="http://xboxgamer.blogspot.com/"&gt;my Xbox blog&lt;/a&gt;. Then... nothing for pretty much the past three years.&lt;br /&gt;&lt;br /&gt;Well. I've got my Xbox plugged in again. I've got the time. And I've been playing.&lt;br /&gt;&lt;br /&gt;... so I started posting again. &lt;a href="http://xboxgamer.blogspot.com/"&gt;Go check it out&lt;/a&gt;, if you're a gamer.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12913358-5145097205354901813?l=prng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prng.blogspot.com/feeds/5145097205354901813/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12913358&amp;postID=5145097205354901813' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/5145097205354901813'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/5145097205354901813'/><link rel='alternate' type='text/html' href='http://prng.blogspot.com/2009/10/posting-about-xbox-again.html' title='Posting about the Xbox again'/><author><name>Greg Stein</name><uri>http://www.blogger.com/profile/02475017701402788075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_n9NbgRy5yZI/SKX8IjtohGI/AAAAAAAAA0Q/0Kne7j009Mc/s1600-R/2003729424_a0ed4e7331.jpg%3Fv%3D0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12913358.post-3283398396673274316</id><published>2009-09-14T08:14:00.000-07:00</published><updated>2009-09-14T08:25:34.061-07:00</updated><title type='text'>OpenBSD and (oops!) NO threads</title><content type='html'>Wow.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I just found out that OpenBSD only has user-space threads.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;User. Space.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This came up because stdout doesn't work quite right, apparently. My friend says that OpenBSD sets it to non-blocking. In general, non-blocking means "try to write to &lt;descriptor&gt;, and what isn't written... try it later." But &lt;b&gt;every&lt;/b&gt; program I've ever seen assumes stdout is blocking, so in the OpenBSD environment the unwritten data will just get dropped on the floor. Answer: build as an unthreaded application so stdout will work appropriately. Are you kidding?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;How can an operating system claim to be Modern, yet lack something as basic as kernel threads?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Insanity.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12913358-3283398396673274316?l=prng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prng.blogspot.com/feeds/3283398396673274316/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12913358&amp;postID=3283398396673274316' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/3283398396673274316'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/3283398396673274316'/><link rel='alternate' type='text/html' href='http://prng.blogspot.com/2009/09/openbsd-and-oops-no-threads.html' title='OpenBSD and (oops!) NO threads'/><author><name>Greg Stein</name><uri>http://www.blogger.com/profile/02475017701402788075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_n9NbgRy5yZI/SKX8IjtohGI/AAAAAAAAA0Q/0Kne7j009Mc/s1600-R/2003729424_a0ed4e7331.jpg%3Fv%3D0'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12913358.post-1367237545135282130</id><published>2009-08-29T10:05:00.000-07:00</published><updated>2009-08-29T10:13:46.213-07:00</updated><title type='text'>Google Books</title><content type='html'>There is an interesting furor that has been building over the past six months about the Google settlement with authors/publishers, which gives them the rights to digitize and make available books on the web. Then we have the Open Content Alliance that is "against" this process. They complain that it is giving Google some kind of monopoly over online books.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Google went through a long lawsuit and then paid a settlement to receive those rights. Why is the OCA is complaining? Why don't they just pay the same license? Why don't they just set up their own online book system?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Pah. That would be too easy. Instead, they want to complain and drag back the one company who is trying to advance online works.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;They should step up, not hold back.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12913358-1367237545135282130?l=prng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prng.blogspot.com/feeds/1367237545135282130/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12913358&amp;postID=1367237545135282130' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/1367237545135282130'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/1367237545135282130'/><link rel='alternate' type='text/html' href='http://prng.blogspot.com/2009/08/google-books.html' title='Google Books'/><author><name>Greg Stein</name><uri>http://www.blogger.com/profile/02475017701402788075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_n9NbgRy5yZI/SKX8IjtohGI/AAAAAAAAA0Q/0Kne7j009Mc/s1600-R/2003729424_a0ed4e7331.jpg%3Fv%3D0'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12913358.post-5913211634518797697</id><published>2009-08-05T05:30:00.000-07:00</published><updated>2009-08-05T05:51:11.259-07:00</updated><title type='text'>I Don't Believe in Obamacare</title><content type='html'>For a while now, I've been having issues with the idea of "Big Government" and it taking part in the health industry. There are lots of problems with health in the United States, but government bureaucracy is never a solution.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Consider the simple economic question of "how do we pay for this?" The answer has been various taxes on different entities. But that does not &lt;i&gt;create value&lt;/i&gt;, it merely &lt;i&gt;redistributes &lt;/i&gt;it. And any process of redistribution has overhead costs, and experience further tells us that government is quite inefficient doing this.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In short, we're simply talking about a productivity hit. Where is the &lt;i&gt;additional value&lt;/i&gt;?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;At a &lt;a href="http://www.foxnews.com/politics/2009/08/03/audience-shouts-sebelius-specter-health-care-town-hall-philadelphia/"&gt;town hall meeting in Philadelphia&lt;/a&gt;, a woman had this to say:&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;&lt;i&gt;I look at this health care plan and I see nothing that is about health or about care. What I see is a bureaucratic nightmare, senator. Medicaid is broke, Medicare is broke, Social Security is broke and you want us to believe that a government that can't even run a cash for clunkers program is going to run one-seventh of our U.S. economy? No sir, no.&lt;/i&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;She sums it up quite well. Our government has shown that it does not run programs well. The health industry is a &lt;b&gt;huge &lt;/b&gt;part of our economy. I certainly do not trust it with the government.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I believe much of the problem in the health industry is in the supply chain. Huge markups exist at all points along the chain, and those costs are passed along to the insurance companies (not people!). Further, these supply chains and the resulting use and treatments are opaque, and (thus) resistant to careful analysis.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Many years ago, when I was not employed and had no health insurance, I was going to be billed $1500 by a hospital for a treatment. When the doctor found that I was uninsured, it was dropped to $1200. What does that tell us? There are costs in the chain of treatment that exist &lt;b&gt;specifically &lt;/b&gt;to be paid by insurers. Rooting out inefficiencies like this would go a long ways to improving our health system today.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12913358-5913211634518797697?l=prng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prng.blogspot.com/feeds/5913211634518797697/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12913358&amp;postID=5913211634518797697' title='13 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/5913211634518797697'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/5913211634518797697'/><link rel='alternate' type='text/html' href='http://prng.blogspot.com/2009/08/i-dont-believe-in-obamacare.html' title='I Don&apos;t Believe in Obamacare'/><author><name>Greg Stein</name><uri>http://www.blogger.com/profile/02475017701402788075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_n9NbgRy5yZI/SKX8IjtohGI/AAAAAAAAA0Q/0Kne7j009Mc/s1600-R/2003729424_a0ed4e7331.jpg%3Fv%3D0'/></author><thr:total>13</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12913358.post-1076488111559898571</id><published>2009-06-23T11:24:00.000-07:00</published><updated>2009-06-23T11:55:41.722-07:00</updated><title type='text'>The Baen Free Library</title><content type='html'>&lt;div&gt;A couple years ago, I was stranded at home with a broken ankle. Since I had just purchased my loft, and was only staying there a couple days a week (the rest of the time at a crashpad near work), I had no cable TV. Shoot... not even a TV. No internet either -- I was "borrowing" connectivity from a neighbor, though it was a crappy connection.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;How to pass the time?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I figured reading a book would be good, but I certainly wasn't capable of getting myself to a bookstore. Then I recalled the &lt;a href="http://www.baen.com/library/"&gt;Baen Free Library&lt;/a&gt;. I'd run into it, in some story about how publishing free content can actually &lt;b&gt;help &lt;/b&gt;your business. Eric Flint wrote a page about why they are giving away books for free. The man &lt;b&gt;gets it&lt;/b&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So... off I went. Through the crappy connection, I was able to get several books downloaded, and settled in to read them. One of those books was &lt;a href="http://www.webscription.net/p-379-1632.aspx"&gt;1632&lt;/a&gt;, a story about a West Virginian town picked up, in whole, and thrown back in time and relocated to Germany. It is the first in a long series by Eric Flint. And it is &lt;i&gt;really, really good&lt;/i&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;And this is exactly why I say that Jim Baen gets it. After reading all the free books in the series, I went on to &lt;b&gt;purchase &lt;/b&gt;another eight books or so. Baen Books made money where they otherwise would not have.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I have recently returned to the B.F.L. in a quest for books for my Kindle 2, which I got back in March. Yes, they offer their books in Kindle format. Lately, I've been reading the books from &lt;a href="http://en.wikipedia.org/wiki/Belisarius_series"&gt;The Belisarious Series&lt;/a&gt;. The first four are available for free in the B.F.L., and the last two are free on &lt;a href="http://baencd.thefifthimperium.com/15-WhentheTideRisesCD/WhentheTideRisesCD/"&gt;Baen's Fifth Imperium&lt;/a&gt; website.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I'll end with a note that the B.F.L. is housed on &lt;a href="http://www.webscription.net/"&gt;webscription.net&lt;/a&gt;, which sells quite large number of books, and all available in Kindle format. There are even some books that &lt;i&gt;Amazon&lt;/i&gt; doesn't provide in Kindle format (like the excellent &lt;a href="http://en.wikipedia.org/wiki/Paladin_of_Shadows"&gt;Paladin of Shadows&lt;/a&gt; series by John Ringo).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;[&lt;/span&gt;&lt;/i&gt;&lt;b&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Update&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;: Eric Flint wrote that web page, not Jim]&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12913358-1076488111559898571?l=prng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prng.blogspot.com/feeds/1076488111559898571/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12913358&amp;postID=1076488111559898571' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/1076488111559898571'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/1076488111559898571'/><link rel='alternate' type='text/html' href='http://prng.blogspot.com/2009/06/baen-free-library.html' title='The Baen Free Library'/><author><name>Greg Stein</name><uri>http://www.blogger.com/profile/02475017701402788075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_n9NbgRy5yZI/SKX8IjtohGI/AAAAAAAAA0Q/0Kne7j009Mc/s1600-R/2003729424_a0ed4e7331.jpg%3Fv%3D0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12913358.post-3008573687321488212</id><published>2009-06-19T18:59:00.000-07:00</published><updated>2009-06-19T19:06:27.001-07:00</updated><title type='text'>My Bacon Number</title><content type='html'>No, not the tasty pork product.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The &lt;i&gt;actor&lt;/i&gt;...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I've just discovered that &lt;a href="http://www.imdb.com/name/nm0000696/"&gt;Wil Wheaton&lt;/a&gt; has a &lt;a href="http://en.wikipedia.org/wiki/Six_Degrees_of_Kevin_Bacon"&gt;Bacon Number&lt;/a&gt; of &lt;b&gt;One&lt;/b&gt;, after appearing with him in &lt;a href="http://www.imdb.com/title/tt0096094/"&gt;She's Having a Baby&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Back in 2004, I played poker with Wil after his &lt;a href="http://www.apachecon.com/html/session-popup.html/e=MjAwNC9VUw?id=1145"&gt;keynote speech at ApacheCon&lt;/a&gt; in Vegas.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Thus... my Bacon Number is &lt;b&gt;Two&lt;/b&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12913358-3008573687321488212?l=prng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prng.blogspot.com/feeds/3008573687321488212/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12913358&amp;postID=3008573687321488212' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/3008573687321488212'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/3008573687321488212'/><link rel='alternate' type='text/html' href='http://prng.blogspot.com/2009/06/my-bacon-number.html' title='My Bacon Number'/><author><name>Greg Stein</name><uri>http://www.blogger.com/profile/02475017701402788075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_n9NbgRy5yZI/SKX8IjtohGI/AAAAAAAAA0Q/0Kne7j009Mc/s1600-R/2003729424_a0ed4e7331.jpg%3Fv%3D0'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12913358.post-5329921328586421166</id><published>2009-05-13T04:11:00.000-07:00</published><updated>2009-05-13T04:32:19.629-07:00</updated><title type='text'>Modern Day Racism</title><content type='html'>I &lt;a href="http://twitter.com/gstein/status/1783329251"&gt;twittered&lt;/a&gt; a pointer to &lt;a href="http://www.foxnews.com/story/0,2933,519965,00.html"&gt;a story about "Buy Black"&lt;/a&gt;, and noted that it is just racism under a different label. Twitter is not a very good outlet for really discussing something, though.&lt;br /&gt;&lt;br /&gt;I think the key question here is, "should business ownership diversity match the diversity of the population?"&lt;br /&gt;&lt;br /&gt;If you answer "yes", then we need to fix these inequities, too:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;overrepresentation of Mexican ownership of Mexican restaurants&lt;/li&gt;&lt;li&gt;too many Chinese-owned Chinese restaurants&lt;/li&gt;&lt;li&gt;way too many asian-owned dry cleaners&lt;/li&gt;&lt;li&gt;what's with all the Jewish diamond merchants? Get whitey in there!&lt;/li&gt;&lt;/ul&gt;I could keep going, but I hope you see my point. Why &lt;span style="font-weight: bold;"&gt;must&lt;/span&gt; business ownership match? Aren't you being racist by only buying from a black-owned business?&lt;br /&gt;&lt;br /&gt;Now, granted. I can see supporting black ownership if there is something &lt;span style="font-style: italic;"&gt;truly&lt;/span&gt; keeping them "down". But I would counter that Obama blows apart the notion of blacks being held back by "The Man". Hell... a black guy &lt;span style="font-weight: bold;"&gt;is&lt;/span&gt; The Man.&lt;br /&gt;&lt;br /&gt;If you want to fix an inequity, then your time could be used to fight against the glass ceiling endured by women.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;(and before anybody comments: yes, I use "black" just like I'm "white"; most Americans were born in the US and have nothing to do with Africa)&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12913358-5329921328586421166?l=prng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prng.blogspot.com/feeds/5329921328586421166/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12913358&amp;postID=5329921328586421166' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/5329921328586421166'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/5329921328586421166'/><link rel='alternate' type='text/html' href='http://prng.blogspot.com/2009/05/modern-day-racism.html' title='Modern Day Racism'/><author><name>Greg Stein</name><uri>http://www.blogger.com/profile/02475017701402788075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_n9NbgRy5yZI/SKX8IjtohGI/AAAAAAAAA0Q/0Kne7j009Mc/s1600-R/2003729424_a0ed4e7331.jpg%3Fv%3D0'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12913358.post-2804340794914349578</id><published>2009-04-23T12:00:00.000-07:00</published><updated>2009-04-23T12:27:14.300-07:00</updated><title type='text'>The Licensing Conspiracy Idiots</title><content type='html'>When I worked at Google, one of the things that I got to do was choose the licenses that were allowed on Google Code. A quick consultation with &lt;a href="http://egofood.blogspot.com/"&gt;Chris DiBona&lt;/a&gt; to ensure that I wasn't totally in left field, and that was it. We launched Google Code with seven licenses, and added an eighth (GPLv3) when that license was released.&lt;br /&gt;&lt;br /&gt;I'd been observing the use of licenses on the site, and saw that the uptake on Mozilla was dead last. I mean &lt;b&gt;really&lt;/b&gt; last. Less than a few percent. After many months of saying "we should axe that license", I actually dug in and killed it off.&lt;br /&gt;&lt;br /&gt;And then the conspiracy nutjobs came out of the woodwork. Saying Google had some Master Plan and how it didn't like certain licenses. That it was trying to kill off licenses to further its own ends. Of course, I'd &lt;a href="http://www.funambol.com/blog/capo/2008/03/agpl-is-osi-approved-sweet-victory.html"&gt;seen this utter nonsense before&lt;/a&gt;, so was ready for it.&lt;br /&gt;&lt;br /&gt;The simple fact is that my goal was to reduce the number of licenses that people use for their Open Source projects. When you combine multiple software packages, the combinatorics around licensing just becomes insane. "Can we combine these? What are the overall requirements? What notices are necessary? Which pieces do we need to provide source for?" All of these questions become very difficult for the end user, and for packagers/redistributors.&lt;br /&gt;&lt;br /&gt;Our job, as authors, is to &lt;b&gt;help&lt;/b&gt; these people. Open Source and Free Software should be &lt;b&gt;easy&lt;/b&gt;. We should not be wasting so much time on licensing (our own, or the people who consume our software).&lt;br /&gt;&lt;br /&gt;In an ideal world, I believe people should choose the Apache License, v2, or the (GNU) General Public License, v3. Pick one based on your philosophy.&lt;br /&gt;&lt;br /&gt;Middle-of-the-road licenses like MPL, EPL, and CDDL are wishy-washy. They can't decide to be permissive, or to maintain Freedom. &lt;i&gt;Choose a philosophy&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;And the experience on Google Code showed that people simply do not tend towards these wishy-washy licenses. Instead, they are chosen &lt;i&gt;for your&lt;/i&gt; depending on whether you play in the Mozilla, Eclipse, or Sun playgrounds. Those licenses are &lt;b&gt;not&lt;/b&gt; universal. So I took a step to help in that direction. Worst case, a few percent of projects would be hosted somewhere else with more choice around licensing (such as SourceForge).&lt;br /&gt;&lt;br /&gt;The idiots barking about the Affero license totally missed the point. No conspiracy. They just had no numbers, and were fragmenting the licensing market. Go host your projects elsewhere. You never had and never will have an "entitlement" to host on the service of your choice. That is up to the service provider, and Google Code chose the path of limiting license choice.&lt;br /&gt;&lt;br /&gt;Anyway. If you want your software to be adopted and used, then pick ALv2 or GPLv3. That keeps things very easy for your users.&lt;br /&gt;&lt;br /&gt;Now go write some code.&lt;br /&gt;&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;&lt;i&gt;(after I left, somebody added MPL back, along with EPL and CDDL; ah well... their choice now!)&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12913358-2804340794914349578?l=prng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prng.blogspot.com/feeds/2804340794914349578/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12913358&amp;postID=2804340794914349578' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/2804340794914349578'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/2804340794914349578'/><link rel='alternate' type='text/html' href='http://prng.blogspot.com/2009/04/licensing-conspiracy-idiots.html' title='The Licensing Conspiracy Idiots'/><author><name>Greg Stein</name><uri>http://www.blogger.com/profile/02475017701402788075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_n9NbgRy5yZI/SKX8IjtohGI/AAAAAAAAA0Q/0Kne7j009Mc/s1600-R/2003729424_a0ed4e7331.jpg%3Fv%3D0'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12913358.post-5195862464468546620</id><published>2009-04-22T16:17:00.000-07:00</published><updated>2009-04-22T16:32:50.966-07:00</updated><title type='text'>Europeans Smoke Too Much</title><content type='html'>I've become very used to heading into a bar in Europe and wading thru smoke. I keep a machete on hand for just that purpose -- it is &lt;b&gt;that&lt;/b&gt; thick.&lt;br /&gt;&lt;br /&gt;And here is my obligatory stereotype comment: European is full of smokers. Fine with me. It's the culture. I'm not about to tell anybody to stop. But I &lt;b&gt;am&lt;/b&gt; happy to return to the United States where the anti-smoking peeps have dug in and keep the air smoke-free in restaurants and bars and whatnot. Here in EU? I just deal. No complaints.&lt;br /&gt;&lt;br /&gt;Today? Oh, dear. I've realized that the people here have elevated smoking to a whole new level. Not quite to &lt;a href="http://www.imdb.com/title/tt0097883/"&gt;Millenium&lt;/a&gt; levels, but wow.&lt;br /&gt;&lt;br /&gt;I was out walking through the nearby forest / park. Some serious stuff here, with big trails for walking, biking, and even horses. Today, I finally saw some peeps on horses. They're at walking speed on the trail, going the opposite way. And guess what?&lt;br /&gt;&lt;br /&gt;They're smoking. On the back of the horse. In the beautiful outdoor forest.&lt;br /&gt;&lt;br /&gt;Sigh.&lt;br /&gt;&lt;br /&gt;I hope these people will wake up one day and realize the world is a much more beautiful, clean, and clear place, when the haze of their smoke is not filling their lungs and face. I don't mind (lots of fresh air out there), but I feel bad for &lt;i&gt;them&lt;/i&gt; ... not realizing what they are missing.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12913358-5195862464468546620?l=prng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prng.blogspot.com/feeds/5195862464468546620/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12913358&amp;postID=5195862464468546620' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/5195862464468546620'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/5195862464468546620'/><link rel='alternate' type='text/html' href='http://prng.blogspot.com/2009/04/europeans-smoke-too-much.html' title='Europeans Smoke Too Much'/><author><name>Greg Stein</name><uri>http://www.blogger.com/profile/02475017701402788075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_n9NbgRy5yZI/SKX8IjtohGI/AAAAAAAAA0Q/0Kne7j009Mc/s1600-R/2003729424_a0ed4e7331.jpg%3Fv%3D0'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12913358.post-6581460567506030670</id><published>2009-02-28T09:47:00.000-08:00</published><updated>2009-02-28T10:20:14.277-08:00</updated><title type='text'>Commit Access: It's a Social Problem</title><content type='html'>Many proponents of distributed version control systems (DVCSs) say the biggest advantage is that &lt;b&gt;anybody&lt;/b&gt; can create a branch and begin working on a project. Whereas, for a centralized system (such as &lt;a href="http://subversion.tigris.org/"&gt;Subversion&lt;/a&gt;), the would-be contributor needs to have commit access &lt;b&gt;before&lt;/b&gt; they can contribute.&lt;br /&gt;&lt;br /&gt;Let's walk through this.&lt;br /&gt;&lt;br /&gt;Obviously, this contributor can grab a tarball, make their change, and send a patch file to the project's mailing list. No commit access is required to do that. Why a DVCS, then? Well... the DVCS simplifies the retrieval and application of the patch (by the project's developers, or third-party users of the project). The contributor also gets use a version control system while developing the patch, which I'll just axiomatically state as a Good Thing.&lt;br /&gt;&lt;br /&gt;Okay. So if they don't have commit access, then a DVCS is very handy. What would the scenario be if they &lt;b&gt;did&lt;/b&gt; have commit access? The contributor could develop their change on "trunk" or on a branch. We've already stated this is a would-be contributor -- not one of the regular developers who already has commit access. It really doesn't make sense for this person to modify trunk directly, so let's just say the work is being done on a branch.&lt;br /&gt;&lt;br /&gt;So why would this potential contributor &lt;b&gt;not&lt;/b&gt; have commit access? Really? All their work is happening on a branch. It isn't like they're going to mess up the project from over there. They're going to generate some commit emails, sure, but maybe the other developers could then provide pointers, assistance, and feedback &lt;b&gt;earlier&lt;/b&gt; than if the contributor had arrived with a patch, as a fait d'accompli. This is &lt;b&gt;source control&lt;/b&gt;, people. Anything changed can always be reversed. No permanent harm is possible.&lt;br /&gt;&lt;br /&gt;So why do potential contributors not receive commit access to a branch, as soon as they ask for it? For social reasons. It certainly isn't technical. Projects have an &lt;i&gt;us&lt;/i&gt; versus &lt;i&gt;them&lt;/i&gt; attitude, and &lt;i&gt;they&lt;/i&gt; don't get to commit to &lt;i&gt;our&lt;/i&gt; repository.&lt;br /&gt;&lt;br /&gt;For reference, I'll note that the &lt;a href="http://www.apache.org/"&gt;Apache Software Foundation&lt;/a&gt; provides branches to &lt;a href="http://code.google.com/soc/"&gt;Google Summer of Code&lt;/a&gt; students. These students arrive with no credentials, they get a branch, and then work on their code over the summer. When they are done, the work can be merged back to trunk, if it is acceptable. It has worked out very well for all involved.&lt;br /&gt;&lt;br /&gt;In the Subversion project, we set up branches for developers to try out their ideas. We say these developers have "limited commit access" rather than "full commit". I'll also note that there are no &lt;b&gt;technical&lt;/b&gt; limitations on their commit access. Those developers &lt;i&gt;could&lt;/i&gt; commit to trunk if they tried. But &lt;b&gt;social restrictions&lt;/b&gt; prevent them from doing so. We've never had a problem with rogue developers, since it is so easy to undo any mistakes or intentional harm, and to remove their access.&lt;br /&gt;&lt;br /&gt;In this respect, DVCSs are simply a &lt;i&gt;workaround&lt;/i&gt; to social barriers put into place by projects. They do not address the core problem: projects should be &lt;b&gt;inclusive&lt;/b&gt; rather than &lt;b&gt;exclusive&lt;/b&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12913358-6581460567506030670?l=prng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prng.blogspot.com/feeds/6581460567506030670/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12913358&amp;postID=6581460567506030670' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/6581460567506030670'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/6581460567506030670'/><link rel='alternate' type='text/html' href='http://prng.blogspot.com/2009/02/commit-access-its-social-problem.html' title='Commit Access: It&apos;s a Social Problem'/><author><name>Greg Stein</name><uri>http://www.blogger.com/profile/02475017701402788075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_n9NbgRy5yZI/SKX8IjtohGI/AAAAAAAAA0Q/0Kne7j009Mc/s1600-R/2003729424_a0ed4e7331.jpg%3Fv%3D0'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12913358.post-4158527450978699919</id><published>2009-02-26T18:17:00.001-08:00</published><updated>2009-02-26T18:22:55.615-08:00</updated><title type='text'>Answer One, Ask One</title><content type='html'>&lt;a href="http://whurley.com/"&gt;whurley&lt;/a&gt; is trying out a fun series of question/answer posts on his site. He asks somebody a question, they answer, and get to ask him a question. He asked me whether distributed version control systems (DVCS) are bringing about large changes in the Open Source ecosystem. I asked him about Netbooks.&lt;br /&gt;&lt;br /&gt;Check out the &lt;a href="http://whurley.com/2009/02/26/greg-stein-on-the-impact-of-social-coding/"&gt;questions and answers&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12913358-4158527450978699919?l=prng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prng.blogspot.com/feeds/4158527450978699919/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12913358&amp;postID=4158527450978699919' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/4158527450978699919'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/4158527450978699919'/><link rel='alternate' type='text/html' href='http://prng.blogspot.com/2009/02/answer-one-ask-one.html' title='Answer One, Ask One'/><author><name>Greg Stein</name><uri>http://www.blogger.com/profile/02475017701402788075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_n9NbgRy5yZI/SKX8IjtohGI/AAAAAAAAA0Q/0Kne7j009Mc/s1600-R/2003729424_a0ed4e7331.jpg%3Fv%3D0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12913358.post-4501371324751831515</id><published>2009-02-18T12:30:00.000-08:00</published><updated>2009-02-18T12:36:38.473-08:00</updated><title type='text'>Giving Back</title><content type='html'>Every now and then, I run into a meme in the Open Source world about "giving back". That if a person or company &lt;i&gt;uses&lt;/i&gt; some Open Source software (OSS), then they are now &lt;i&gt;obligated&lt;/i&gt; to give back (in the form of code, patches, money or whatever).&lt;br /&gt;&lt;br /&gt;Why is this?&lt;br /&gt;&lt;br /&gt;I write OSS because I enjoy coding. I have no need to keep it to myself, so I share it with others. But I don't &lt;b&gt;attach strings&lt;/b&gt; to that sharing. That is why I've released it as Open Source. If I wanted strings, or expectations of "giving back", then I should have applied a restrictive license.&lt;br /&gt;&lt;br /&gt;Question to other OSS authors: do you expect your users to give back? Why?&lt;br /&gt;&lt;br /&gt;Why do we allow this "give back" meme to continue? If we are &lt;b&gt;truly&lt;/b&gt; sharing our code, then it should not be with these kinds of expectations.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12913358-4501371324751831515?l=prng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prng.blogspot.com/feeds/4501371324751831515/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12913358&amp;postID=4501371324751831515' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/4501371324751831515'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/4501371324751831515'/><link rel='alternate' type='text/html' href='http://prng.blogspot.com/2009/02/giving-back.html' title='Giving Back'/><author><name>Greg Stein</name><uri>http://www.blogger.com/profile/02475017701402788075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_n9NbgRy5yZI/SKX8IjtohGI/AAAAAAAAA0Q/0Kne7j009Mc/s1600-R/2003729424_a0ed4e7331.jpg%3Fv%3D0'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12913358.post-2730475213473258426</id><published>2009-02-18T00:58:00.000-08:00</published><updated>2009-02-18T01:13:36.877-08:00</updated><title type='text'>Westvleteren 12</title><content type='html'>I've &lt;a href="http://prng.blogspot.com/2008/08/westvleteran.html"&gt;blogged&lt;/a&gt; about this beer before. Even used a &lt;a href="http://2.bp.blogspot.com/_n9NbgRy5yZI/SKvSe0aVaCI/AAAAAAAAA0w/rXP-r2pB6NQ/s1600-h/_DSC0014.JPG"&gt;picture&lt;/a&gt; outside of the brewery for a profile picture. &lt;a href="http://beeradvocate.com/beer/profile/313/1545"&gt;Fabulous stuff&lt;/a&gt;, as many reviewers would say, and a couple sites call it the best beer on the planet. I'm certainly a fan.&lt;br /&gt;&lt;br /&gt;It is just &lt;b&gt;so hard&lt;/b&gt; to get. They don't sell the stuff into the retail chain. You can't simply go to your neighborhood bar and grab a case. This is fine -- the monks are only making as much profit as they need, rather than being sell-outs. But it makes it hard as a consumer.&lt;br /&gt;&lt;br /&gt;So... Answer is that &lt;a href="http://www.sintsixtus.be/eng/brouwerij.htm"&gt;the abbey&lt;/a&gt; will sell you cases. But you have to call ahead of time. And call. &lt;b&gt;And call&lt;/b&gt;. &lt;b&gt;AND CALL&lt;/b&gt;. The problem? The line is &lt;b&gt;busy&lt;/b&gt;. There are so many people trying to get their beer reserved, that you need to be hovering over your Redial key.&lt;br /&gt;&lt;br /&gt;This morning, I finally got through. Talked to the monk and reserved &lt;b&gt;three&lt;/b&gt; cases of the Westvleteren 12, to be picked up next Tuesday. It'll be a nice long drive through the Belgian countryside, but it is &lt;b&gt;worth it&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;You know... Belgium does have its high points!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12913358-2730475213473258426?l=prng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prng.blogspot.com/feeds/2730475213473258426/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12913358&amp;postID=2730475213473258426' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/2730475213473258426'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/2730475213473258426'/><link rel='alternate' type='text/html' href='http://prng.blogspot.com/2009/02/westvleteren-12.html' title='Westvleteren 12'/><author><name>Greg Stein</name><uri>http://www.blogger.com/profile/02475017701402788075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_n9NbgRy5yZI/SKX8IjtohGI/AAAAAAAAA0Q/0Kne7j009Mc/s1600-R/2003729424_a0ed4e7331.jpg%3Fv%3D0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12913358.post-8921000198403606433</id><published>2009-01-30T20:15:00.000-08:00</published><updated>2009-01-30T20:26:36.536-08:00</updated><title type='text'>Taxes, Again?</title><content type='html'>First, there was Geithner with his late taxes. Big story on Capitol Hill. "Oh no! He doesn't pay his taxes properly! He can't be Mr Finance!"&lt;br /&gt;&lt;br /&gt;Now we have Daschle and an amended return for taxes due to "value received" in terms of a car and driver. "Oh no! A second failure for Obama!"&lt;br /&gt;&lt;br /&gt;You know what? Fuck all that. The &lt;b&gt;root&lt;/b&gt; of the problem here is not people trying to stiff the government. It is not people trying to get out of taxes. The real problem? &lt;b&gt;Taxes are too god-damned complicated&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;These freakin' lawmakers want to point fingers at these candidates and hang them out to dry for tax problems. It has &lt;b&gt;nothing&lt;/b&gt; to do with the actual payments... they're just being political bitches. Find a wound they can rub salt in. Grind it down.&lt;br /&gt;&lt;br /&gt;You. Me. Those candidates. Any damned human in the United States is going to make mistakes on their taxes. And you know why? It is those same bitchy congressman poking at each other. They passed the laws. They made Tax Law this complicated.&lt;br /&gt;&lt;br /&gt;Taxes are an &lt;b&gt;Industry&lt;/b&gt;. You wanna know how much H&amp;R Block makes? All those independent tax accountants and attorneys? Intuit with their TurboTax. And helluva lot more than I can mention here. It is a bajillion dollar industry. And that industry has lobbyists. They want to keep the taxes complicated. Those congressman are not going to make this crap any simpler.&lt;br /&gt;&lt;br /&gt;Result? People make mistakes. Even those candidates. They're human.&lt;br /&gt;&lt;br /&gt;(and no, I have no opinion on them; I'm just pissed off at the hypocracy of Congress pointing fingers at the candidates about their taxes, when it is &lt;b&gt;Congress&lt;/b&gt; that made it impossible for any rational human to properly follow the tax code)&lt;br /&gt;&lt;br /&gt;(real answer: flat tax. seriously.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12913358-8921000198403606433?l=prng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prng.blogspot.com/feeds/8921000198403606433/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12913358&amp;postID=8921000198403606433' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/8921000198403606433'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/8921000198403606433'/><link rel='alternate' type='text/html' href='http://prng.blogspot.com/2009/01/taxes-again.html' title='Taxes, Again?'/><author><name>Greg Stein</name><uri>http://www.blogger.com/profile/02475017701402788075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_n9NbgRy5yZI/SKX8IjtohGI/AAAAAAAAA0Q/0Kne7j009Mc/s1600-R/2003729424_a0ed4e7331.jpg%3Fv%3D0'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12913358.post-6528665960996404942</id><published>2009-01-28T06:45:00.000-08:00</published><updated>2009-01-28T06:46:53.063-08:00</updated><title type='text'>The History of Python</title><content type='html'>Guido has been kind enough to allow me to post on a blog about &lt;a href="http://python-history.blogspot.com/"&gt;The History of Python&lt;/a&gt;. I've just published my first post, talking about &lt;a href="http://python-history.blogspot.com/2009/01/microsoft-ships-python-code-in-1996.html"&gt;Microsoft shipping Python code back in 1996&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12913358-6528665960996404942?l=prng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prng.blogspot.com/feeds/6528665960996404942/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12913358&amp;postID=6528665960996404942' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/6528665960996404942'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/6528665960996404942'/><link rel='alternate' type='text/html' href='http://prng.blogspot.com/2009/01/history-of-python.html' title='The History of Python'/><author><name>Greg Stein</name><uri>http://www.blogger.com/profile/02475017701402788075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_n9NbgRy5yZI/SKX8IjtohGI/AAAAAAAAA0Q/0Kne7j009Mc/s1600-R/2003729424_a0ed4e7331.jpg%3Fv%3D0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12913358.post-6593709485714344474</id><published>2009-01-13T02:54:00.000-08:00</published><updated>2009-01-13T03:31:47.299-08:00</updated><title type='text'>From the Wreckage Known as Perl...</title><content type='html'>Many years ago, I was setting up &lt;b&gt;cvsweb&lt;/b&gt; to display CVS repositories on my web server. There was something funky going on (don't recall what), and so I went to go and fix the script. No problem, right? It's Open Source, after all!&lt;br /&gt;&lt;br /&gt;Yeah. Right.&lt;br /&gt;&lt;br /&gt;Hey, I'm no slouch as a programmer, and can actually get around a bit in Perl. But that cvsweb script is an absolute disaster!! (I suspect the FreeBSD peeps have fixed it tremendously; it was core to their version control for many years; but I'm talking back in 1999).&lt;br /&gt;&lt;br /&gt;I'll repeat that again: &lt;b&gt;DISASTER&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Global variables. Functions with strange side effects. Sloppy organization. Poorly named functions and variables. Few comments.&lt;br /&gt;&lt;br /&gt;One of the things that I've learned about Perl over the years is that it takes an &lt;i&gt;advanced&lt;/i&gt; Perl programmer to produce maintainable code. Novice or intermediate programmers produce crap. The language is just so fluid and forgiving, that it is easy to create write-only code. I recommend Python to people because you only need to reach an intermediate level to produce reasonable code.&lt;br /&gt;&lt;br /&gt;Back to cvsweb. After staring at the depths of hell for a while, I realized there was really one solution to the problem: rewrite it all in Python. I spent a weekend doing just that. About 2500 lines of Perl became 2500 lines of Python, and I published it as "ViewCVS".&lt;br /&gt;&lt;br /&gt;That tool has since grown support for Subversion, been renamed to &lt;a href="http://viewvc.tigris.org/"&gt;ViewVC&lt;/a&gt;, and is being further developed and maintained by some friends.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12913358-6593709485714344474?l=prng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prng.blogspot.com/feeds/6593709485714344474/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12913358&amp;postID=6593709485714344474' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/6593709485714344474'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/6593709485714344474'/><link rel='alternate' type='text/html' href='http://prng.blogspot.com/2009/01/from-wreckage-known-as-perl.html' title='From the Wreckage Known as Perl...'/><author><name>Greg Stein</name><uri>http://www.blogger.com/profile/02475017701402788075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_n9NbgRy5yZI/SKX8IjtohGI/AAAAAAAAA0Q/0Kne7j009Mc/s1600-R/2003729424_a0ed4e7331.jpg%3Fv%3D0'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12913358.post-46334320315377037</id><published>2009-01-01T09:51:00.000-08:00</published><updated>2009-01-01T10:01:45.828-08:00</updated><title type='text'>The Power of Facebook Relationship Status</title><content type='html'>Everybody seems to notice and watch your Relationship Status on Facebook. Your updates may come and go, pictures may be posted, or other weird things may fall into the feed on your wall, and it goes right past your friends. But &lt;b&gt;everybody&lt;/b&gt; notices changes in your Relationship Status.&lt;br /&gt;&lt;br /&gt;One year ago, I changed my status from unstated to "Single", and got an outpouring of concern that I was "now" single. Of course, I had been for a long time, but just didn't throw it "out there" on Facebook. I do have to confess that doing so may have changed my outlook on life. "I'm now telling people explicitly that I'm single" -- that does indicate a change in mindset, really.&lt;br /&gt;&lt;br /&gt;This New Year's Day, I got to change my status to "Engaged". What a difference a year makes! If you had asked me where I thought I would be in a year... this certainly would not have been on the list! But it is, and I am incredibly happy about it (obviously, duh). It has been just eight hours since I made that change, and there are already lots of comments from my friends! (mostly of the "congrats" form)&lt;br /&gt;&lt;br /&gt;People wake up from a long night of New Year's Eve partying, and check Facebook. It's a crazy world we live in, but I think it is also a great way to "get the word out" and let your friends know that your life has changed.&lt;br /&gt;&lt;br /&gt;Thank you everybody for the warm wishes so far, and thanks in advance for the wishes not yet said.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12913358-46334320315377037?l=prng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prng.blogspot.com/feeds/46334320315377037/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12913358&amp;postID=46334320315377037' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/46334320315377037'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/46334320315377037'/><link rel='alternate' type='text/html' href='http://prng.blogspot.com/2009/01/power-of-facebook-relationship-status.html' title='The Power of Facebook Relationship Status'/><author><name>Greg Stein</name><uri>http://www.blogger.com/profile/02475017701402788075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_n9NbgRy5yZI/SKX8IjtohGI/AAAAAAAAA0Q/0Kne7j009Mc/s1600-R/2003729424_a0ed4e7331.jpg%3Fv%3D0'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12913358.post-7333855517651307686</id><published>2008-12-31T14:26:00.000-08:00</published><updated>2008-12-31T14:28:30.658-08:00</updated><title type='text'>Bestest Xmas Present Ever</title><content type='html'>The word "Yes"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12913358-7333855517651307686?l=prng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prng.blogspot.com/feeds/7333855517651307686/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12913358&amp;postID=7333855517651307686' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/7333855517651307686'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/7333855517651307686'/><link rel='alternate' type='text/html' href='http://prng.blogspot.com/2008/12/bestest-xmas-present-ever.html' title='Bestest Xmas Present Ever'/><author><name>Greg Stein</name><uri>http://www.blogger.com/profile/02475017701402788075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_n9NbgRy5yZI/SKX8IjtohGI/AAAAAAAAA0Q/0Kne7j009Mc/s1600-R/2003729424_a0ed4e7331.jpg%3Fv%3D0'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12913358.post-4038403799061491489</id><published>2008-12-16T18:24:00.000-08:00</published><updated>2008-12-16T18:39:08.247-08:00</updated><title type='text'>Star Wars: The Clone Wars (TV Series)</title><content type='html'>I've been watching a bit of the new Star Wars animated series. It's quite fun! Lots of light saber battles, jedi tricks, bad guys, and some great effects and animation.&lt;br /&gt;&lt;br /&gt;I came in partway thru the series, so I may need to dig up some old episodes.&lt;br /&gt;&lt;br /&gt;Now... while this looks interesting, if you are looking for &lt;b&gt;excellent&lt;/b&gt; television, then go watch Dexter. Best show ever. But it just finished its third season, so it is time to find new things :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12913358-4038403799061491489?l=prng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prng.blogspot.com/feeds/4038403799061491489/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12913358&amp;postID=4038403799061491489' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/4038403799061491489'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/4038403799061491489'/><link rel='alternate' type='text/html' href='http://prng.blogspot.com/2008/12/star-wars-clone-wars-tv-series.html' title='Star Wars: The Clone Wars (TV Series)'/><author><name>Greg Stein</name><uri>http://www.blogger.com/profile/02475017701402788075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_n9NbgRy5yZI/SKX8IjtohGI/AAAAAAAAA0Q/0Kne7j009Mc/s1600-R/2003729424_a0ed4e7331.jpg%3Fv%3D0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12913358.post-375705449661295796</id><published>2008-12-07T22:50:00.000-08:00</published><updated>2008-12-07T22:54:41.492-08:00</updated><title type='text'>Java doesn't work? Switch to Python</title><content type='html'>My friend Anthony just pointed me at &lt;a href=" http://groups.google.com/group/comp.lang.java/msg/88fa10845061c8ba?pli=1"&gt;this post&lt;/a&gt; from Larry Page 12 years ago. Apparently, he never found a solution. The first Google web crawler was written in Python instead.&lt;br /&gt;&lt;br /&gt;Seriously funny stuff.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12913358-375705449661295796?l=prng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prng.blogspot.com/feeds/375705449661295796/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12913358&amp;postID=375705449661295796' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/375705449661295796'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/375705449661295796'/><link rel='alternate' type='text/html' href='http://prng.blogspot.com/2008/12/java-doesnt-work-switch-to-python.html' title='Java doesn&apos;t work? Switch to Python'/><author><name>Greg Stein</name><uri>http://www.blogger.com/profile/02475017701402788075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_n9NbgRy5yZI/SKX8IjtohGI/AAAAAAAAA0Q/0Kne7j009Mc/s1600-R/2003729424_a0ed4e7331.jpg%3Fv%3D0'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12913358.post-1202818529588731663</id><published>2008-12-04T21:48:00.000-08:00</published><updated>2008-12-04T22:35:10.068-08:00</updated><title type='text'>Unique Rectangle (Type 4)</title><content type='html'>A couple months ago, I downloaded a sudoku application onto my iPhone. I wanted something to do during the "in between times" -- while sitting on a train, waiting to meet up with somebody, or riding a parking lot shuttle. I started with the free version, but eventually upgraded to the paid version to avoid daily limits on the number of puzzles.&lt;br /&gt;&lt;br /&gt;The app is called "Enjoy Sudoku", and it is really good. It has a hint mode that will give you a hint, you can ask for more info, and then one more time. It will basically walk you through what is going on, and explains the solving technique.&lt;br /&gt;&lt;br /&gt;One of those solving techniques is the "&lt;a href="http://www.sudopedia.org/wiki/Uniqueness_Test#Uniqueness_Test_4"&gt;Unique Rectangle (type 4)&lt;/a&gt;" and is quite handy. I've learned about BUGs, X Wings, and Locked Pairs. Lots of crazy stuff. This little application for the iPhone has taught me quite a bit about solving sudoku puzzles, and I'm continuing to get better at recognizing when a technique can be applied.&lt;br /&gt;&lt;br /&gt;If you're looking for sudoku for your iPhone, then &lt;a href="http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=285994151&amp;mt=8"&gt;Enjoy Sudoku&lt;/a&gt; is a great choice.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12913358-1202818529588731663?l=prng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prng.blogspot.com/feeds/1202818529588731663/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12913358&amp;postID=1202818529588731663' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/1202818529588731663'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/1202818529588731663'/><link rel='alternate' type='text/html' href='http://prng.blogspot.com/2008/12/unique-rectangle-type-4.html' title='Unique Rectangle (Type 4)'/><author><name>Greg Stein</name><uri>http://www.blogger.com/profile/02475017701402788075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_n9NbgRy5yZI/SKX8IjtohGI/AAAAAAAAA0Q/0Kne7j009Mc/s1600-R/2003729424_a0ed4e7331.jpg%3Fv%3D0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12913358.post-5188415129681194339</id><published>2008-10-09T00:52:00.001-07:00</published><updated>2008-10-09T00:55:50.840-07:00</updated><title type='text'>Layers of an Onion</title><content type='html'>&lt;a href="http://prng.blogspot.com/2008/08/projects.html"&gt;Earlier&lt;/a&gt;, I had mentioned that one of my first coding projects was to work on &lt;a href="http://subversion.tigris.org/"&gt;Subversion&lt;/a&gt;. I took on the herculean task of rewriting a library that has existed since Day One (the "working copy" library for those who may know what I'm talking about). Over the past eight years, it has slowly grown and expanded and been tweaked and prodded and poked. At this point, it is a morass of barbed tangles that nobody wants to get near. A rewrite has been requested for several years now, but nobody had time or cajones to jump in. Well... I decided that enough was enough, and Subversion really needed this work done if it was going to continue to improve and evolve.&lt;br /&gt;&lt;br /&gt;As I've dived into it, it has been like peeling layers of an onion. I go to fix something, but to do that, I need to fix something else, which leads me on down to a third thing. Making headway is slow, but I &lt;span style="font-weight:bold;"&gt;have&lt;/span&gt; made some progress. At a minimum, I'm getting a lot of the code cleaned up in support of the larger task.&lt;br /&gt;&lt;br /&gt;Subversion 1.6 is &lt;a href="http://subversion.tigris.org/roadmap.html"&gt;scheduled&lt;/a&gt; to come out in December. Only a portion of my overall work will be in there, with the bulk to appear in 1.7, next summer. It's a big and long project, but this work will help (literally) millions of Subversion users around the planet.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12913358-5188415129681194339?l=prng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prng.blogspot.com/feeds/5188415129681194339/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12913358&amp;postID=5188415129681194339' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/5188415129681194339'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/5188415129681194339'/><link rel='alternate' type='text/html' href='http://prng.blogspot.com/2008/10/layers-of-onion.html' title='Layers of an Onion'/><author><name>Greg Stein</name><uri>http://www.blogger.com/profile/02475017701402788075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_n9NbgRy5yZI/SKX8IjtohGI/AAAAAAAAA0Q/0Kne7j009Mc/s1600-R/2003729424_a0ed4e7331.jpg%3Fv%3D0'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12913358.post-3768334997931247044</id><published>2008-09-16T15:02:00.001-07:00</published><updated>2008-09-16T15:08:47.741-07:00</updated><title type='text'>Where am I?</title><content type='html'>I'm two weeks into a long trip to the east coast of the US and to Europe. I've been here in Washington DC, and will depart for Bardstown, Kentucky on Thursday.&lt;br /&gt;&lt;br /&gt;"Bardstown?!" ... Yeah, I'd never heard of it either, but it hosts an annual &lt;a href="http://www.kybourbonfestival.com/"&gt;Bourbon Festival&lt;/a&gt;. Being a huge bourbon fan, I'm off to meet a few friends for the weekend and the festival.&lt;br /&gt;&lt;br /&gt;After that, off to Munich for &lt;a href="http://www.oktoberfest.de/en/"&gt;Oktoberfest&lt;/a&gt; for a week. Then down to Brussels for about two weeks, with little day trips here and there.&lt;br /&gt;&lt;br /&gt;Back to Munich for a few days for a conference (&lt;a href="http://www.subconf.com/"&gt;SubConf&lt;/a&gt;; I'm giving a &lt;a href="http://www.subconf.com/keynotes/"&gt;keynote&lt;/a&gt;), then to Spain for a week at &lt;a href="http://www.opensourceworldconference.com/"&gt;another conference&lt;/a&gt;. Finally home after that!&lt;br /&gt;&lt;br /&gt;Over seven weeks altogether. Whew! I'll periodically post pictures to &lt;a href="http://www.facebook.com/profile.php?id=505222263"&gt;Facebook&lt;/a&gt; and/or &lt;a href="http://www.flickr.com/photos/gstein/"&gt;Flickr&lt;/a&gt;, will update my &lt;a href="http://twitter.com/gstein"&gt;Twitter&lt;/a&gt;/FB status, and will continue to post here occasionally.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12913358-3768334997931247044?l=prng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prng.blogspot.com/feeds/3768334997931247044/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12913358&amp;postID=3768334997931247044' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/3768334997931247044'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/3768334997931247044'/><link rel='alternate' type='text/html' href='http://prng.blogspot.com/2008/09/where-am-i.html' title='Where am I?'/><author><name>Greg Stein</name><uri>http://www.blogger.com/profile/02475017701402788075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_n9NbgRy5yZI/SKX8IjtohGI/AAAAAAAAA0Q/0Kne7j009Mc/s1600-R/2003729424_a0ed4e7331.jpg%3Fv%3D0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12913358.post-2776413865711010850</id><published>2008-08-24T19:40:00.001-07:00</published><updated>2008-09-01T18:39:11.620-07:00</updated><title type='text'>Burning Man</title><content type='html'>I'm currently driving to Burning Man while writing this post. This is my first year... Very excited!!&lt;br /&gt;&lt;br /&gt;I've heard rumours of Internet connectivity, but even if there is, I'm going to be mostly offline for a week.&lt;br /&gt;&lt;br /&gt;Woot!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12913358-2776413865711010850?l=prng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prng.blogspot.com/feeds/2776413865711010850/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12913358&amp;postID=2776413865711010850' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/2776413865711010850'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/2776413865711010850'/><link rel='alternate' type='text/html' href='http://prng.blogspot.com/2008/08/burning-man.html' title='Burning Man'/><author><name>Greg Stein</name><uri>http://www.blogger.com/profile/02475017701402788075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_n9NbgRy5yZI/SKX8IjtohGI/AAAAAAAAA0Q/0Kne7j009Mc/s1600-R/2003729424_a0ed4e7331.jpg%3Fv%3D0'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12913358.post-5230280974625077120</id><published>2008-08-21T20:29:00.000-07:00</published><updated>2008-08-21T20:35:59.101-07:00</updated><title type='text'>Visiting Bourbon County</title><content type='html'>Many of you may already know of my love for bourbon. Woodford Reserve, in particular. For about a year, I've been talking with friends about a trip to Bourbon County, Kentucky to visit "the homeland". Well, we've started to organize the trip for mid-September. I've set up a Facebook event for the &lt;a href="http://www.facebook.com/event.php?eid=20583419467"&gt;Bourbon County trip&lt;/a&gt;. Unfortunately, I know that I've forgotten to invite some bourbon lovers onto the event, so if you're game, then please add yourself to the event! And please forward to other bourbon aficionados that I've forgotten.&lt;br /&gt;&lt;br /&gt;I'm really looking forward to the event! I hope you can join us in the fun!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12913358-5230280974625077120?l=prng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prng.blogspot.com/feeds/5230280974625077120/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12913358&amp;postID=5230280974625077120' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/5230280974625077120'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/5230280974625077120'/><link rel='alternate' type='text/html' href='http://prng.blogspot.com/2008/08/visiting-bourbon-county.html' title='Visiting Bourbon County'/><author><name>Greg Stein</name><uri>http://www.blogger.com/profile/02475017701402788075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_n9NbgRy5yZI/SKX8IjtohGI/AAAAAAAAA0Q/0Kne7j009Mc/s1600-R/2003729424_a0ed4e7331.jpg%3Fv%3D0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12913358.post-80296902186103541</id><published>2008-08-20T16:49:00.001-07:00</published><updated>2008-08-20T16:50:17.588-07:00</updated><title type='text'>WeGame</title><content type='html'>On my recent status updates (to Twitter and Facebook), I mentioned hanging out at the &lt;a href="http://www.wegame.com/"&gt;WeGame&lt;/a&gt; offices. A friend of mine asked about that, kind of wondering whether I'm working here or contracting or something. Nah... nothing so dramatic.&lt;br /&gt;&lt;br /&gt;My friend Jared started WeGame last year, and has a big cozy office here in SoMa with a dozen or so people. I pack up my laptop and come over to get out of the loft. Hang out with real people, a fridge of drinks, access to a printer and fax, network connectivity, and whatnot. It is kind of like the coworking concept that my friends over at &lt;a href="http://citizenspace.us/"&gt;Citizen Space&lt;/a&gt; have been encouraging and talking about for a long while.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12913358-80296902186103541?l=prng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prng.blogspot.com/feeds/80296902186103541/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12913358&amp;postID=80296902186103541' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/80296902186103541'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/80296902186103541'/><link rel='alternate' type='text/html' href='http://prng.blogspot.com/2008/08/wegame.html' title='WeGame'/><author><name>Greg Stein</name><uri>http://www.blogger.com/profile/02475017701402788075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_n9NbgRy5yZI/SKX8IjtohGI/AAAAAAAAA0Q/0Kne7j009Mc/s1600-R/2003729424_a0ed4e7331.jpg%3Fv%3D0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12913358.post-6528849705631333400</id><published>2008-08-20T01:00:00.001-07:00</published><updated>2008-08-20T01:16:04.238-07:00</updated><title type='text'>Westvleteran</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_n9NbgRy5yZI/SKvSe0aVaCI/AAAAAAAAA0w/rXP-r2pB6NQ/s1600-h/_DSC0014.JPG"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_n9NbgRy5yZI/SKvSe0aVaCI/AAAAAAAAA0w/rXP-r2pB6NQ/s320/_DSC0014.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5236510418655340578" /&gt;&lt;/a&gt;&lt;br /&gt;In my first post on this blog, I mentioned going to Europe. I spent about four days in various places in Belgium, and several days in Amsterdam. One of the days in Belgium, I got a chance to go and visit the &lt;a href="http://en.wikipedia.org/wiki/Westvleteren_Brewery"&gt;Westvleteran Brewery&lt;/a&gt;. This was an awesome experience, given that the Westvleteran 12 is pretty consistently rated as the &lt;span style="font-style:italic;"&gt;best beer in the world&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;My first experience with the Westvleteran 12 was in February 2006 when I was in Brussels for the FOSDEM conference. I remembered it as "good, but with sort of a sweet/bock style flavor." I'm not a bock beer fan, so on this trip, I was approaching the 12 with a little trepidation. At the cafe there next to the abbey, I ordered a pint. &lt;span style="font-weight:bold;"&gt;Woah&lt;/span&gt;. Way way better than I remembered. No wonder it gets such great ratings.&lt;br /&gt;&lt;br /&gt;Getting a hold of Westvleteran beer is difficult. The abbey only sells to individuals, and only one case maximum at a time. And not all varieties on any given week. The stuff is in huge demand, but they won't alter production. The abbey doesn't need more money, so they don't make more beer.&lt;br /&gt;&lt;br /&gt;If you get a chance to go, or a chance to try the Westvleteran beers, then &lt;span style="font-style:italic;"&gt;go for it&lt;/span&gt;! You won't be disappointed.&lt;br /&gt;&lt;br /&gt;(and yes, I brought some home with me...)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12913358-6528849705631333400?l=prng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prng.blogspot.com/feeds/6528849705631333400/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12913358&amp;postID=6528849705631333400' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/6528849705631333400'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/6528849705631333400'/><link rel='alternate' type='text/html' href='http://prng.blogspot.com/2008/08/westvleteran.html' title='Westvleteran'/><author><name>Greg Stein</name><uri>http://www.blogger.com/profile/02475017701402788075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_n9NbgRy5yZI/SKX8IjtohGI/AAAAAAAAA0Q/0Kne7j009Mc/s1600-R/2003729424_a0ed4e7331.jpg%3Fv%3D0'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_n9NbgRy5yZI/SKvSe0aVaCI/AAAAAAAAA0w/rXP-r2pB6NQ/s72-c/_DSC0014.JPG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12913358.post-189775356954966480</id><published>2008-08-15T14:04:00.001-07:00</published><updated>2008-08-15T14:51:20.934-07:00</updated><title type='text'>Hawaii</title><content type='html'>People who follow my &lt;a href="http://twitter.com/gstein"&gt;Twitter feed&lt;/a&gt; have seen that I'm currently in Hawaii (spur of the moment trip!). Kauai to be precise. This is the first time on this island. I've been to Oahu and Maui a couple times each, and the Big Island once. Kauai is a pretty island, and lightly populated.&lt;br /&gt;&lt;br /&gt;Yesterday, I had a Hawaiian "plate lunch" with Kahlua pig and Laulau. Wow. An incredibly tasty meal! Another local item I learned about is Koa wood. It has a beautiful grain that shows through when polished. I saw some very artistic boxes made of Koa wood at a store here in Lihue. One other "local item" is the &lt;a href="http://dirtshirt.com/"&gt;Red Dirt&lt;/a&gt; t-shirt that I bought. Some very cool products!&lt;br /&gt;&lt;br /&gt;This visit is fun, but a bit somber because the reason for the visit is to care for a sick family member (doing okay!). I'll be back to Kauai in October and that will be a "real" vacation.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12913358-189775356954966480?l=prng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prng.blogspot.com/feeds/189775356954966480/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12913358&amp;postID=189775356954966480' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/189775356954966480'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/189775356954966480'/><link rel='alternate' type='text/html' href='http://prng.blogspot.com/2008/08/hawaii.html' title='Hawaii'/><author><name>Greg Stein</name><uri>http://www.blogger.com/profile/02475017701402788075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_n9NbgRy5yZI/SKX8IjtohGI/AAAAAAAAA0Q/0Kne7j009Mc/s1600-R/2003729424_a0ed4e7331.jpg%3Fv%3D0'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12913358.post-1412784173527979848</id><published>2008-08-02T07:50:00.000-07:00</published><updated>2008-08-02T08:11:17.965-07:00</updated><title type='text'>Projects?</title><content type='html'>Thanks everyone for the well-wishes!&lt;br /&gt;&lt;br /&gt;The most frequent question i've been asked is which Open Source project(s) I'll be working on. The non-helpful answer is "whatever seems cool" :-) seriously, though... I do have some ideas now, but nothing really ties me to them except if they're interesting.&lt;br /&gt;&lt;br /&gt;Big ones right now are the svn working copy library, the serf library, and the new Apache web server. Thinking about some others, but first up is to jump back into svn.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12913358-1412784173527979848?l=prng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prng.blogspot.com/feeds/1412784173527979848/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12913358&amp;postID=1412784173527979848' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/1412784173527979848'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/1412784173527979848'/><link rel='alternate' type='text/html' href='http://prng.blogspot.com/2008/08/projects.html' title='Projects?'/><author><name>Greg Stein</name><uri>http://www.blogger.com/profile/02475017701402788075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_n9NbgRy5yZI/SKX8IjtohGI/AAAAAAAAA0Q/0Kne7j009Mc/s1600-R/2003729424_a0ed4e7331.jpg%3Fv%3D0'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-12913358.post-8799318532605319977</id><published>2008-07-29T17:27:00.000-07:00</published><updated>2008-07-29T18:33:52.774-07:00</updated><title type='text'>Transitions</title><content type='html'>I never really paid attention to blogs until I started working as the Engineering Manager for Blogger at Google, back in April 2004. Oh, certainly read some blogs here and there, but never really felt like I had anything to &lt;b&gt;say&lt;/b&gt; in a blog. Once I started working on Blogger, I "got it" but did not want to write one for fear of people mixing my opinions with Google's opinions.&lt;br /&gt;&lt;br /&gt;Today, that has changed. I have left Google and thought this post about "why" would be a great start for my own little corner of the Internet.&lt;br /&gt;&lt;br /&gt;My time with Google has been awesome. It is an amazing company to work for. After Blogger, I spent several years working with Chris DiBona to shape Google's Open Source policies and strategies. I traveled and spoke about Open Source. For a while, I was involved with Google Gadgets, and Google App Engine. But I was getting distracted (more on that in a bit) and I sorely missed &lt;i&gt;writing code&lt;/i&gt;. Last year, I switched things around and started to work with Neal Gafter and the Google Calendar team to add CalDAV support (just launched yesterday!). After that, I worked again with the App Engine team for a while.&lt;br /&gt;&lt;br /&gt;But I've really been missing out on writing Open Source code. It has been several &lt;b&gt;years&lt;/b&gt; since I have significantly contributed code to any Open Source project, and that has been a growing dissatisfaction for me. I've been involved with Open Source for over fourteen years... it is one of the things that I love to do.&lt;br /&gt;&lt;br /&gt;I've also been greatly distracted by a major upheaval in my life. As many of you may know, about two years ago, I moved out of the house and a relationship that was over 18 years long. I've since moved to San Francisco, met &lt;b&gt;many&lt;/b&gt; wonderful new friends, and have met someone that brings new joy into my life.&lt;br /&gt;&lt;br /&gt;My departure from Google is going to allow me to get back into Open Source development. It is going to allow me to travel. And it is going to allow me to explore where I'm going with my new life. I see a world and a lifetime of opportunity with this move, and am tremendously happy about it.&lt;br /&gt;&lt;br /&gt;And no, I'm not going to be working any time soon. Please feel free to contact me about short-term projects, and I'll keep it in mind, but I don't foresee any real interest until at least January.&lt;br /&gt;&lt;br /&gt;In closing... I'm here for a few days, then off for a wonderful week in Europe. More trips are planned later this year, and I'll write about those as they come up.&lt;br /&gt;&lt;br /&gt;See you around, my friends.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/12913358-8799318532605319977?l=prng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://prng.blogspot.com/feeds/8799318532605319977/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=12913358&amp;postID=8799318532605319977' title='36 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/8799318532605319977'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/12913358/posts/default/8799318532605319977'/><link rel='alternate' type='text/html' href='http://prng.blogspot.com/2008/07/transitions.html' title='Transitions'/><author><name>Greg Stein</name><uri>http://www.blogger.com/profile/02475017701402788075</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://2.bp.blogspot.com/_n9NbgRy5yZI/SKX8IjtohGI/AAAAAAAAA0Q/0Kne7j009Mc/s1600-R/2003729424_a0ed4e7331.jpg%3Fv%3D0'/></author><thr:total>36</thr:total></entry></feed>
