<?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-9951390</id><updated>2011-12-18T21:50:31.777-05:00</updated><category term='scilab'/><category term='flash'/><category term='gpg'/><category term='One Laptop Per Child'/><category term='power management'/><category term='epia'/><category term='development'/><category term='crystal space'/><category term='convergence'/><category term='maven'/><category term='HDR'/><category term='pc gaming'/><category term='software development'/><category term='suse'/><category term='indy'/><category term='redhat'/><category term='game development'/><category term='google sites'/><category term='transcoding'/><category term='openvpn'/><category term='function key'/><category term='flash cartridges'/><category term='work'/><category term='n900'/><category term='mathematica'/><category term='n770'/><category term='java'/><category term='mc frontalot'/><category term='ogg'/><category term='uml editor'/><category term='Opera'/><category term='graphics'/><category term='duke'/><category term='networking'/><category term='Tux Racer'/><category term='jini'/><category term='maemo'/><category term='gpu'/><category term='activemq'/><category term='Amiga'/><category term='homebrew'/><category term='drm'/><category term='palm'/><category term='high dynamic range'/><category term='orcs and elves'/><category term='j2ee'/><category term='love'/><category term='nvidia'/><category term='amazon web services'/><category term='cryptography'/><category term='shuttle'/><category term='web tablet'/><category term='quake live'/><category term='hacking'/><category term='PlanetPenguin Racer'/><category term='sync'/><category term='pgp'/><category term='group of four'/><category term='nokia'/><category term='wrt'/><category term='arcade'/><category term='n800'/><category term='larrabee'/><category term='planning'/><category term='qualcomm'/><category term='physics'/><category term='kvm'/><category term='cloud computing'/><category term='octave'/><category term='photography'/><category term='chacha'/><category term='cell phone'/><category term='apricot'/><category term='novell'/><category term='music'/><category term='multicore'/><category term='samsung i500'/><category term='S3'/><category term='kde 4'/><category term='distributed computing'/><category term='kde'/><category term='procedural content'/><category term='netbeans'/><category term='energy'/><category term='mobile development'/><category term='wireless'/><category term='ipod'/><category term='webos'/><category term='enterprise integration patterns'/><category term='samsung moment'/><category term='mathematics'/><category term='vpn'/><category term='steam'/><category term='project management'/><category term='qt'/><category term='mini-itx'/><category term='mmo'/><category term='optimus rhyme'/><category term='treetable'/><category term='dual monitor'/><category term='scheduling'/><category term='havoc'/><category term='rmi'/><category term='synergy'/><category term='pvr'/><category term='vcard'/><category term='umpc'/><category term='C'/><category term='introversion'/><category term='sage'/><category term='pvr-150'/><category term='assassin&apos;s creed'/><category term='spring integration'/><category term='open source'/><category term='plasma'/><category term='lirc'/><category term='xvmc'/><category term='3d engines'/><category term='firefox'/><category term='grails'/><category term='encryption'/><category term='iphone'/><category term='htc hero'/><category term='table tree'/><category term='via epia'/><category term='ati'/><category term='spring'/><category term='sales'/><category term='e-mail'/><category term='sun'/><category term='overclocking'/><category term='alsa'/><category term='eclipse'/><category term='ReiserFS'/><category term='nds'/><category term='cpu'/><category term='powervr'/><category term='security'/><category term='esb'/><category term='opencl'/><category term='smartphone'/><category term='gaming'/><category term='oracle'/><category term='yast'/><category term='chrome os'/><category term='solid'/><category term='sholes'/><category term='android'/><category term='vcal'/><category term='hulu'/><category term='intel'/><category term='html'/><category term='openwrt'/><category term='multithreaded'/><category term='amarok'/><category term='Tux'/><category term='microstransactions'/><category term='hauppauge'/><category term='itunes'/><category term='ide'/><category term='sandbox'/><category term='google app engine'/><category term='consultcomm'/><category term='design patterns'/><category term='ode'/><category term='wired'/><category term='javaspaces'/><category term='apple'/><category term='CHDK'/><category term='blender'/><category term='web development'/><category term='pim'/><category term='apache camel'/><category term='evolution'/><category term='orange box'/><category term='C++'/><category term='console'/><category term='trolltech'/><category term='ibm'/><category term='opengl'/><category term='amazon'/><category term='indy development'/><category term='goodbye'/><category term='laptops'/><category term='content mangement'/><category term='hdtv'/><category term='remotes'/><category term='confluence'/><category term='hulu desktop'/><category term='apache'/><category term='linux'/><category term='via'/><category term='daylight savings time'/><category term='computer science'/><category term='hibernate'/><category term='conservation'/><category term='opensuse'/><category term='y2k bug'/><category term='programming'/><category term='vector processing'/><category term='htc'/><category term='deskblocks'/><category term='wii'/><category term='swingx'/><category term='mythtv'/><category term='sax2'/><category term='linux desktop'/><category term='life'/><category term='outlook'/><category term='bluetooth'/><category term='software architecture'/><category term='vpu'/><category term='RAW'/><category term='infrared receiver'/><category term='intellectual property'/><category term='amd'/><category term='powerdevil'/><category term='surround sound'/><category term='vorbis'/><category term='java 6 ee'/><category term='ntune'/><category term='distribution'/><title type='text'>Tales of an Indie Developer</title><subtitle type='html'>How a random developer tries to pursue dream jobs.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default?start-index=101&amp;max-results=100'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>253</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-9951390.post-5575860323620490824</id><published>2011-12-18T21:50:00.000-05:00</published><updated>2011-12-18T21:50:31.788-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='distribution'/><category scheme='http://www.blogger.com/atom/ns#' term='introversion'/><category scheme='http://www.blogger.com/atom/ns#' term='sales'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>Less Cash Makes More Money</title><content type='html'>&lt;a href="http://commons.wikimedia.org/wiki/File:Treasure_chest_color.png" imageanchor="1" style="clear:right; float:right; margin-left:1em; margin-bottom:1em"&gt;&lt;img border="0" height="181" width="200" src="http://2.bp.blogspot.com/-_9LtTFrIH2k/Tu6mVM2xyRI/AAAAAAAAAdA/nLNGdfbzVzA/s400/Treasure_chest_color.png" /&gt;&lt;/a&gt;I went on two spending sprees this season - one hosted by Google's &lt;a href="https://market.android.com/"&gt;Android Marketplace&lt;/a&gt;, the other hosted by &lt;a href="http://www.humblebundle.com/"&gt;The Humble Indie Bundle&lt;/a&gt;. The two shopping sprees combined cost me less than twenty bucks, but out of them I acquired no less than 48 (yes, forty-eight) commercial applications. Four of them not only included source code, but previously undisclosed version control access to said code and remastered soundtracks. That's a pretty freakin' good deal.&lt;br /&gt;&lt;br /&gt;One might think that my mad app grab put these software studios at a loss... but that appears to be far from the case. Introversion Software (a &lt;a href="/2005/01/next-thing.html"&gt;personal&lt;/a&gt; &lt;a href="/2008/04/introversions-procedural-art.html"&gt;favorite&lt;/a&gt; &lt;a href="/2006/08/darwinias-defcon.html"&gt;of mine&lt;/a&gt;) noted that the &lt;i&gt;opposite&lt;/i&gt; effect occurred:&lt;br /&gt;&lt;blockquote&gt;As we pass 180,000 sales of the Humble Introversion Bundle, I can’t help but feel astonished. This is the biggest single sale Introversion has ever done on any platform, even beating the epic Steam promotions we run from time to time. It roughly equates to one sale every six seconds. And the best part of all - the part that makes me most happy, is that this promotion has doubled the number of people who have played our games. 180,000 is more copies than our best selling game Darwinia ever sold, and the Humble Bundle includes all four of our games, so that means twice as many people have now played each of our games than before the bundle. That’s pretty cool. As the principle game creator here at Introversion, that’s the biggest thing for me.&lt;br /&gt;&lt;br /&gt;And let’s not mess around, the revenue is pretty good too. When it’s all divided up we’ll see about one quarter of the total revenue you see on the Humble site - and I’m sure Humble won’t mind us revealing that, because it’s obvious if you’ve look at the default sliders. That’s one quarter of a pretty big number, and that revenue will keep us going for a long while. And we’ve done it while raising over $200k for some very worthy charities. &lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;As for those publishers who participated in Google's &lt;a href="https://plus.google.com/104629412415657030658/posts/L5D6cj4iEea"&gt;10 Apps / 10 Cents / 10 Days promotion&lt;/a&gt;? I haven't heard of any testimony from that front, however watching the Android Market itself has been very interesting. During the 3 weeks spanning the promotion and the week immediately following I've seen more activity and application updates pushed than I've seen in the past 3 months - including apps that were &lt;i&gt;not&lt;/i&gt; part of the promotion. It seems the promo not only featured some titles whose volume might have otherwise tapered off but it also increased interest in adjacent titles as well, enough so that publishers wanted to have updates waiting in the wings for them.&lt;br /&gt;&lt;br /&gt;I've noticed that this kind of title distribution is gaining steam, enough so that Rock, Paper Shotgun &lt;a href="http://www.rockpapershotgun.com/2011/12/14/got-99-problems-but-the-bundle-aint-one/"&gt;has almost been driven insane by the sheer number of bundle announcements&lt;/a&gt;. This has the leading indications of being a potentially disruptive market force... as much as I might loath the cliche. This method of catering to all price points has somewhat been &lt;a href="/when-300-is-more-popular-than-free.html"&gt;used by recording artists and game studios years before&lt;/a&gt;, but the emphasis was selling at cost and then giving premium content to the upper 10% of the fanbase who would pay for it. For some artists lowering the cost barrier wholesale can pay amazing dividends and grow a loyal user base in short order.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-5575860323620490824?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/5575860323620490824/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2011/12/less-cash-makes-more-money.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/5575860323620490824'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/5575860323620490824'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2011/12/less-cash-makes-more-money.html' title='Less Cash Makes More Money'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-_9LtTFrIH2k/Tu6mVM2xyRI/AAAAAAAAAdA/nLNGdfbzVzA/s72-c/Treasure_chest_color.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-2298421541746612320</id><published>2011-11-28T22:51:00.000-05:00</published><updated>2011-11-28T22:51:28.994-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='kde 4'/><category scheme='http://www.blogger.com/atom/ns#' term='opensuse'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='linux desktop'/><category scheme='http://www.blogger.com/atom/ns#' term='nvidia'/><title type='text'>openSUSE 12.1 - Good Enough to Blog About</title><content type='html'>&lt;a href="http://commons.wikimedia.org/wiki/File:Model_of_Electronics_Research_Centers.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://1.bp.blogspot.com/-CNMb7j-52F0/TtRQJyn3yeI/AAAAAAAAAbw/VgosvZpNyTY/s400/Model_of_Electronics_Research_Centers.jpg" width="219" /&gt;&lt;/a&gt;I've been away from the blogging scene for over eight months now. My language skills have languished likewise. It seems only fitting that my return to posting is launched on the same topic I departed with.&lt;br /&gt;&lt;br /&gt;For too long it seems like openSUSE has been stuck within an odd, "uncanny valley" of user experience and desktop usability. It did so much well that the stuff that worked poorly really stuck out like a sore thumb. I've never really had the problems with YaST that others of my kin seem to decry ("Omigosh, you use SuSE? Ugh, is YaST any better?"), but other issues like poor integration points (e.g. Eclipse) and the banishment of SCPM and SaX2 were frustrating.&lt;br /&gt;&lt;br /&gt;openSUSE 11.4 ended up looking okay however had issues with wireless, the &lt;a href="http://nouveau.freedesktop.org/wiki/"&gt;noveau driver&lt;/a&gt; wasn't ready for prime time and LibreOffice ended up being crashtastic. Luckily (I guess?) I had a hard drive crash right before openSUSE 12.1 launch and was able to start clean when the mirrors sync'd on November 16th. As soon as openSUSE 12.1 launched I grabbed an ISO and began installing on my ThinkPad W510.&lt;br /&gt;&lt;br /&gt;Man, what a difference.&lt;br /&gt;&lt;br /&gt;First off, the noveau driver is still a bit buggy but has nearly reached parity with the proprietary NVIDIA driver on desktop compositing and UI effects like wobbly windows. I can't tell you how jazzed I was about this lil' facet. Don't get me wrong, &lt;a href="/search/label/nvidia"&gt;I absolutely adore NVIDIA&lt;/a&gt; and the work they've done to bring driver support to the Linux desktop. Still, an OSS solution that has native integration into XOrg provides a seamless experience - especially with xrandr and KDE 4. Now KDE (and to a lesser extent, the bootloader) can natively manage resolution, orientation and multiple desktops. I was a bit apprehensive given I frequently switch between projectors, dual-screen setups with larger monitors and road-warrior setups with just the laptop display however noveau and KDE 4 are able to switch between these environments without so much as a mouse click. Plug in a VGA cable and boom - I'm broadcasting a second desktop over the monitor. Sweet.&lt;br /&gt;&lt;br /&gt;LibreOffice is much more stable. No huge features I've been able to discern, but then again I'd likely not even notice them given my superficial use of any office suite. Evolution seems a bit smoother and more responsive - hopefully someday soon my office can switch to Exchange 2008 so I can leverage its new SOAP API via Evolution. That should make a big difference over the webdav connectors currently being used.&lt;br /&gt;&lt;br /&gt;I've been trying out new features such as brtfs on alternate workstations, since encrypted brtfs partitions are not supported yet. So far it has been quite nice having snapshot capability and b-tree balancing to a file system, especially given how many crazy files I generate or move around.&lt;br /&gt;&lt;br /&gt;Still very happy with Digikam; it has become my mainstay for post-production of RAW photos. It somewhat softens the harsh reality that my wife's iPhone 4S take better photos than my Canon DSLR.&lt;br /&gt;&lt;br /&gt;All in all, a major tip o' the hat to &lt;a href="http://www.opensuse.org/"&gt;the openSUSE team&lt;/a&gt; on all fronts. Very happy with the usability of the latest release.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-2298421541746612320?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/2298421541746612320/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2011/11/opensuse-121-good-enough-to-blog-about.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/2298421541746612320'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/2298421541746612320'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2011/11/opensuse-121-good-enough-to-blog-about.html' title='openSUSE 12.1 - Good Enough to Blog About'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-CNMb7j-52F0/TtRQJyn3yeI/AAAAAAAAAbw/VgosvZpNyTY/s72-c/Model_of_Electronics_Research_Centers.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-6330189844733891375</id><published>2011-03-12T14:37:00.000-05:00</published><updated>2011-03-12T14:37:10.484-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='opensuse'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='linux desktop'/><title type='text'>Amazing openSUSE 11.4</title><content type='html'>&lt;a href="http://commons.wikimedia.org/wiki/File:Fantastic_Adventures_1949_Mar_cover.jpg" imageanchor="1" style="clear:right; float:right; margin-left:1em; margin-bottom:1em"&gt;&lt;img border="0" height="138" width="175" src="http://3.bp.blogspot.com/-qfO5mvjQ1kA/TXvHDedQ4GI/AAAAAAAAAS8/I9Y3Oi2TjBU/s400/Fantastic_Adventures_1949_Mar_cover.jpg" /&gt;&lt;/a&gt;First of all, I'll admit that I've waxed gloom-and-doom when talking about openSUSE lately. I'm now saying not only that my worries turned out completely wrong, but openSUSE 11.4 is probably the most amazing OS I've run so far.&lt;br /&gt;&lt;br /&gt;I'm not claiming this assertion lightly, either. For the first time in the history of &lt;i&gt;any OS I've ever installed&lt;/i&gt; hardware was detected and installed correctly the first time right away. 3D acceleration worked out of the box. My Intel/Broadcomm chipsets functioned immediately without me even having to edit a config file. I dual-boot with ease. All in all, an effortless installation.&lt;br /&gt;&lt;br /&gt;Performance increases were immediately evident as well. Apps loaded swiftly, content panes refreshed immediately and window compositing worked fantastically. And in this sprint of performance I found that I didn't need a single drop of proprietary software. The open nouveau driver for NVIDIA GPUs now has sufficient 3D support to provide desktop effects such as transparency, and Broadcomm wireless chipsets are now supported within the latest kernel. No joke! Package management is many, &lt;b&gt;MANY&lt;/b&gt; times faster now due to more simple and more concurrent HTTP operations. Updates and package installation is in a whole new league now, and wins hands-down over any other distro (including Windows).&lt;br /&gt;&lt;br /&gt;But wait! There's more! openSUSE 11.4 also is the first distro with Firefox 4.0 and LibreOffice, giving me the freshest builds of two suites I use frequently. Evolution has been updated so that IMAP operations are non-blocking (oh thank the heavens) which makes it appear much faster as well.&lt;br /&gt;&lt;br /&gt;Reading down the list of &lt;a href="http://en.opensuse.org/Product_highlights"&gt;openSUSE 11.4 product highlights&lt;/a&gt; is like looking at my own personal want list for a Linux desktop. If the coming work week goes as smoothly as the past couple of days have, this will be the distro to beat all distros. I even find myself wanting to use openSUSE 11.4 over Windows 7 for random tasks at home, simply because the user interface is much more elegant and flexible.&lt;br /&gt;&lt;br /&gt;I owe openSUSE 11.4 so much that I've finally given up on typing the distro as "OpenSuSE" in homage to the original distribution. SuSE has now grown up and is now truly a fantastic product of the open distro's team - and is now truly openSUSE in its own right.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-6330189844733891375?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/6330189844733891375/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2011/03/amazing-opensuse-114.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/6330189844733891375'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/6330189844733891375'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2011/03/amazing-opensuse-114.html' title='Amazing openSUSE 11.4'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-qfO5mvjQ1kA/TXvHDedQ4GI/AAAAAAAAAS8/I9Y3Oi2TjBU/s72-c/Fantastic_Adventures_1949_Mar_cover.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-6448271878563984836</id><published>2011-02-13T00:16:00.002-05:00</published><updated>2011-02-13T00:17:44.426-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ide'/><category scheme='http://www.blogger.com/atom/ns#' term='web development'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='netbeans'/><category scheme='http://www.blogger.com/atom/ns#' term='grails'/><title type='text'>Unbridled IDE Anger</title><content type='html'>&lt;a href="http://commons.wikimedia.org/wiki/File:Explosions.jpg" imageanchor="1" style="clear: right; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="211" src="http://2.bp.blogspot.com/-7n1NnL_OgLA/TVdlFSxTsfI/AAAAAAAAAS0/BCy4DxvfqVs/s400/Explosions.jpg" width="200" /&gt;&lt;/a&gt;It's midnight as I type this. I have spent the past four hours attempting &lt;em&gt;edit a single freaking Grails project within an IDE&lt;/em&gt;. Any IDE.&lt;br /&gt;&lt;br /&gt;&lt;a href="/2010/04/eclipsed-by-bean-maven.html"&gt;I switched to NetBeans almost nine months ago&lt;/a&gt; and I've been a very happy NetBean'er. Everything worked out of the box with minimum futz and complied quite nicely with accepted standards. Maven 2, Subversion, minimalist Java runtimes and Spring hummed along without complaint. Looking to accelerate development of simple maintenance web applications I turned to Grails... and then things started to fall apart.&lt;br /&gt;&lt;br /&gt;Grails actually has some great tooling within NetBeans, but one bug has been a huge thorn in my side. &lt;a href="http://netbeans.org/bugzilla/show_bug.cgi?id=144243"&gt;An acknowledged bug&lt;/a&gt; causes Grails projects to not notice any external libraries, even if they are your own and open within NetBeans. This is &lt;u&gt;beyond annoying&lt;/u&gt; because features like syntax highlighting, error detection and auto-completion go completely awry. The bug is reportedly resolved in the upcoming version 7 of NetBeans, however I installed Beta 7 and the problem continues to occur.&lt;br /&gt;&lt;br /&gt;Not being beyond switching back to Eclipse, I decided to try Spring's own IDE. Spring's IDE is a slightly customized version of Eclipse, with a bit nicer front-end dashboard for plugins and Spring product support built-in. Since Grails is a Spring project I figured it would work well.... and indeed it did. My other projects... well...&lt;br /&gt;&lt;br /&gt;SpringSource Tool Suite uses the latest beta of Maven 3 for dependency resolution... and &lt;i&gt;you cannot change that&lt;/i&gt;. Yes, you can specify alternate Maven installations, but STS completely ignores those settings for dependency resolution. Maven 3 will also refuse to load transient dependencies if it doesn't like your POM as well - which means that you simply cannot load your application with all required libraries if your Maven 2 pom.xml is rejected by Maven 3.&lt;br /&gt;&lt;br /&gt;I could go back to my old Eclipse installation... and then I need to find a way to load the Grails plugins into the old Eclipse install. That sounds like loads of fun.&lt;br /&gt;&lt;br /&gt;So now I have three choices:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Use NetBeans and have absolutely no auto-complete or strongly typed variables&lt;br /&gt;&lt;li&gt;Use SpringSource Tool Suite and re-do all my Maven 2 POMs&lt;br /&gt;&lt;li&gt;Use my old Eclipse installation and try to install the necessary Spring plugins&lt;br /&gt;&lt;/ol&gt;Now, bear in mind I've burned four hours trying to STS to work. Another four to get NetBeans to work. How interested do you think I am at trying to get &lt;b&gt;MORE&lt;/b&gt; plugins shoved into my old Eclipse installation?&lt;br /&gt;&lt;br /&gt;I'm cheezed because NetBeans Grails support is rendered nearly useless by a fairly blatant bug. And I'm cheezed because Eclipse continues to be an albatross to every normal project I have. IntelliJ IDEA - you might just be next.&lt;br /&gt;&lt;br /&gt;Until then, I've got a Grails app to blindly maintain while NetBeans continues to yell about imports not being found.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-6448271878563984836?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/6448271878563984836/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2011/02/unbridled-ide-anger.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/6448271878563984836'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/6448271878563984836'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2011/02/unbridled-ide-anger.html' title='Unbridled IDE Anger'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-7n1NnL_OgLA/TVdlFSxTsfI/AAAAAAAAAS0/BCy4DxvfqVs/s72-c/Explosions.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-6556410585055315736</id><published>2010-12-04T22:27:00.000-05:00</published><updated>2010-12-04T22:27:12.440-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='sun'/><category scheme='http://www.blogger.com/atom/ns#' term='opensuse'/><category scheme='http://www.blogger.com/atom/ns#' term='nokia'/><category scheme='http://www.blogger.com/atom/ns#' term='trolltech'/><category scheme='http://www.blogger.com/atom/ns#' term='qt'/><category scheme='http://www.blogger.com/atom/ns#' term='novell'/><category scheme='http://www.blogger.com/atom/ns#' term='suse'/><category scheme='http://www.blogger.com/atom/ns#' term='oracle'/><title type='text'>Candyland Gets Paved. Again. Repeatedly.</title><content type='html'>&lt;a href="http://commons.wikimedia.org/wiki/File:Road_construction_in_Afghanistan.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="217" src="http://1.bp.blogspot.com/_UGOF73TqM5A/TPsFj7X50zI/AAAAAAAAASA/1aqG7ajRyRc/s320/Road_construction_in_Afghanistan.jpg" width="320" /&gt;&lt;/a&gt;I'm getting a bit tired of being so curmudgeonly. I can't help it tho. All my toys are being taken away.&lt;br /&gt;&lt;br /&gt;First Novell acquires SuSE Linux, which I have been fairly skeptical of since the purchase was announced. Then &lt;a href="http://www.blogger.com/2008/01/nokia-acquires-trolltech-qt.html"&gt;Nokia ate Trolltech&lt;/a&gt;, the place where my favorite Qt was grown. And &lt;i&gt;then&lt;/i&gt; &lt;a href="http://deckerego.blogspot.com/2009/04/candyland-gets-paved.html"&gt;Oracle ate Sun Microsystems&lt;/a&gt;, the ones who kept expanding the boundaries of software engineering and releasing such leaps to the public (usually (sometimes)). Now Oracle is smacking around robust and growing projects that have served the software engineering good for many years now.&lt;br /&gt;&lt;br /&gt;And now Novell is &lt;a href="http://lwn.net/Articles/416567"&gt;bought by Attachmate&lt;/a&gt;, with 882 patents being absorbed by a Microsoft subsidiary. The &lt;a href="http://news.opensuse.org/2010/11/22/novell-agrees-to-be-acquired-by-attachmate-corporation/"&gt;openSUSE team says everything is "business as usual,"&lt;/a&gt;, but there are &lt;a href="http://lwn.net/Articles/417654"&gt;very strong indications&lt;/a&gt; that this will not always be so.&lt;br /&gt;&lt;br /&gt;Maybe this is just the ebb and flow that is technology capitalism... but all my power tools seem to be disappearing. If Apache and JBoss are bought by Philip Morris, I'm going to freakin' lose it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-6556410585055315736?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/6556410585055315736/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2010/12/candyland-gets-paved-again-repeatedly.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/6556410585055315736'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/6556410585055315736'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2010/12/candyland-gets-paved-again-repeatedly.html' title='Candyland Gets Paved. Again. Repeatedly.'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_UGOF73TqM5A/TPsFj7X50zI/AAAAAAAAASA/1aqG7ajRyRc/s72-c/Road_construction_in_Afghanistan.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-616654884903740683</id><published>2010-11-01T22:54:00.003-04:00</published><updated>2010-11-01T23:09:08.550-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hulu desktop'/><category scheme='http://www.blogger.com/atom/ns#' term='kde 4'/><category scheme='http://www.blogger.com/atom/ns#' term='linux desktop'/><category scheme='http://www.blogger.com/atom/ns#' term='mythtv'/><title type='text'>Except a Gleam Across the Dreamer's Face</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://commons.wikimedia.org/wiki/File:Worcester.dream.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_UGOF73TqM5A/TM980_V0DcI/AAAAAAAAAR8/VMkBjVb1srk/s1600/Worcester.dream.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;I'm a little late on this since I've been exhausting my mana &lt;a href="http://www.blogger.com/2010/10/return-to-code.html"&gt;ranting elsewhere&lt;/a&gt;, but rest assured I've been thinking about this a lot during the shower in the morning. I mean... wait... there's a less awkward way of saying that...&lt;br /&gt;&lt;br /&gt;PC World has declared that &lt;a href="http://www.pcworld.com/businesscenter/article/207999/desktop_linux_the_dream_is_dead.html"&gt;the Linux desktop missed its opportunity&lt;/a&gt; to gain market share, and that opportunity has passed. To a point this is true... the Linux desktop was a viable alternative when Vista was rejected by the public at large. It didn't matter if users had even &lt;i&gt;tried&lt;/i&gt; Vista in their lifetime - public opinion had spoken, and Vista wasn't invited to the consumer PC party. A huge market share vacuum was left behind and Linux tried to fill it as rapidly as possible, but it simply had too much ground to cover. By the time the Linux desktop caught up (and they did &lt;a href="http://www.blogger.com/2009/11/opensuse-112-no-i-will-not-spell-it.html"&gt;catch up in my opinion&lt;/a&gt;) it was simply too late for inclusion by OEMs into netbooks - the hardware platform that was absolutely made for Linux.&lt;br /&gt;&lt;br /&gt;Gosling ends up agreeing &lt;a href="http://nighthacks.com/roller/jag/entry/desktop_linux_the_dream_is"&gt;but on a different premise&lt;/a&gt;: the economics of OSS don't work for desktop software that "just works" out of the box. This has some truth as well - a pay-per-support model cannot sustain an OSS desktop when the expectation is that the desktop should simply "work" without the need to call for support. By the time the user picks up the phone for help the desktop environment has already failed. Desktops must install and operate without a need for any hand-holding.&lt;br /&gt;&lt;br /&gt;PC World did make one important point that shouldn't be glossed over - the traditional, monolithic desktop is dying off. I'm not saying that the desktop is going away by any measure... but people are returning to the time where they see desktops, laptops, mobile phones and TV's as "appliances" and no longer as "computers." Each serves a function of its own and is expected to work in concert with the rest of the electronic family.&lt;br /&gt;&lt;br /&gt;I hope these blogs o' doom don't have a chilling effect on writing applications for the Linux desktop. Linux is only going to see &lt;i&gt;greatly increasing&lt;/i&gt; deployments in the future, not diminishing ones. The desktop is not simply going to be defined as KDE 4 or Gnome, but instead is going to exist as &lt;a href="http://www.hulu.com/labs/hulu-desktop-linux"&gt;Hulu Desktop&lt;/a&gt; and/or &lt;a href="http://www.blogger.com/2010/08/alsa-good-in-mythtv-i-do-hulu.html"&gt;MythTV&lt;/a&gt;. The desktop creates and consumes content - the lines between OS' are starting to dissolve.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-616654884903740683?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/616654884903740683/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2010/11/except-gleam-across-dreamers-face.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/616654884903740683'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/616654884903740683'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2010/11/except-gleam-across-dreamers-face.html' title='Except a Gleam Across the Dreamer&apos;s Face'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_UGOF73TqM5A/TM980_V0DcI/AAAAAAAAAR8/VMkBjVb1srk/s72-c/Worcester.dream.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-5722947145052844136</id><published>2010-10-14T22:45:00.000-04:00</published><updated>2010-10-14T22:45:20.374-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tux'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='sun'/><category scheme='http://www.blogger.com/atom/ns#' term='duke'/><category scheme='http://www.blogger.com/atom/ns#' term='java 6 ee'/><category scheme='http://www.blogger.com/atom/ns#' term='ibm'/><category scheme='http://www.blogger.com/atom/ns#' term='oracle'/><title type='text'>Is Oracle Doing what Sun Couldn't? I Can't Bring Myself To Think So.</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://nighthacks.com/roller/jag/resource/so_long_old_friend.html" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_UGOF73TqM5A/TLe9a4avgvI/AAAAAAAAAR4/0jnHnR66ebc/s1600/SunRIP.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;I'm staring at my mug with the &lt;a href="http://nighthacks.com/roller/jag/resource/so_long_old_friend.html"&gt;image James Gosling created&lt;/a&gt; - Tux standing in front of Sun's gravestone, consoling Duke's loss. Sun left us too early... it was always an amazing playground of tech, giving us cool stuff like Jini and JMX. I was ill at ease with Oracle before their acquisition of Sun, and now I'm even more so.&lt;br /&gt;&lt;br /&gt;Still... I noticed that Oracle recently has done something that Sun hasn't been able to do. While Sun tried to govern Java with some sort of loose democracy known as the Java Community Process, it never was able to get consensus with the group and move forward. Perhaps Oracle's benevolent dictatorship is what the JCP needed - for now they have been able to get &lt;a href="http://www.oracle.com/us/corporate/press/176988"&gt;IBM to join forces with them and work on development of the OpenJDK&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;This is a pretty big deal, &lt;a href="http://nighthacks.com/roller/jag/entry/peace_breaks_out"&gt;as Gosling notes&lt;/a&gt;. Not only does this collaboration accelerate open Java development but this also possibly &lt;i&gt;reduces&lt;/i&gt; fragmentation since &lt;a href="http://www.sutor.com/c/2010/10/ibm-joins-the-openjdk-community/"&gt;IBM will be scaling down their work on the Apache Harmony JVM&lt;/a&gt;. RedHat's IcedTea implementation is already &lt;a href="http://lwn.net/Articles/409579/"&gt;married to the OpenJDK codebase&lt;/a&gt;, and without IBM's backing of Harmony the OpenJDK implementation quickly becomes a de facto standard.&lt;br /&gt;&lt;br /&gt;If Oracle can light a fire under the JCP and put significant engineering efforts around an Open Java development tookit... I dunno. Maybe things will turn out all right after all. I'm still pretty hesitant.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-5722947145052844136?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/5722947145052844136/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2010/10/is-oracle-doing-what-sun-couldnt-i-cant.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/5722947145052844136'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/5722947145052844136'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2010/10/is-oracle-doing-what-sun-couldnt-i-cant.html' title='Is Oracle Doing what Sun Couldn&apos;t? I Can&apos;t Bring Myself To Think So.'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_UGOF73TqM5A/TLe9a4avgvI/AAAAAAAAAR4/0jnHnR66ebc/s72-c/SunRIP.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-5755504751972674601</id><published>2010-10-10T15:22:00.000-04:00</published><updated>2010-10-10T15:22:25.835-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='game development'/><category scheme='http://www.blogger.com/atom/ns#' term='deskblocks'/><title type='text'>A Return to Code</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_UGOF73TqM5A/TLHZ9D4yacI/AAAAAAAAAR0/lJxk_ogkBQ8/s1600/deskblocks.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_UGOF73TqM5A/TLHZ9D4yacI/AAAAAAAAAR0/lJxk_ogkBQ8/s1600/deskblocks.png" /&gt;&lt;/a&gt;&lt;/div&gt;My blogging juice is running low as of late. For the past several months I have been getting paid to blog... which is weird. Now the din of typing that has usually prefaced a post here ends up being posted elsewhere. It's awesome to get paid for something you love doing, but it does mean that free time is sparse. For example, it has taken me a good four days just to write this post.&lt;br /&gt;&lt;br /&gt;In the pauses between work and life I've been trying to look at &lt;a href="http://deskblocks.sourceforge.net/"&gt;DeskBlocks&lt;/a&gt; again. I still really like the idea: a physics sandbox that plays directly in your window manager and interacts with your desktop. I have a working version &lt;a href="http://sourceforge.net/projects/deskblocks/"&gt;on SourceForge&lt;/a&gt;, but it requires a version of ODE and has a few bugs. I would like to ensure it plays nicely with multi-monitor setups as well, especially on dual displays with disparate resolutions.&lt;br /&gt;&lt;br /&gt;Of course my code has rusted in the months that it has gone untouched, and the algorithms I used to constrain the physics to two dimensions (instead of ODE's three) have become antiquated. 2D is a much more out-of-the-box affair now, and building with the newer library versions brings an instant segfault on object creation. Qt has matured over time as well, and I need to leverage the newer functionality of Qt 4.7. Not to mention my C++ brain has atrophied and need some exercise.&lt;br /&gt;&lt;br /&gt;I'm glad I wrote down most of my thoughts in a design journal - a discipline I've been doing for a few years now both at work and with personal projects. Old notes have saved me on a number of occasions, especially in scenarios like this where I'm picking up something after a long pause.&lt;br /&gt;&lt;br /&gt;I'm not sure how much progress I can make when my development time will only come in fits and starts, but I'm hopeful I can finally release something worth playing.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-5755504751972674601?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/5755504751972674601/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2010/10/return-to-code.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/5755504751972674601'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/5755504751972674601'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2010/10/return-to-code.html' title='A Return to Code'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_UGOF73TqM5A/TLHZ9D4yacI/AAAAAAAAAR0/lJxk_ogkBQ8/s72-c/deskblocks.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-3604598376364067197</id><published>2010-08-01T16:30:00.003-04:00</published><updated>2010-08-01T16:35:44.116-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hulu desktop'/><category scheme='http://www.blogger.com/atom/ns#' term='surround sound'/><category scheme='http://www.blogger.com/atom/ns#' term='mythtv'/><category scheme='http://www.blogger.com/atom/ns#' term='hdtv'/><category scheme='http://www.blogger.com/atom/ns#' term='alsa'/><category scheme='http://www.blogger.com/atom/ns#' term='hulu'/><title type='text'>ALSA Good in MythTV, I do the Hulu!</title><content type='html'>I'm a very happy puppy. Now at least.&lt;br /&gt;&lt;br /&gt;There's a re-occurring mystery that happens with my MythTV boxes. Several versions and several builds of Myth work fantastically when suddenly &lt;b&gt;KAPOW&lt;/b&gt; - the recording stops. Oh sure, it &lt;i&gt;says&lt;/i&gt; it records crap, but then I try to take a look and nuttin' is on the file system. The only recourse I've been able to find so far is to drop the entire database and re-build it from scratch. Ick.&lt;br /&gt;&lt;br /&gt;This happened to me recently and I took the opportunity to take a deeper dive on getting the hardware working correctly. &lt;a href="http://www.blogger.com/2009/02/retelling-yet-another-myth.html"&gt;When I first configured my latest Myth box&lt;/a&gt; I settled with a non-working ALSA configuration and just piped audio to the OSS compatibility device at /dev/adsp. It worked, even though the DTS or AC3 surround sound pass-thru didn't work. This time I hunkered down and really tried to get the thing to work.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_UGOF73TqM5A/TFORa4QF5VI/AAAAAAAAARk/bZqOQBwPXgs/s1600/mythtv+alsa+spdif.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="240" src="http://2.bp.blogspot.com/_UGOF73TqM5A/TFORa4QF5VI/AAAAAAAAARk/bZqOQBwPXgs/s320/mythtv+alsa+spdif.png" width="320" /&gt;&lt;/a&gt;I dug deeper into &lt;a href="http://alsa.opensrc.org/index.php/DigitalOut"&gt;ALSA's digital out documentation&lt;/a&gt;, going through every step they illustrated to find how I could patch MythTV's audio to ALSA. I pointed MythTV directly to spdif by specifying ALSA:plug:spdif for the audio output device. It works fantastically now and feeds pristine audio from the pcHDTV HD-5500.&lt;br /&gt;&lt;br /&gt;Once audio worked I wanted to up the ante a bit. I've given up on my cable television service and wanted to see if I could supplant it with &lt;a href="http://www.netflix.com/"&gt;Netflix&lt;/a&gt; and &lt;a href="http://www.hulu.com/"&gt;Hulu&lt;/a&gt;. Netflix works great &lt;a href="http://www.netflix.com/NRD/Wii"&gt;through the Wii&lt;/a&gt; and &lt;a href="http://www.hulu.com/labs/hulu-desktop-linux"&gt;Hulu's Desktop app&lt;/a&gt; works amazingly well on Linux. It was a straight-forward process to &lt;a href="http://www.mythtv.org/wiki/Hulu_Desktop_Integration"&gt;launch Hulu Desktop right from within MythTV&lt;/a&gt; and even bind the same remote commands in Hulu. At first sound did not work: Hulu Desktop uses the default ALSA output instead of letting me explicitly define the spdif channel. No matter - after a &lt;a href="http://mythtv.org/pipermail/mythtv-users/2010-March/283586.html"&gt;little bit of checking&lt;/a&gt; I just created a PCM default by feeding the mythtv user account its own, custom ~/.asoundrc containing:&lt;br /&gt;&lt;code&gt;pcm.!default {&lt;br /&gt;type plug&lt;br /&gt;slave.pcm "iec958"&lt;br /&gt;}&lt;/code&gt;&lt;br /&gt;This had ALSA make spdif the default output and Hulu Desktop was happy. Woohoo!&lt;br /&gt;&lt;br /&gt;One additional problem however... for some reason both Hulu Desktop &lt;i&gt;and&lt;/i&gt; MythTV rendered a bigger window than my TV could display. For some odd reason my TV only displays 97% of the content rendered by my video card. For example, if I tried to set my resolution to 1920x1080 (the maximum supported by my television), then MythTV's interface would be slightly too big to fit the screen - 57 pixels would be cut away at the left &amp; right, 32 pixels trimmed from the top &amp; bottom. To get around this I had to tell both Hulu Desktop and MythTV to shrink by 3% and then re-center themselves. For a 1920x1080 resolution this meant having MythTV shrink to 1863x1048 with an x,y offset (a.k.a. window origin) at 29,16. For performance reasons I switch to a 960x540 resolution for Hulu Desktop, which means a 932x524 window size starting at 14,8. Once I made those size &amp; position tweaks everything fit perfectly.&lt;br /&gt;&lt;br /&gt;After a &lt;b&gt;ton&lt;/b&gt; of trial and error I now have 5.1 channel surround sound for recorded HDTV broadcast streams (when available) and have Hulu Desktop &amp; Netflix running on the living room television. Now I'm happy... no more cable TV, less commercials and tons of stuff on demand. If only Netflix would provide a Linux-friendly player the living room setup would be in pure harmony. Until then, I've got the closest thing to it and a smaller bill every month.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-3604598376364067197?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/3604598376364067197/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2010/08/alsa-good-in-mythtv-i-do-hulu.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/3604598376364067197'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/3604598376364067197'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2010/08/alsa-good-in-mythtv-i-do-hulu.html' title='ALSA Good in MythTV, I do the Hulu!'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_UGOF73TqM5A/TFORa4QF5VI/AAAAAAAAARk/bZqOQBwPXgs/s72-c/mythtv+alsa+spdif.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-8982731399176796316</id><published>2010-07-17T20:55:00.000-04:00</published><updated>2010-07-17T20:55:09.856-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='opensuse'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='linux desktop'/><title type='text'>openSuSE 11.3 - And The Rage Returns</title><content type='html'>&lt;a href="http://commons.wikimedia.org/wiki/File:Black_and_White_looking_sad.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_UGOF73TqM5A/TEJJziC8yfI/AAAAAAAAARc/GKix4vCcwcU/s320/Black_and_White_looking_sad.jpg" /&gt;&lt;/a&gt;I really want to love &lt;a href="http://www.opensuse.org/"&gt;openSuSE&lt;/a&gt;. I really, truly do. Things were going so well between us... &lt;a href="/2009/11/opensuse-112-no-i-will-not-spell-it.html"&gt;I was very happy with openSuSE 11.2&lt;/a&gt;, so much so that I installed 11.3 the same day it dropped. Things looked even more polished - no missing icons, no segfaults, everything operated cleanly and worked well. I went to install my favorite SuSE applications... and they simply weren't there anymore.&lt;br /&gt;&lt;br /&gt;First let's discuss SaX2. &lt;a href="/2008/12/why-wrestle-with-x-when-you-can-sax2-it.html"&gt;I love SaX2&lt;/a&gt; and how it makes XOrg configuration so automagic. Yet SaX2 is no longer provided with SuSE distributions. The openSuSE team did announce that this was happening, supposedly because "&lt;a href="http://en.opensuse.org/Archive:SaX2"&gt;automatic configuration and dynamic reconfiguration mechanisms have been developed such that today the tasks that SaX2 was able to do are done fully automatically on the fly and can be modified from within a desktop session.&lt;/a&gt;" They might have a point... I do use nivida-settings more than SaX2 now. Oh well... I'm willing to let it go.&lt;br /&gt;&lt;br /&gt;However one thing I &lt;i&gt;wasn't&lt;/i&gt; able to let go of is SCPM. It went missing without so much as a trace and a profile management package can't be found in &lt;b&gt;any repo&lt;/b&gt; for openSuSE 11.3. This was a &lt;i&gt;major&lt;/i&gt; product differentiators for ALL SuSE distros, and for it to be missing is a huge shame. Now it is even harder for me to switch between configuration profiles for presentations/home/work, as they take wildly different network configurations, display configurations, peripheral configurations, printer configs, on and on and on... The omission of SCPM is pretty grave.&lt;br /&gt;&lt;br /&gt;I went to find solace in my &lt;a href="http://www.reallyslick.com/"&gt;Really Slick Screensavers&lt;/a&gt;. I added my &lt;a href="http://kde-look.org/content/show.php/KDE4+Entries+for+RSS+%26+XScreenSaver?content=92544"&gt;missing KDE4 screensaver entries&lt;/a&gt; and expected them to work as they always have. Then I ran across yet another omission - the KDE xscreensaver compatibility applications were missing as well. This omission was even more curious, as they &lt;a href="http://forums.opensuse.org/english/get-help-here/applications/442096-xscreensaver-support-kde-missing-kxsrun-kxsconfig-no-longer-available.html"&gt;are missing in the binary packages but are present in the source packages&lt;/a&gt;. I re-built the RPM from source, re-installed it and the xscreensaver compatibility layer appeared. Odd... and now I'll have to re-do that step with every patch &amp; upgrade.&lt;br /&gt;&lt;br /&gt;I don't know what to think of 11.3 yet. On one had it works extremely well and the &lt;a href="http://news.opensuse.org/2009/03/05/112-roadmap-and-fixed-release-cycle-for-opensuse/"&gt;longer release cycle&lt;/a&gt; appears to have served them well. Still, I can't help but feel that some things were omitted to simplify the packaging of the distribution... and that could be a bad omen of things to come.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-8982731399176796316?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/8982731399176796316/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2010/07/opensuse-113-and-rage-returns.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/8982731399176796316'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/8982731399176796316'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2010/07/opensuse-113-and-rage-returns.html' title='openSuSE 11.3 - And The Rage Returns'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_UGOF73TqM5A/TEJJziC8yfI/AAAAAAAAARc/GKix4vCcwcU/s72-c/Black_and_White_looking_sad.jpg' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-2697398636963451086</id><published>2010-06-01T20:08:00.002-04:00</published><updated>2010-06-01T20:09:42.321-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web development'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><title type='text'>Into the Breach</title><content type='html'>&lt;a href="http://commons.wikimedia.org/wiki/File:1927_Mississippi_Flood_Levee_Breach.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_UGOF73TqM5A/S_vLy5V1J1I/AAAAAAAAARU/zchLWHog5KQ/s320/1927_Mississippi_Flood_Levee_Breach.jpg" /&gt;&lt;/a&gt;Seriously? May is gone already? Dang.&lt;br /&gt;&lt;br /&gt;I've noticed an interesting trend among black hats lately, particularly with hosted software solutions or software-as-a-service entrants. First Jira had an &lt;a href="http://confluence.atlassian.com/display/JIRA/JIRA+Security+Advisory+2010-04-16"&gt;exploit and a few large compromises&lt;/a&gt;, not to mention a flurry of fits and starts when &lt;a href="http://www.zdnet.com.au/atlassian-reset-account-passwords-now-339302374.htm"&gt;Atlassian left an old password database out in the open&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Not too soon after it was revealed that &lt;a href="http://www.theregister.co.uk/2010/04/26/splunk_passwords_revealed/"&gt;Splunk had suffered a similar compromise&lt;/a&gt;, revealing user passwords. While the security hole itself was something Splunk was responsible for this does indicate a growing trend of attacks against hosted software.&lt;br /&gt;&lt;br /&gt;It is easier now than ever to host a web application, but lil' thinks like multi-tenancy and browser security contexts are &lt;i&gt;not&lt;/i&gt; easy nuts to crack. It may be generally believed that smart minds elsewhere have figured it out, but we're rapidly finding out that behind every webapp there is a seedy crew trying to hack through it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-2697398636963451086?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/2697398636963451086/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2010/06/into-breach.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/2697398636963451086'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/2697398636963451086'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2010/06/into-breach.html' title='Into the Breach'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_UGOF73TqM5A/S_vLy5V1J1I/AAAAAAAAARU/zchLWHog5KQ/s72-c/1927_Mississippi_Flood_Levee_Breach.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-944679667764834904</id><published>2010-04-10T01:32:00.000-04:00</published><updated>2010-04-10T01:32:18.346-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cpu'/><category scheme='http://www.blogger.com/atom/ns#' term='intel'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='laptops'/><title type='text'>So Many Cores, So Little Time</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_UGOF73TqM5A/S79EDQ8vKoI/AAAAAAAAARM/Z1h5G-2BNs0/s1600/System+Monitor.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_UGOF73TqM5A/S79EDQ8vKoI/AAAAAAAAARM/Z1h5G-2BNs0/s320/System+Monitor.png" /&gt;&lt;/a&gt;My new work laptop is a ThinkPad W510... a Core i7 Q 720 at 1.6GHz. It has four hyperthreaded cores which /proc/cpuinfo allows me to monitor as eight... meaning my system monitor looks &lt;i&gt;awesome&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;Now I'm at the bleeding edge (I guess) of hardware, as now everything requires the latest drivers. I had to manually acquire the firmware for my wireless NIC &lt;a href="http://intellinuxwireless.org/?n=downloads"&gt;from Intel directly&lt;/a&gt;, then build &lt;a href="http://linuxwireless.org/en/users/Download"&gt;the Linux wireless drivers&lt;/a&gt; from source and install them. Luckily the process was surprisingly easy... it was just that I had to track down and download kernel sources, the GCC build chain, firmware and the wireless driver package without Internet access on the laptop. Still, once that was done the Linux wireless source configure/build/install was quick and easy.&lt;br /&gt;&lt;br /&gt;I also had to go directly to &lt;a href="http://www.nvidia.com/Download/Find.aspx?lang=en-us"&gt;NVIDIA's beta driver portal&lt;/a&gt; and get the very latest binary drivers for the GPU as well... the console itself was being corrupted by display errors. Again, not hard to fix, just another step.&lt;br /&gt;&lt;br /&gt;In the age of everything "just working" on Linux distros I was glad to see that the ancient art of configure/make/make install is still being practiced... in fact it works better than ever.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-944679667764834904?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/944679667764834904/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2010/04/so-many-cores-so-little-time.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/944679667764834904'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/944679667764834904'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2010/04/so-many-cores-so-little-time.html' title='So Many Cores, So Little Time'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_UGOF73TqM5A/S79EDQ8vKoI/AAAAAAAAARM/Z1h5G-2BNs0/s72-c/System+Monitor.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-5677156536192776140</id><published>2010-04-05T21:41:00.000-04:00</published><updated>2010-04-05T21:41:00.435-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='netbeans'/><category scheme='http://www.blogger.com/atom/ns#' term='java 6 ee'/><category scheme='http://www.blogger.com/atom/ns#' term='maven'/><title type='text'>Eclipsed by a Bean Maven</title><content type='html'>&lt;a href="http://commons.wikimedia.org/wiki/File:Castor_beans.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_UGOF73TqM5A/S7afIsf64lI/AAAAAAAAARE/oXbHp1zVZqE/s320/Castor_beans.jpg" /&gt;&lt;/a&gt;I've &lt;a href="/2006/03/just-one-small-tweak.html"&gt;long been a fan of NetBeans&lt;/a&gt;, but for the past several years I have had to use Eclipse. Nearly all of the projects or organizations I've walked into have had pre-existing standards and ways of doin' stuff, and the worst thing you can do as a greenhorn in a company is try to switch horses mid-stream.&lt;br /&gt;&lt;br /&gt;Wow... I get a triple combo score for clichés there.&lt;br /&gt;&lt;br /&gt;Now I get to bootstrap a development team and decide what we use. The awesome thing is that there are now something like elebenty kabillion IDEs, RIA frameworks and rapid application environments. JSF no longer blows. Everyone uses the same build files now. XML hell is now in the rear-view mirror. Vendor lock-in isn't what it used to be thankfully enough.&lt;br /&gt;&lt;br /&gt;When I started building out projects I went for an IDE with tight Maven 2 integration, JSF 2.0 support, Java EE 6 interwoven and nice Subversion tools. I imagined that I'd be heavily leveraging plugins from the &lt;a href="http://springide.org/"&gt;Spring IDE&lt;/a&gt; project and plugins from JBoss, notably the &lt;a href="http://www.jboss.org/drools.html"&gt;Drools Workbench&lt;/a&gt;. All this plugin support caused me to initially lean towards Eclipse.&lt;br /&gt;&lt;br /&gt;As I went further along I also started using GlassFish v3 instead of Tomcat, exploring JavaFX and increasingly using Maven 2 for continuous integration and artifact generation. I didn't really use the features of Spring IDE at all, and while I did use the Drools Workbench I ended up doing more decision-table type stuff, making drl's easier to manage. Ultimately a deciding moment came when I needed to do a very quick-and-dirty desktop application with a simple user interface... something that just needed a logo, URL text field, username and password. For the life of me I couldn't find any free/OSS plugins for Eclipse that let me create a quick JDesktop or Swing application... at least within the 45 minutes that I had available. After pulling out my hair I had a sudden flashback to the good ole' &lt;a href="http://consultcomm.sourceforge.net/"&gt;ConsultComm&lt;/a&gt; days and reminisced "boy, creating UIs in NetBeans sure was swell." It was at that point when I tried to think of any reasons why I was sticking with Eclilpse... and came up empty.&lt;br /&gt;&lt;br /&gt;I've switched to NetBeans, which the IDE itself made &lt;i&gt;extremely easy&lt;/i&gt; with it's Eclipse workspace synchronization. Read that line again... &lt;u&gt;synchronization&lt;/u&gt;. I know! Mind blowing! It doesn't &lt;i&gt;import&lt;/i&gt; the project, it allows your project to remain in the Eclipse workspace while also being mantained in NetBeans. Easy!&lt;br /&gt;&lt;br /&gt;All the UI goodness I remembered was still there. In no time flat I had created the entire UI and help menus. Not once did I consult a HowTo or documentation, instead it all immediately made sense. The entire project was done before lunch.&lt;br /&gt;&lt;br /&gt;I have shifted all of my development to NetBeans now, despite the fact that &lt;a href="/2009/04/candyland-gets-paved.html"&gt;I can't be sure where its future lies&lt;/a&gt;. I don't care. I'll take advantage of an easy-to-use IDE as long as I possibly can. If I switch back to Eclipse in the future it will like be because I was forced to... just like every other time in the past.&lt;br /&gt;&lt;br /&gt;As for standardizing on a development environment: I've learned that no one IDE fits all. Every developer has a preference, and with Maven 2 reaching near-ubiquity it doesn't matter nearly as much as it used to. I say let every developer chose his or her IDE, just pick the one you work most rapidly and naturally within. As long as I can build it with mvn on the command line I just don't care.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-5677156536192776140?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/5677156536192776140/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2010/04/eclipsed-by-bean-maven.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/5677156536192776140'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/5677156536192776140'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2010/04/eclipsed-by-bean-maven.html' title='Eclipsed by a Bean Maven'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_UGOF73TqM5A/S7afIsf64lI/AAAAAAAAARE/oXbHp1zVZqE/s72-c/Castor_beans.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-4449491055814337336</id><published>2010-02-21T23:05:00.000-05:00</published><updated>2010-02-21T23:05:52.402-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='spring integration'/><category scheme='http://www.blogger.com/atom/ns#' term='apache camel'/><category scheme='http://www.blogger.com/atom/ns#' term='esb'/><category scheme='http://www.blogger.com/atom/ns#' term='design patterns'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='enterprise integration patterns'/><title type='text'>Camel Integration</title><content type='html'>&lt;a href="http://commons.wikimedia.org/wiki/File:Burton_minicamel.PNG" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_UGOF73TqM5A/S4ICUJTQ2LI/AAAAAAAAAQ8/_K33TfR5j1E/s320/Burton_minicamel.png" /&gt;&lt;/a&gt;Sweet monkey spit... did I just miss January entirely? Is it seriously February? Dang.&lt;br /&gt;&lt;br /&gt;One thing I have been researching lately has been enterprise integration frameworks. I'm a big fan of &lt;a href="http://www.blogger.com/2008/02/designing-head-patterns.html"&gt;thinking in patterns&lt;/a&gt; while doing design &lt;i&gt;and&lt;/i&gt; development and that goes double for architecting systems as well. When I sit down to architect a system I do my best to first think in terms of &lt;a href="http://www.eaipatterns.com/"&gt;Enterprise Integration Patterns&lt;/a&gt;, then in terms of &lt;a href="http://en.wikipedia.org/wiki/Design_Patterns"&gt;the Gang of Four's Design Patterns&lt;/a&gt;, and &lt;i&gt;then&lt;/i&gt; in terms of implementation.&lt;br /&gt;&lt;br /&gt;For a current project I've completed the architecture and a good chunk of design, so now I'm looking at implementation. I need to tie together a lot of disparate views to a lot of disparate services, which originally sent me down the path of evaluating Enterprise Service Bus products. I liked the content based routing using &lt;a href="http://jboss.org/drools"&gt;Drools&lt;/a&gt; utilized by &lt;a href="http://www.jboss.org/jbossesb/"&gt;JBoss ESB&lt;/a&gt; and &lt;a href="http://servicemix.apache.org/servicemix-drools.html"&gt;ServiceMix&lt;/a&gt;. The orchestration of &lt;a href="http://www.chainforge.net/"&gt;Chainbuilder&lt;/a&gt; was also a nice move forward. All had proper integration with naming and directory services as well. Ultimately, however, I found that most of the functionality within an ESB solution simply wouldn't be leveraged; the authentication and authorization model would need to be refactored, I didn't really need transactional support and there was no business process management to speak of. &lt;br /&gt;&lt;br /&gt;I really just needed component adapters, translators and content-based routing. Slimming things down to just an integration framework left two main choices: &lt;a href="http://camel.apache.org/"&gt;Apache Camel&lt;/a&gt; and &lt;a href="http://www.springsource.org/spring-integration"&gt;Spring Integration&lt;/a&gt;. Both offered the decoupling I needed and mirrored the Enterprise Integration Patterns I had already used in my architecture layouts. Even though these two frameworks are remarkably different in their implementation they are difficult to contrast. The rumor is that this similar-but-different approach is well known, in that &lt;a href="http://raibledesigns.com/rd/entry/taking_apache_camel_for_a"&gt;the Camel team originally envisioned becoming a part of Spring&lt;/a&gt;. Of course Spring decided to roll their own ultimately &lt;a href="http://blog.springsource.com/2009/02/13/982/#comment-149129"&gt;to better fit their view and style&lt;/a&gt; (especially in a Spring 3.0 world).&lt;br /&gt;&lt;br /&gt;Probably the best comparison is provided by actual, concrete examples of event notification on Hendy Irawan's blog: one &lt;a href="http://spring-java-ee.blogspot.com/2010/01/event-notification-framework-with.html"&gt;written with Spring Integration&lt;/a&gt;, another &lt;a href="http://spring-java-ee.blogspot.com/2010/01/advanced-event-notification-framework.html"&gt;with Apache Camel&lt;/a&gt;. The examples are written to leverage Spring Remoting, a remote method invocation mechanism not unlike &lt;a href="http://www.blogger.com/2008/02/trying-to-work-together.html"&gt;Jini's remoting mechanism&lt;/a&gt;. While the examples do have to jump through the hoops of creating a proxy object, the meat of the comparison is in the application context of the two examples. Note that the Spring Integration configuration is a bit more readable and maps more distinctly to an integration pattern layout. The Apache Camel configuration just looks like a standard Spring bean context, however it uses URIs for connecting components rather than using dependency injection to connect them.&lt;br /&gt;&lt;br /&gt;Ultimately I like the convention of having endpoints addressable by URIs rather than keeping them as actual bean references. For my tastes this makes things more agnostic (even from Java itself) and more coherent. Having URIs indicate addressable resources is a convention most developers are familiar with, if not just by writing curl scripts.&lt;br /&gt;&lt;br /&gt;There are a lot of facets to view when attempting to evaluate integration frameworks and service buses. Gunnar Hillert's blog &lt;a href="http://hillert.blogspot.com/2009/10/apache-camel-alternatives.html"&gt;can give you a small peek into how wide of an ecosystem this really is&lt;/a&gt; - you can't just perform a straight-forward SWOT analysis any more. One must always architect first, design second then look at what implementation can get you their with ease and speed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-4449491055814337336?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/4449491055814337336/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2010/02/camel-integration.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/4449491055814337336'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/4449491055814337336'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2010/02/camel-integration.html' title='Camel Integration'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_UGOF73TqM5A/S4ICUJTQ2LI/AAAAAAAAAQ8/_K33TfR5j1E/s72-c/Burton_minicamel.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-9043347490135908355</id><published>2009-12-22T22:23:00.000-05:00</published><updated>2009-12-22T22:23:19.793-05:00</updated><title type='text'>Synergy+, Because I Can't Work Minus Synergy</title><content type='html'>&lt;a href="http://commons.wikimedia.org/wiki/File:B_plus.svg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_UGOF73TqM5A/SzGM66oogbI/AAAAAAAAAQ0/2CneS9xnkmk/s320/B_plus.png" /&gt;&lt;/a&gt;After upgrading my desktop to openSuSE 11.2 64-bit, I noticed I couldn't find any suitable Synergy packages to share my desktop's mouse &amp;amp; keyboard with my laptop. I tried to build the packages by hand, but the 64-bit libraries and newer glibc/std libraries confused the build. Synergy itself hasn't been updated in nearly three years, so it appeared I was out of luck.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.blogger.com/2008/01/keyboard-and-mouse-synergy.html"&gt;I have become pretty reliant on Synergy&lt;/a&gt; however, so I kept searching for a solution. I finally came across &lt;a href="http://code.google.com/p/synergy-plus/"&gt;Synergy+&lt;/a&gt;, a maintenance fork of the Synergy 1.3 codebase. Not only had the compile errors been resolved, but they offered pre-built 64-bit packages that fit like a glove. Bugs were fixed and Synergy is working &lt;i&gt;much&lt;/i&gt; beter than before. Sweet!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-9043347490135908355?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/9043347490135908355/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2009/12/synergy-because-i-cant-work-minus.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/9043347490135908355'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/9043347490135908355'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2009/12/synergy-because-i-cant-work-minus.html' title='Synergy+, Because I Can&apos;t Work Minus Synergy'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_UGOF73TqM5A/SzGM66oogbI/AAAAAAAAAQ0/2CneS9xnkmk/s72-c/B_plus.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-3859838756151395498</id><published>2009-12-13T20:54:00.000-05:00</published><updated>2009-12-13T20:54:21.899-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='java 6 ee'/><category scheme='http://www.blogger.com/atom/ns#' term='j2ee'/><title type='text'>Java EE 6 - Gee, 6?</title><content type='html'>&lt;a href="http://commons.wikimedia.org/wiki/File:Asynchronous-counter.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_UGOF73TqM5A/SyWaePLoe5I/AAAAAAAAAQk/k_ZKeyG-360/s320/Asynchronous-counter.jpg" /&gt;&lt;/a&gt;Java Enterprise Edition 6 was just released, even with Oracle's possible acquisition of Sun looming on the horizon. In the past I've seen J2EE and Java 5 EE releases come and go whilst I went on not caring. It wasn't because I didn't need anything more than Java's Standard Edition... I do... but the Java Enterprise Edition releases always seemed to be released with features I needed nine months ago and found in other frameworks.&lt;br /&gt;&lt;br /&gt;I decided to take more of a look within this release and give it a fair shake. This release had a lot of nice stuff but was still playing catch-up with other tech: &lt;a href="http://www.jcp.org/en/jsr/detail?id=317"&gt;JPA&lt;/a&gt; starts catching up with the functionality offered by &lt;a href="https://www.hibernate.org/"&gt;Hibernate&lt;/a&gt;, &lt;a href="http://jcp.org/en/jsr/detail?id=311"&gt;JAX-RS (RESTful Web Services)&lt;/a&gt; is finally produced as an answer to the myriad of other REST frameworks and &lt;a href="http://jcp.org/en/jsr/detail?id=311"&gt;dependency injection&lt;/a&gt; finally gets introduced into Java proper. All of these additions are features that were already offered by alternate libraries over a year ago (some of them more than five years ago) and are just now becoming standard.&lt;br /&gt;&lt;br /&gt;Inversion of Control isn't the only elder pattern that finally debuts in Java EE 6. Asynchronous responses appear throughout the new Enterprise Edition, finally allowing threads to stop blocking subsequent operations. &lt;a href="http://java.sun.com/developer/technicalArticles/JavaEE/JavaEE6Overview_Part2.html#asynchp"&gt;Asynchronous processing is finally available in the Servlet 3.0 spec&lt;/a&gt; so inbound HTTP requests don't have to hang forever while they await all the info to formulate a response. &lt;a href="http://java.sun.com/developer/technicalArticles/JavaEE/JavaEE6Overview_Part3.html#asynejb"&gt;Session Beans can now be invoked asynchronously&lt;/a&gt; so EJB execution doesn't consume a client thread and eat up threadpools. &lt;a href="http://java.sun.com/developer/technicalArticles/JavaEE/JavaEE6Overview_Part2.html#jsfajax"&gt;JSF now has AJAX support&lt;/a&gt; for asynchronous webapp calls. &lt;a href="http://java.sun.com/developer/technicalArticles/JavaEE/JavaEE6Overview.html#jaxrs"&gt;REST-based Web Services&lt;/a&gt; allow for Web Service exposure with much less resource utilization and much higher concurrency through more streamlined asynchronous HTTP calls. All of these features not only have been present in alternate libraries for some time, but entire protologisms and design patterns have been honed to allow for just such asynchronicity. Comet and callback methods have been a predominant pattern for some time now, although Servlet 3.0 is the first time a Java Enterprise Edition has allowed for asynchronous Servlet processing. Now that &lt;a href="http://blog.chromium.org/2009/12/web-sockets-now-available-in-google.html"&gt;WebSockets&lt;/a&gt; are becoming more prevalent Java Servlets are going to need to catch up to everyone else yet again and in short order.&lt;br /&gt;&lt;br /&gt;Am I even tempted by this release of Java Enterprise Edition? Maybe kinda. I like annotation-based models, as I've seen how deep XML hell truly goes. JAX-RS annotations are a compelling alternative to JAX-RPC, and the new &lt;a href="http://java.sun.com/developer/technicalArticles/JavaEE/JavaEE6Overview.html#jaxrs"&gt;Bean Validation&lt;/a&gt; annotations would likely be very helpful. Asynchronous EJB invocation, along with a more minimalistic and annotation-based EJB spec, may even convince me to finally give Enterprise Java Beans a try once more.&lt;br /&gt;&lt;br /&gt;I already use JPA, JAXB, JMS, JMX, JAAS, JAX-RPC, JavaSpaces and Servlets/JSPs/JSTL but in more of an a la carte sorta mechanism, intermingled with Spring, DWR, Hibernate and Camel. Now that I've typed the previous line... I realize that even though I've never intentionally downloaded the Java 5 EE package from Sun it seems I've been using Java Enterprise Edition all along. Weird. I guess it has slowly seeped into the crevasses of my frameworks, unintentionally filling out the rest of the libraries I use. Now that we have REST support and asynchronous context... I might walk the final yard and &lt;i&gt;intentionally&lt;/i&gt; download it this time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-3859838756151395498?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/3859838756151395498/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2009/12/java-ee-6-gee-6.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/3859838756151395498'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/3859838756151395498'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2009/12/java-ee-6-gee-6.html' title='Java EE 6 - Gee, 6?'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_UGOF73TqM5A/SyWaePLoe5I/AAAAAAAAAQk/k_ZKeyG-360/s72-c/Asynchronous-counter.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-3854022572792737940</id><published>2009-12-10T22:06:00.000-05:00</published><updated>2009-12-10T22:06:02.920-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='kde 4'/><category scheme='http://www.blogger.com/atom/ns#' term='opensuse'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='linux desktop'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='kde'/><title type='text'>Passwordless Login Haters</title><content type='html'>&lt;a href="http://commons.wikimedia.org/wiki/File:McCutcheonIroquoisFire.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_UGOF73TqM5A/SyG29nggA0I/AAAAAAAAAQc/m41p7g9zaII/s320/McCutcheonIroquoisFire.jpg" /&gt;&lt;/a&gt;Password-less logins via an X11 login manager has always been a misunderstood topic. Just search for "passwordless xdm" and you'll see tons of flamewars started by someone innocently asking how to allow a user to login to KDE or Gnome without having to remember a password. Without fail, a number of people will decry the very thought and deem those in question complete idiots who subvert the very laws of nature, security and well-being. I was involved in such a discussion &lt;a href="http://groups.google.com/group/alt.os.linux.suse/browse_thread/thread/6e6c66932a1a54b/c5292ef5afcb725d?hl=en&amp;amp;ie=UTF-8&amp;amp;q=deckerego+passwordless#c5292ef5afcb725d"&gt;a while back&lt;/a&gt; on a newsgroup, and the result was pretty typical. Instead of saying "I don't know" the poster derided my efforts and said this was the biggest security hole ever invented since... the hole... or something. After explaining what a kiosk was the thread devolved into my posting etiquette. Point and match, sir.&lt;br /&gt;&lt;br /&gt;When it comes down to it people don't understand Linux' password authentication mechanism. The PAM subsystem allows for a number of profiles based on who is requesting authentication and authorization. SSH, FTP and yes KDE/Gnome login managers all have different authentication profiles that determine how and when a user is authenticated.&lt;br /&gt;&lt;br /&gt;Allowing a two year old to just click on her face in the KDE login screen doesn't open unbridled access to everyone in the world. If you've disabled remote X11 logins, turned off X11 tunneling via SSH and bolted down remote access then only local users &lt;i&gt;physically at the keyboard&lt;/i&gt; will able to login without a password. If that same username tried to SSH in to the box they would be greeted with a password, &lt;i&gt;since the passwordless authentication only applies to KDE's login manager&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;One could breech the KDE login manager for access by this user, but that's a whole other story. Ultimately what people don't understand is just because a username doesn't need a password to authenticate on a local desktop session that doesn't mean the username will never need a password to authenticate via any means available.&lt;br /&gt;&lt;br /&gt;Enough of that tho. Ultimately I'm getting on this soapbox because I had to alter openSuSE 11.2 to properly allow me to have per-user passwordless logins via KDM. With a stock openSuSE 11.2 install you have two choices for their desktop managers: you either require passwords for everyone or you grant passwordless logins to everyone. In my kiosk I just need a couple of low-privilege users to be passwordless; the rest require logins.&lt;br /&gt;&lt;br /&gt;Something SuSE has always loved to do is override configuration files with scripts that freshly parse settings from /etc/sysconfig every time they're used. In this instance SuSE runs the script /usr/share/kde4/apps/kdm/read_sysconfig.sh every time it starts the KDE desktop manager, wiping out old configurations and procedurally generating new ones. Even if you know what config file to change it doesn't do you much good - it will get wiped out when KDM starts. On top of that the default /etc/sysconfig/displaymanager value for passwordless logins (DISPLAYMANAGER_PASSWORD_LESS_LOGIN) is just true or false... you can't set an arbitrary user.&lt;br /&gt;&lt;br /&gt;I modified /etc/sysconfig/displaymanager to accept more than just a yesno value... instead I told it to accept an arbitrary string. Next I modified /usr/share/kde4/apps/kdm/read_sysconfig.sh to see if the DISPLAYMANAGER_PASSWORD_LESS_LOGIN string was set to "no." If it was, don't enable passwordless logins at all. If it was &lt;i&gt;not&lt;/i&gt;, enable passwordless logins and allocate the string to be the list of users that have password-less logins.&lt;br /&gt;&lt;br /&gt;The modification was minor - it was just altering:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;if [ "$DISPLAYMANAGER_PASSWORD_LESS_LOGIN" = "yes" ]; then&lt;br /&gt;echo "NoPassEnable=true"&lt;br /&gt;echo "NoPassAllUsers=true"&lt;br /&gt;else&lt;br /&gt;echo "NoPassEnable=false"&lt;br /&gt;echo "NoPassAllUsers=false"&lt;br /&gt;fi&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;to be:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;if [ "$DISPLAYMANAGER_PASSWORD_LESS_LOGIN" = "no" ]; then&lt;br /&gt;echo "NoPassEnable=false"&lt;br /&gt;echo "NoPassAllUsers=false"&lt;br /&gt;else&lt;br /&gt;echo "NoPassEnable=true"&lt;br /&gt;echo "NoPassUsers=$DISPLAYMANAGER_PASSWORD_LESS_LOGIN"&lt;br /&gt;fi&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;in /usr/share/kde4/apps/kdm/read_sysconfig.sh.&lt;br /&gt;&lt;br /&gt;Now I have passwordless logins and still retain security... despite what others may think.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-3854022572792737940?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/3854022572792737940/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2009/12/passwordless-login-haters.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/3854022572792737940'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/3854022572792737940'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2009/12/passwordless-login-haters.html' title='Passwordless Login Haters'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_UGOF73TqM5A/SyG29nggA0I/AAAAAAAAAQc/m41p7g9zaII/s72-c/McCutcheonIroquoisFire.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-3758836616534777800</id><published>2009-11-17T22:47:00.002-05:00</published><updated>2009-11-18T23:07:50.487-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='opensuse'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='linux desktop'/><title type='text'>openSuSE 11.2 (No I Will Not Spell It Their Way)</title><content type='html'>&lt;a href="http://commons.wikimedia.org/wiki/File:PDP-12-Update-Uppsala.jpeg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_UGOF73TqM5A/SwNrtthdXbI/AAAAAAAAAQU/Lop7FE9_ViA/s320/PDP-12-Update-Uppsala.jpeg" /&gt;&lt;/a&gt;I installed &lt;a href="http://www.opensuse.org/"&gt;openSuSE 11.2&lt;/a&gt; at the beginning of this week and am glad to finally be done with &lt;a href="/2008/07/kde-4-really-fast-except-when-its.html"&gt;unsupported KDE 4.x packages&lt;/a&gt;. Installation took much less time than previous incarnations, and boot time, shutdown time and suspend time is &lt;i&gt;ridiculously&lt;/i&gt; faster.&lt;br /&gt;&lt;br /&gt;One exceedingly nice item is that a native &lt;a href="http://dot.kde.org/2009/11/07/introducing-kde-4-knetworkmanager"&gt;KDE 4 Network Manager&lt;/a&gt; is finally included with the distro. Setting up a wireless connection was just fine once I got the necessary firmware installed for my wlan adapter and VPN connections were managed correctly for the first time in a long time. Remote routes specified by the VPN concentrator were applied (w00t!) and negotiation took only one or two seconds.&lt;br /&gt;&lt;br /&gt;Packages are stable and fairly seamless - moving in to this install has also taken much less time than previous versions.&lt;br /&gt;&lt;br /&gt;Fonts scale particularly well. Finally 96dpi is obeyed on my monitor and both GTK and Qt apps look fantabulous.&lt;br /&gt;&lt;br /&gt;Things are painless, stable and work out-of-the-box. &lt;a href="/2008/06/opensuse-110-desktop-linux-actually.html"&gt;openSuSE 11.0 was not without hitches but worked great overall&lt;/a&gt; - and openSuSE 11.2 is great with no compromises.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-3758836616534777800?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/3758836616534777800/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2009/11/opensuse-112-no-i-will-not-spell-it.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/3758836616534777800'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/3758836616534777800'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2009/11/opensuse-112-no-i-will-not-spell-it.html' title='openSuSE 11.2 (No I Will Not Spell It Their Way)'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_UGOF73TqM5A/SwNrtthdXbI/AAAAAAAAAQU/Lop7FE9_ViA/s72-c/PDP-12-Update-Uppsala.jpeg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-5146786046393781272</id><published>2009-11-08T21:48:00.000-05:00</published><updated>2009-11-08T21:48:57.908-05:00</updated><title type='text'>Picking Apart Android's Engine</title><content type='html'>&lt;a href="http://commons.wikimedia.org/wiki/File:ULPower_UL260i.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_UGOF73TqM5A/Svd2b2ivgNI/AAAAAAAAAQM/w3HPlS5SAlY/s320/ULPower_UL260i.jpg" /&gt;&lt;/a&gt;&lt;a href="http://laforge.gnumonks.org/weblog/2009/11/index.html"&gt;Harald Welte's blog&lt;/a&gt; recently had a span in the limelight thanks to &lt;a href="http://lwn.net/Articles/360343/"&gt;a recent LWN article&lt;/a&gt; that highlighted the quote "Android is a screwed, hard-coded, non-portable abomination." The retorts are based on &lt;a href="http://tree.celinuxforum.org/CelfPubWiki/ELCEurope2009Presentations?action=AttachFile&amp;amp;do=get&amp;amp;target=Mythbusters_Android.pdf"&gt;Matt Porter's "Android Mythbusters" presentation&lt;/a&gt; at Embedded Linux Conference Europe; Matt highlights features of Android that illustrate it's isolation from usual embedded Linux systems.&lt;br /&gt;&lt;br /&gt;The presentation highlights not only the Linux kernel but other parts of the OS stack such as tools, common libraries, device initialization and SysV compliance. Both Matt, Welte and most commenters on LWN's article seem to forgo the familiar mantra that &lt;a href="http://www.gnu.org/"&gt;GNU is not Unix&lt;/a&gt; and discuss Linux in terms of both the kernel &lt;i&gt;and&lt;/i&gt; a common software stack. Yet Google does not seem to be interested in the entire Linux environment but rather the core kernel itself. If you watch only the first minute of &lt;a href="http://developer.android.com/videos/index.html#v=QBGfUs9mQYY"&gt;Google's Android Architecture Overview video&lt;/a&gt; you'll hear what Google is taking from Linux and why. It seems (and browsing through the source seems to confirm) that they're largely interested in the Linux kernel's driver modules and &lt;i&gt;not&lt;/i&gt; the entire toolchain. Maybe for both for licensing and pragmatic reasons Google would rather forget about LSB compliance and SysV support; they just want a robust driver model with reasonable userspace security.&lt;br /&gt;&lt;br /&gt;A site or forum other than &lt;a href="http://lwn.net/"&gt;LWN&lt;/a&gt; would take Welte's comments as kindling to a giant flame war. Instead (the vast majority of) LWN users offer insightful, more considered posts. Several commenters note that &lt;a href="http://arstechnica.com/old/content/2007/11/why-google-chose-the-apache-software-license-over-gplv2.ars"&gt;Google is avoiding the GPL whenever humanly possible&lt;/a&gt;, instead opting for a more permissive Apache Software License. Given how Android is intended to be re-used by OEMs as widely as possible this makes a good deal of sense, and may explain the avoidance of &lt;a href="http://www.gnu.org/software/libc/"&gt;glibc&lt;/a&gt;. If we pare away the glibc and SysV arguments we still see a lot of hackish hacks in Android: hardcoded device policies, missing header files and broken unit tests. Hopefully this has been addressed in Android 2.0... the last tree I've gone through was after the 1.6 release.&lt;br /&gt;&lt;br /&gt;Do these warts make Android prohibitive for developers? Not really. Bear in mind third-party development is meant to be confined to the &lt;a href="http://en.wikipedia.org/wiki/Dalvik_virtual_machine"&gt;Dalvik environment&lt;/a&gt; and &lt;a href="http://developer.android.com/sdk/index.html"&gt;Google's Android SDK&lt;/a&gt;. Native development is definitely allowed and enabled for Android, but 99.9% of all developers should be creating Java apps for the Dalvik VM. The VM sandbox should keep both users and developers safely away from any rough edges of the OS' internals. Still... Google often promotes the fact that each process runs in its own, isolated virtual machine as its own user. With so many Dalvik instances running at once, one would imagine that a little inter-process communication might go a long way.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-5146786046393781272?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/5146786046393781272/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2009/11/picking-apart-androids-engine.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/5146786046393781272'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/5146786046393781272'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2009/11/picking-apart-androids-engine.html' title='Picking Apart Android&apos;s Engine'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_UGOF73TqM5A/Svd2b2ivgNI/AAAAAAAAAQM/w3HPlS5SAlY/s72-c/ULPower_UL260i.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-4872038321782534272</id><published>2009-11-08T17:53:00.001-05:00</published><updated>2009-11-08T17:54:02.658-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='htc hero'/><category scheme='http://www.blogger.com/atom/ns#' term='smartphone'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>A Battery of SMS Problems</title><content type='html'>&lt;a href="http://commons.wikimedia.org/wiki/File:Pilha.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_UGOF73TqM5A/SvdHzKUOQoI/AAAAAAAAAQE/hz-qQq5HjT0/s640/Pilha.jpg" /&gt;&lt;/a&gt;I've enjoyed &lt;a href="http://www.blogger.com/2009/10/little-bit-more-self-restraint-this.html"&gt;the Hero&lt;/a&gt; so far - it's been a nice device. The battery life had left something to be desired however - it only could make it about eight hours. I also noticed that SMS messages just... stopped. There was silence whenever I sent a message via the old short message service.&lt;br /&gt;&lt;br /&gt;Then I started reading about a litany of problems with HTC's SMS client. First, several found that &lt;a href="http://www.engadgetmobile.com/2009/10/29/workaround-for-htc-hero-battery-life-issues-discovered/"&gt;the "Messages" app never lets the handset suspend&lt;/a&gt;. While the display may flicker off the engine keeps revving, eating up cycles and draining the battery. In a maybe related issue, many people have also been reporting &lt;a href="http://www.engadget.com/2009/10/26/htc-hero-having-intermittent-text-messaging-problems/"&gt;their Hero cannot receive SMS messages&lt;/a&gt;, although this doesn't seem to happen for everyone.&lt;br /&gt;&lt;br /&gt;I installed &lt;a href="http://www.handcent.com/"&gt;Handcent SMS&lt;/a&gt; for Android and have been using it in lieu of HTC's Messaging. It is definitely a superior SMS application to begin with and it is &lt;i&gt;much&lt;/i&gt; more gentle on the battery.&lt;br /&gt;&lt;br /&gt;I contacted Sprint support about the lack of inbound SMS messages, and they had me update my handset profile over the air. Basically I had to:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Shutdown the handset and remove the battery for two-ish minutes &lt;/li&gt;&lt;li&gt;Start up the handset, open up the Android settings -&amp;gt; About phone -&amp;gt; System updates -&amp;gt; Update profile and update yon profile&lt;/li&gt;&lt;li&gt;After the profile update, reboot the phone again&lt;/li&gt;&lt;/ol&gt;I'm not sure if having a service rep on the line is integral to the process or if they tweaked my profile. Maybe they did and I was just sync'ing up the handset with the central office. Things seem to work now however.&lt;br /&gt;&lt;br /&gt;I've had a few crashes, especially with Android widgets embedded in SenseUI. All-in-all it's working wonderfully however. &lt;a href="http://weloveastrid.com/"&gt;Astrid&lt;/a&gt; has been great for organization, and &lt;a href="http://www.meebo.com/"&gt;Meebo&lt;/a&gt; has been a serviceable IM client. My one dearest wish is multi-protocol &lt;a href="http://www.cypherpunks.ca/otr/"&gt;Off-the-Record Messaging&lt;/a&gt; for Android - then I would never need to turn on my laptop again.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-4872038321782534272?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/4872038321782534272/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2009/11/battery-of-sms-problems.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/4872038321782534272'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/4872038321782534272'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2009/11/battery-of-sms-problems.html' title='A Battery of SMS Problems'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_UGOF73TqM5A/SvdHzKUOQoI/AAAAAAAAAQE/hz-qQq5HjT0/s72-c/Pilha.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-3886699723047448247</id><published>2009-11-02T22:02:00.003-05:00</published><updated>2009-11-02T22:36:15.577-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='htc hero'/><category scheme='http://www.blogger.com/atom/ns#' term='smartphone'/><category scheme='http://www.blogger.com/atom/ns#' term='samsung moment'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>Paused For a Moment, Then Went On</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://commons.wikimedia.org/wiki/File:Pause_1-4.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 80px; height: 111px;" src="http://2.bp.blogspot.com/_UGOF73TqM5A/Su-lGHJoVFI/AAAAAAAAAP8/trr1PqLeBmY/s400/Pause_1-4.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5399716002657752146" /&gt;&lt;/a&gt;Stopped by the local Sprint Shoppe on the way to/from work today. I decided to try out the Samsung Moment and see how it compared to &lt;a href="/2009/10/little-bit-more-self-restraint-this.html"&gt;my Hero&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://androidandme.com/2009/11/phones/sprint-samsung-moment-review-roundup/"&gt;The reviews of the Moment&lt;/a&gt; are pretty much on target. Most people noted that the Moment feels more "plastic-y" than the Hero, and I now see what they are talking about. There are a number of open seams, creases and joints that join several plastic components that comprise its shell. Even the rubber covers over the headphone and USB jacks add to the effect, making it seem like you're holding an enclosure that's a composite of several black, plastic slabs.&lt;br /&gt;&lt;br /&gt;Aesthetics aside, the OS itself isn't much. I never really appreciated all that HTC did with its SenseUI; I kinda forgot about its revamped dialer, lock screen or music player. The Hero's Android "extras" integrate so well you tend to delude yourself into believing that it represents a stock Android 1.5 experience. Quite a shock to pick up the Moment's Android 1.5 build - it has the same awkward lock screen, dialer and window components that come default. Not a killer, but it makes you less likely to show off your phone to the nearest nerdcore.&lt;br /&gt;&lt;br /&gt;The AMOLED display is nice, but not &lt;b&gt;NIIIIIIIIIIIIIIIIICE&lt;/b&gt; like everyone else seems to exude. Contrast is spectacular and images are vivid (especially with video), but it's not a huge improvement for day-to-day operations. True, this should theoretically help battery life, but given the stats it seems the 800MHz sips on the saved juice. I had no problem with the touch screen's sensitivity - it was just as responsive as the Hero's screen.&lt;br /&gt;&lt;br /&gt;A fold-out keyboard is very nice and is something I've really wanted, especially since I've been using a &lt;a href="https://www.nokiausa.com/find-products/phones/nokia-n810"&gt;Nokia n810&lt;/a&gt; for the past 18 months. I didn't have any issues with the Moment's keypad, and I didn't find the layout the least bit cumbersome. The space bar, even though it is two individual buttons "glued together" under a single piece of plastic, was just fine. Breaking apart the alpha keys so they straddle the space bar didn't bug me a bit; I was quickly typing things out rapidly after only a few seconds.&lt;br /&gt;&lt;br /&gt;Samsung's 800MHz SoC is what really saves the day. By upping the clock speed and putting the cellular modem on a separate piece of silicon multi-tasked applications ran &lt;i&gt;much&lt;/i&gt; faster on the Moment. This seems to be its crowning achievement - I could run several apps, side-by-side, with very little lag. Screen transitions even went off without a hitch.&lt;br /&gt;&lt;br /&gt;One thing I was confused about was how the integrated Moxier Mail was going to work with Exchange. After dorking around with it a bit it seems to work much in the same way that HTC's Exchange client works; the calendar syncs with the native Android calendar, mail is a completely separate app from the GMail app, contacts are imported directly onto the handset. The big difference is that Moxier appears to support many more server-side Exchange options, such as remote searches and tasks. For what I would want to accomplish, it appears &lt;a href="http://www.moxier.com/"&gt;Moxier&lt;/a&gt; has the best solution until native support appears in Android 2.0.&lt;br /&gt;&lt;br /&gt;Speaking of Android 2.0, I asked the manager of said Sprint Store if Samsung was going to offer an Android 2.0 update with the Moment. The manager was very gracious and spent nearly 30 minutes researching the answer and delving into the secret Sprint-only archives, but it was for naught. She could find no sign of Samsung offering an upcoming Android update for the Moment, never mind an Android 2.0 update.&lt;br /&gt;&lt;br /&gt;Ultimately the Android 2.0 update was the clincher. HTC &lt;a href="/2009/10/little-bit-more-self-restraint-this.html"&gt;has gone on record&lt;/a&gt; that it will offer an Android 2.0 update, but Samsung has remained mum. One has to wonder if they'll push out an obligatory 1.6 update then cease Moment support. Many forums (such as XDA and phandroid) appear to anecdotally support this; several users (albeit perhaps fanboys) claim poor support of legacy handsets on Samsung's part, while HTC is still even updating its legacy, flagship Android handset.&lt;br /&gt;&lt;br /&gt;The Hero does lag something fierce at times, but at least HTC is tantalizing everyone with promises of an Android 2.0 update. With Samsung remaining quiet about Android 2.0 coming to the Moment anytime soon, one has to wonder if a 50% faster CPU, marginally better Exchange support and somewhat prettier screen is worth it. Let's face it - &lt;a href="/2009/05/kde-4-gets-more-awesome-every-week.html"&gt;I'm a sucker for frequent desktop updates and revamps&lt;/a&gt;. I simply can't turn down the super-happy funtimes that HTC is promising.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-3886699723047448247?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/3886699723047448247/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2009/11/paused-for-moment-then-went-on.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/3886699723047448247'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/3886699723047448247'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2009/11/paused-for-moment-then-went-on.html' title='Paused For a Moment, Then Went On'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_UGOF73TqM5A/Su-lGHJoVFI/AAAAAAAAAP8/trr1PqLeBmY/s72-c/Pause_1-4.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-3910007037414127350</id><published>2009-10-28T23:40:00.005-04:00</published><updated>2009-11-04T12:27:15.990-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='htc hero'/><category scheme='http://www.blogger.com/atom/ns#' term='smartphone'/><category scheme='http://www.blogger.com/atom/ns#' term='samsung moment'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>A Little Bit More Self Restraint This Time</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_UGOF73TqM5A/SukUBSu7R0I/AAAAAAAAAP0/7YfRy8vxn7U/s1600-h/hero.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 200px; height: 156px;" src="http://4.bp.blogspot.com/_UGOF73TqM5A/SukUBSu7R0I/AAAAAAAAAP0/7YfRy8vxn7U/s400/hero.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5397867640821335874" /&gt;&lt;/a&gt;Today was Éclair day. Google published &lt;a href="http://developer.android.com/sdk/android-2.0.html"&gt;the Android 2.0 Release 1 SDK&lt;/a&gt;. Verizon announced &lt;a href="http://news.vzw.com/news/2009/10/pr2009-10-27.html"&gt;the first Android 2.0 handset&lt;/a&gt;. HTC &lt;a href="https://twitter.com/htc"&gt;announced they will release port Android 2.0 to the Hero&lt;/a&gt;. On the heels of all this hullabaloo I finally went ahead and picked up... Sprint's Hero.&lt;br /&gt;&lt;br /&gt;By all accounts the Hero is waaaaaaaaaaaaaaaay inferior to Verizon's Droid. Even inferior to the Samsung Moment that is being released in mere days on Sprint, the self-same carrier of the Hero. After reading the early reviews, however, it appears that the 800MHz SoC and AMOLED display isn't enough to lift the Moment out of mediocrity.&lt;br /&gt;&lt;br /&gt;The Hero's camera does suck, no doubt. And Samsung makes a nice camera. However my biggest items of desire were:&lt;ul&gt;&lt;li&gt;GPS turn-by-turn navigation, because I can't find my head with a flashlight&lt;/li&gt;&lt;li&gt;One central, integrated calendar to keep my day straight at home and work&lt;/li&gt;&lt;li&gt;Exchange integration for work info&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;It sounds like the Moment's GPS is a bit finicky, flaking in and out at times. Exchange integration is supplied by the very capable &lt;a href="http://www.moxier.com/mail/"&gt;Moxier Mail&lt;/a&gt; but it doesn't sound integrated into the main calendar interface itself. The AMOLED display reportedly washes out in direct light as well, and the keyboard has added considerable bulk to the package.&lt;br /&gt;&lt;br /&gt;On top of this there are several forums that swear up and down that Samsung has a habit of abandoning their handsets, pursuing new hardware releases instead of updating old once. On the opposite side of the scale HTC has already announced Éclair support coming soon, so they appear to have a bit more dedication to their userbase.&lt;br /&gt;&lt;br /&gt;The Moment has the hardware in spades, and I hate the fact that HTC's Android handsets use a Qualcomm 528MHz CPU that shares cycles with the modem on-die. All my engineer instincts tell me to get the Moment. However... my engineer instincts also told me to pick the iRiver iFP over an iPod, the n810 over an iPhone, HPNA 2.0 over 802.11b, VIA EPIA over AMD or Intel. A pretty poor track record as far as instincts go. Specs may win on paper, but market share is what gives a device longevity and sustainability.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-3910007037414127350?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/3910007037414127350/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2009/10/little-bit-more-self-restraint-this.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/3910007037414127350'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/3910007037414127350'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2009/10/little-bit-more-self-restraint-this.html' title='A Little Bit More Self Restraint This Time'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_UGOF73TqM5A/SukUBSu7R0I/AAAAAAAAAP0/7YfRy8vxn7U/s72-c/hero.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-7797551756545929180</id><published>2009-10-19T21:00:00.000-04:00</published><updated>2009-10-19T21:00:00.949-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='smartphone'/><category scheme='http://www.blogger.com/atom/ns#' term='cell phone'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>Droids Are Expensive</title><content type='html'>So yes, Motorola's Sholes (a.k.a. Droid) &lt;a href="http://phones.verizonwireless.com/motorola/droid/?cmp=OTC-Droid-redirect1"&gt;is coming October 30th&lt;/a&gt;. Its hardware is unmatched and &lt;a href="/2009/09/consumerism-gone-wild.html"&gt;a basis for comparison&lt;/a&gt; of all other smartphones on the market. Without a doubt it's a killer handset.&lt;br /&gt;&lt;br /&gt;Yet Verizon killed it for me. Pricing things out on each company's web site, comparable monthly plans for Verizon and Sprint cost $102.98 and $69.99 respectively. That means Verizon will cost me an additional $791.76 over the span of a two-year contract, ultimately for less features than what Sprint provides. Verizon's top priced smartphone is currently $199.99 subsidized - so I imagine the price of the hardware itself won't be prohibitive. It's the plan.&lt;br /&gt;&lt;br /&gt;Given that Droid will sport a much more impressive CPU, GPU and display than previous handsets - especially HTC's - I would love to have one. It's hard to justify an extra $800 tho, even if that price tag spans two years' time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-7797551756545929180?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/7797551756545929180/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2009/10/droids-are-expensive.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/7797551756545929180'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/7797551756545929180'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2009/10/droids-are-expensive.html' title='Droids Are Expensive'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-5718867240155404735</id><published>2009-10-14T22:48:00.003-04:00</published><updated>2009-10-14T23:00:47.965-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='htc hero'/><category scheme='http://www.blogger.com/atom/ns#' term='smartphone'/><category scheme='http://www.blogger.com/atom/ns#' term='samsung moment'/><category scheme='http://www.blogger.com/atom/ns#' term='opengl'/><title type='text'>Wait a Moment...</title><content type='html'>My obsession with Android smartphone hardware continues. Because I'm lame.&lt;br /&gt;&lt;br /&gt;Sprint is about to have &lt;a href="https://developer.sprint.com/site/global/develop/technologies/android/devices/androiddevices.jsp"&gt;two Android handsets&lt;/a&gt; on the market - HTC's Hero and the Samsung Moment.&lt;br /&gt;&lt;br /&gt;The hardware couldn't be any more different between the two handsets. One has just softkeys, the other a slide-out keyboard. The Moment has an OLED screen. One has a trackball, the other has a proximity sensor. The biggest difference that I'm curious about is the processor.&lt;br /&gt;&lt;br /&gt;The Hero uses the conventional &lt;a href="http://www.qctconnect.com/products/msm_7201.html"&gt;528 MHz Qualcomm MSM7201A processor&lt;/a&gt;, a chipset that claims 3D acceleration to the tune of 4 million triangles a second. The Moment uses &lt;a href="http://www.samsung.com/global/business/semiconductor/productInfo.do?fmly_id=229&amp;partnum=S3C6410"&gt;Samsung's own 800 MHz S3C6410&lt;/a&gt; which claims the same 4 million triangles per second with OpenGL ES 2.0 support.&lt;br /&gt;&lt;br /&gt;I'm not sure who wins, especially since the Hero has an entirely different UI and a lil' bit more RAM (288M vs. 256M). With OpenGL acceleration being about the same... hard to say.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-5718867240155404735?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/5718867240155404735/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2009/10/wait-moment.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/5718867240155404735'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/5718867240155404735'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2009/10/wait-moment.html' title='Wait a Moment...'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-8116550887906917016</id><published>2009-10-11T21:28:00.004-04:00</published><updated>2009-10-11T22:46:52.642-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='smartphone'/><category scheme='http://www.blogger.com/atom/ns#' term='cell phone'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>No Donut For You!</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://commons.wikimedia.org/wiki/File:Munkinpaisto.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 150px; height: 112px;" src="http://3.bp.blogspot.com/_UGOF73TqM5A/StKGnOpG6UI/AAAAAAAAAPs/y7F4pTllejQ/s400/800px-Munkinpaisto.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5391519712419440962" /&gt;&lt;/a&gt;Everyone on the Interwebs kinda assumed that the &lt;a href="https://developer.sprint.com/site/global/develop/technologies/android/devices/androiddevices.jsp"&gt;Android handsets that Sprint is due to offer in the coming weeks&lt;/a&gt; were going to be based on &lt;a href="http://developer.android.com/sdk/android-1.6-highlights.html"&gt;Android 1.6&lt;/a&gt;. After all, Android 1.6 was the first to offer CDMA support... and Sprint is a CDMA carrier. Right? Right???&lt;br /&gt;&lt;br /&gt;No such luck. Both Android devices Sprint will release &lt;a href="http://androidandme.com/2009/10/carriers/will-sprint-offer-ota-updates-for-android/"&gt;will ship with Android 1.5&lt;/a&gt; with the CDMA codebase apparently backported. Not only that, it sounds like &lt;a href="http://androidandme.com/2009/10/carriers/more-info-on-the-sprint-ota-problem/"&gt;Android 1.6 won't be available from Sprint until 2010 and it &lt;i&gt;won't&lt;/i&gt; be an over-the-air upgrade&lt;/a&gt;. Sprint's official word on exactly when is just &lt;a href="http://developer.sprint.com/show_thread.do?forumId=453&amp;searchBy2=MSG_PARENT_ID&amp;searchValue2=-1&amp;searchBy3=MSGFORUM_FORUMID&amp;searchValue3=453&amp;ps=10&amp;pn=1&amp;threadid=26764&amp;sortDirection=0&amp;sortCol=MSG_AUDIT_CREATE_DT"&gt;"when it's available"&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;1.6 has a number of notable API changes but also a number of important features - most notably text-to-speech and multitouch functionality. HTC's SenseUI was an attempt to staple on several features on the 1.5 codebase that only recently became available. Now that Android 1.6 is available some of those SenseUI features are redundant... such as multitouch in the Web browser.&lt;br /&gt;&lt;br /&gt;The biggest problem isn't necessarily with the end-user however - Spring launching with Android 1.5 causes &lt;b&gt;huge&lt;/b&gt; headaches for developers. Several developers... myself for one... was counting on this product launch to usher in a landscape of 1.6 apps. Without an easy, transparent means of updating to 1.6 (such as over-the-air upgrades) it is also unlikely that the average Hero or Moment user will ever upgrade to the latest OS.&lt;br /&gt;&lt;br /&gt;So what's a guy to do? Well... &lt;a href="http://androidcommunity.com/motorola-sholes-to-hit-in-time-for-holidays-20091005/"&gt;Motorola's Sholes is supposedly going to hit before the end of the year&lt;/a&gt;, and supposedly with Android 2.0 (although I doubt that). On the other hand it's launching on Verizon's network, which can be &lt;a href="http://www.verizonwireless.com/b2c/store/controller?item=planFirst&amp;action=viewPlanList&amp;sortOption=priceSort&amp;typeId=3&amp;subTypeId=49&amp;catId=448"&gt;prohibitively expensive&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Sounds like there are no good options right now for an Android 1.6+ handset, unless Sprint can figure out an easier way to push updates.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-8116550887906917016?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/8116550887906917016/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2009/10/no-donut-for-you.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/8116550887906917016'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/8116550887906917016'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2009/10/no-donut-for-you.html' title='No Donut For You!'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_UGOF73TqM5A/StKGnOpG6UI/AAAAAAAAAPs/y7F4pTllejQ/s72-c/800px-Munkinpaisto.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-6695592261497418438</id><published>2009-10-09T22:47:00.002-04:00</published><updated>2009-10-09T22:51:54.639-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='linux desktop'/><category scheme='http://www.blogger.com/atom/ns#' term='hulu'/><title type='text'>Hulu Desktop and Linux = Sweet Brain Mush</title><content type='html'>I hadn't really tried Hulu much... just a few passing searches in their webapp. When they released their &lt;a href="http://www.hulu.com/labs/hulu-desktop-linux"&gt;Linux desktop client&lt;/a&gt; I decided to try it out.&lt;br /&gt;&lt;br /&gt;Sweet merciful crap.&lt;br /&gt;&lt;br /&gt;I couldn't believe the sheer volume of what they had that &lt;i&gt;I actually wanted to watch&lt;/i&gt;. It ran flawlessly in Linux - and their Fedora RPMs installed just fine on my OpenSUSE workstations.&lt;br /&gt;&lt;br /&gt;Man... so much completely awesome stuff is being released right now. I NEED MORE HOURS IN THE DAY TO DORK WITH IT!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-6695592261497418438?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/6695592261497418438/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2009/10/hulu-desktop-and-linux-sweet-brain-mush.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/6695592261497418438'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/6695592261497418438'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2009/10/hulu-desktop-and-linux-sweet-brain-mush.html' title='Hulu Desktop and Linux = Sweet Brain Mush'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-6930343198532566370</id><published>2009-10-08T20:56:00.000-04:00</published><updated>2009-10-08T20:58:08.390-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='smartphone'/><category scheme='http://www.blogger.com/atom/ns#' term='qt'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>Who Does Number 2 Work For?</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://commons.wikimedia.org/wiki/File:Roosters%27_fight.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 198px; height: 115px;" src="http://4.bp.blogspot.com/_UGOF73TqM5A/Ss6KZGtbvyI/AAAAAAAAAPk/XOHiYSxgYC4/s400/Roosters%27_fight.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5390397967911599906" /&gt;&lt;/a&gt;When I was looking for market share numbers to populate &lt;a href="http://www.blogger.com/2009/09/consumerism-gone-wild.html"&gt;my previous post comparing smartphones&lt;/a&gt; I found that &lt;a href="http://androidandme.com/2009/08/news/android-closing-in-on-blackberry-taking-share-from-iphone/"&gt;market data even a month old was &lt;i&gt;waaaaaaaaay&lt;/i&gt; different than current data&lt;/a&gt; representing a month later. Android marched from 6%, to 9%, to 12% almost within the same quarter. This is all with only two phones on the US market - the flagship G1 and the more mainstream &lt;a href="http://www.htc.com/us/product/Mytouch3G/overview.html"&gt;myTouch&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Now let's look ahead to Q4. There are seven new handsets due to be hosted by four different carriers. That's a HUGE growth in carrier coverage in just one quarter. I'm sure this was a completely premeditated blitz but it places Android handsets on a path to possibly &lt;a href="http://tech.yahoo.com/blogs/patterson/57664/report-android-will-leapfrog-the-iphone-by-2012/"&gt;eclipse the iPhone in a few years&lt;/a&gt;. It's too bad that &lt;a href="http://www.thestreet.com/story/10608974/1/googles-android-further-blisters-palm.html"&gt;WebOS is getting blistered in the process&lt;/a&gt; - it was a nice UI on some very nice hardware. In the end, however, those with a more robust development environment will win.&lt;br /&gt;&lt;br /&gt;Don't get me wrong - the iPhone has a great development environment and well-documented native SDK. I even like &lt;a href="http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/ObjectiveC/Introduction/introObjectiveC.html"&gt;Objective-C&lt;/a&gt;. Still, the Android development kit is built on lots of familiar Java components (and semantics) that everyone knows and loves, aside from kludges to save clock cycles (such as the guideline of refraining from abstract classes or inheritance). The mix of easy resource management, internationalization, event notifications and asset management with lots of static sugar makes life easier on Android developers. It makes me better understand &lt;a href="http://www.blogger.com/2008/04/two-great-tastes-maemo-qt.html"&gt;Nokia's acquisition of Qt&lt;/a&gt;, since Qt also offers a great platform with the same benefits, if not more.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-6930343198532566370?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/6930343198532566370/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2009/10/who-does-number-2-work-for.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/6930343198532566370'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/6930343198532566370'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2009/10/who-does-number-2-work-for.html' title='Who Does Number 2 Work For?'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_UGOF73TqM5A/Ss6KZGtbvyI/AAAAAAAAAPk/XOHiYSxgYC4/s72-c/Roosters%27_fight.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-5768899704476379499</id><published>2009-10-07T23:19:00.003-04:00</published><updated>2009-10-07T23:35:01.385-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='planning'/><category scheme='http://www.blogger.com/atom/ns#' term='scheduling'/><title type='text'>Objective Based Scheduling</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://commons.wikimedia.org/wiki/File:Schedule.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 150px; height: 146px;" src="http://3.bp.blogspot.com/_UGOF73TqM5A/Ss1dzEafh0I/AAAAAAAAAPc/XrqeWLq7ehc/s400/Schedule.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5390067460971923266" /&gt;&lt;/a&gt;There's no such thing as the "daily routine." Sure, there are certain things that will always happen. I'll always get up, get a shower, brew coffee. I know I'll need to work. I know I need to go home. Between those gross points, however, I get completely and utterly lost.&lt;br /&gt;&lt;br /&gt;When I'm coding something or focusing on a specific task I kinda lose the ability to... er... speak the English language. Or determine what time it is. Or understand that if I want to eat lunch I'll need to do so at 1:00 so I can get in three hours of heads-down work but eat before meetings ramp up and I don't have time to head to the microwave.&lt;br /&gt;&lt;br /&gt;It would be great if I could have a personal scheduling system to orchestrate all these little events in my life. Not a calendar - I've already got elebenty gabillion of those; I don't want to schedule an appointment and then have to re-mix them all when something changes. I would much rather give a scheduling system a list of "objectives" and have it calendar everything &lt;i&gt;for me&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;For example, let's say I want to get four hours of heads-down coding done today. I'll get into the office at 8:30 but have to leave at 4:00 to meet a friend downtown for an early dinner. There are meetings at 9:30, 1:30 and 2:30 all slated for 30 minutes. And I need to eat somewhere around noon-ish. It would be great to put all of these objectives in, both the concrete ones and the ones that can be scheduled willy-nilly, and have the app decide what order they should occur in. For example, the system could tell me to eat a late breakfast before the 9:30 meeting, work until 1:30, go to the meeting, eat lunch at 2:00, go to the 2:30 and leave before 4. If the 9:30 meeting goes long, maybe it would recommend I cancel my 2:30, eat lunch early and still head out at 4.&lt;br /&gt;&lt;br /&gt;There are plenty of webapps out there that will let you create collaborative calendars, stream them, share them, etc. I have yet to see one that allows me to set objectives while it plans my day for me. That would be awesome... it would be an app that could save me from myself.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-5768899704476379499?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/5768899704476379499/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2009/10/objective-based-scheduling.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/5768899704476379499'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/5768899704476379499'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2009/10/objective-based-scheduling.html' title='Objective Based Scheduling'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_UGOF73TqM5A/Ss1dzEafh0I/AAAAAAAAAPc/XrqeWLq7ehc/s72-c/Schedule.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-5193763997793499414</id><published>2009-09-27T18:23:00.003-04:00</published><updated>2009-09-27T21:42:15.319-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='amarok'/><category scheme='http://www.blogger.com/atom/ns#' term='ipod'/><category scheme='http://www.blogger.com/atom/ns#' term='itunes'/><title type='text'>iTire of iTunes</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://commons.wikimedia.org/wiki/File:AgesComparison.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 175px; height: 176px;" src="http://1.bp.blogspot.com/_UGOF73TqM5A/SsAUYJR6CvI/AAAAAAAAAPU/QiHfJb11yAI/s400/AgesComparison.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5386327559375555314" /&gt;&lt;/a&gt;I've really become tired of iTunes.&lt;br /&gt;&lt;br /&gt;I started out sync'ing to my iPod using &lt;a href="http://amarok.kde.org/"&gt;Amarok&lt;/a&gt;. It managed my collections well and even was able to perform transcoding on the fly, turning my FLAC and OGG collection into easily-digestible MP3 transmogrifications. However with my sixth-generation iPod I started noticing clipping artifacts and had problems with video cover art, so I decided to give iTunes proper a whirl.&lt;br /&gt;&lt;br /&gt;First off, all my music is stored on a central file server downstairs. My upstairs LAN is connected to the downstairs LAN using a 10Mbs HPNA 2.0 bridge, so file transfers aren't exactly fast between the two. Still, with Amarok this wasn't an &lt;i&gt;immense&lt;/i&gt; problem as I could transcode once during synchronization and just be done forever until I wanted to sync another album with the iPod. With iTunes however a choice few tracks (say 200-some out of 10,000) were &lt;b&gt;always&lt;/b&gt; synchronized, so I was saddled with 30 minute synchronizations &lt;b&gt;every time I plugged in the iPod&lt;/b&gt;. It was ridiculous.&lt;br /&gt;&lt;br /&gt;On top of that the interface isn't exactly great. I'd like to list things by album and then by track as a tree-like hierarchy, which iTunes doesn't do very well. While browsing by artist was fine browsing by album was not, taking multiple-artist albums and littering them around. Plus album art was choppy at best; sometimes it would apply the album art, sometimes not.&lt;br /&gt;&lt;br /&gt;I'm reverting back to Amarok now. Not only should synchronizations (especially podcast synchronizations) be more efficient, I now am not tied to the iPod as my music vehicle of choice. Should I decide to sync instead with a FAT32 thumb drive, or a smartphone, or a wax cylinder, it doesn't matter as long as I can mount it as a filesystem.&lt;br /&gt;&lt;br /&gt;I still have transcoding problems... without a doubt; but now I know iTunes isn't a solution.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-5193763997793499414?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/5193763997793499414/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2009/09/itire-of-itunes.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/5193763997793499414'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/5193763997793499414'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2009/09/itire-of-itunes.html' title='iTire of iTunes'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_UGOF73TqM5A/SsAUYJR6CvI/AAAAAAAAAPU/QiHfJb11yAI/s72-c/AgesComparison.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-5818733899684168512</id><published>2009-09-24T21:40:00.001-04:00</published><updated>2009-09-24T21:41:12.804-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='3d engines'/><category scheme='http://www.blogger.com/atom/ns#' term='intel'/><category scheme='http://www.blogger.com/atom/ns#' term='smartphone'/><category scheme='http://www.blogger.com/atom/ns#' term='qualcomm'/><category scheme='http://www.blogger.com/atom/ns#' term='chrome os'/><category scheme='http://www.blogger.com/atom/ns#' term='nvidia'/><title type='text'>ARM and a Teg</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://commons.wikimedia.org/wiki/File:Chocolate_chips.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 160px; height: 120px;" src="http://2.bp.blogspot.com/_UGOF73TqM5A/SrwL07KsXlI/AAAAAAAAAPM/2FMWHPW0l-8/s400/Chocolate_chips.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5385192258291916370" /&gt;&lt;/a&gt;It has been interesting to passively watch news concerning embedded processors and system-on-a-chip designs since I started my &lt;a href="http://uk.techcrunch.com/2009/09/24/apple-locked-us-in-but-how-long-will-the-jail-sentence-last/"&gt;irrational rationalizations&lt;/a&gt; about &lt;a href="/2009/09/consumerism-gone-wild.html"&gt;smartphones&lt;/a&gt;. The landscape is much wilder than conventional notebooks/desktops.&lt;br /&gt;&lt;br /&gt;The weird thing is that the Qualcomm MSM7201A gets anecdotal low marks on the speed of its accomplice platforms, but &lt;a href="http://www.qctconnect.com/products/msm_7201.html"&gt;Qualcomm claims&lt;/a&gt; that it has an ARM11 processor, an ARM9 modem, Java acceleration and can do 3D acceleration with 4 million triangles per second with a 133 million pixels per second fill rate. Perhaps hardware sporting the Qualcomm chipset has similar problems to my old &lt;a href="http://www.desktopdistractions.com/2008/11/chipped-chrome.html"&gt;VIA EDEN&lt;/a&gt; - acceleration was largely borked at the driver level. &lt;a href="http://forum.xda-developers.com/archive/index.php/t-477354.html"&gt;There seems to be a resonant believe with many developers/users that the 3D acceleration just isn't there&lt;/a&gt;, although with Android &lt;a href="http://groups.google.com/group/android-developers/browse_thread/thread/c6831619ed9b5f9e/78932535217d5407?lnk=raot"&gt;maybe it is&lt;/a&gt;. Either way it doesn't inspire a lot of confidence.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://jkontherun.com/2009/09/23/google-chrome-os-tegra/"&gt;NVIDIA's efforts with Google and Tegra&lt;/a&gt; are somewhat more reassuring, as NVIDIA is definitely wanting to get its foot in the Android/ChromeOS door with Google. NVIDIA already has great consumer-ready hardware with &lt;a href="http://www.maximumpc.com/article/reviews/zune_hd"&gt;Tegra on the Zune HD&lt;/a&gt;. This sparring match will only get more interesting as &lt;a href="http://www.reghardware.co.uk/2009/09/24/idf_atom_soc_sodaville/"&gt;Intel launches their systems-on-a-chip&lt;/a&gt;, which have a gazillion different chipsets crammed into one. Intel is even wedging the &lt;a href="/2009/06/powervrs-tile-based-rendering.html"&gt;PowerVR&lt;/a&gt; chipset in their designs.&lt;br /&gt;&lt;br /&gt;I just need to remember that all this nifty hardware comes with a big caveat... without driver support, all of this functionality just sits idle between transistors.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-5818733899684168512?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/5818733899684168512/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2009/09/arm-and-teg.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/5818733899684168512'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/5818733899684168512'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2009/09/arm-and-teg.html' title='ARM and a Teg'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_UGOF73TqM5A/SrwL07KsXlI/AAAAAAAAAPM/2FMWHPW0l-8/s72-c/Chocolate_chips.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-7629079801773649684</id><published>2009-09-20T22:12:00.044-04:00</published><updated>2009-10-11T20:47:10.737-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mobile development'/><category scheme='http://www.blogger.com/atom/ns#' term='nokia'/><category scheme='http://www.blogger.com/atom/ns#' term='smartphone'/><category scheme='http://www.blogger.com/atom/ns#' term='sholes'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><category scheme='http://www.blogger.com/atom/ns#' term='maemo'/><category scheme='http://www.blogger.com/atom/ns#' term='n900'/><title type='text'>Consumerism Gone Wild</title><content type='html'>I'm still comparing smartphones. Because I'm a big dork.&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;&lt;/th&gt;&lt;th&gt;iPhone GS&lt;/th&gt;&lt;th&gt;HTC Hero&lt;/th&gt;&lt;th&gt;Motorola Sholes&lt;/th&gt;&lt;th&gt;Nokia n900&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th&gt;CPU&lt;/th&gt;&lt;td&gt;ARM Cortex A8, 600 MHz&lt;/td&gt;&lt;td&gt;Qualcomm MSM7201A, 528 MHz&lt;/td&gt;&lt;td&gt;ARM Cortex A8, 600 MHz&lt;/td&gt;&lt;td&gt;ARM Cortex A8, 600 MHz&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th&gt;GPU&lt;/th&gt;&lt;td&gt;&lt;a href="http://www.macrumors.com/2009/06/25/iphone-3gs-has-more-powerful-powervr-sgx-535-gpu/"&gt;PowerVR SGX 535&lt;/a&gt;&lt;/td&gt;&lt;td&gt;None&lt;/td&gt;&lt;td&gt;PowerVR SGX 530&lt;/td&gt;&lt;td&gt;PowerVR SGX&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th&gt;Memory&lt;/th&gt;&lt;td&gt;256 MB DRAM&lt;/td&gt;&lt;td&gt;288 MB DRAM&lt;/td&gt;&lt;td&gt;256 MB DRAM&lt;/td&gt;&lt;td&gt;256 MB DRAM&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th&gt;Display&lt;/th&gt;&lt;td&gt;320 × 480 LCD&lt;/td&gt;&lt;td&gt;320 × 480 LCD&lt;/td&gt;&lt;td&gt;854 × 480 LCD&lt;/td&gt;&lt;td&gt;800 × 480 LCD&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th&gt;OS&lt;/th&gt;&lt;td&gt;iPhone OS 3.1&lt;/td&gt;&lt;td&gt;Android 1.5&lt;/td&gt;&lt;td&gt;Android 2.0&lt;/td&gt;&lt;td&gt;Maemo 5&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th&gt;&lt;a href="http://androidandme.com/2009/08/news/android-closing-in-on-blackberry-taking-share-from-iphone/"&gt;Market Share&lt;/a&gt;&lt;/th&gt;&lt;td&gt;60%&lt;/td&gt;&lt;td&gt;12%&lt;/td&gt;&lt;td&gt;12%&lt;/td&gt;&lt;td&gt;&amp;lt;1%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th&gt;Carrier&lt;/th&gt;&lt;td&gt;AT&amp;amp;T&lt;/td&gt;&lt;td&gt;Sprint&lt;/td&gt;&lt;td&gt;Verizon&lt;/td&gt;&lt;td&gt;None&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th&gt;(Subsidized) Price&lt;/th&gt;&lt;td&gt;$199&lt;/td&gt;&lt;td&gt;$180&lt;/td&gt;&lt;td&gt;&lt;a href="http://androidandme.com/2009/08/news/motorola-sholes-for-verizon-new-predictions-and-cpu-specs/"&gt;$199?&lt;/a&gt;&lt;/td&gt;&lt;td&gt;$649&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th&gt;Available&lt;/th&gt;&lt;td&gt;Now&lt;/td&gt;&lt;td&gt;2009-10-11&lt;/td&gt;&lt;td&gt;&lt;a href="http://www.boygeniusreport.com/2009/08/23/upcoming-verizon-handsets-motorola-sholes-blackberry-curve-2-blackberry-storm-2-more/"&gt;2009-10&lt;/a&gt;&lt;/td&gt;&lt;td&gt;2009-10&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Judging solely on hardware, the n900, iPhone and Sholes are in a dead heat. The n900 and Sholes will have expandable memory options however, making them more appealing. The Hero completely lacks OpenGL hardware acceleration... a real downer.&lt;br /&gt;&lt;br /&gt;I'd like to develop apps on the handset also. Mebbe to distribute or sell... mebbe just for a lark. With the Hero I wouldn't have any graphics acceleration which makes game development a pain in the butt. I don't want to compromise vertex counts and lighting algorithms. As far as market share goes everyone but Maemo comes out just fine... Android and the iPhone will be neck-and-neck in the foreseeable future.&lt;br /&gt;&lt;br /&gt;There is also the question of price and carrier. Unless T-Mobile picks up and subsidizes the n900, the price is a bit prohibitive for me. While I don't actually talk on the phone that much (which may seem weird considering I'm so intent on shopping for smartphones) I do want to actually have coverage and intelligible audio, so AT&amp;amp;T is out. Verizon's data plans are too pricey for my liking. This leaves us with Sprint &amp;amp; the Hero.&lt;br /&gt;&lt;br /&gt;How freakin' frustrating. I guess we can just wait until October and see how everything pans out, but right now the worst hardware (of the four) is dedicated to the best carrier, and the best hardware is dedicated to the worst carrier(s).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-7629079801773649684?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/7629079801773649684/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2009/09/consumerism-gone-wild.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/7629079801773649684'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/7629079801773649684'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2009/09/consumerism-gone-wild.html' title='Consumerism Gone Wild'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-754897223742233541</id><published>2009-09-16T21:23:00.009-04:00</published><updated>2009-09-17T23:21:57.115-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='webos'/><category scheme='http://www.blogger.com/atom/ns#' term='htc'/><category scheme='http://www.blogger.com/atom/ns#' term='nokia'/><category scheme='http://www.blogger.com/atom/ns#' term='smartphone'/><category scheme='http://www.blogger.com/atom/ns#' term='palm'/><category scheme='http://www.blogger.com/atom/ns#' term='wireless'/><category scheme='http://www.blogger.com/atom/ns#' term='cell phone'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><category scheme='http://www.blogger.com/atom/ns#' term='maemo'/><title type='text'>Cellphone Crysis</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://commons.wikimedia.org/wiki/File:1896_telephone.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 196px; height: 184px;" src="http://1.bp.blogspot.com/_UGOF73TqM5A/SrL8A5m1M-I/AAAAAAAAAPE/k6meHLB-SC4/s400/1896_telephone.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5382641597055054818" /&gt;&lt;/a&gt;The smartphone wars are finally on. I love the irony... first the cellular carriers said pre-paid plans would never take off, then the European (and veeeeeeery slowly American) markets proved them wrong. Then they thought that having a closed platform and refusing to let independent developers write apps would allow them to market "exclusive" content, and Apple drop-kicked that notion in the groin. Finally carriers posited the Blackberry theory of economics where only business users would pay for unlimited data plans. And now Sprint, T-Mobile and AT&amp;T have cost-effective calling plans for personal use. In fact, Sprint just announced &lt;a href="http://www.engadget.com/2009/09/09/sprints-big-surprise-to-be-unlimited-calling-data-text-and-m/"&gt;$70 "everything" plan&lt;/a&gt; to really give T-Mobile and AT&amp;T some competition.&lt;br /&gt;&lt;br /&gt;All this fighting and vying for consumer dollars has worked on my feeble willpower. I &lt;a href="/2006/09/nintendos-marketing-dept-1-my-self.html"&gt;my brain is pretty suggestive&lt;/a&gt; when the marketing war machine comes charging at me. I'm at the point now where I've self-justified the purchase of some smartphone in my near future, especially since I'm going to be re-negotiating my contract in the coming months. This is a complete 180 degree turn-around for me... &lt;a href="/2007/05/converge-to-crash.html"&gt;three years ago I swore off multipurpose devices entirely&lt;/a&gt; because of my craptastic PalmOS smartphone.&lt;br /&gt;&lt;br /&gt;This is a new era however. Now phones can have OpenGL acceleration, hardware video decoding, unlimited fast data access and capacitive high-resolution touch-screens. The &lt;a href="http://en.wikipedia.org/wiki/Powervr"&gt;PowerVR&lt;/a&gt; mobile chipsets are especially compelling, offering decoding and &lt;a href="/2009/06/powervrs-tile-based-rendering.html"&gt;OpenGL ES acceleration using tile-based rendering&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;Currently the only readily available smartphones with hardware-accelerated OpenGL are the iPhone 3GS and the Palm Pre, with the Motorola Sholes supposedly launching with Android and PowerVR soon. However, Palm &lt;i&gt;quite stupidly&lt;/i&gt; offers no way for developers to tap into the power of hardware-accelerated OpenGL with their inspid WebOS SDK (as far as I can tell). Supposedly Motorola's &lt;a href="http://www.engadget.com/2009/07/30/motorola-sholes-android-phone-headed-for-verizon/"&gt;Sholes&lt;/a&gt; will offer PowerVR acceleration with OpenGL ES soon, but it's landing on the overpriced Verizon network. And the iPhone's exclusive carrier AT&amp;T has reputation for poor service and dropped calls; indeed most people I speak with on their network drop or cut out. Ultimately &lt;a href="http://maemo.nokia.com/n900/"&gt;Nokia's n900&lt;/a&gt;, which runs on the custom Maemo OS and a PowerVR chipset, would offer the best platform / hardware combination of any other smartphone out there... but the hardware purchase currently isn't subsidized by any carriers and so is a bit prohibitive.&lt;br /&gt;&lt;br /&gt;Out-of-the-box VPN connectivity is important to me also. I connect to clients using Cisco's VPN gateways (using vpnc) often as well as OpenVPN. With Nokia's Maemo OS I can do both vpnc and OpenVPN, with iPhone OS 3.x I can do Cisco VPN IPSec, and with Android I can do neither (without root access). However, ports of vpnc and OpenVPN clients are likely in the future with Android, since it's a Linux-based embedded system that does support tun devices.&lt;br /&gt;&lt;br /&gt;With Sprint wanting to win the smartphone war on its own CDMA network it has made some compelling decisions. Their consumer-friendly data plans are nice, but it's &lt;a href="http://www.engadget.com/2009/09/03/htc-hero-heading-to-sprint-october-11-for-179-99-no-chin/"&gt;upcoming launch of the HTC Hero&lt;/a&gt; means it has a well-received handset to push the service as well. Engadget &lt;a href="http://www.engadget.com/2009/07/23/htc-hero-review/"&gt;reviewed the European model a little while back&lt;/a&gt; and thought it seemed like an ambitious OS on insufficient hardware, nagged by stuttering and slow rendering. Their &lt;a href="http://www.engadget.com/2009/09/17/htc-hero-for-sprint-hands-on-and-impressions/"&gt;review of the US Sprint model&lt;/a&gt; found the exact same issue, however &lt;a href="http://www.crunchgear.com/2009/09/17/review-htc-hero-from-sprint/"&gt;CrunchGear gave the smartphone high marks&lt;/a&gt; and said it doesn't suffer the same stuttering and lag that previous incarnations of the Hero suffered.&lt;br /&gt;&lt;br /&gt;So which to choose? The iPhone GS definitely has superior hardware, but its current exclusive carrier makes it a hard pill to swallow. Why by a smartphone when the "phone" part doesn't quite pan out? The Palm Pre has a great UI and fantastic hardware, but &lt;a href="http://gizmodo.com/5317216/palm-webos-mojo-sdk-sadly-impotent-badass-games-are-impossible"&gt;the developer SDK is limited&lt;/a&gt; and so independent development is stifled. The n900 would be fantastic - it uses Qt 4 for application development, has a very open SDK and OS and runs on some great hardware. If the n900 could find a home on a good carrier that would subsidize it's purchase, it would easily be the #1 contender.&lt;br /&gt;&lt;br /&gt;Is Sprint's Hero the best choice? It hasn't even launched yet... it's due October 11th... but it already has been opening to good reviews. However the Hero appears to not allow root access and doesn't permit tethering, limiting my ability to tap into the subsystem and have vpnc or OpenVPN clients running. It also lacks hardware acceleration such as the PowerVR chipset, although it does offer OpenGL ES support via software rendering. Sprint's carrier service is quite good - however I'd have to compromise on both of my "must have" features.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Bleh&lt;/i&gt;. Maybe I'll just wait until Q4 and see how this all pans out. Right now there's no phone that has a reliable carrier, hardware accelerated OpenGL and OpenVPN clients. Or maybe I'll just buckle because my self-restraint is remarkably weak.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-754897223742233541?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/754897223742233541/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2009/09/cellphone-crysis.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/754897223742233541'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/754897223742233541'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2009/09/cellphone-crysis.html' title='Cellphone Crysis'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_UGOF73TqM5A/SrL8A5m1M-I/AAAAAAAAAPE/k6meHLB-SC4/s72-c/1896_telephone.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-4560944609176465378</id><published>2009-08-04T22:17:00.002-04:00</published><updated>2009-08-04T22:50:10.427-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='qt'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><title type='text'>Memory Mis-Management</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://commons.wikimedia.org/wiki/File:Electronic_Memory.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 128px; height: 104px;" src="http://2.bp.blogspot.com/_UGOF73TqM5A/SnjrqKQzhFI/AAAAAAAAAOc/rfn1PdZCWFY/s400/739px-Electronic_Memory.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5366298065553818706" /&gt;&lt;/a&gt;After &lt;a href="/2009/08/create-qt.html"&gt;cracking open Qt Creator and picking up Qt 4.5 development&lt;/a&gt; quite nearly two years after putting it down I found my C/C++ to be &lt;i&gt;really&lt;/i&gt; wanting. All the habits I had developed earlier had simply leaked out of my head. I hadn't thought in terms of delete/malloc/free/pointers/references/virtual functions in so long that those neurons had since been re-allocated to other important devices, such as figuring out how to get americanos out quickly without breaking the espresso maker.&lt;br /&gt;&lt;br /&gt;My brain just doesn't shift from domain to domain like it used to. Recently I was working on reducing some sort of algebraic expression of matrix transformations or some crap when a visiting fellow asked about normalizing data in an RDBMS. My brain shifted without a clutch. I kinda sat there, utterly stupefied, while my noggin tried desperately to come to terms with a) what words actually meant in the English language and b) how to shove data into a database table.&lt;br /&gt;&lt;br /&gt;My brain is currently doing that with C++ memory management, too. &lt;a href="http://valgrind.org/"&gt;Valgrind&lt;/a&gt; has very politely brought to my attention that my app is leaking like a freaking waterfall and my pointer management is beyond stupid. I needed a boot to my brain to make it jump back to C++ object-land.&lt;br /&gt;&lt;br /&gt;Evidently my brain is not the only one that Java has softened. Not too long ago the Amarok team noticed that an influx of Java programmers brought with it fairly poor memory allocation habits and &lt;a href="http://mail.kde.org/pipermail/amarok-devel/2009-February/003297.html"&gt;posted "Tips on memory management with C++ and Qt" to the mailing list&lt;/a&gt;. Both the message itself and the following responses I found interesting... they gave a quick synopsis of things that Javabrains do incorrectly when having to think in Qt's C++ garden.&lt;br /&gt;&lt;br /&gt;I started reading Appendix B of Mark Summerfield's &lt;a href="http://www.qtrac.eu/marksummerfield.html"&gt;First Edition of C++ GUI Programming with Qt 4&lt;/a&gt;. The appendix, "Introduction to C++ for Java and C# Programmers," skips extraneous lessons concerning object oriented programming and directly addresses the C++ conventions that have since escaped my memory. The language in the book is direct and approachable; now that I'm into it the practice of everything is starting to come back to me now. Hopefully now I won't make stupid inheritance mistakes with virtual functions.&lt;br /&gt;&lt;br /&gt;The paradigm of passing by value vs. passing by reference takes breaking some tough habits, but Qt is helping me out. Valgrind telling me of abandoned and undeleted objects finally reminded me &lt;i&gt;why&lt;/i&gt; every object in Qt needs a parent - the removal of the parent needs to signal the removal of all children. I also need to be more disciplined in the use of &lt;a href="http://doc.trolltech.com/4.5/qpointer.html"&gt;QPointer&lt;/a&gt; to pass around references. Just as &lt;a href="http://www.crystalspace3d.org/docs/online/api/classcsPtr.html"&gt;Crystal Space's smart pointers&lt;/a&gt; saved me &lt;u&gt;numerous&lt;/u&gt; times in the past I'm sure Qt's smart pointers will save me from myself as well.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-4560944609176465378?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/4560944609176465378/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2009/08/memory-mis-management.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/4560944609176465378'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/4560944609176465378'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2009/08/memory-mis-management.html' title='Memory Mis-Management'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_UGOF73TqM5A/SnjrqKQzhFI/AAAAAAAAAOc/rfn1PdZCWFY/s72-c/739px-Electronic_Memory.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-5558347124975378452</id><published>2009-08-01T14:50:00.000-04:00</published><updated>2009-08-01T14:50:18.284-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='qt'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Create a Qt</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_UGOF73TqM5A/SnOn2z1PdCI/AAAAAAAAAOU/y4KURZQc93g/s1600-h/Blocks+Container.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 96px; height: 96px;" src="http://4.bp.blogspot.com/_UGOF73TqM5A/SnOn2z1PdCI/AAAAAAAAAOU/y4KURZQc93g/s400/Blocks+Container.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5364816141196686370" /&gt;&lt;/a&gt;Downloaded and been playing with &lt;a href="http://www.qtsoftware.com/products/developer-tools"&gt;Qt Creator&lt;/a&gt; a bit. Previously I was using &lt;a href="http://www.kdevelop.org/"&gt;KDevelop&lt;/a&gt; for &lt;a href="http://www.qtsoftware.com/"&gt;Qt 4&lt;/a&gt; development, which worked alright. It had fair integration for &lt;a href="http://valgrind.org/"&gt;Valgrind&lt;/a&gt; and &lt;a href="http://www.gnu.org/software/gdb/"&gt;GDB&lt;/a&gt;, and the editor worked fairly well. It had a few hooks for &lt;a href="http://doc.trolltech.com/4.2/qmake-manual.html"&gt;qmake&lt;/a&gt; and handled the Qt project building process fairly well.&lt;br /&gt;&lt;br /&gt;They don't have a native KDE 4 KDevelop just yet. Not a huge deal... I could easily install it &amp; tweak it for my projects. Before I did, however, I thought I'd give Trolltech's Qt-centric IDE a spin.&lt;br /&gt;&lt;br /&gt;Trolltech says Qt Creator's focus is &lt;a href="http://labs.trolltech.com/blogs/2009/06/25/qt-creator-12-released/"&gt;...not [to] solely focus on a big feature list, but also on small details which make your life easier&lt;/a&gt;. Such a goal describes the project fairly well; I was pretty impressed with how easy it was to carry my KDevelop project over. Qt relies on project files (instead of Makefiles or configure scripts) for determining build flags and resources. Those same build files were directly imported into Qt Creator and set up the IDE likewise. Library dependencies were set up right off the bat; no problems at all. Just a click and builds were running immediately.&lt;br /&gt;&lt;br /&gt;Debugging is integrated quite nicely. Since the vast majority of my time is spent in either NetBeans or Eclipse working with Java EE 6 stuff I've grown accustomed to robust and very granular debugging that allows me to dig deep into variables of every scope. While GDB only lets me go so far, Qt Creator presents the info fantastically and allows me to drill into objects in a very familiar way.&lt;br /&gt;&lt;br /&gt;I think Java and the vast software stack around it is still the best way to engineer enterprise or academic applications. From &lt;a href="http://lucene.apache.org/java/docs/"&gt;Lucene&lt;/a&gt; to &lt;a href="http://nlp.stanford.edu/software/tagger.shtml"&gt;Stanford's Log-linear Part-Of-Speech Tagger&lt;/a&gt; it seems that most services and library software engineers would rather work within a fast virtual machine and forgo worrying about memory allocation or debugging backtraces. &lt;br /&gt;&lt;br /&gt;Still, one has to wonder about where the wind will blow Java now that &lt;a href="http://www.sun.com/third-party/global/oracle/"&gt;Oracle has swallowed the Sun&lt;/a&gt;. &lt;a href="http://java.sun.com/javase/technologies/desktop/"&gt;Java on the desktop&lt;/a&gt;, despite attempts with &lt;a href="http://java.sun.com/docs/books/tutorial/uiswing/"&gt;Swing&lt;/a&gt; and &lt;a href="http://www.sun.com/software/javafx/"&gt;JavaFX&lt;/a&gt;, just hasn't received the attention that it needs. It's to the point where I had to write &lt;a href="https://jdic.dev.java.net/incubator/systeminfo/index.html"&gt;native code to get the system properties I wanted&lt;/a&gt;. &lt;a href="/2008/04/java-69.html"&gt;Java 6 update 10 was a &lt;b&gt;huge&lt;/b&gt; step forward&lt;/a&gt;, but someone needs to carry the torch. I imagine that Oracle would shelve desktop Java &lt;a href="/2009/04/candyland-gets-paved.html"&gt;just as it might for a myriad of other Sun technologies&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;With Oracle taking Java some unknown direction and the Java desktop still needing attention, a framework / build environment such as Qt 4 stands in the gap nicely. It's a huge compromise between the ease of engineering with Java and the native accessibility that comes with C/C++. I worry about memory management (somewhat) less when sticking with Qt conventions and Qt Creator / GDB gives me nice debugging that approaches that of a JVM. It makes me wonder if my &lt;a href="http://consultcomm.sourceforge.net/"&gt;long languishing desktop apps&lt;/a&gt; could stand a Qt 4 re-write.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-5558347124975378452?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/5558347124975378452/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2009/08/create-qt.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/5558347124975378452'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/5558347124975378452'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2009/08/create-qt.html' title='Create a Qt'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_UGOF73TqM5A/SnOn2z1PdCI/AAAAAAAAAOU/y4KURZQc93g/s72-c/Blocks+Container.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-5828003025753373661</id><published>2009-07-03T23:55:00.004-04:00</published><updated>2009-07-04T00:13:55.158-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web development'/><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='flash'/><category scheme='http://www.blogger.com/atom/ns#' term='html'/><title type='text'>"The beast reborn spread over the earth and its numbers grew legion."</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://commons.wikimedia.org/wiki/File:Acrilic_on_canvas_323.jpg"&gt;&lt;img style="float:right; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 150px; height: 141px;" src="http://1.bp.blogspot.com/_UGOF73TqM5A/Sk7UFRIr1TI/AAAAAAAAAOM/OYfUIeuotZ4/s400/636px-Acrilic_on_canvas_323.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5354450193954362674" /&gt;&lt;/a&gt;Tim Anderson on The Register &lt;a href="http://www.theregister.co.uk/2009/06/30/firefox_3point5_review/"&gt;attempts to make the argument&lt;/a&gt; that, contrary to what the Firefox crew says, Firefox 3.5 is "not a 'web upgrade.'" But after looking at the developer documentation and messing with the browser over the past few days, I have to disagree.&lt;br /&gt;&lt;br /&gt;Given the functionality of HTML 5 and Firefox' decision to go ahead with embedding video, a rush to HTML 5 could mean that pages no longer need to be riddled with Flash embeds. SVG images could be rendered directly by the browser, graphs could be contained entirely &lt;a href="https://developer.mozilla.org/en/Canvas_tutorial"&gt;within a canvas element&lt;/a&gt; and video could be &lt;a href="http://www.mozilla.com/en-US/firefox/video/firefox-3.5.html"&gt;directly embedded&lt;/a&gt; instead of rendered via an embedded plugin.&lt;br /&gt;&lt;br /&gt;Think about how awesome that could end up being. &lt;a href="http://www.homestarrunner.com"&gt;Homestar Runner&lt;/a&gt; definitely isn't going to start being animated in HTML 5 instead of Flash - Adobe's tool support is light years away for people wanting production-quality interactive applications; yet for simple things like graphs, videos and visualization of data Firefox 3.5 brings a future HTML specification finally in reach with no extra plugins required.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-5828003025753373661?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/5828003025753373661/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2009/07/beast-reborn-spread-over-earth-and-its.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/5828003025753373661'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/5828003025753373661'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2009/07/beast-reborn-spread-over-earth-and-its.html' title='&quot;The beast reborn spread over the earth and its numbers grew legion.&quot;'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_UGOF73TqM5A/Sk7UFRIr1TI/AAAAAAAAAOM/OYfUIeuotZ4/s72-c/636px-Acrilic_on_canvas_323.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-7723831947387023074</id><published>2009-06-13T23:48:00.004-04:00</published><updated>2009-09-20T22:55:07.458-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='powervr'/><category scheme='http://www.blogger.com/atom/ns#' term='mobile development'/><category scheme='http://www.blogger.com/atom/ns#' term='game development'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><title type='text'>PowerVR's Tile Based Rendering</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://commons.wikimedia.org/wiki/File:Brixton_tube_station_motif.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 200px; height: 200px;" src="http://1.bp.blogspot.com/_UGOF73TqM5A/SjR1ki8gMeI/AAAAAAAAAOE/K_plzAovuMI/s400/Brixton_tube_station_motif.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5347027928311935458" /&gt;&lt;/a&gt;I've been reading up on the iPhone's GPU and 3D rendering pipeline based on the &lt;a href="http://en.wikipedia.org/wiki/PowerVR"&gt;PowerVR SGX&lt;/a&gt; The PowerVR pipeline is based on Tile Based Deferred Rendering and advanced Hidden Surface Removal that occurs very early, prior to the actual rendering phase. Apple's developer site has some compelling information on the PowerVR platform and how it performs well as a mobile GPU.&lt;br /&gt;&lt;br /&gt;Occlusion detection and the culling of unseen polygons ultimately means less primitives to render, which of course equals less horsepower going to effects you never see. Removing hidden surfaces too aggressively can cause weird stuff to happen, like stencil shadows popping through textures or light blooms shining through walls. But for something with limited power and screen real estate, it makes a whole lotta sense.&lt;br /&gt;&lt;br /&gt;I can see why &lt;a href="http://www.idsoftware.com/wolfenstein3dclassic/wolfdevelopment.htm"&gt;Carmack&lt;/a&gt; has had so much fun porting titles to the iPhone - it's a kit that really makes for some nice titles. And with iPhone OS 3 having more robust p2p bluetooth capabilities, this thing could turn out to be the next big gaming platform.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-7723831947387023074?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/7723831947387023074/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2009/06/powervrs-tile-based-rendering.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/7723831947387023074'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/7723831947387023074'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2009/06/powervrs-tile-based-rendering.html' title='PowerVR&apos;s Tile Based Rendering'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_UGOF73TqM5A/SjR1ki8gMeI/AAAAAAAAAOE/K_plzAovuMI/s72-c/Brixton_tube_station_motif.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-393951598031408577</id><published>2009-05-26T22:20:00.006-04:00</published><updated>2009-05-26T22:26:31.820-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='kde 4'/><category scheme='http://www.blogger.com/atom/ns#' term='opensuse'/><title type='text'>KDE 4 Gets More Awesome Every Week</title><content type='html'>Thanks to openSUSE's always-fresh Factory KDE4 repositories, I was able to update my KDE install to 4.2.85. There's a whole ton of nice lil' tweaks and features-to-be included... tiny things that really add up. Like modifying a folder to include thumbnails of the files it contains.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_UGOF73TqM5A/ShyjoBd2fFI/AAAAAAAAANs/7zLtiDGAw4U/s1600-h/Folder+icons.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 308px;" src="http://1.bp.blogspot.com/_UGOF73TqM5A/ShyjoBd2fFI/AAAAAAAAANs/7zLtiDGAw4U/s400/Folder+icons.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5340323166138301522" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Or having a nice SVG system monitor that actually has all the information I'm interested in at a single glance. &lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_UGOF73TqM5A/Shyjwffk8PI/AAAAAAAAAN0/iDyZ3_RiKU0/s1600-h/KDE+System+Monitor.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 304px;" src="http://4.bp.blogspot.com/_UGOF73TqM5A/Shyjwffk8PI/AAAAAAAAAN0/iDyZ3_RiKU0/s400/KDE+System+Monitor.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5340323311637557490" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Or whiz-bang desktops that do everything from show the weather to render interactive fractals to show a 3D satellite view of the earth rendered in real time.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_UGOF73TqM5A/Shyj5I9RDRI/AAAAAAAAAN8/yvX7I-sFGx8/s1600-h/Desktops.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 333px;" src="http://4.bp.blogspot.com/_UGOF73TqM5A/Shyj5I9RDRI/AAAAAAAAAN8/yvX7I-sFGx8/s400/Desktops.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5340323460206890258" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It really is remarkable how much is in this release - enough to turn heads and impress friends once again. The strength of KDE 4's architecture is finally being flexed, and hopefully the Plasma naysayers will get a chance to see why this new KDE framework provides so many new opportunities.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-393951598031408577?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/393951598031408577/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2009/05/kde-4-gets-more-awesome-every-week.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/393951598031408577'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/393951598031408577'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2009/05/kde-4-gets-more-awesome-every-week.html' title='KDE 4 Gets More Awesome Every Week'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_UGOF73TqM5A/ShyjoBd2fFI/AAAAAAAAANs/7zLtiDGAw4U/s72-c/Folder+icons.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-6624880906597112293</id><published>2009-05-07T23:06:00.002-04:00</published><updated>2009-05-07T23:10:29.428-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sage'/><category scheme='http://www.blogger.com/atom/ns#' term='scilab'/><category scheme='http://www.blogger.com/atom/ns#' term='octave'/><category scheme='http://www.blogger.com/atom/ns#' term='cryptography'/><category scheme='http://www.blogger.com/atom/ns#' term='mathematics'/><category scheme='http://www.blogger.com/atom/ns#' term='mathematica'/><title type='text'>In Code</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://commons.wikimedia.org/wiki/File:Sacks_spiral.svg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 196px; height: 196px;" src="http://2.bp.blogspot.com/_UGOF73TqM5A/SgOiUuUimeI/AAAAAAAAANk/Ba044Ykob5Q/s400/Sacks_spiral.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5333284860652067298" /&gt;&lt;/a&gt;&lt;br /&gt;I picked up &lt;a href="http://search.barnesandnoble.com/bookSearch/isbnInquiry.asp?ISBN=9781565123779"&gt;In Code&lt;/a&gt;, the tale of Sarah Flannery, even though I have zero time to read it. I've found myself making the time... I've really enjoyed the book. It's an exceptionally vivid recollection of how Sarah visualizes mathematical puzzles, something that is seldom taught in the classroom.&lt;br /&gt;&lt;br /&gt;Sarah talks about how she delved deeper into RSA and the &lt;a href="http://cryptome.info/flannery-cp.htm"&gt;Cayley-Purser&lt;/a&gt; algorithm. One tool she talks about her father recommending was &lt;a href="http://www.wolfram.com/"&gt;Mathematica&lt;/a&gt; - surprisingly apropos reading right now considering all the media attention it is receiving around the release of &lt;a href="http://www.wolframalpha.com/"&gt;Wolfram|Alpha&lt;/a&gt;. She mentions how easy it was to work with primes &amp; factors within its notepad... and my interest in RSA combined with the latest buzz about Mathematica as some sort of crazy Rete engine made me get the 15-day trial version.&lt;br /&gt;&lt;br /&gt;I thought Mathematica was pretty nice, and it included some very robust visualization tools. However its price was a bit steep, even for the home user. It didn't take me long to find comperable tools such as &lt;a href="http://www.sagemath.org/"&gt;Sage&lt;/a&gt;, &lt;a href="http://www.gnu.org/software/octave/index.html"&gt;Octave&lt;/a&gt; and &lt;a href="http://www.scilab.org/"&gt;Scilab&lt;/a&gt; (thanks to &lt;a href="http://www.osalt.com/"&gt;osalt.com&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.sagemath.org/"&gt;Sage&lt;/a&gt; is rather interesting, as its notepad can be run as a web application. That would (in theory) allow you to install Sage on a huge, beefy box (mebbe even a cluster) and grant several people access to a single, huge workhorse instead of investing in several large workstations. I dig that idea, although I was looking for a native desktop app instead.&lt;br /&gt;&lt;br /&gt;Both Scilab and Octave were readily available through openSUSE's package repositories (including Packman), so I installed both (including QtOctave) to try them out. They were both fairly straight-forward command line apps, even though Scilab had its own terminal. I was looking for something with a nice IDE wrapped around it however... something that could approach Mathematica's UI. I installed &lt;a href="http://qtoctave.wordpress.com/what-is-qtoctave/"&gt;QtOctave&lt;/a&gt;, which appears to act like a developer's IDE for the Octave runtime environment. It does an okay job and provides something of a notepad, although it is nowhere as intuitive as Mathematica's interface.&lt;br /&gt;&lt;br /&gt;Functionally it appears QtOctave and Mathematica offer very similar functionality, at least for what I want to accomplish. I'll definitely be at a loss once my 15 day evaluation copy of Mathematica expires, but QtOctave should serve as a suitable replacement in the meantime.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-6624880906597112293?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/6624880906597112293/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2009/05/in-code.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/6624880906597112293'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/6624880906597112293'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2009/05/in-code.html' title='In Code'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_UGOF73TqM5A/SgOiUuUimeI/AAAAAAAAANk/Ba044Ykob5Q/s72-c/Sacks_spiral.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-829205738742054059</id><published>2009-04-28T22:09:00.003-04:00</published><updated>2009-04-28T23:00:22.905-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='apricot'/><category scheme='http://www.blogger.com/atom/ns#' term='game development'/><category scheme='http://www.blogger.com/atom/ns#' term='crystal space'/><category scheme='http://www.blogger.com/atom/ns#' term='blender'/><title type='text'>Apricot Blending Crystal Space</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://commons.wikimedia.org/wiki/File:20070107_Apricot.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 200px; height: 150px;" src="http://4.bp.blogspot.com/_UGOF73TqM5A/SffCW-uvY-I/AAAAAAAAANc/sJdtJ3nmp98/s200/20070107_Apricot.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5329942384068223970" /&gt;&lt;/a&gt;I haven't followed &lt;a href="/2007/06/ive-never-been-so-excited-for-apricot.html"&gt;Project Apricot&lt;/a&gt; in a while - I've been out of the Blender &amp; Crystal Space 3D scene for a while now. It appears to have taken an interesting turn however.&lt;br /&gt;&lt;br /&gt;It appears the final name is "&lt;a href="http://www.yofrankie.org/"&gt;Yo Frankie!&lt;/a&gt;" - finally &lt;a href="http://www.blender3d.org/e-shop/product_info.php?products_id=112"&gt;available online or retail&lt;/a&gt;, including all the code &amp; assets that went into the game. Both of them.&lt;br /&gt;&lt;br /&gt;Errr... what?&lt;br /&gt;&lt;br /&gt;Evidently the project forked - one fork was done entirely within Blender, the other &lt;a href="http://www.crystalspace3d.org/main/YoFrankie!"&gt;built specifically for Crystal Space&lt;/a&gt;. There appear to be differing accounts as to why the for occured; the Blender Foundation &lt;a href="http://www.yofrankie.org/about-apricot/"&gt;claims that this was due to advances in Blender's own game engine&lt;/a&gt;, while at the same time &lt;a href="http://www.yofrankie.org/july-production-update/"&gt;they appear to say that there were too many technical difficulties&lt;/a&gt; to marry the Blender Game Engine and Crystal Space 3D. Ultimately Blender's game engine remains an entity on its own, and Crystal Space walks a separate path. It seems the Blender community wasn't happy with using an engine outside of their own doors and so they walked away from integrating with a more sophisticated game engine. Integration with other engines and projects... something that could make Blender thrive in a production environment... was abandoned to work on the more primitive Blender Game Engine.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://crystalcore.crystalspace3d.org/main/Main_Page"&gt;The Crystal Core project&lt;/a&gt; seems to have re-adjusted its ultimate aims as well, similarly finding its initial objectives far too ambitious. That makes two flagship titles that haven't been able to reach their intended goals.&lt;br /&gt;&lt;br /&gt;I'm wondering why Apricot and Crystal Core are both having such difficulties. My guess is that content generation can be done well, engine development can be done well, but the interoperability between the two is an equal if not greater effort. Compare the &lt;a href="http://news.quelsolaar.com/#post46"&gt;tools Eskil created for Love&lt;/a&gt; to the Blender + Crystal Space tools: &lt;a href="http://www.crystalspace3d.org/main/BuildCharBlender_Tutorial"&gt;building models and meshes in Blender&lt;/a&gt; can be fairly arduous and requires a lot of reference material while &lt;a href="http://www.quelsolaar.com/loq_airou/"&gt;Loq Ariou can create meshes using freehand&lt;/a&gt; and &lt;a href="http://www.crystalspace3d.org/main/TxtmapChar_Tutorial"&gt;UV texture mapping in Blender&lt;/a&gt; is a multi-step process while &lt;a href="http://news.quelsolaar.com/#post43"&gt;Eskil has created something that can do the UV mapping&lt;/a&gt; in a few short steps. &lt;a href="http://www.quelsolaar.com/verse/"&gt;Verse seems to be the glue&lt;/a&gt; that the Blender &lt;-&gt; Crystal Space interoperability was missing, creating a uniform way to remotely process assets and scenes.&lt;br /&gt;&lt;br /&gt;The effort to have a Crystal Space 3D game engine within Blender would have been tough, but I believe it would have been worth it. It is definitely no easy task, but these kinds of tools are sorely needed. It is too bad Blender decided to push Crystal Space aside - I was looking forward to big things with their collaboration.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-829205738742054059?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/829205738742054059/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2009/04/crystal-space-blending-apricot.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/829205738742054059'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/829205738742054059'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2009/04/crystal-space-blending-apricot.html' title='Apricot Blending Crystal Space'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_UGOF73TqM5A/SffCW-uvY-I/AAAAAAAAANc/sJdtJ3nmp98/s72-c/20070107_Apricot.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-1172734376318031902</id><published>2009-04-27T00:47:00.004-04:00</published><updated>2009-04-27T01:09:01.148-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='3d engines'/><category scheme='http://www.blogger.com/atom/ns#' term='procedural content'/><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='game development'/><category scheme='http://www.blogger.com/atom/ns#' term='indy development'/><category scheme='http://www.blogger.com/atom/ns#' term='graphics'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='opengl'/><category scheme='http://www.blogger.com/atom/ns#' term='love'/><title type='text'>What I've Seen with Your Eyes</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://commons.wikimedia.org/wiki/File:Tools_blue.svg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 128px; height: 128px;" src="http://3.bp.blogspot.com/_UGOF73TqM5A/SfU6DMA3IWI/AAAAAAAAANU/bqRhkx6154k/s320/Tools_blue.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5329229560501707106" /&gt;&lt;/a&gt;Eskil &lt;a href="http://news.quelsolaar.com/#post46"&gt;posted the video for his GDC presentations&lt;/a&gt; and they're abso-freakin-lutely amazing.&lt;br /&gt;&lt;br /&gt;The gameplay of Love was interesting, but the video displaying the tools Eskil created are completely mind blowing. It's the stuff that actually gives you hope for the world again. The &lt;a href="http://news.quelsolaar.com/#post46"&gt;GDC tool video&lt;/a&gt; shows off several tools Eskil has released: &lt;a href="http://www.quelsolaar.com/loq_airou/"&gt;Loq Ariou&lt;/a&gt; which allows you to create assets &amp; models with the same ease as a pencil &amp; scratch paper, &lt;a href="http://www.quelsolaar.com/co_on/"&gt;Co On&lt;/a&gt; which provides scene mapping that's &lt;b&gt;startlingly similar to how you might visualize things in your own mind&lt;/b&gt;, and &lt;a href="http://www.quelsolaar.com/verse/"&gt;Verse&lt;/a&gt;, a data transfer &amp; protocol standard that allows such data to be shared instantaneously between applications.&lt;br /&gt;&lt;br /&gt;Obviously Eskil had to create an intelligent set of tools to properly build &lt;a href="http://www.quelsolaar.com/love"&gt;Love&lt;/a&gt; within a decade, but I had no idea he had constructed such a cadre of tools that could be re-used by other developers. Not only does he speed content generation up and provide better interfaces - he goes one step further by breaking down human factor boundaries that plague every other asset generation tool to date. Just watch the video - especially the portion demonstrating shaders in &lt;a href="http://www.quelsolaar.com/co_on/"&gt;Co On&lt;/a&gt; - and you'll see why I'm going completely nuts over these releases.&lt;br /&gt;&lt;br /&gt;Eskil is giving back a &lt;i&gt;huge&lt;/i&gt; amount to the community at large with these tools, and is likely opening the doors for many, many others to creatively express themselves in ways that were once prohibitively difficult. Love isn't just creating a fanbase... it's creating a legacy.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-1172734376318031902?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/1172734376318031902/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2009/04/what-ive-seen-with-your-eyes.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/1172734376318031902'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/1172734376318031902'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2009/04/what-ive-seen-with-your-eyes.html' title='What I&apos;ve Seen with Your Eyes'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_UGOF73TqM5A/SfU6DMA3IWI/AAAAAAAAANU/bqRhkx6154k/s72-c/Tools_blue.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-1796790636049019553</id><published>2009-04-20T21:52:00.005-04:00</published><updated>2009-04-20T22:32:20.892-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='sun'/><category scheme='http://www.blogger.com/atom/ns#' term='apache'/><category scheme='http://www.blogger.com/atom/ns#' term='oracle'/><title type='text'>Candyland Gets Paved</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://commons.wikimedia.org/wiki/File:Kaffeetassen.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 245px;" src="http://1.bp.blogspot.com/_UGOF73TqM5A/Se0pFQRgpYI/AAAAAAAAANM/eVxQd4te6T8/s320/Kaffeetassen.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5326959104493659522" /&gt;&lt;/a&gt;I've been a big fan of &lt;a href="/search/label/java"&gt;Java&lt;/a&gt; for quite a long time, using it for nearly all my enterprise software development. Looks like I'm going to have to find something else now.&lt;br /&gt;&lt;br /&gt;Today &lt;a href="http://www.oracle.com/sun/index.html"&gt;Oracle announced it would purchase Sun&lt;br /&gt;Microsystems&lt;/a&gt;, the company that had previously played host to a myriad of great technologies such as the Solaris OS, the Java programming language, the NetBeans integrated development environment, the MySQL database, VirtualBox for desktop virtualization, the GlassFish application server (not to mention an emerging JMS server) and OpenOffice.org for open-source enterprise office software. With Oracle's purchase pretty much a done deal, you can now expect most, if not all, of these technologies to wither on the vine.&lt;br /&gt;&lt;br /&gt;I rely on NetBeans, Java, Solaris, OpenOffice and VirtualBox so that I can do my job on a daily basis. With those removed, I'm pretty much screwed.&lt;br /&gt;&lt;br /&gt;Think I'm being alarmist? Maybe. I did play Chicken Little when &lt;a href="http://www.novell.com/news/press/archive/2003/11/pr03069.html"&gt;Novell bought SuSE&lt;/a&gt; in 2003, and that deal appears to be working out somewhat better than anyone expected - even amidst &lt;a href="http://www.desktopdistractions.com/2006/11/evil-creeping-at-your-door.html"&gt;poorly considered kinships with Microsoft&lt;/a&gt;. SuSE is slowly recovering, and Novell seems to attempt to be a good steward. But Oracle? Lessee... what's their track record for aquired technologies? They've turned &lt;a href="http://www.oracle.com/tangosol/index.html"&gt;Tangosol Coherence&lt;/a&gt; from a must-have element in a distributed software stack into a minuscule trinket tucked away in their closet. &lt;a href="http://www.oracle.com/technologies/open-source/index.html"&gt;InnoDB&lt;/a&gt; has not progressed well and has caused continue enterprise issues. And &lt;a href="http://www.oracle.com/appserver/index.html"&gt;WebLogic&lt;/a&gt;? It used to be the fastest Web service platform out there, now it remains largely ignored.&lt;br /&gt;&lt;br /&gt;Tell me... what strategic value is Oracle going to find in VirtualBox? Or OpenOffice.org? Do you really think Oracle would have allowed projects such as &lt;a href="http://www.hibernate.org"&gt;Hibernate&lt;/a&gt; to exist when they want to make &lt;a href="http://www.oracle.com/tools/toplink_adf.html"&gt;Toplink&lt;/a&gt; ubiquitous? Oracle will continue to neglect these projects, just like they've ignored previous projects they've acquired, until they decompose.&lt;br /&gt;&lt;br /&gt;Seriously, are you going to trust a company who's had the same impossible-to-navigate site for fifteen years? A company who attempts to &lt;a href="http://www.oracle.com/corporate/pricing/pricelists.html"&gt;license its products using terms&lt;/a&gt; that require a slide rule and burnt offerings to figure out? Just look at the difference of how each company announced the acquisition: &lt;a href="http://www.sun.com/third-party/global/oracle/index.jsp"&gt;Sun created a micro-site&lt;/a&gt; that explains the deal and attempts to sell a bright side. &lt;a href="http://www.oracle.com/sun/index.html"&gt;Oracle could hardly be bothered to post a statement&lt;/a&gt;, showing their indifference to the acquisition that will most likely just mean a reduction in competition, not an enhancement to their portfolio.&lt;br /&gt;&lt;br /&gt;Right now it seems there are two possible outs: hope that &lt;a href="http://harmony.apache.org/"&gt;Apache Harmony&lt;/a&gt; can deliver on its goal of releasing its own open Java platform, or abandon Java as a platform and move to something like &lt;a href="http://www.qtsoftware.com/"&gt;Qt&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Maybe I'm prematurely freaking out. Maybe I'm wrong about Oracle's apathy destroying the projects acquired from Sun. I certainly hope so. Still, I would wager that the capitalist will continue to decimate good ideas, digesting Sun's properties into a discarded pile alongside acquisitions of olde.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-1796790636049019553?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/1796790636049019553/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2009/04/candyland-gets-paved.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/1796790636049019553'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/1796790636049019553'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2009/04/candyland-gets-paved.html' title='Candyland Gets Paved'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_UGOF73TqM5A/Se0pFQRgpYI/AAAAAAAAANM/eVxQd4te6T8/s72-c/Kaffeetassen.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-493334330656867991</id><published>2009-04-08T20:32:00.004-04:00</published><updated>2009-04-08T22:52:43.781-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ipod'/><category scheme='http://www.blogger.com/atom/ns#' term='apple'/><title type='text'>You're Nice People. I'll Give You Monies.</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_UGOF73TqM5A/Sd1i5Z0d6EI/AAAAAAAAANE/A3mO3enV3Vs/s1600-h/HDR+iPod.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 320px; height: 228px;" src="http://2.bp.blogspot.com/_UGOF73TqM5A/Sd1i5Z0d6EI/AAAAAAAAANE/A3mO3enV3Vs/s320/HDR+iPod.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5322519072944810050" /&gt;&lt;/a&gt;I have a bit of a... troublesome patch with my iPods. &lt;a href="/2006/12/christmas-software-shenannigans.html"&gt;My first one&lt;/a&gt; suffered the cruel fate of a lawn mowing incident. &lt;a href="/2007/05/converge-to-crash.html"&gt;The next one&lt;/a&gt; suffered a more &lt;a href="/2008/08/everything-breaks-at-once.html"&gt;aqueous&lt;/a&gt; fate. Now &lt;a href="/2008/08/everything-breaks-at-once.html"&gt;the latest one&lt;/a&gt; has been acting odd as of late and several hours, system restores, re-formatts and a pass of &lt;a href="http://linux.about.com/library/cmd/blcmdl8_badblocks.htm"&gt;badblocks&lt;/a&gt; later I found it had a hard drive riddled with bad blocks. I'm guessing the read heads were using the platters as a scratching post.&lt;br /&gt;&lt;br /&gt;I needed hardware support here. Mind you I've never once meandered into the local Apple store, nevermind the &lt;a href="http://www.apple.com/retail/geniusbar/"&gt;Genius Bar&lt;/a&gt;. Yet I made an appointment, shuffled my way through and talked to the resident genius.&lt;br /&gt;&lt;br /&gt;I was prepped and ready for a requests for long-lost receipts, RMA codes and waiting months for a refurbishment. So I met my genius, she listened to the symptoms, typed a while on her laptop and... handed me a new iPod.&lt;br /&gt;&lt;br /&gt;Seriously, just like that.&lt;br /&gt;&lt;br /&gt;The serial number was dutifully registered by iTunes and was shown to still be under warranty. So I signed for receipt of a new device and walked out the door. Ten minutes, tops. &lt;br /&gt;&lt;br /&gt;What the eff? Why isn't life always this easy?&lt;br /&gt;&lt;br /&gt;I'm sync'ing now and probably have a few hours to go. Small price to pay for instant gratification. I've given Apple lots of business; it's refreshing to see that they treat their customers with the same kind of loyalty.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-493334330656867991?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/493334330656867991/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2009/04/youre-nice-people-ill-give-you-monies.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/493334330656867991'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/493334330656867991'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2009/04/youre-nice-people-ill-give-you-monies.html' title='You&apos;re Nice People. I&apos;ll Give You Monies.'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_UGOF73TqM5A/Sd1i5Z0d6EI/AAAAAAAAANE/A3mO3enV3Vs/s72-c/HDR+iPod.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-6017070271077501531</id><published>2009-03-31T21:30:00.003-04:00</published><updated>2009-03-31T21:39:39.066-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='procedural content'/><category scheme='http://www.blogger.com/atom/ns#' term='indy development'/><category scheme='http://www.blogger.com/atom/ns#' term='introversion'/><category scheme='http://www.blogger.com/atom/ns#' term='love'/><title type='text'>Love for the Indie Developers</title><content type='html'>It was interesting reading &lt;a href="http://www.gamesetwatch.com/2009/03/gamesetinterview_all_you_need.php"&gt;GameSetWatch's interview with Love's Eskil Steenberg&lt;/a&gt;. Was very cool to hear Eskil was good friends with the garage developers at &lt;a href="http://www.desktopdistractions.com/search/label/introversion"&gt;Introversion&lt;/a&gt;. Interesting also to hear his opinions on &lt;a href="http://www.desktopdistractions.com/search/label/procedural%20content"&gt;procedurally generated content&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Eskil is developing &lt;a href="http://www.quelsolaar.com/love/index.html"&gt;Love&lt;/a&gt; entirely on his own, and using procedurally generated content to generate what he needs for something of such a vast scope was a necessity. Introversion is familiar with this same issue - you can see its effects in &lt;a href="http://www.introversion.co.uk/darwinia/"&gt;Darwinia&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Would be a nice thing to get back into.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-6017070271077501531?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/6017070271077501531/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2009/03/love-for-indie-developers.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/6017070271077501531'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/6017070271077501531'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2009/03/love-for-indie-developers.html' title='Love for the Indie Developers'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-4755519459745525028</id><published>2009-03-31T20:46:00.003-04:00</published><updated>2009-03-31T20:47:25.891-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='opensuse'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='opengl'/><category scheme='http://www.blogger.com/atom/ns#' term='nvidia'/><title type='text'>I Heart NVIDIA</title><content type='html'>Awww... NVIDIA. I love you and your &lt;a href="http://www.nvidia.com/object/unix.html"&gt;driver updates&lt;/a&gt;, especially now that they're coming once a month to *nix.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-4755519459745525028?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/4755519459745525028/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2009/03/i-heart-nvidia.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/4755519459745525028'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/4755519459745525028'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2009/03/i-heart-nvidia.html' title='I Heart NVIDIA'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-4101536556176213252</id><published>2009-02-28T13:04:00.005-05:00</published><updated>2009-02-28T13:57:37.521-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='steam'/><category scheme='http://www.blogger.com/atom/ns#' term='quake live'/><category scheme='http://www.blogger.com/atom/ns#' term='cloud computing'/><category scheme='http://www.blogger.com/atom/ns#' term='gaming'/><title type='text'>Old is the new New</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://commons.wikimedia.org/wiki/File:Old_television_set.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 200px; height: 200px;" src="http://2.bp.blogspot.com/_UGOF73TqM5A/Sal93ceRt7I/AAAAAAAAAM8/zAwM5StO82w/s400/Old_television_set.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5307912027322300338" /&gt;&lt;/a&gt;&lt;a href="http://www.quakelive.com"&gt;The open beta of Quake Live&lt;/a&gt; opened this Tuesday, and I made sure to jump on and register an account as soon as I could. Of course, like most other people online at Tuesday night, I was in queue with tens of thousands of other players. I finally had an opportunity to play last night for about 30 minutes, just to make sure my account worked and see how things were put together.&lt;br /&gt;&lt;br /&gt;It is definitely the classic Quake III Arena in all its OpenGL goodness. When the title first launched over nine years ago its hardware requirements may have stopped it from becoming ubiquitous; it supported hardware rendering &lt;i&gt;only&lt;/i&gt; and, unlike other titles shipping at the time, didn't have a software renderer. Ah, how times have changed. A quick look at &lt;a href="http://store.steampowered.com/hwsurvey/"&gt;Steam's hardware survey&lt;/a&gt; shows how the desktop tide has changed, and now tons of people have way more than enough horsepower. And it doesn't stop at the desktop - Q3 has &lt;a href="http://en.wikipedia.org/wiki/Quake_III_Arena"&gt;hit every major console&lt;/a&gt; and is even being developed for the Nintendo DS. It has even been &lt;a href="http://code.google.com/p/quake3-iphone/"&gt;ported to the iPhone&lt;/a&gt;. Official &lt;a href="http://www.joystiq.com/2009/02/25/carmack-quake-live-on-mac-linux-high-on-my-priority-list/"&gt;Linux and Mac support&lt;/a&gt; of Quake Live is reportedly a priority after the beta, granting an increasing OS X demographic access. Ubiquity no longer is a problem; making the installation as easy as a multi-platform browser plugin lowers the barrier of entry to near nil.&lt;br /&gt;&lt;br /&gt;The key factor that stops Quake Live from just being a Q3A port is the actual infrastructure it resides within. The game proper is the endpoint, but the content itself is driven from the ladders, achievements, matchmaking and map inventory system contained within the Quake Live web application. It is one of those blindingly obvious why-isn't-everone-doing-this moments when you see how the game is orchestrated with the Quake Live portal; the strengths of the browser as a platform is completely leveraged, while the strengths of your desktop are used to power the game itself. The creators didn't try to cram Quake III into the browser itself, thereby condoning it to some sort of Flash-based hell. Instead they let you use the browser just as you would normally use it: for networking, finding a game, chatting, browsing leaderboards, looking at achievements, bugging friends, strutting your profile and other...  forgive me for saying this... "social networking" features. When it comes time to do the deathmatch an external application is launched in tandem, allowing a fully fledged and fast OpenGL app to run on its own.&lt;br /&gt;&lt;br /&gt;An interesting effect of this split-brainness between an online presence and a desktop renderer is that it accomplishes exactly what Valve wants to do via the &lt;a href="http://store.steampowered.com/news/1968/"&gt;Steam Cloud&lt;/a&gt;, where preferences and saves are stored on a central network instead of client-side. Most desktop gamers don't like the idea of savegames or prefs being stored on a remote server pool, and I would agree. For single-player experiences I would much rather hack my own .ini files and not be stranded when someone's cloud goes down in flames (clouds do NOT equal uptime... see &lt;a href="http://googleblog.blogspot.com/2009/02/current-gmail-outage.html"&gt;Google&lt;/a&gt; and &lt;a href="/2008/07/massive-server-farms-can-equal-massive.html"&gt;Amazon&lt;/a&gt; themselves for examples). However for multiplayer games this is acceptable; if a server is dead or a line is cut you wouldn't be able to multiplayer anyway - so it doesn't matter where configs reside. As an added bonus when the configs reside remotely you can't have players hack them, resulting in reducing the map to a wireframe or performing some esoteric modification to give them a competitive edge. Again, hacks are fine in single player, but not in a multiplayer scenario.&lt;br /&gt;&lt;br /&gt;Add into the mix the fact that the economy has positively tanked and people have completely eviscerated discretionary spending, meaning $60 titles are no longer in the budget. Quake Live brings a new title, albeit of an old game, to market for the price of absolutely free. While it is true that CPMs and CPCs for online advertising has completely dropped through the floor, hopefully Quake Live will be able to cash in on its unique presentation, dedicated fan base and sheer volume of eyeballs. If the advertising model works, and Quake Live continues to be free this will provide a &lt;b&gt;huge&lt;/b&gt; edge over other FPS titles this year.&lt;br /&gt;&lt;br /&gt;Quake Live is a game-changing title, even if they didn't change the game. But why bother? Quake III Arena was arguably one of the most well-rounded and polished multiplayer first-person shooters out there with textbook weapon balancing and gameplay mechanics that became a staple in the genre. Why change something that works? The only balance issue that the original Quake III Arena had was that, towards the end, veteran players became so good that it was no longer possible for a new player to have any fun on a map. Now with Quake Live's matchmaking mechanics and dynamic skill levels even that mismatch has been mitigated.&lt;br /&gt;&lt;br /&gt;Yeah, I've already gone on too long about this. This approach just makes so much sense from an engineering perspective and a gaming perspective that I'm sure tons of titles are now going to flood into the market, ready to follow suit.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-4101536556176213252?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/4101536556176213252/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2009/02/old-is-new-new.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/4101536556176213252'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/4101536556176213252'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2009/02/old-is-new-new.html' title='Old is the new New'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_UGOF73TqM5A/Sal93ceRt7I/AAAAAAAAAM8/zAwM5StO82w/s72-c/Old_television_set.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-109264158128643338</id><published>2009-02-16T22:58:00.005-05:00</published><updated>2009-02-16T23:51:01.568-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hibernate'/><category scheme='http://www.blogger.com/atom/ns#' term='activemq'/><category scheme='http://www.blogger.com/atom/ns#' term='spring'/><category scheme='http://www.blogger.com/atom/ns#' term='apache'/><title type='text'>Who Can You Count On During Crunch Time? Turns Out... Nobody.</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://commons.wikimedia.org/wiki/File:Old_Fence_Post.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 302px; height: 200px;" src="http://4.bp.blogspot.com/_UGOF73TqM5A/SZo-Bqwtt-I/AAAAAAAAAM0/gsGwT2Aoghw/s400/800px-Old_Fence_Post.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5303619709561583586" /&gt;&lt;/a&gt;I've long depended on the software community to save my butt in times of need. And it used to.&lt;br /&gt;&lt;br /&gt;It stopped helping this week, and instead started wrecking havoc.&lt;br /&gt;&lt;br /&gt;You'll notice I &lt;i&gt;did not&lt;/i&gt; say the open source community. And I &lt;i&gt;did not&lt;/i&gt; say the Java community. Even tho these two communities are the ones that my latest rant is aimed at. No... this issue has already burned me big time with commercial companies, which is why I left the likes of IBM, Microsoft and Oracle. But now I'm not sitting any better... everyone has sunk to the same level of mediocrity.&lt;br /&gt;&lt;br /&gt;Bugs now are being reported, &lt;b&gt;exhaustively&lt;/b&gt;, patched and submitted to release managers. And yet months, even &lt;i&gt;years&lt;/i&gt; go by without so much as a cursory review. A few good examples come to mind... there were fairly blatant bugs, even typos in a Hibernate dialect for the H2 RDBMS. The author of H2 &lt;a href="http://opensource.atlassian.com/projects/hibernate/browse/HHH-3401"&gt;reported the bug, patched it &lt;b&gt;&lt;i&gt;and even made unit tests&lt;/i&gt;&lt;/b&gt; for the project&lt;/a&gt;. Has the fix even seen daylight? No. It has been open since July of 2008.&lt;br /&gt;&lt;br /&gt;Here's an even worse example: thousands (if not millions) of people rely on Apache's &lt;a href="http://commons.apache.org/codec/"&gt;Commons Codec&lt;/a&gt; library. It's used for string matching, BASE64 encoding and a slew of other things. One of the speech codecs suffers from an ArrayIndexOutOfBounds exception during encoding. A simple mistake to remedy, and one that was &lt;a href="http://svn.apache.org/viewvc/commons/proper/codec/trunk"&gt;remedied and committed to their source repository&lt;/a&gt;. Was such an obvious bug ever fixed in a production release? No. In fact, a new release hasn't been made in &lt;b&gt;&lt;i&gt;five years&lt;/i&gt;&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;And some of the bugs are bad because the maintainers refuse to fix them and label them as a feature. For example, does Spring's Hibernate DAO framework actually begin a transaction when you call... say... beginTransaction()? Nope, &lt;a href="http://forum.hibernate.org/viewtopic.php?p=2395043"&gt;beginTransaction is a do-nothing operation&lt;/a&gt;. Wow, that makes things easy to troubleshoot and fix. &lt;br /&gt;&lt;br /&gt;Okay, so far I've described problems that all have ready work-arounds. That's the only saving grace in these instances - the projects are open-source and so fixes can be applied and binaries re-built. But do you really want patched, out-of-band libraries going into &lt;i&gt;your&lt;/i&gt; production system? And what about when you hit the really big problems nary days before the "big release," like finding a &lt;a href="http://mail-archives.apache.org/mod_mbox/activemq-dev/200801.mbox/%3C14919182.post@talk.nabble.com%3E"&gt;fatal, obvious and unfixed bug&lt;/a&gt; in your JMS broker? It's been crunch time for two weeks, you're already sleep deprived, your code is absolutely going out in two days... are you going to make a gentle post on the dev list after unit testing a thoroughly researched patch for an obvious bug the maintainers missed? No. &lt;b&gt;&lt;i&gt;You're going to punch the laptop&lt;/i&gt;&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;Basically I've succumbed to the entropy and decay of all the frameworks I used to depend on. Hibernate Core &lt;a href="http://opensource.atlassian.com/projects/hibernate/browse/HHH"&gt;has over 1500 bugs that have yet to be assigned a release or triaged&lt;/a&gt; and doesn't even appear to be actively maintained anymore. Commons Codec hasn't seen a release since July of 2004... kids born during their last release are headed towards elementary school. And the instability of ActiveMQ 5.1 continues to plague its 5.2 release.&lt;br /&gt;&lt;br /&gt;The standard reaction to this kind of rant is "if you don't like it, why don't you submit patches?" "Why don't you join the project and help out?" "Stop complaining and contribute!" Yet contributions have been made, entire bugs have been fixed by others MONTHS ago, and yet there addition to the project has netted nothing. What hope is there for a sleep-deprived guy like myself to contribute before his project goes down in flames and the powers that be bail on these frameworks for the rest of their collective careers?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-109264158128643338?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/109264158128643338/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2009/02/who-can-you-count-on-during-crunch-time.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/109264158128643338'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/109264158128643338'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2009/02/who-can-you-count-on-during-crunch-time.html' title='Who Can You Count On During Crunch Time? Turns Out... Nobody.'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_UGOF73TqM5A/SZo-Bqwtt-I/AAAAAAAAAM0/gsGwT2Aoghw/s72-c/800px-Old_Fence_Post.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-8132234648721703096</id><published>2009-02-10T22:28:00.008-05:00</published><updated>2009-02-10T23:10:14.211-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='via'/><category scheme='http://www.blogger.com/atom/ns#' term='shuttle'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='mythtv'/><category scheme='http://www.blogger.com/atom/ns#' term='hdtv'/><category scheme='http://www.blogger.com/atom/ns#' term='xvmc'/><category scheme='http://www.blogger.com/atom/ns#' term='nvidia'/><title type='text'>Retelling Yet Another Myth</title><content type='html'>Last month I put together my second MythTV box. I've become &lt;a href="/2008/11/chipped-chrome.html"&gt;tired of my VIA Chrome box&lt;/a&gt;... video acceleration was a joke. So &lt;a href="/2008/11/chipped-chrome.html"&gt;I thought&lt;/a&gt; that an onboard GeForce 7050PV would work since it had XvMC support. Plus NVIDIA's (binary-only) drivers were usually pretty good. Right?&lt;br /&gt;&lt;br /&gt;&lt;br clear="all"/&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_UGOF73TqM5A/SZJITF9aeII/AAAAAAAAAMc/Y_FPFSr-6i4/s1600-h/mobo.jpg"&gt;&lt;img style="float:right; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_UGOF73TqM5A/SZJITF9aeII/AAAAAAAAAMc/Y_FPFSr-6i4/s400/mobo.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5301379204222974082" /&gt;&lt;/a&gt;I ordered Shuttle's &lt;a href="http://global.shuttle.com/product_detail.jsp?PI=883"&gt;SN68PTG5 AM2&lt;/a&gt; case, figuring I could re-use an old AMD64 CPU I had and stuff the hard drive in from the previous MythTV box. When I got the case in it was a bit larger... and louder... than I expected. I needed to push my TV forward to get the box to fit behind it. The sheer amount of real estate I was able to work with made the opportunity worthwhile however - there was plenty of space around the motherboard, even with the ginormous heatsink installed.&lt;br /&gt;&lt;br /&gt;Maneuvering around the box wasn't bad - I was able to put in the old drive and fill both memory channels with two &lt;a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16820145040"&gt;Corsair XMS2 512M PC2 6400&lt;/a&gt; sticks without a single flesh wound. Putting in the CPU was another issue however - I was short a pin.&lt;br /&gt;&lt;br /&gt;&lt;br clear="all"/&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_UGOF73TqM5A/SZJKdW5pJPI/AAAAAAAAAMk/xrPEtV001KA/s1600-h/cpu.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 400px; height: 336px;" src="http://3.bp.blogspot.com/_UGOF73TqM5A/SZJKdW5pJPI/AAAAAAAAAMk/xrPEtV001KA/s400/cpu.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5301381579592508658" /&gt;&lt;/a&gt;Yeah... my old, to-be-recycled CPU was for Socket 939. This was a AM2 socket board - meaning it took 940-pin CPUs. Gah.&lt;br /&gt;&lt;br /&gt;I paused for a few days and ordered a &lt;a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16819103647"&gt;2.1GHz AMD Athlon X2&lt;/a&gt;. It was a 65nm Brisbane core and only consumed 45W, so the lower thermals would serve a Myth box fairly well. Plus AMD chips are cheaper than avocados right now... it was an easy sell.&lt;br /&gt;&lt;br /&gt;&lt;br clear="all"/&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_UGOF73TqM5A/SZJMuXQGrlI/AAAAAAAAAMs/qS7TnUv2Dz8/s1600-h/heatsink.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 400px; height: 222px;" src="http://4.bp.blogspot.com/_UGOF73TqM5A/SZJMuXQGrlI/AAAAAAAAAMs/qS7TnUv2Dz8/s400/heatsink.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5301384070767750738" /&gt;&lt;/a&gt;I wrangled the case together, put on some new thermal paste, and re-attached Shuttle's massive (did I mention its massive?) heat pipe for the CPU. Installed my old &lt;a href="http://www.pchdtv.com/"&gt;pcHDTV tuner card&lt;/a&gt; to receive HDTV channels from my local cable provider, then sealed everything up. I attached the barebones &lt;a href="http://www.streamzap.com/"&gt;StreamZap&lt;/a&gt; Ir receiver via USB then did a openSUSE install with the MythTV repositories.&lt;br /&gt;&lt;br /&gt;lircd actually worked without a hitch... the StreamZap didn't have any issues. Neither did the pcHDTV card - it worked out of the box as well. Things were going well, so I shoved the machine behind the TV, connected it via HDMI and went along my way.&lt;br /&gt;&lt;br /&gt;&lt;br clear="all"/&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_UGOF73TqM5A/SZJHtSH-4UI/AAAAAAAAAMU/rT30KkZ_OVE/s1600-h/case.jpg"&gt;&lt;img style="float:left; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 300px; height: 219px;" src="http://4.bp.blogspot.com/_UGOF73TqM5A/SZJHtSH-4UI/AAAAAAAAAMU/rT30KkZ_OVE/s400/case.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5301378554653499714" /&gt;&lt;/a&gt;At first things appeared to work well. Thanks to NVIDIA's nvidia-settings application I was able to effortlessly setup my 1080p LCD to work over HDMI. X configuration was &lt;b&gt;TONS&lt;/b&gt; easier than with VIA's chipset - there it took me nearly 20-30 hours to get the monitor configuration correct for SVGA out. Of course it doesn't hurt that HDMI is just a DVI formfactor... but I digress.&lt;br /&gt;&lt;br /&gt;No, the big pain was XvMC. With acceleration enabled, video would playback (either live or recorded) for anywhere between ten seconds to five minutes, then send X into a complete CPU spin. I'd suddenly have 100% usage on a single core and a complete lockup of X11. X had to be SIGKILL'd - repeatedly - before things would stop spinning out of control.&lt;br /&gt;&lt;br /&gt;Luckily I bought a dual-core CPU so I could easily regain control. No matter now hard I tried, however, video acceleration just wouldn't do anything but hard lock MythTV.&lt;br /&gt;&lt;br /&gt;Finally I gave up and just told MythTV to use the CPU for decoding. This worked acceptably, even with 720p streams. The CPU was beefy enough - it's a dual core, dual channel rig that has the bandwidth. Just a shame that neither NVIDIA &lt;i&gt;nor&lt;/i&gt; VIA were able to provide a chipset that would allow accelerated MPEG2 playback in Linux. C'mon - is it really that bad?&lt;br /&gt;&lt;br /&gt;Now things are recording and playing back just fine. The vsync is disabled right now - so I do have image tearing during high-motion decoding. But hopefully NVIDIA's next round of Linux drivers will fix XvMC, give me accelerated video and take all my worries away.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-8132234648721703096?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/8132234648721703096/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2009/02/retelling-yet-another-myth.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/8132234648721703096'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/8132234648721703096'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2009/02/retelling-yet-another-myth.html' title='Retelling Yet Another Myth'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_UGOF73TqM5A/SZJITF9aeII/AAAAAAAAAMc/Y_FPFSr-6i4/s72-c/mobo.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-6955820277158098087</id><published>2008-12-21T15:25:00.004-05:00</published><updated>2008-12-21T15:59:29.808-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='overclocking'/><category scheme='http://www.blogger.com/atom/ns#' term='assassin&apos;s creed'/><category scheme='http://www.blogger.com/atom/ns#' term='pc gaming'/><category scheme='http://www.blogger.com/atom/ns#' term='nvidia'/><category scheme='http://www.blogger.com/atom/ns#' term='ntune'/><title type='text'>Re-Catching the Gaming Bug</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://commons.wikimedia.org/wiki/File:Assassin_bug_aug08_02.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 200px; height: 133px;" src="http://3.bp.blogspot.com/_UGOF73TqM5A/SU6oh733guI/AAAAAAAAAL4/QGg5vbtESko/s400/Assassin_bug.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5282344713913336546" /&gt;&lt;/a&gt;I've re-caught the PC gaming bug. By and large I gave up gaming over a year and a half ago &lt;a href="/2007/07/my-cheydinhal-home.html"&gt;once I retired in Cheydinhal&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Wow... has it really been that long? Eighteen months since I've done any gaming? I've been reduced to occasional dorking around on my &lt;a href="http://www.nseries.com/index.html#l=products,n810"&gt;n810&lt;/a&gt; (that lil' tablet has worked &lt;i&gt;fantastically&lt;/i&gt;, btw), but mostly I've been either designing, developing or otherwise working every waking moment of my day. Man, that's sad.&lt;br /&gt;&lt;br /&gt;I received &lt;a href="http://assassinscreed.us.ubi.com/"&gt;Assassin's Creed&lt;/a&gt; as a very loving gift yesterday, so I fired up the good ole &lt;a href="http://www.urbandictionary.com/define.php?term=wintendo"&gt;Wintendo&lt;/a&gt; and attempted an install. It had been so long since I'd turned my home desktop workstation on that I had nearly six months of Windows XP updates backlogged. One hour of driver/NVIDIA/anti-virus/Windows updates, another hour of volume defragmenting, three hours of &lt;a href="http://www.nvidia.com/object/sysutility.html"&gt;nTune tweaking&lt;/a&gt;, two hours of BIOS tweaks, one hour installing the title and over ten reboots later I had a working install of Assassin's Creed. Whew.&lt;br /&gt;&lt;br /&gt;I have an old Athlon 64 X2 and some cheap (but stable) Corsair RAM paired with a doable GeForce 7800 GT. Of course it wasn't quite enough to muscle through Assassin's Creed with all the frames I wanted, so I brought up the tRAS, tRCD and tRP from 8-3-3 to 6-3-3, cranked the frontside bus from 201 to 234 MHz, brought the PCI-E reference clock up to 117 MHz (to bring the bus from 2500 to 2925 MHz) and slightly poked the GPU clock up from 470 MHz to 475 (memory clock wouldn't budge). Surprisingly this actually got me over the fence.&lt;br /&gt;&lt;br /&gt;It's kinda fun coming back to the tweak-and-tune days of PC gaming. &lt;a href="http://www.nvidia.com/object/sysutility.html"&gt;NVIDIA's nTune app&lt;/a&gt; makes tweaking system values a &lt;b&gt;huge&lt;/b&gt; deal easier, since it will talk directly to the mobo's NVIDIA chipset via (I'm guessing) ACPI. I can let nTune do its thing, rebooting once its locked up, and just hack merrily away on the laptop in the meantime.&lt;br /&gt;&lt;br /&gt;Tomorrow it will be back to work again, but for this weekend I'm having fun. It's overdue.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-6955820277158098087?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/6955820277158098087/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2008/12/re-catching-gaming-bug.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/6955820277158098087'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/6955820277158098087'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2008/12/re-catching-gaming-bug.html' title='Re-Catching the Gaming Bug'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_UGOF73TqM5A/SU6oh733guI/AAAAAAAAAL4/QGg5vbtESko/s72-c/Assassin_bug.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-4916164239834962924</id><published>2008-12-15T22:20:00.005-05:00</published><updated>2008-12-15T22:52:19.950-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='yast'/><category scheme='http://www.blogger.com/atom/ns#' term='kde 4'/><category scheme='http://www.blogger.com/atom/ns#' term='opensuse'/><category scheme='http://www.blogger.com/atom/ns#' term='sax2'/><title type='text'>Why Wrestle with X When You Can SaX2 It?</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://commons.wikimedia.org/wiki/File:Konqi-klogo-official-400x500_b.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 200px; height: 253px;" src="http://2.bp.blogspot.com/_UGOF73TqM5A/SUcefvQOttI/AAAAAAAAALg/GBJeQ5NqGaA/s400/Konqi-klogo-official-400x500_b.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5280222618724513490" /&gt;&lt;/a&gt;I don't give SuSE a free ride - I've been &lt;a href="/2006/12/send-suse-back.html"&gt;frustrated up to the quitting point&lt;/a&gt; with them for some releases, but then &lt;a href="/2008/06/opensuse-110-desktop-linux-actually.html"&gt;happily optimistic&lt;/a&gt; with others. Now that KDE 4 and NVIDIA work together well now (KDE had some &lt;a href="/2008/07/kde-4-really-fast-except-when-its.html"&gt;compositing issues with NVIDIA binary drivers &amp; newer hardware&lt;/a&gt;) I'm finding that &lt;i&gt;especially&lt;/i&gt; the cutting-edge factory builds of KDE 4.1.3 are working fantastically well.&lt;br /&gt;&lt;br /&gt;Now that KDE 4.2 is just around the bend, the openSUSE team have been doing a fantastic job of backporting 4.2 functionality into openSUSE 11.0's KDE distribution. I didn't realize how many things SuSE was backporting and offering to its userbase early until I spoke with some &lt;a href="http://www.kubuntu.org/"&gt;Kubuntu&lt;/a&gt; users. They were asking me how I got SuperKaramba for KDE 4 working... how I was able to extend folder view to my entire desktop... how I was able to get my desktop to rotate on a cube... where all these screensavers come from... why didn't my desktop have redraw artifacts... why I wasn't seeing texture tearing during compositing... how I got the new power management utils...&lt;br /&gt;&lt;br /&gt;I didn't have much of a reason why my laptop worked and theirs didn't. They talked about xorg.conf tweaks, and I just shrugged and said I had &lt;a href="http://en.opensuse.org/SaX2"&gt;SaX2&lt;/a&gt; and &lt;a href="http://us.download.nvidia.com/XFree86/Linux-x86/1.0-9755/README/appendix-t.html"&gt;nvidia-settings&lt;/a&gt; take care of all the details for me, including input devices. When they asked how I got all these 4.2 features - with a stable installation no less - I just shrugged again. Seems like the KDE devs at SuSE were doing such a fantastic job keeping me current &amp; backporting new features that I didn't even notice.&lt;br /&gt;&lt;br /&gt;We talked a bit about YaST2, how it had &lt;a href="/2008/06/opensuse-110-desktop-linux-actually.html"&gt;changed for the better&lt;/a&gt; with recent versions, about how SaX2 means never having to crack open xorg.conf again, how so much stuff comes "for free (as in effort)" with openSUSE. Some of the stuff, such as &lt;a href="http://www.kde-apps.org/content/show.php/KDE4+Service+Shortcuts+for+XScreenSaver?content=92545"&gt;the extra xscreensavers&lt;/a&gt; or &lt;a href="http://www.kde-apps.org/content/show.php/KDE4+Service+Shortcuts+for+RSS+(GLX)?content=92544"&gt;the Really Slick Screen Savers&lt;/a&gt;, were things I kinda had to piece together on my own but by and large things just worked out of the box.&lt;br /&gt;&lt;br /&gt;My shrugs ended up being a better selling point than any technical arguments I could have made. One started downloading openSUSE 11.1 RC1 into a virtual machine right away, the other was going to download the live CD when he got home. It will be interesting to see what their impressions are and if it "just works" for them as well.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-4916164239834962924?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/4916164239834962924/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2008/12/why-wrestle-with-x-when-you-can-sax2-it.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/4916164239834962924'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/4916164239834962924'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2008/12/why-wrestle-with-x-when-you-can-sax2-it.html' title='Why Wrestle with X When You Can SaX2 It?'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_UGOF73TqM5A/SUcefvQOttI/AAAAAAAAALg/GBJeQ5NqGaA/s72-c/Konqi-klogo-official-400x500_b.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-412621885339574813</id><published>2008-12-12T00:01:00.005-05:00</published><updated>2008-12-12T00:18:54.470-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='opencl'/><category scheme='http://www.blogger.com/atom/ns#' term='vector processing'/><category scheme='http://www.blogger.com/atom/ns#' term='vpu'/><category scheme='http://www.blogger.com/atom/ns#' term='nvidia'/><title type='text'>And So It Begins - Vector Processing Standards Battle!</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_UGOF73TqM5A/SUHwK68BJeI/AAAAAAAAALY/eUS_k4UsDfM/s1600-h/assorted+medieval+weapons.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 300px; height: 225px;" src="http://4.bp.blogspot.com/_UGOF73TqM5A/SUHwK68BJeI/AAAAAAAAALY/eUS_k4UsDfM/s400/assorted+medieval+weapons.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5278764308665279970" /&gt;&lt;/a&gt;I'm not sure &lt;a href="/search/label/vpu"&gt;why I'm such a fan of this topic&lt;/a&gt;... maybe just because I enjoy watching the inevitable march towards entirely new CPU architectures.&lt;br /&gt;&lt;br /&gt;Nvidia just released something that's been on Apple's wishlist for a while: &lt;a href="http://www.maximumpc.com/article/news/nvidia_brings_standardization_gpu_coprocessing_with_opencl_10"&gt;OpenCL 1.0&lt;/a&gt;. Finally a "standard", royalty-free specification for developing applications to leverage vector processing units currently available on GPUs. While the processors on such high-end video cards aren't geared towards general computing per se, they absolutely blaze through certain workloads - especially those that work through sequential processing pipelines.&lt;br /&gt;&lt;br /&gt;Microsoft's competing specification for some reason is available for DirectX 11 &lt;i&gt;only&lt;/i&gt;, which makes absolutely no blimmin' sense to me. This basically means that your specification is limited to Vista... which rather defeats the concept behind a "standard." Not only do you get vendor lock-in, you get implementation lock-in. Sweet.&lt;br /&gt;&lt;br /&gt;Can you imagine what this might do for Nvidia tho? Picture it now: tons of cheap commodity motherboards laid end-to-end, each with six PCI-E slots filled to the brim with Nvidia cards and running OpenCL apps on a stripped-down Linux distro. Supercomputing clusters for cheap.&lt;br /&gt;&lt;br /&gt;Although I imagine the electricity bill might suffer.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-412621885339574813?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/412621885339574813/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2008/12/and-so-it-begins-vector-processing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/412621885339574813'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/412621885339574813'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2008/12/and-so-it-begins-vector-processing.html' title='And So It Begins - Vector Processing Standards Battle!'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_UGOF73TqM5A/SUHwK68BJeI/AAAAAAAAALY/eUS_k4UsDfM/s72-c/assorted+medieval+weapons.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-4289347680981657139</id><published>2008-12-07T12:26:00.003-05:00</published><updated>2008-12-07T12:53:41.081-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='distributed computing'/><category scheme='http://www.blogger.com/atom/ns#' term='j2ee'/><title type='text'>Someone to Give Me the Time</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_UGOF73TqM5A/STwHV_qLVgI/AAAAAAAAALQ/uyHIHXHHFEc/s1600-h/sspx0186.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 300px; height: 168px;" src="http://1.bp.blogspot.com/_UGOF73TqM5A/STwHV_qLVgI/AAAAAAAAALQ/uyHIHXHHFEc/s400/sspx0186.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5277100937818363394" /&gt;&lt;/a&gt;It's been really interesting to see the responses from Blitz, Fly Object Space and &lt;a href="/2008/11/empty-spaces.html#comments"&gt;GigaSpaces&lt;/a&gt; concerning &lt;a href="/2008/11/empty-spaces.html"&gt;state management&lt;/a&gt; as well as &lt;a href="/2008/02/trying-to-work-together.html#comments"&gt;Newton and Rio&lt;/a&gt; concerning &lt;a href="/2008/02/trying-to-work-together.html"&gt;service discovery&lt;/a&gt;. I'm definitely learning as I go, but the good thing is that it seems like there are many in the community eager to help.&lt;br /&gt;&lt;br /&gt;Now I'm working on another issue with enterprise service development - scheduled services. There are some services out there who may want a have an event fire in 1000 milliseconds, or five minutes, or an hour, or somewhere in between. This would appear to be an easy thing to solve at first blush - until you consider volume, quality of service and scalability. It's a steep drop into complexity at that point.&lt;br /&gt;&lt;br /&gt;Here's the thing: you could easily just do a &lt;a href="http://java.sun.com/javase/6/docs/api/java/util/concurrent/ScheduledExecutorService.html"&gt;scheduled executor&lt;/a&gt; in J2SE, but once your VM dies then your pending events die too. You could submit a scheduled job to something like &lt;a href="http://www.opensymphony.com/quartz/"&gt;clustered Quartz instances&lt;/a&gt;, but then you must have a reliable back-end database to write to (no native replication). You could use something like &lt;a href="http://www.clusterresources.com/pages/products/moab-cluster-suite/workload-manager.php"&gt;Moab Cluster Suite&lt;/a&gt;, but it seems to live outside the muuuuuuuuch more simple realm of event scheduling.&lt;br /&gt;&lt;br /&gt;So let's think outside the box and use some replicated object store that isn't necessarily meant for scheduling. How about we slap a time to live (TTL) on a JMS message, throw it on a queue and wait for it to hit the dead letter queue? That might work at times, but TTLs are really intended for quality of service and not for scheduled events. Unless you have a consumer attached to the former queue constantly polling for messages you're not guaranteed to land in the latter dead letter queue.&lt;br /&gt;&lt;br /&gt;How about using Camel's Delayer Enterprise Integration Pattern? Nope - that's just a Thread.sleep on the local VM. Doesn't do you much good once the VM dies. How about a delayed message using JBoss Messaging? I've heard tell that it exists, but I can't find much reference to it &lt;a href="http://www.jboss.org/jbossmessaging/docs/index.html"&gt;in the documentation&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;This isn't a new problem - there's even &lt;a href="http://jcp.org/en/jsr/detail?id=236"&gt;JSR 236&lt;/a&gt; that is intended to address this problem. But it's been hanging around since 2004 with very little activity of note, so I doubt it's going to have much hope of working by Monday.&lt;br /&gt;&lt;br /&gt;Until JSR 236 is addressed I'll likely have to just find a way to deal with this on my own. Maybe create a JobStore for Quartz that's backed by a JMS topic? Or just suck it up and build a clustered Quartz instance with a fault-tolerant database?&lt;br /&gt;&lt;br /&gt;Gah. Sticky wicket.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-4289347680981657139?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/4289347680981657139/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2008/12/someone-to-give-me-time.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/4289347680981657139'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/4289347680981657139'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2008/12/someone-to-give-me-time.html' title='Someone to Give Me the Time'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_UGOF73TqM5A/STwHV_qLVgI/AAAAAAAAALQ/uyHIHXHHFEc/s72-c/sspx0186.jpg' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-2160182050657280140</id><published>2008-11-24T22:24:00.003-05:00</published><updated>2008-11-24T22:53:50.903-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='via'/><category scheme='http://www.blogger.com/atom/ns#' term='shuttle'/><category scheme='http://www.blogger.com/atom/ns#' term='mythtv'/><category scheme='http://www.blogger.com/atom/ns#' term='hdtv'/><category scheme='http://www.blogger.com/atom/ns#' term='xvmc'/><category scheme='http://www.blogger.com/atom/ns#' term='nvidia'/><title type='text'>Chipped Chrome</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_UGOF73TqM5A/SStvvFgH-bI/AAAAAAAAALI/RCaQRR6nMVA/s1600-h/sspx0284.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 296px; height: 300px;" src="http://1.bp.blogspot.com/_UGOF73TqM5A/SStvvFgH-bI/AAAAAAAAALI/RCaQRR6nMVA/s400/sspx0284.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5272430643488750002" /&gt;&lt;/a&gt;VIA recently announced that &lt;a href="http://lwn.net/Articles/308234/"&gt;they have opened their reference documentation for their GPUs&lt;/a&gt; and are even now actively working with the &lt;a href="http://www.openchrome.org/"&gt;openChrome project&lt;/a&gt;. For me, however, it's too little too late.&lt;br /&gt;&lt;br /&gt;I've finally grown tired of even trying to get accelerated video working on my &lt;a href="/2007/02/retelling-of-myth-fin.html"&gt;VIA-based MythTV box&lt;/a&gt;. XvMC support is simply non-existent and accelerated anything just doesn't work. With standard 480i broadcast TV I had no problem being CPU-bound for MPEG2 decoding, but it just doesn't fly with 720p and a pcHDTV card. I throw in the towel.&lt;br /&gt;&lt;br /&gt;I'm looking at what &lt;a href="http://us.shuttle.com/"&gt;Shuttle&lt;/a&gt; has to offer instead with either an Intel, NVIDIA or AMD platform. It appears that the graphic chipset choices break down into either GeForce 8, Intel GMA X4500HD, Intel GMA 3100 or GeForce 7050PV. The best NVIDIA choice appears to be the 7050PV, as it seems to enjoy known XvMC acceleration on &lt;a href="http://www.mythtv.org/wiki/index.php/NVidia_Cards"&gt;MythTV's feature matrix&lt;/a&gt; and some have even reported getting it to work &lt;a href="http://www.mythtv.org/wiki/index.php/Running_MythTV_Dual_Headed"&gt;in a dual-head environment&lt;/a&gt;. The Intel cards should theoretically offer great performance for the power and enjoy good Linux driver support due to Intel's great contributions to X.Org, however Myth's wiki &lt;a href="http://www.mythtv.org/wiki/index.php/Intel_Integrated_Graphics"&gt;seems to know painfully little about the Intel GMA's&lt;/a&gt;. As far as XvMC support goes, Intel's chipsets &lt;a href="http://www.mythtv.org/wiki/index.php/XvMC"&gt;don't seem to have a great track record&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;So GeForce 7050 seems to be the most sane choice for those who are tired of fisticuffs with xorg.conf. But wait! We have audio to worry about too. If I'm going with a Shuttle GeForce 7050, then it looks like I'm going with a Realtek ALC888DD. Here again, MythTV notes that yet another Intel chipset &lt;a href="http://www.mythtv.org/wiki/index.php/Intel_HD_Audio_-_Realtek_ALC88x"&gt;is a true pain to work with&lt;/a&gt;. Still, I noticed that the MythTV hardware database notes there was at least one other Shuttle user &lt;a href="http://pvrhw.goldfish.org/tiki-view_pvrent.php?systemid=Shuttle%20st20g5%20gentoo%2F64"&gt;with a similar setup&lt;/a&gt; that was able to get things to work.&lt;br /&gt;&lt;br /&gt;Weirdly enough, both of the GeForce 7050 Shuttle boxes I found were AMD boxes. Go figure...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-2160182050657280140?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/2160182050657280140/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2008/11/chipped-chrome.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/2160182050657280140'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/2160182050657280140'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2008/11/chipped-chrome.html' title='Chipped Chrome'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_UGOF73TqM5A/SStvvFgH-bI/AAAAAAAAALI/RCaQRR6nMVA/s72-c/sspx0284.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-6358763136049034443</id><published>2008-11-23T23:40:00.004-05:00</published><updated>2008-11-24T10:03:31.109-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javaspaces'/><category scheme='http://www.blogger.com/atom/ns#' term='jini'/><category scheme='http://www.blogger.com/atom/ns#' term='distributed computing'/><category scheme='http://www.blogger.com/atom/ns#' term='j2ee'/><title type='text'>Empty Spaces</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://commons.wikimedia.org/wiki/Image:Ruimtelucht.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 213px; height: 260px;" src="http://1.bp.blogspot.com/_UGOF73TqM5A/SSoy4HZEJ4I/AAAAAAAAALA/hICyaL-Ascs/s400/450px-Ruimtelucht.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5272082253428828034" /&gt;&lt;/a&gt;Yup, I'm &lt;a href="/2008/02/trying-to-work-together.html"&gt;still trying to work my way around Jini&lt;/a&gt;. This time it's &lt;a href="http://java.sun.com/developer/technicalArticles/tools/JavaSpaces/"&gt;JavaSpaces&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Apache River hasn't gone much farther from the &lt;a href="/2008/02/trying-to-work-together.html"&gt;last time&lt;/a&gt; I looked at it, but I liked the bare-bones reference implementation aspect. &lt;a href="www.gigaspaces.com"&gt;GigaSpaces&lt;/a&gt; seems a bit thick for my tastes and seems to be tightly coupled with their application server. I thought &lt;a href="http://www.dancres.org/blitz/"&gt;Blitz JavaSpaces&lt;/a&gt; might be a better fit, especially if I could use &lt;a href="http://freshmeat.net/projects/blitzjavaspaces/?branch_id=55147"&gt;their fault tolerant edition&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I was able to get Blitz up and running then &lt;a href="http://www.dancres.org/bjspj/docs/docs/install_guide.html#appb"&gt;configured it to do unicast discovery&lt;/a&gt; to a pre-existing Jini registrar without a problem. I was having problems getting my client to connect in its security context, so I decided to dig a little deeper. As I did I also kept an eye towards fault-tolerance, but found that branch seemingly suspended. I later found &lt;a href="http://www.jroller.com/dancres/date/20050907"&gt;a post from the author&lt;/a&gt; indicating he didn't really see a good motivation for moving forward with his fault-tolerance work:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;In my spare moments I've been doing a re-implementation but the fact of the matter is that it's not a trivial problem to solve (though I believe I do have a solution). And here's the rub, this work doesn't pay the bills which means that it's going to take a long time to implement because I have to do a day's work first. For those who don't know, most of Blitz has been written during time between periods of employment - not over weekends and evenings as you might expect.&lt;br /&gt;This presents me with a problem - users seem to want this feature but I'm struggling to see doing this as a good thing. Here's some of my reasons:&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;I'd be building a significant feature which will, judging by demand, make a lot of money for those who use it but zilch for me.&lt;br /&gt;&lt;li&gt;Not only do I earn nothing from this venture but I have to earn a significant amount of cash just to allow me time to develop the feature. Basically, I'd be financing everybody else's money making ventures.&lt;br /&gt;&lt;li&gt;One of GigaSpaces key value adds is the clustering/replication feature - they are fully commercial and need to earn a crust plus they're one of only a few credible companies that can provide corporate grade support for JavaSpaces. Were I to do this work for Blitz I'd maybe be damaging the market I've been helping to create.&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;Right now, I feel like the price of this piece of work is too high for me personally and for others in the commercial JINI world (and like it or not they are an important element in any future success for JINI). I can see why Blitz users might want this feature - they can avoid paying Gigaspaces a license for starters.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;So... it seems like the development of an enterprise ready Blitz isn't in the cards. Casually strolling through &lt;a href="http://en.wikipedia.org/wiki/Tuple_space"&gt;Wikipedia's definition of a Tuple space&lt;/a&gt; brought up &lt;a href="http://www.flyobjectspace.com/"&gt;Fly Object Space&lt;/a&gt;, a tuple space that is not a JavaSpace implementation. While it doesn't fit into the Jini realm I know and love, it is a more minimalistic implementation of an object space that fits my desire of something smaller and to-the-point. It doesn't appear to support replication or fail-over on the non-commercial level, but I'm checking to see if there are plans to support it on a commercial level.&lt;br /&gt;&lt;br /&gt;It's tough. I need an object space that has a minimalistic implementation, has a small footprint and can at least run active/passive for fault tolerance. Maybe I might have to dust off my old &lt;a href="http://www.terracotta.org"&gt;Terracotta&lt;/a&gt; instance and try out &lt;a href="http://www.semispace.org/semispace/"&gt;SemiSpace&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;EDIT:&lt;/b&gt; Be sure and &lt;a href="https://www.blogger.com/comment.g?blogID=9951390&amp;postID=6358763136049034443"&gt;see Nati Shalom's comments&lt;/a&gt; following this post.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-6358763136049034443?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/6358763136049034443/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2008/11/empty-spaces.html#comment-form' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/6358763136049034443'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/6358763136049034443'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2008/11/empty-spaces.html' title='Empty Spaces'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_UGOF73TqM5A/SSoy4HZEJ4I/AAAAAAAAALA/hICyaL-Ascs/s72-c/450px-Ruimtelucht.JPG' height='72' width='72'/><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-5103292244955855668</id><published>2008-11-12T21:49:00.004-05:00</published><updated>2008-11-12T21:58:25.981-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux desktop'/><title type='text'>Suspend to RAM - Actually Works? Really?</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_UGOF73TqM5A/SRuVyd5cpFI/AAAAAAAAAK4/meGTUl6idEo/s1600-h/sspx0309.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 200px; height: 150px;" src="http://3.bp.blogspot.com/_UGOF73TqM5A/SRuVyd5cpFI/AAAAAAAAAK4/meGTUl6idEo/s400/sspx0309.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5267968883391505490" /&gt;&lt;/a&gt;Let it be known that today I was actually able to get my Linux laptop, using the proprietary NVIDIA drivers no less, to &lt;b&gt;suspend to RAM&lt;/b&gt;. I'll give you a moment to pick yourself up off the floor.&lt;br /&gt;&lt;br /&gt;Using a less-than-stock build of OpenSUSE 11.0, KDE 4.1.3, the latest NVIDIA drivers and a Dell Precision M6300 I was able to successfully both SUSPEND TO and RESUME FROM RAM. I crap you not. I even took a picture.&lt;br /&gt;&lt;br /&gt;Wow. That's... like... historic.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-5103292244955855668?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/5103292244955855668/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2008/11/suspend-to-ram-actually-works-really.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/5103292244955855668'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/5103292244955855668'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2008/11/suspend-to-ram-actually-works-really.html' title='Suspend to RAM - Actually Works? Really?'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_UGOF73TqM5A/SRuVyd5cpFI/AAAAAAAAAK4/meGTUl6idEo/s72-c/sspx0309.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-7475765295577586716</id><published>2008-11-09T20:30:00.004-05:00</published><updated>2008-11-09T20:48:36.323-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='kde 4'/><category scheme='http://www.blogger.com/atom/ns#' term='power management'/><category scheme='http://www.blogger.com/atom/ns#' term='powerdevil'/><category scheme='http://www.blogger.com/atom/ns#' term='linux desktop'/><category scheme='http://www.blogger.com/atom/ns#' term='solid'/><category scheme='http://www.blogger.com/atom/ns#' term='plasma'/><title type='text'>Dark Power Adjusting Laptop Brightness</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://commons.wikimedia.org/wiki/Image:Kirche_Gröben_Lichtspiel.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 184px; height: 400px;" src="http://3.bp.blogspot.com/_UGOF73TqM5A/SRePa716UmI/AAAAAAAAAKw/htGG7VFGN-s/s400/Kirche_Gr%C3%B6ben_Lichtspiel.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5266835982136267362" /&gt;&lt;/a&gt;One reason why I was really looking forward to KDE4 was the level of abstraction it offered from services and hardware while offering a lot of unification as far as end-user interaction and desktop integration.&lt;br /&gt;&lt;br /&gt;One fantastic example of this has become &lt;a href="http://drfav.wordpress.com/2008/09/12/introducing-the-darkest-power-of-powerdevil/"&gt;PowerDevil&lt;/a&gt;, which was &lt;a href="http://www.kde-apps.org/content/show.php/PowerDevil?content=85078"&gt;introduced around the KDE 4.1 time&lt;/a&gt; but is now standard in KDE 4.2. Its functionality is based upon &lt;a href="http://solid.kde.org/"&gt;Solid&lt;/a&gt;, KDE4's hardware abstraction layer (which also abstracts audio &amp; bluetooth).&lt;br /&gt;&lt;br /&gt;PowerDevil runs as a fully-fledged KDE4 service, meaning it doesn't need to be some awkward "TSR" or persistent applet in your system tray. That also means that it runs much leaner than &lt;a href="http://www.kde-apps.org/content/show.php?content=29295"&gt;kpowersave&lt;/a&gt;, which largely monitored events and then attempted to send system calls along to the appropriate background resources.&lt;br /&gt;&lt;br /&gt;The PowerDevil coders &lt;a href="http://drfav.wordpress.com/2008/09/12/introducing-the-darkest-power-of-powerdevil/"&gt;may talk down the control panel UI&lt;/a&gt;, but it works rather well. And while it doesn't have a Plasmoid (applet) yet or much in the way of UI, the beauty of KDE4 means it doesn't immediately need to. Since PowerDevil is well integrated into the KDE4 desktop, &lt;a href="http://drfav.files.wordpress.com/2008/09/pwd3.png"&gt;KRunner displays all the immediate options you need when you type "power profile" into the runner dialog&lt;/a&gt;. Very nice.&lt;br /&gt;&lt;br /&gt;This kind of desktop integration is exactly what will make KDE4 a success in the long run, and it's great to see projects like PowerDevil emerge that take advantage of what KDE4, Solid and Plasma have to offer.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-7475765295577586716?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/7475765295577586716/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2008/11/dark-power-adjusting-laptop-brightness.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/7475765295577586716'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/7475765295577586716'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2008/11/dark-power-adjusting-laptop-brightness.html' title='Dark Power Adjusting Laptop Brightness'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_UGOF73TqM5A/SRePa716UmI/AAAAAAAAAKw/htGG7VFGN-s/s72-c/Kirche_Gr%C3%B6ben_Lichtspiel.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-7458971581233486321</id><published>2008-10-28T22:20:00.002-04:00</published><updated>2008-10-28T22:25:27.054-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='kde 4'/><category scheme='http://www.blogger.com/atom/ns#' term='plasma'/><category scheme='http://www.blogger.com/atom/ns#' term='nvidia'/><title type='text'>We Thank Thee, O Great NVIDIA...</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://commons.wikimedia.org/wiki/Image:Kandalf.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 134px; height: 181px;" src="http://4.bp.blogspot.com/_UGOF73TqM5A/SQfJUb9xAJI/AAAAAAAAAIE/SGJYxyEJVLw/s400/Kandalf.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5262396042547101842" /&gt;&lt;/a&gt;All the way back in July &lt;a href="/2008/07/kde-4-really-fast-except-when-its.html"&gt;I mentioned how slow and unstable KDE 4 is with NVIDIA, and why it's not their fault&lt;/a&gt;. Through August/September/October I've been living in a time warp and finally emerged out the other side... and behold! NVIDIA has graced our presence with a &lt;a href="http://www.nvidia.com/object/linux_display_amd64_177.80.html"&gt;new driver release that has several KDE 4 compositing &amp; Plasma fixes&lt;/a&gt;!!!&lt;br /&gt;&lt;br /&gt;I clapped, I was so happy. Take pity on me.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-7458971581233486321?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/7458971581233486321/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2008/10/we-thank-thee-o-great-nvidia.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/7458971581233486321'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/7458971581233486321'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2008/10/we-thank-thee-o-great-nvidia.html' title='We Thank Thee, O Great NVIDIA...'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_UGOF73TqM5A/SQfJUb9xAJI/AAAAAAAAAIE/SGJYxyEJVLw/s72-c/Kandalf.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-8748770301690972071</id><published>2008-08-02T22:14:00.012-04:00</published><updated>2008-08-04T08:15:30.220-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='mythtv'/><category scheme='http://www.blogger.com/atom/ns#' term='lirc'/><category scheme='http://www.blogger.com/atom/ns#' term='remotes'/><category scheme='http://www.blogger.com/atom/ns#' term='infrared receiver'/><title type='text'>Everything Breaks at Once</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://commons.wikimedia.org/wiki/Image:Broken_glass.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_UGOF73TqM5A/SJUUqfW07II/AAAAAAAAAH0/hi4tJsklwqQ/s400/Broken_glass.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5230109262465002626" /&gt;&lt;/a&gt;It seems that when one thing breaks, everything breaks. Ceiling starts leaking, TV loses convergence, power supply on computer goes out, server's UPS battery dies, the lithium battery pack for a portable DVD player starts to swell and explode, iPod ends up in the toilet, phone LCD cracks. It's partly because I'm over-tired and accidentally breaking crap, but it also appears that entropy has hit my living room en force.&lt;br /&gt;&lt;br /&gt;I re-caulked the upstairs shower, replaced the TV, dug a new power supply out of the closet and got a new iPod. However - I've been busy with other stuff, so I haven't swapped the PSU in the  workstation yet and I haven't completely re-installed all the home theater stuff, including &lt;a href="/2007/02/retelling-of-myth-fin.html"&gt;MythTV box&lt;/a&gt;. And since I've already reduced every other electrical doodad in my house to its bare components, I might as well strip apart the Myth box and update it as well.&lt;br /&gt;&lt;br /&gt;I have a &lt;a href="http://www.pchdtv.com/"&gt;pcHDTV card&lt;/a&gt;, now sitting dormant in the aforementioned workstation with a fried PSU. I'm thinking of ripping it out of the workstation and placing it into the MythTV Mini-ITX box. There's only room for one PCI card... so I'll have to remove the old Hauppauge cable TV tuner. Yet the &lt;a href="http://www.hauppauge.com/pages/products/data_pvr150.html"&gt;Hauppauge WinTV-PVR-150&lt;/a&gt; is also the IrDA receiver for my remote control - so replacing the tuner card would mean losing the DVR's infrared receiver.&lt;br /&gt;&lt;br /&gt;I started looking around for alternatives and found a whole slew of Linux-ready solutions. An easy solution that I didn't think of at first was using a &lt;a href="http://www.mythtv.org/wiki/index.php/Generic_HID_%22MCE%22_Remotes"&gt;generic HID Windows Media Center remote&lt;/a&gt;, since it just pretends to be a USB keyboard. Re-map the keycodes and you're pretty much ready to go... assuming you're willing to re-map a universal remote and the Myth keyboard bindings to accommodate the case-sensitivity.&lt;br /&gt;&lt;br /&gt;One could also use the receiver from a &lt;a href="http://www.snapstream.com/products/fireflymini/default.asp"&gt;SnapStream Firefly Mini&lt;/a&gt; - they &lt;a href="http://www.mythtv.org/wiki/index.php/Snapstream_firefly_mini"&gt;appear to be well supported by MythTV&lt;/a&gt; and would be a nice out-of-the-box alternative, given that everything is ready to go. Hopefully the reports of limited range wouldn't be a problem given my spartan living room setup.&lt;br /&gt;&lt;br /&gt;Of course, like every self-respecting home theater geek, I already have a programmable universal remote that controls my whole setup. I don't need the additional remote that the previous two solutions bring, so it seems unnecessary. The first thing I would do is throw away the packaged remote, re-program my &lt;a href="http://www.logitech.com/index.cfm/remotes/universal_remotes/devices/377&amp;cl=us,en"&gt;Harmony 670&lt;/a&gt; and just use the new IR receiver. So it probably makes sense to just buy the receiver if at all possible.&lt;br /&gt;&lt;br /&gt;There is a &lt;a href="http://www.usbuirt.com/overview.htm"&gt;fairly flexible Linux-happy USB infrared receiver/transmitter&lt;/a&gt; that is &lt;a href="http://www.mythtv.org/wiki/index.php/USB-UIRT"&gt;supported by recent versions of lirc and MythTV&lt;/a&gt;, but it might be more hardware than I need.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://iguanaworks.net/"&gt;IguanaWorks makes some powerful receivers and transmitters&lt;/a&gt; as well, in both serial and USB flavors. Considering serial access is &lt;a href="http://www.lirc.org/faq.html"&gt;considered the "legit" way&lt;/a&gt; for IrDA access, it seems like the cleanest way to go. They are evidently fairly powerful and receptive, but I would still need to get an extension USB cable to rope around to the front of the MythTV box.&lt;br /&gt;&lt;br /&gt;Another cottage shop sells a &lt;a href="http://www.irblaster.info/receiver.html"&gt;RS232 LIRC receiver built into a DB9 backshell&lt;/a&gt;. It's much cheaper and much lower profile and designed to work with lirc natively. The most simple solution to the problem it seems.&lt;br /&gt;&lt;br /&gt;I'll probably wander around the local electronics shops looking for a Firefly Mini or MCE remote. If I can't find one this week I might put in an order for a serial port receiver. Never figured I'd use a 9-pin serial port again, that's for sure.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-8748770301690972071?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/8748770301690972071/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2008/08/everything-breaks-at-once.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/8748770301690972071'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/8748770301690972071'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2008/08/everything-breaks-at-once.html' title='Everything Breaks at Once'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_UGOF73TqM5A/SJUUqfW07II/AAAAAAAAAH0/hi4tJsklwqQ/s72-c/Broken_glass.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-2859661614569183852</id><published>2008-07-20T19:16:00.003-04:00</published><updated>2008-07-20T19:22:23.377-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='S3'/><category scheme='http://www.blogger.com/atom/ns#' term='distributed computing'/><category scheme='http://www.blogger.com/atom/ns#' term='amazon'/><category scheme='http://www.blogger.com/atom/ns#' term='amazon web services'/><title type='text'>Massive Server Farms Can Equal Massive Failure</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://commons.wikimedia.org/wiki/Image:Crash_Zeppelin_LZ18_(LII).jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_UGOF73TqM5A/SIPHT8U7pxI/AAAAAAAAAHs/YP_ZzO6UiMc/s400/Crash_Zeppelin_LZ18_(LII).jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5225239138105272082" /&gt;&lt;/a&gt;A quick trip over to the &lt;a href="http://status.aws.amazon.com/"&gt;Amazon Web Service Status Page&lt;/a&gt; reveals that massive server resources don't exactly equate to massive uptime numbers. The S3 storage cloud has been down pretty much all day due to "an issue with the communication between several Amazon SQS components." This has affected both the EU and the US, causing some big headaches.&lt;br /&gt;&lt;br /&gt;I'm not all that disturbed. I'm just happy that someone makes even bigger impacting gaffes than I do.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-2859661614569183852?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/2859661614569183852/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2008/07/massive-server-farms-can-equal-massive.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/2859661614569183852'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/2859661614569183852'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2008/07/massive-server-farms-can-equal-massive.html' title='Massive Server Farms Can Equal Massive Failure'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_UGOF73TqM5A/SIPHT8U7pxI/AAAAAAAAAHs/YP_ZzO6UiMc/s72-c/Crash_Zeppelin_LZ18_(LII).jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-8619599998241279485</id><published>2008-07-19T22:56:00.003-04:00</published><updated>2008-07-20T10:39:56.511-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='ode'/><category scheme='http://www.blogger.com/atom/ns#' term='physics'/><title type='text'>Where Are the Java Physics APIs?</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://commons.wikimedia.org/wiki/Image:Carrucole.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_UGOF73TqM5A/SIKpjicmCwI/AAAAAAAAAHk/YXDVyFXVa7c/s400/Carrucole.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5224924945710451458" /&gt;&lt;/a&gt;If I'm going to try and &lt;a href="/2008/07/right-before-i-started-my-latest.html"&gt;port Deskblocks to Java&lt;/a&gt; then I'll need to find a native Java physics API. If my only choices are native libraries then it makes more sense just to stick to Qt 4 - I'd rather keep this entirely in the "compile once run anywhere domain." Managing native libraries with wrappers functions is just a pain in the butt.&lt;br /&gt;&lt;br /&gt;I was surprised to see slim pickins for physics API. For 2D physics I just found &lt;a href="http://www.cokeandcode.com/phys2d/"&gt;Phys2D&lt;/a&gt; and for 3D physics I found &lt;a href="http://jbullet.advel.cz/"&gt;JBullet&lt;/a&gt;, a port of the Bullet physics API. Both seem to be great projects, and both seem to be currently active. Indeed, I'll probably give Phys2D a try and see if I can use it. I guess I just expected an ODE port by now.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-8619599998241279485?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/8619599998241279485/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2008/07/where-are-java-physics-apis.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/8619599998241279485'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/8619599998241279485'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2008/07/where-are-java-physics-apis.html' title='Where Are the Java Physics APIs?'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_UGOF73TqM5A/SIKpjicmCwI/AAAAAAAAAHk/YXDVyFXVa7c/s72-c/Carrucole.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-3512349708238683608</id><published>2008-07-13T18:58:00.005-04:00</published><updated>2008-07-20T10:44:48.108-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='kde 4'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='graphics'/><category scheme='http://www.blogger.com/atom/ns#' term='kde'/><category scheme='http://www.blogger.com/atom/ns#' term='opengl'/><category scheme='http://www.blogger.com/atom/ns#' term='nvidia'/><title type='text'>KDE 4 Really Fast, Except When It's Really Slow</title><content type='html'>&lt;a href="/2008/06/opensuse-110-desktop-linux-actually.html"&gt;I've enjoyed openSUSE 11.0&lt;/a&gt; not necessarily because it works flawlessly, but because it's the best working install of KDE 4. KDE 4 has a lot of great potential, but it's not fully realized until you hit KDE 4.1. Since 4.1 is the actual version of KDE 4 meant for widespread usage, I've been downloading the unstable builds from SuSE's build service.&lt;br /&gt;&lt;br /&gt;Things have been working fine except for one extremely nagging thing - the initial draw of a konsole window takes &lt;b&gt;5-10 seconds&lt;/b&gt;. It's extremely obnoxious, especially when you need a terminal so often.&lt;br /&gt;&lt;br /&gt;I found out this was due to NVIDIA's drivers on newer boards - as described &lt;a href="http://techbase.kde.org/User:Lemma/KDE4-NVIDIA"&gt;in the KDE techbase&lt;/a&gt; and illustrated in the &lt;a href="http://ubuntuforums.org/archive/index.php/t-779088.html"&gt;Ubuntu forums&lt;/a&gt; and &lt;a href="http://www.thinkwiki.org/wiki/Installing_Gentoo_2007.0_on_a_ThinkPad_R61"&gt;How-To's&lt;/a&gt;. Luckily it was an easy fix - running &lt;code&gt;nvidia-settings -a InitialPixmapPlacement=2 -a GlyphCache=1&lt;/code&gt; as root set the appropriate settings in the NVIDIA driver to allow windows to resize at the speed they should. But I don't necessarily blame NVIDIA - the blame deserves to be cast further.&lt;br /&gt;&lt;br /&gt;The Linux Hater's Blog &lt;a href="http://linuxhaters.blogspot.com/2008/06/nitty-gritty-shit-on-open-source.html"&gt;brings up a great point about Xorg not being about to allocate offscreen buffers&lt;/a&gt; - something that I didn't realize. Xorg lacks a memory manager, so all the stuff you need for full OpenGL support just can't be done. &lt;b&gt;&lt;i&gt;It simply can't be done with Xorg&lt;/i&gt;&lt;/b&gt;. All the points made in the rant are absolutely right - the memory management infrastructure for pbuffer and framebuffer objects have to be there, otherwise you're hosed.&lt;br /&gt;&lt;br /&gt;The core issue that comes from this deficiency is that X11 in and of itself is inherently unable to support OpenGL. Lack of offscreen buffers means that all the great stuff you should be able to do directly in hardware &lt;i&gt;can only be accomplished with a software renderer&lt;/i&gt;. Of course, this defeats NVIDIA's entire business model of making the GPU the most important part of your workstation. So they had to massively replace parts of X11; the NVIDIA Linux drivers must, by sheer necessity, replace huge chunks of the XOrg implementation.&lt;br /&gt;&lt;br /&gt;After reading the Linux Hater's post a lot of other stuff made sense - why NVIDIA's drivers are so invasive, why you magically &lt;a href="http://en.opensuse.org/Compiz_Fusion#Enable.2FDisable_XGL"&gt;don't need to install Xgl to run Compiz Fusion if you are using the proprietary nvidia driver&lt;/a&gt; (because it already replaced Xorg for you, thanks), and why KDE's desktop effects had window resizing slowdowns.&lt;br /&gt;&lt;br /&gt;NVIDIA didn't break things - they &lt;i&gt;fixed&lt;/i&gt; things. They're just trying to live in our broken world.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-3512349708238683608?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/3512349708238683608/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2008/07/kde-4-really-fast-except-when-its.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/3512349708238683608'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/3512349708238683608'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2008/07/kde-4-really-fast-except-when-its.html' title='KDE 4 Really Fast, Except When It&apos;s Really Slow'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-5444130560347886411</id><published>2008-07-09T06:46:00.006-04:00</published><updated>2008-07-09T07:00:40.334-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='deskblocks'/><category scheme='http://www.blogger.com/atom/ns#' term='physics'/><title type='text'>Java DeskBlocks</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://java.sun.com/developer/technicalArticles/GUI/translucent_shaped_windows/"&gt;&lt;img style="float:right; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_UGOF73TqM5A/SHSaISKHqJI/AAAAAAAAAHc/L6nemWZjFiI/s320/9.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5220967335133161618" /&gt;&lt;/a&gt;&lt;br /&gt;Right before I started my latest hacking-for-cash endeavor I was &lt;a href="/2007/08/best-intentions.html"&gt;working on DeskBlocks&lt;/a&gt;, a physics sandbox rendered directly on the desktop. I was using &lt;a href="http://www.trolltech.com/"&gt;Qt 4&lt;/a&gt; for development, mostly so I could use &lt;a href="http://www.ode.org/"&gt;ODE&lt;/a&gt; and refresh my C++ coding. One problem in development was that things would work perfectly fine in X11 - rounded edges, nice circles bouncing around, render speed was great - then things would work horribly in Windows. Or vice-versa. I could never get things to behave properly cross-platform.&lt;br /&gt;&lt;br /&gt;With &lt;a href="/2008/04/java-69.html"&gt;Java's big update&lt;/a&gt;, it's windowing toolkit now allows for &lt;a href="http://java.sun.com/developer/technicalArticles/GUI/translucent_shaped_windows/"&gt;translucent and shaped windows&lt;/a&gt; on platforms that support it. That means the rendering issues I had with Qt 4 may be solved with Java 6u10.&lt;br /&gt;&lt;br /&gt;It makes me start thinking if I should move the project to Java instead. It appears there are Java bindings for ODE... so it just might work.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-5444130560347886411?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/5444130560347886411/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2008/07/right-before-i-started-my-latest.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/5444130560347886411'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/5444130560347886411'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2008/07/right-before-i-started-my-latest.html' title='Java DeskBlocks'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_UGOF73TqM5A/SHSaISKHqJI/AAAAAAAAAHc/L6nemWZjFiI/s72-c/9.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-4548326754458889169</id><published>2008-07-02T02:05:00.003-04:00</published><updated>2008-07-02T23:50:45.784-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CHDK'/><category scheme='http://www.blogger.com/atom/ns#' term='photography'/><category scheme='http://www.blogger.com/atom/ns#' term='high dynamic range'/><category scheme='http://www.blogger.com/atom/ns#' term='RAW'/><category scheme='http://www.blogger.com/atom/ns#' term='HDR'/><title type='text'>Real-Life High Dynamic Range Lighting</title><content type='html'>I've &lt;a href="/2005/11/burning-transistors.html"&gt;been a sucker for HDR in gaming&lt;/a&gt; for a while now. So when I saw mention on Hack a Day about &lt;a href="http://www.hackaday.com/2008/05/27/how-to-expand-your-camera-with-chdk/"&gt;turning your point-and-shoot camera into a full-featured model&lt;/a&gt; that allows you to do stop-motion and high dynamic range photography my curiosity was piqued.&lt;br /&gt;&lt;br /&gt;The Stuck In Customs &lt;a href="http://stuckincustoms.com/2006/06/06/548/"&gt;HDR Tutorial&lt;/a&gt; gives a good reason why HDR photography can be so appealing: our eye adjusts constantly as it is observing its environment, quickly dilating and contracting the pupil to modify the range of light and color hitting the retina. HDR photography does the same thing, re-sampling the image to take in a varying amount of exposure and light at different depths of field.&lt;br /&gt;&lt;br /&gt;Hack a Day turned me on to using the &lt;a href="http://chdk.wikia.com/wiki/Main_Page"&gt;CHDK firmware add-on&lt;/a&gt; with a &lt;a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16830120223"&gt;Canon SD870 IS&lt;/a&gt;. The CHDK add-on software allowed me to do &lt;a href="http://chdk.wikia.com/wiki/FAQ#Q._What_can_I_use_exposure.2Ffocus_bracketing_for.3F"&gt;exposure bracketing&lt;/a&gt; in continuous shooting mode.&lt;br /&gt;&lt;br /&gt;Luckily HDR photography is all the rage lately, so I even had a &lt;a href="http://lwn.net/Articles/225652/"&gt;Grumpy Editor's guide to HDR with Linux&lt;/a&gt;. It was great - it introduced me to &lt;a href="http://www.mpi-inf.mpg.de/resources/hdr/calibration/pfs.html"&gt;PFScalibration&lt;/a&gt; and &lt;a href="http://hugin.sourceforge.net/tutorials/overview/en.shtml"&gt;Hugin's image alignment&lt;/a&gt;, which are both nicely wrapped together in the fantastically easy to use &lt;a href="http://qtpfsgui.sourceforge.net/"&gt;Qtpfsgui&lt;/a&gt; toolkit.&lt;br /&gt;&lt;br /&gt;Of course I had to turn the flash off and lower the resolution (to allow the continuous mode to write to the SD card faster), but in the end I had a perfect stack of images at varying exposures to import into Qtpfsgui. A tree turns into something more provocative pretty quickly:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_UGOF73TqM5A/SGxK0gmwYMI/AAAAAAAAAHM/lg81Kjpvd3M/s1600-h/tree+(downsampled).jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_UGOF73TqM5A/SGxK0gmwYMI/AAAAAAAAAHM/lg81Kjpvd3M/s400/tree+(downsampled).jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5218628334181703874" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_UGOF73TqM5A/SGxFGXPXAII/AAAAAAAAAHE/Fxo-zz1v98U/s1600-h/hdrtree+(downsampled).jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_UGOF73TqM5A/SGxFGXPXAII/AAAAAAAAAHE/Fxo-zz1v98U/s400/hdrtree+(downsampled).jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5218622043835531394" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I was amazed at the quality of open-source options for photography - &lt;a href="http://qtpfsgui.sourceforge.net/"&gt;Qtpfsgui&lt;/a&gt; was great for HDR, and &lt;a href="http://rawstudio.org/"&gt;Rawstudio&lt;/a&gt; was even more fantastic in dealing with my RAW digital negatives. The SD870 IS doesn't have native RAW file support, but thanks to CHDK and &lt;a href="http://dng4ps2.chat.ru/index_en.html"&gt;DNG4PS-2&lt;/a&gt; I was able to quickly pull DNG files off of my SD card and start editing them in Rawstudio.&lt;br /&gt;&lt;br /&gt;Unfortunately I don't have much if any time to try out new things, but this was a pretty pleasant diversion for the evening.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-4548326754458889169?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/4548326754458889169/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2008/07/real-life-high-dynamic-range-lighting.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/4548326754458889169'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/4548326754458889169'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2008/07/real-life-high-dynamic-range-lighting.html' title='Real-Life High Dynamic Range Lighting'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_UGOF73TqM5A/SGxK0gmwYMI/AAAAAAAAAHM/lg81Kjpvd3M/s72-c/tree+(downsampled).jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-7413085559376150361</id><published>2008-06-21T18:17:00.004-04:00</published><updated>2008-06-22T15:02:08.503-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='linux desktop'/><category scheme='http://www.blogger.com/atom/ns#' term='suse'/><title type='text'>OpenSUSE 11.0 - Desktop Linux Actually Done Right</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://commons.wikimedia.org/wiki/Image:Gekko-kohphangan-07.2000.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_UGOF73TqM5A/SF1-PP_cpII/AAAAAAAAAG8/IeW1mLWAzSc/s400/507px-Gekko-kohphangan-07.2000.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5214462744020690050" /&gt;&lt;/a&gt;I've been pretty unhappy with SuSE Linux as of late. &lt;a href="/2006/05/suse-101-avoiding-fedora-trap.html"&gt;I thought 10.1 was well done&lt;/a&gt;, but subsequent releases were &lt;a href="/2006/12/send-suse-back.html"&gt;of poor build quality&lt;/a&gt; and in places &lt;a href="/2006/12/sloppy-suse.html"&gt;just sloppy&lt;/a&gt;. There were times it began to show promise, &lt;a href="/2007/10/suse-ten-point-ugh.html"&gt;only to fall just short&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I've been living inside of openSUSE 11.0 for the past several days, and tried out RC1 as well. All in all it's a very impressive distribution, and I'm surprised they were able to put this level of polish on KDE 3.5, KDE 4 and Gnome at the same time.&lt;br /&gt;&lt;br /&gt;Package management, the Achilles' heel of SuSE up to this point, is &lt;i&gt;scores&lt;/i&gt; better. YaST2 actually loads its package management tool quickly, and metadata indexing doesn't take decades like it used to. Compiz is nicely integrated, and KDE 4 is actually quite well done. I'm installing the unstable 4.1 packages right now, and we'll see how that looks as well.&lt;br /&gt;&lt;br /&gt;There are some speed issues, but then again I'm using KDE 4 with desktop effects cranked up. However, the fixes to package management alone make SuSE a fantastic winner for the desktop Linux space. Honestly, once KDE 4.1 comes out I wouldn't be surprised at all to see more corporate desktops and developer machines turning to SuSE Linux Enterprise Desktop.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-7413085559376150361?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/7413085559376150361/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2008/06/opensuse-110-desktop-linux-actually.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/7413085559376150361'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/7413085559376150361'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2008/06/opensuse-110-desktop-linux-actually.html' title='OpenSUSE 11.0 - Desktop Linux Actually Done Right'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_UGOF73TqM5A/SF1-PP_cpII/AAAAAAAAAG8/IeW1mLWAzSc/s72-c/507px-Gekko-kohphangan-07.2000.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-1552884573790026186</id><published>2008-06-01T20:39:00.004-04:00</published><updated>2008-06-01T20:53:31.815-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='project management'/><title type='text'>Counting on Trolls Under Your Bridge</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://commons.wikimedia.org/wiki/Image:Sparkler.JPG"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_UGOF73TqM5A/SENBpckLyKI/AAAAAAAAAG0/tfKJ8VNexeM/s400/Sparkler.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5207077774468827298" /&gt;&lt;/a&gt;It seems no matter if you're in a huge corporate project or a smaller cadre of independent developers, the rules of managing people and code remain the same. And open-source projects tend to manage people much better than their corporate brethren.&lt;br /&gt;&lt;br /&gt;In projects with multiple people involved you have to continually worry about people leaving, contributing crappy code or going on a complete tangent. Usually in corporate life people just want the thing to &lt;i&gt;work&lt;/i&gt;, and if it randomly happens to hit production and not have complete show-stopping errors, great. But the code could be complete cruft and no one would care.&lt;br /&gt;&lt;br /&gt;With an open-source project, however, you must have complete transparency. Brian Fitzpatrick and Ben Collins-Sussman recently &lt;a href="http://www.theregister.co.uk/2008/05/30/google_open_source_talk/"&gt;gave a presentation on managing people in OSS projects&lt;/a&gt; effectively. Code reviews, definite goals and communicating "just enough" were all key. Hrm... how many commercial software developers do the same thing?&lt;br /&gt;&lt;br /&gt;It's not without its difficulties, however. Especially with the kernel, &lt;a href="http://lwn.net/Articles/283854/#Comments"&gt;contributions can be a big mixed bag&lt;/a&gt;. Sifting the good contributions from the pointless ones can be time-consuming and tedious. So projects are split into more minute portions, and newbies are either mentored or given a sandbox to play in.&lt;br /&gt;&lt;br /&gt;It seems like there is a role model out there for taking a wide variety of people with an even wider variety of backgrounds and time commitments and having them all contribute to a well-developed end product. It's a shame it isn't emulated more often.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-1552884573790026186?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/1552884573790026186/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2008/06/counting-on-trolls-under-your-bridge.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/1552884573790026186'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/1552884573790026186'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2008/06/counting-on-trolls-under-your-bridge.html' title='Counting on Trolls Under Your Bridge'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_UGOF73TqM5A/SENBpckLyKI/AAAAAAAAAG0/tfKJ8VNexeM/s72-c/Sparkler.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-4820344459099171319</id><published>2008-05-22T22:05:00.002-04:00</published><updated>2008-05-22T22:10:18.404-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='google sites'/><category scheme='http://www.blogger.com/atom/ns#' term='content mangement'/><category scheme='http://www.blogger.com/atom/ns#' term='confluence'/><category scheme='http://www.blogger.com/atom/ns#' term='google app engine'/><title type='text'>Google Sites = The Reason for a Google Account</title><content type='html'>The whole reason I wanted to start developing on &lt;a href="http://appengine.google.com"&gt;Google App Engine&lt;/a&gt; was because I wanted to start building a repository of code samples, How-To's, documentation, projects, blog posts, all that stuff. Something akin to &lt;a href="http://www.atlassian.com/software/confluence/"&gt;Confluence&lt;/a&gt;. Google already did it for me.&lt;br /&gt;&lt;br /&gt;Google just recently launched &lt;a href="http://sites.google.com/"&gt;Google Sites&lt;/a&gt;, which basically becomes a content management system for whatever you like. It's exactly what I needed - and I'm planning on moving my docs, code snippets and projects over soon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-4820344459099171319?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/4820344459099171319/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2008/05/google-sites-reason-for-google-account.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/4820344459099171319'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/4820344459099171319'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2008/05/google-sites-reason-for-google-account.html' title='Google Sites = The Reason for a Google Account'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-7149784520923311919</id><published>2008-05-10T11:03:00.002-04:00</published><updated>2008-05-10T11:07:56.737-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='drm'/><category scheme='http://www.blogger.com/atom/ns#' term='music'/><category scheme='http://www.blogger.com/atom/ns#' term='amazon'/><title type='text'>Wow... Actual Support! They Know We Exist!</title><content type='html'>Wanted to buy an album I had just discovered... but didn't want to haul myself to the neighborhood Best Buy. So I wanted to see if the band had an online purchase method. They didn't... but they sold through Amazon. I knew Amazon sold DRM-less MP3's, so I decided to check it out. For whole album downloads you are required to use their lil' download app, so imagine my aghast expression when I saw:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_UGOF73TqM5A/SCW5VaFmC9I/AAAAAAAAAGs/fp7cwBYtBIM/s1600-h/amazon+downloader.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_UGOF73TqM5A/SCW5VaFmC9I/AAAAAAAAAGs/fp7cwBYtBIM/s400/amazon+downloader.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5198765122300283858" /&gt;&lt;/a&gt;&lt;br /&gt;Sweet. Works only on 32-bit Linux (can work on 64 but has problems with library dependencies), but otherwise purchasing was swell. No issues.&lt;br /&gt;&lt;br /&gt;Thanks Amazon for realizing Linux users buy music, too!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-7149784520923311919?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/7149784520923311919/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2008/05/wow-actual-support-they-know-we-exist.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/7149784520923311919'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/7149784520923311919'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2008/05/wow-actual-support-they-know-we-exist.html' title='Wow... Actual Support! They Know We Exist!'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_UGOF73TqM5A/SCW5VaFmC9I/AAAAAAAAAGs/fp7cwBYtBIM/s72-c/amazon+downloader.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-2792347988602325879</id><published>2008-05-06T20:34:00.003-04:00</published><updated>2008-05-06T20:45:14.964-04:00</updated><title type='text'>Spent</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://commons.wikimedia.org/wiki/Image:SMirC-spent.svg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_UGOF73TqM5A/SCD5o1usKwI/AAAAAAAAAGk/Jvml_roJ4Vs/s400/SMirC-spent.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5197428449998547714" /&gt;&lt;/a&gt;A while back I received this e-mail, completely out of the blue:&lt;br /&gt;&lt;blockquote&gt;Wise men say, you only have to resign yourself to what you cannot improve&lt;/blockquote&gt;&lt;br /&gt;I'm not sure why I got the e-mail. Or who sent it. No real idea. Could well be spam. But it kinda stuck with me for some odd reason.&lt;br /&gt;&lt;br /&gt;I've been working the &lt;a href="/2007/09/prep-exit-music.html"&gt;80 hour weeks&lt;/a&gt; lately, as promised. That means that I've had to give up working on my open-source projects. I feel real pangs of guilt when people ask for bugfixes or when the next release will come out... especially when users as kind as &lt;a href="https://sourceforge.net/forum/forum.php?thread_id=1991429&amp;forum_id=108367"&gt;tomasio&lt;/a&gt; even volunteer their own time for icon assets. But I've cut sleep down to a few wee hours and just have nothin' left.&lt;br /&gt;&lt;br /&gt;I'm hoping I can get everything going at work, get things on a stable foundation, then give myself free time once again. At least, that's the lie I tell myself.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-2792347988602325879?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/2792347988602325879/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2008/05/spent.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/2792347988602325879'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/2792347988602325879'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2008/05/spent.html' title='Spent'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_UGOF73TqM5A/SCD5o1usKwI/AAAAAAAAAGk/Jvml_roJ4Vs/s72-c/SMirC-spent.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-1244829988245452272</id><published>2008-04-15T01:18:00.004-04:00</published><updated>2008-04-15T01:32:00.578-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='nokia'/><category scheme='http://www.blogger.com/atom/ns#' term='trolltech'/><category scheme='http://www.blogger.com/atom/ns#' term='qt'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><category scheme='http://www.blogger.com/atom/ns#' term='maemo'/><title type='text'>Two Great Tastes - maemo &amp; Qt</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://commons.wikimedia.org/wiki/Image:PBJ.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_UGOF73TqM5A/SAQ7MtvB_fI/AAAAAAAAAGc/1qjdnpvUY5g/s400/664px-PBJ.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5189337760258981362" /&gt;&lt;/a&gt;Fresh off the wire, it has been &lt;a href="http://maemo.org/news/announcements/view/qt_to_be_supported_in_addition_to_gtk.html"&gt;announced&lt;/a&gt; that Nokia will introduce Qt, &lt;a href="/2006/10/ode-to-qt.html"&gt;my favorite C++ toolkit&lt;/a&gt;, to the maemo platform, &lt;a href="/2008/03/nifty-nokia.html"&gt;my favorite portable hardware platform&lt;/a&gt;. Two great tastes that go great together.&lt;br /&gt;&lt;br /&gt;If this kind of platform expansion and cooperation with Qt developers (such as KDE authors) is what will come of the &lt;a href="/2008/01/nokia-acquires-trolltech-qt.html"&gt;Nokia acquisition of Trolltech&lt;/a&gt;, it may not be as bad as I predicted. Here's to hoping that Nokia sees Qt as a toolkit that will serve mobile, embedded &lt;i&gt;and&lt;/i&gt; desktop platforms. Especially with the recent fame of low-cost low-footprint laptops, Qt and maemo have to be getting some additional attention.&lt;br /&gt;&lt;br /&gt;If the &lt;a href="http://www.nseries.com/index.html#l=products,n810_wme"&gt;WiMAX-enabled Nokia 810&lt;/a&gt; becomes more powerful and popular, the addition of Qt and simplified cross-compiling could provide a huge increase of third-party applications hosted on an already open mobile device.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-1244829988245452272?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/1244829988245452272/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2008/04/two-great-tastes-maemo-qt.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/1244829988245452272'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/1244829988245452272'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2008/04/two-great-tastes-maemo-qt.html' title='Two Great Tastes - maemo &amp; Qt'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_UGOF73TqM5A/SAQ7MtvB_fI/AAAAAAAAAGc/1qjdnpvUY5g/s72-c/664px-PBJ.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-4620317180850802492</id><published>2008-04-14T21:12:00.004-04:00</published><updated>2008-04-14T21:30:23.188-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><title type='text'>Java 6.9</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://commons.wikimedia.org/wiki/Image:Icons-mini-page_java.gif"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_UGOF73TqM5A/SAQC_tvB_eI/AAAAAAAAAGU/GYvcRdkfW5U/s400/Icons-mini-page_java.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5189275964269526498" /&gt;&lt;/a&gt;Someone just directed my attention to the &lt;a href="http://java.sun.com/developer/technicalArticles/javase/java6u10/index.html"&gt;Java 6 update 10&lt;/a&gt; intro on Sun's site. What the living...?&lt;br /&gt;&lt;br /&gt;First off, this isn't a minor update. This is taking a backhoe to the foundations of Java, hitting a  water line, but digging a basement anyway. Why this wasn't released in 7 I don't know... I guess it's  because the update is largely centered around &lt;i&gt;deployment&lt;/i&gt; of Java as a platform and not adding any functionality to the underlying API. But &lt;b&gt;&lt;i&gt;damn&lt;/i&gt;&lt;/b&gt;, it's an overhaul.&lt;br /&gt;&lt;br /&gt;First, Java is now chopped neatly into libraries, so you only download what you need. That means Java installations can be one-third of what they were in the previous release. Java can now be downloaded and installed more efficiently as well, thanks to some much easier-to-use JavaScript and HTML-fu.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.konqueror.org/"&gt;Konqueror&lt;/a&gt; has already done this for a while now, but applets will now execute within a full JVM instead of a half-baked nsplugin. This allows for more robust applets and, from my experience with Konqueror, plugins that are more crash-resistant.&lt;br /&gt;&lt;br /&gt;Finally the fairly... blech... look of Java has been completely overhauled with &lt;a href="https://nimbus.dev.java.net/"&gt;Nibus&lt;/a&gt;, long at last. Previously I've had to use javootoo's Look and Feel libraries to make things look remotely presentable. Now Nimbus should be able to fill that gap nicely by adding more modern window decorations and UI components.&lt;br /&gt;&lt;br /&gt;These were all desperately needed improvements to have Java make inroads into the desktop space. Let's hope it isn't too late.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-4620317180850802492?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/4620317180850802492/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2008/04/java-69.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/4620317180850802492'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/4620317180850802492'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2008/04/java-69.html' title='Java 6.9'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_UGOF73TqM5A/SAQC_tvB_eI/AAAAAAAAAGU/GYvcRdkfW5U/s72-c/Icons-mini-page_java.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-7781498671384541745</id><published>2008-04-05T12:05:00.000-04:00</published><updated>2008-04-05T12:05:44.894-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='indy development'/><title type='text'>Independent Horticulture</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://commons.wikimedia.org/wiki/Image:Heligan_Greenhouse.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_UGOF73TqM5A/R_bsGz1bsQI/AAAAAAAAAGE/4Da5nB5Ve58/s400/greenhouse.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5185591622701396226" /&gt;&lt;/a&gt;Another great invention by the creators of Penny Arcade: &lt;a href="http://www.playgreenhouse.com/"&gt;Greenhouse&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Steam has done a great job making independent and smaller titles much apparent to the populous, and since titles don't have to compete for shelf space a genre for every palate can be made readily available. And while &lt;a href="http://www.codeweavers.com/"&gt;CodeWeavers&lt;/a&gt; has done their best to allow Steam &amp; Source titles to run on Linux &amp; OS X, it can't be said that Steam is a cross-platform solution.&lt;br /&gt;&lt;br /&gt;Not so with Greenhouse. It &lt;a href="http://www.playgreenhouse.com/"&gt;offers native support for OS X, Windows and Linux&lt;/a&gt; in tandem. And their inaugural title will be cross-platform. And if they continue to support independent and episodic titles, this could be a bigger competitor to Steam than GameTap.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-7781498671384541745?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/7781498671384541745/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2008/04/independant-horticulture.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/7781498671384541745'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/7781498671384541745'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2008/04/independant-horticulture.html' title='Independent Horticulture'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_UGOF73TqM5A/R_bsGz1bsQI/AAAAAAAAAGE/4Da5nB5Ve58/s72-c/greenhouse.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-312549900178486076</id><published>2008-04-04T06:05:00.000-04:00</published><updated>2008-04-04T08:30:58.630-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='procedural content'/><category scheme='http://www.blogger.com/atom/ns#' term='introversion'/><title type='text'>Introversion's Procedural Art</title><content type='html'>The huge amount of effort required for content creation &lt;a href="/2006/04/organically-growing-content.html"&gt;was a hot topic&lt;/a&gt; a couple of years ago, as many people saw the enormous cadre of artists and animators making AAA titles and realized no garage developers could hope to reach that type of scale. The fear at the time was that this would mean the end of indie development.&lt;br /&gt;&lt;br /&gt;Of course after Peggle, Portal and Crayon Physics hit the mainstream it suddenly became apparent bigger doesn't equal better. Or more sales.&lt;br /&gt;&lt;br /&gt;I've always &lt;a href="/2005/04/what-time-is-it.html"&gt;loved the approach Introversion has taken&lt;/a&gt; with development. They're truly dedicated garage developers, spending more time trying to perfect a fractal tree than they really should. But I can respect spending an inordinate amount of time trying to wrap ones head around a concept like procedurally generated landscapes.&lt;br /&gt;&lt;br /&gt;When I &lt;a href="http://www.gamesetwatch.com/2008/03/gamasutra_webcast_introversion.php"&gt;heard that Gamasutra was hosting an event with Chris Delay&lt;/a&gt; speaking on the topic of procedurally generated content, I definitely wanted to jump on the opportunity. While they had a fairly unrehearsed HP shrill asking the questions, Chris had some great points.&lt;br /&gt;&lt;br /&gt;Chris emphasized that the main reason his titles have procedurally generated textures and meshes was because artistic content is just not a space he feels Introversion can compete within, since other companies have mastered that area. He saw it as neither a positive or negative thing, it's just the case for Introversion. &lt;a href="/2008/02/procedurally-generated-pinkslips.html"&gt;Should artists be afraid?&lt;/a&gt; Chris doesn't think so. Procedural content cannot replace people, since it ultimately can't produce those unique items that make an environment distinct. While you can generate the landform that the world consists of (mountains, hills, streets, clouds, etc) it cannot add fine-grained details to the world.&lt;br /&gt;&lt;br /&gt;You automagically gain several efficiencies with procedural content: &lt;br /&gt;&lt;li&gt;You don't have to re-draw or re-generate a scene if you need to modify level of detail&lt;br /&gt;&lt;li&gt;You end up with a large amount of content and detail that artists can't get (you can delve as deep as you want into a fractal)&lt;br /&gt;&lt;li&gt;If you do procedural &lt;i&gt;animation&lt;/i&gt;, you can have adaptive animations that exist as a consequence to a number of actions&lt;br /&gt;&lt;br /&gt;While the idea of using fractal algorithms for landscape generation or building trees, I hadn't thought much about procedural animation. Of course Spore uses it for their character builder, but introducing this as a new way of rigging meshes would again immensely help developers. Not needing an &lt;i&gt;entire&lt;/i&gt; team of dedicated animators or texture artists would make things much more palatable.&lt;br /&gt;&lt;br /&gt;There are tradeoffs of course, and Chris repeatedly mentioned that procedurally generated content requires a different way of thinking about memory management. Rather than loading assets off disk, you load them in memory at runtime - so you don't worry about texture compression, but you do now have to worry about LOD given to your algorithm and how much memory the resulting data structure will reside within. You can't let your procedure go willy-nilly and create too many verts.&lt;br /&gt;&lt;br /&gt;Introversion's latest undertaking, Subversion, sounds interesting. Right now Chris describes it as more of a thought experiment, so who knows if we'll actually see it. But what he's pursuing is procedurally generating cities from 10 kilometer view all the way down to pens and desks inside a building. Not only does this employ a landscape generator for hills and mountains, but also will procedurally generate streets and buildings based on markets and traffic demand. Each procedural algorithm feeds its brothers, affecting its ultimate output. For example, more traffic makes more roads which can make bigger buildings.&lt;br /&gt;&lt;br /&gt;One difficulty Chris found with this approach was that it was often ard to find out bad results - sometimes you would have cities being built on entirely one side of an area, with another being completely blank. Or sometimes a fire escape would open into nothingness on 30th floor. It's all a matter of finding a way to re-seed or compensate when these failures occur. Or maybe it just makes the whole concept quaint.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-312549900178486076?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/312549900178486076/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2008/04/introversions-procedural-art.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/312549900178486076'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/312549900178486076'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2008/04/introversions-procedural-art.html' title='Introversion&apos;s Procedural Art'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-9118592842708561812</id><published>2008-03-30T21:52:00.004-04:00</published><updated>2008-03-30T22:23:27.941-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='intel'/><category scheme='http://www.blogger.com/atom/ns#' term='vector processing'/><category scheme='http://www.blogger.com/atom/ns#' term='larrabee'/><category scheme='http://www.blogger.com/atom/ns#' term='vpu'/><title type='text'>Intel Not Killing VPU After All</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://commons.wikimedia.org/wiki/Image:Charleslarrabee.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_UGOF73TqM5A/R_BK3T1bsPI/AAAAAAAAAF8/lY4rYL7bpag/s400/Charleslarrabee.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5183725485181087986" /&gt;&lt;/a&gt;Looks like Intel &lt;a href="/2008/02/intel-killing-vpu.html"&gt;isn't killing the VPU after all&lt;/a&gt;, but instead birthing it. Larrabee, their GPU/HPC processor, is supposedly an add-in proc slated for 2009/2010. Although I'm going to put myself out on a limb and say it will probably become part-and-parcel of their mainline CPU and, instead of being a discrete co-processor, will quickly be absorbed as additional cores of their consumer processor line. But I digress.&lt;br /&gt;&lt;br /&gt;Additional information about Larrabee &lt;a href="http://arstechnica.com/news.ars/post/20070604-clearing-up-the-confusion-over-intels-larrabee-part-ii.html"&gt;continues to trickle out&lt;/a&gt;, but it definitely seems to introduce &lt;a href="http://www.news.com/8301-13579_3-9895892-37.html"&gt;vector processing instruction sets&lt;/a&gt; to be used by general computing, not just as a GPU.&lt;br /&gt;&lt;br /&gt;Even if this comes out as a daughterboard or discrete chipset, it should be a compelling reason to pick up a good assembly programming book and start hacking again. How long will it take (non-Intel) compilers to optimize for the vector instruction sets?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-9118592842708561812?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/9118592842708561812/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2008/03/intel-not-killing-vpu-after-all.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/9118592842708561812'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/9118592842708561812'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2008/03/intel-not-killing-vpu-after-all.html' title='Intel Not Killing VPU After All'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_UGOF73TqM5A/R_BK3T1bsPI/AAAAAAAAAF8/lY4rYL7bpag/s72-c/Charleslarrabee.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-8139114095354319428</id><published>2008-03-08T14:14:00.008-05:00</published><updated>2008-03-09T11:50:13.292-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='transcoding'/><category scheme='http://www.blogger.com/atom/ns#' term='nokia'/><category scheme='http://www.blogger.com/atom/ns#' term='umpc'/><category scheme='http://www.blogger.com/atom/ns#' term='n770'/><title type='text'>Nifty Nokia</title><content type='html'>I'm really enjoying the n770. I'm definitely putting an n810 on my wishlist for the end of this year.&lt;br /&gt;&lt;br /&gt;First thing I did was re-flash the device with &lt;a href="http://maemo.org/community/wiki/os2007on770/"&gt;OS 2007 Hacker Edition&lt;/a&gt;, an OS intended for the n800 but crammed into n770 hardware. It works rather well, only occasional reboots, but then again I'm working with a heavily used and refurbished unit. Who knows if it's the OS or the device. Google Talk, contacts, Bluetooth, 802.11b/g, a stripped-down mozilla engine and MPEG4 playback all works well.&lt;br /&gt;&lt;br /&gt;I turned my lil' Nokia into a pocket translator with &lt;a href="http://googletalk.blogspot.com/2007/12/merry-christmas-god-jul-and.html"&gt;the Google Talk translator bot&lt;/a&gt; - the streamlined chat interface of OS 2007 turned the Nokia into a very handy (and quick) translation service.&lt;br /&gt;&lt;br /&gt;Also tried to crack a test WRT54G router I have laying around using &lt;a href="http://www.internettablettalk.com/forums/showthread.php?t=8387"&gt;Aircrack&lt;/a&gt;, but I couldn't inject wifi packets using the OS 2007 wireless drivers so had to resort to the slower WEP cracking that needs a fair amount of seed traffic. It was still neat to browse all surrounding AP's on a full-screen xterm. With the n770's fantastic resolution, even the small typeface was definitely readable.&lt;br /&gt;&lt;br /&gt;Also been mowing through a &lt;a href="http://maemo.org/community/wiki/os2007on770testedapps/"&gt;number of third-party apps&lt;/a&gt;. There is a fantastic developer community around the device - their Sourceforge-like approach to the &lt;a href="https://garage.maemo.org/"&gt;Maemo Garage&lt;/a&gt; and the extensbility of the platform has served the developer and user community well.&lt;br /&gt;&lt;br /&gt;It took me a while to find out &lt;a href="http://www.internettablettalk.com/wiki/index.php?title=Multimedia:Converting_videos_to_Nokia_770_format"&gt;what  type of video the n770 will natively accept&lt;/a&gt;. There are several good resources out there, such as &lt;a href="http://www.bleb.org/software/maemo/#encode"&gt;Andrew Flegg's Perl script&lt;/a&gt; that easily transcodes video into a n770-digestible format. The wide screen and nice resolution make mobile video much more palatable. The only caveat was that &lt;a href="http://wiki.multimedia.cx/index.php?title=ISO_MPEG-4"&gt;newer releases of MPlayer tag video with a newer but much less understood "FMP4" codec tag&lt;/a&gt; which OS2007HE doesn't understand. I had to tweak the script to &lt;a href="http://gentoo-wiki.com/HOWTO_Mencoder_Introduction_Guide#lavc"&gt;pass the value "DX50" to the ffourcc option&lt;/a&gt; in order for the built-in media player to recognize the MPEG4 codec used. I also had to make sure encoding only happens at 15 frames per second, otherwise audio quickly gets out of sync.&lt;br /&gt;&lt;br /&gt;When I get a free second I'm going to try getting &lt;a href="http://guerby.org/ftp/nokia800-deb/"&gt;some OpenVPN binaries&lt;/a&gt; to work as well. Would be very nifty to have an SSH stack &lt;i&gt;and&lt;/i&gt; VPN access wherever I go.&lt;br /&gt;&lt;br /&gt;Got &lt;a href="http://www.internettablettalk.com/forums/showthread.php?p=74038#post74038"&gt;Flash 9 somewhat working&lt;/a&gt;, although sound doesn't appear to work. Not a deal breaker tho, considering I'm working on a refurbished device running an unsupported OS meant for an entirely different hardware platform.&lt;br /&gt;&lt;br /&gt;All in all, I'm a pretty happy gopher. Not sure what that means, but I am.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-8139114095354319428?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/8139114095354319428/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2008/03/nifty-nokia.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/8139114095354319428'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/8139114095354319428'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2008/03/nifty-nokia.html' title='Nifty Nokia'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-2325388372994924457</id><published>2008-03-04T21:34:00.003-05:00</published><updated>2008-03-04T22:04:41.992-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='distribution'/><category scheme='http://www.blogger.com/atom/ns#' term='music'/><category scheme='http://www.blogger.com/atom/ns#' term='sales'/><title type='text'>When $300 Is More Popular than Free</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://commons.wikimedia.org/wiki/Image:BothHand.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_UGOF73TqM5A/R84HAkt9w5I/AAAAAAAAAF0/dU9Tla72T4U/s400/BothHand.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5174080728333140882" /&gt;&lt;/a&gt;&lt;a href="/2006/06/no-more-mortar.html"&gt;For the past two years digital delivery has supplanted shelf space&lt;/a&gt;, but those attached to selling physical inventory have poo-poo'ed the viability of such consumerism. But good ole' &lt;a href="http://www.nin.com/"&gt;Trent&lt;/a&gt; may be proving that the merch sells itself once and for all.&lt;br /&gt;&lt;br /&gt;The Reg puts it well when it says &lt;a href="http://www.theregister.co.uk/2008/03/03/nine_inch_nails_album_released_online/"&gt;"Nine Inch Nails cracks net distribution"&lt;/a&gt; - their &lt;a href="http://ghosts.nin.com"&gt;latest album&lt;/a&gt; has gone up for sale &lt;a href="http://ghosts.nin.com/main/order_options"&gt;in several interesting ways on their site&lt;/a&gt;: get the first volume (nine tracks) for free. If you like it, you can buy all the volumes lossless (36 tracks) including a 40 page PDF booklet for a measly $5. For only ten stinkin' bucks you can get the whole thing as a two disc CD set with a printed booklet. For $75 you can get the audiophile version, digital versions, &lt;a href="http://en.wikipedia.org/wiki/Red_Book_(audio_CD_standard)"&gt;Red Book&lt;/a&gt; CD versions, hardcover slip case and more. &lt;b&gt;&lt;i&gt;Or&lt;/i&gt;&lt;/b&gt; you can pay $300 and get a super-mega-uber-limited-edition-collectors pack. &lt;br /&gt;&lt;br /&gt;Or at least you could before all 2,500 &lt;i&gt;sold out&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;At a time when people keep claiming that pirated music is killing the industry and no one will pay for music anymore, it seems awful incongruous that 2,500 units at $300 a pop sold out in almost a day.&lt;br /&gt;&lt;br /&gt;Same thing happened back in the day when I &lt;a href="http://store.introversion.co.uk/"&gt;bought a copy of Uplink&lt;/a&gt;. I could buy it cheaply on its own or shell out some extra bucks and get the signed "limited edition." Of course I now have a proudly signed copy of Uplink on my shelf.&lt;br /&gt;&lt;br /&gt;It's not hard to upsell customers, even (or especially) with digital distribution. Give them schwag and they will come.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-2325388372994924457?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/2325388372994924457/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2008/03/when-300-is-more-popular-than-free.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/2325388372994924457'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/2325388372994924457'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2008/03/when-300-is-more-popular-than-free.html' title='When $300 Is More Popular than Free'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_UGOF73TqM5A/R84HAkt9w5I/AAAAAAAAAF0/dU9Tla72T4U/s72-c/BothHand.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-8321880149440223550</id><published>2008-03-03T21:11:00.003-05:00</published><updated>2008-03-03T21:56:11.801-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='nokia'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='web tablet'/><category scheme='http://www.blogger.com/atom/ns#' term='n800'/><category scheme='http://www.blogger.com/atom/ns#' term='n770'/><title type='text'>A Rite of Passage</title><content type='html'>I purchased a well used &lt;a href="http://europe.nokia.com/770"&gt;Nokia n770 Web tablet&lt;/a&gt; from a friend last month and, as tradition dictates, I must christen the device by authoring an entire blog post using only said device.&lt;br /&gt;It really is a sweet little device... and since it runs a Debian-derived distro I can do pretty much anything I want with it. From checking e-mail to WEP cracking it runs the gambit.&lt;br /&gt;The screen is positively beautiful. Video on this thing makes me giddy. Plus I have more connectivity options than I can shake a stick at.&lt;br /&gt;I can totally understand why the n800 has the following it does now.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-8321880149440223550?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/8321880149440223550/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2008/03/rite-of-passage.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/8321880149440223550'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/8321880149440223550'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2008/03/rite-of-passage.html' title='A Rite of Passage'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-1173730310628717353</id><published>2008-02-20T21:59:00.002-05:00</published><updated>2008-02-20T23:38:27.732-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='procedural content'/><category scheme='http://www.blogger.com/atom/ns#' term='game development'/><category scheme='http://www.blogger.com/atom/ns#' term='indy development'/><title type='text'>Procedurally Generated Pinkslips</title><content type='html'>Penny Arcade's &lt;a href="http://www.penny-arcade.com/2008/02/18"&gt;recent podcast&lt;/a&gt; featured a rant - no... more of a reckoning... versus Spore. &lt;a href="/2006/04/organically-growing-content.html"&gt;I find Spore's idea of dynamically generated content interesting&lt;/a&gt;, mainly because of my bias towards &lt;a href="/2006/03/create-your-own-content-cause-it-takes.html"&gt;one-man development teams&lt;/a&gt; and &lt;a href="/2005/06/big-is-new-small.html"&gt;procedurally generated content&lt;/a&gt;. But Mike and Jerry don't want to see artists and writers out of a job... and the concept that zombie algorithms can build music or images is looked upon with disdain. To them games are an artistic outlet for modelers, musicians and authors. But to &lt;i&gt;developers&lt;/i&gt; they can seem like a growing necessity that a garage studio simply can't bankroll.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.quelsolaar.com/love/index.html"&gt;Eskil Steenberg's Love&lt;/a&gt; is &lt;a href="http://www.rockpapershotgun.com/?p=1164#more-1164"&gt;described by Rock, Paper, Shotgun&lt;/a&gt; as "...lavish impressionistic artwork brought to life... in motion it was suggestive of a smokey, dynamically lit version of Okami." Dynamic terrain deformation and procedurally generated assets allow Eskil to wrap some amazing gameplay into what looks like a surreal and compelling atmosphere.&lt;br /&gt;&lt;br /&gt;Not only does this mean that players get to glimpse into chaos, they get to play with it. And anyone who names such an ambitious effort after "For The Love Of Game Development" inspires hope in a lot of indie developers.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-1173730310628717353?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/1173730310628717353/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2008/02/procedurally-generated-pinkslips.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/1173730310628717353'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/1173730310628717353'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2008/02/procedurally-generated-pinkslips.html' title='Procedurally Generated Pinkslips'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-3109082551136791043</id><published>2008-02-19T22:44:00.005-05:00</published><updated>2008-02-19T23:16:51.289-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='uml editor'/><title type='text'>UML Hell</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_UGOF73TqM5A/R7uob5QCCXI/AAAAAAAAAFc/OGA87c62xTM/s1600-h/w00t.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_UGOF73TqM5A/R7uob5QCCXI/AAAAAAAAAFc/OGA87c62xTM/s200/w00t.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5168910194515773810" /&gt;&lt;/a&gt;I've been searching for a UML editor for a while that I like. So you don't have to, I installed (or tried to) several UML editors and took each for a spin. I needed some diagramming mainly for collaboration and presentations... and my choices usually broke down into a) crappy but usable or b) pretty but unusable.&lt;br /&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.gentleware.com/uml-software-community-edition.html"&gt;Poseidon for UML Community Edition&lt;/a&gt; is "free," but you have to register the product. I dislike typing. Didn't install it.&lt;br /&gt;&lt;li&gt;&lt;a href="http://gaphor.devjavu.com/"&gt;Gaphor&lt;/a&gt; wouldn't even install or run with my Python setup. Tried for 15 minutes then threw in the towel.&lt;br /&gt;&lt;li&gt;&lt;a href="http://uml.sourceforge.net/index.php"&gt;Umbrello&lt;/a&gt; I've actually used for some time now and consider it my favorite UML editor. When it doesn't crash. Which it does. A lot. I used both the KDE 3.5 and KDE 4 versions, both enjoy the segfault.&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.umlet.com/"&gt;UMLet&lt;/a&gt; remained up, but the UI just didn't do it for me. It was more a random collection of widgets than an enforced UML diagramming tool.&lt;br /&gt;&lt;li&gt;&lt;a href="http://horstmann.com/violet/"&gt;Violet&lt;/a&gt; was one I really, really like. It was simple to the point of minimalism, which I like. However it had some serious UI bugs that made all elements change their text attribute at the same time.&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.gnome.org/projects/dia/"&gt;Dia&lt;/a&gt; isn't a strict UML editing tool - it's more of a casual diagramming tool. It works really, really well when you want to brainstorm or braindump ideas. But I was looking for something that strictly enforced UML patterns and let me define attributes, methods, classes, sequence diagrams, etc.&lt;br /&gt;&lt;li&gt;&lt;a href="http://argouml.tigris.org/"&gt;ArgoUML&lt;/a&gt;, once again, is the only one that can make the cut. This is the open source relative of Poseidon and includes a ton of functionality. ArgoUML has been under active development for years and years, and continues to be the only big player on the block. And with &lt;a href="http://argouml-downloads.tigris.org/jws/argouml-latest-stable.jnlp"&gt;Java WebStart&lt;/a&gt; deployment it's exceptionally easy to get cross-platform installation on everyone's machine.&lt;br /&gt;&lt;br /&gt;So ArgoUML is still the hands-down cross-platform favorite, with Dia playing a different role yet still the only other contender. At least I finally freakin' settled on one for good.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-3109082551136791043?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/3109082551136791043/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2008/02/uml-hell.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/3109082551136791043'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/3109082551136791043'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2008/02/uml-hell.html' title='UML Hell'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_UGOF73TqM5A/R7uob5QCCXI/AAAAAAAAAFc/OGA87c62xTM/s72-c/w00t.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-810032348251235861</id><published>2008-02-18T21:18:00.003-05:00</published><updated>2008-02-18T21:39:36.413-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cpu'/><category scheme='http://www.blogger.com/atom/ns#' term='intel'/><category scheme='http://www.blogger.com/atom/ns#' term='gpu'/><category scheme='http://www.blogger.com/atom/ns#' term='vpu'/><category scheme='http://www.blogger.com/atom/ns#' term='physics'/><category scheme='http://www.blogger.com/atom/ns#' term='nvidia'/><title type='text'>Intel Killing the VPU?</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://commons.wikimedia.org/wiki/Image:Punch.jpeg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_UGOF73TqM5A/R7pBPZQCCWI/AAAAAAAAAFU/48qconChKJw/s320/Punch.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5168515255093037410" /&gt;&lt;/a&gt;I had faintly heard grumblings of Intel loathing Nvidia, but I didn't really put 2 and 2 together until listening to Gordon Mah Ung on this week's &lt;a href="http://www.maximumpc.com/article/no_bs_podcast_55_the_can_you_feel_the_love_tonight_edition"&gt;No BS Podcast&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;Good ole' Gordo spelled out why Nvidia ultimately &lt;a href="/2008/02/make-vpu-socket-already-get-it-over.html"&gt;acquired AGEIA&lt;/a&gt; - because &lt;a href="http://www.xbitlabs.com/news/multimedia/display/20071119065621_GPU_Physics_Dead_for_Now_Says_AMD_s_Developer_Relations_Chief.html"&gt;Intel deep-sixed Havok's use of GPU's&lt;/a&gt; that had been &lt;a href="http://www.xbitlabs.com/news/multimedia/display/20051028224421.html"&gt;in development for several years&lt;/a&gt;. While Havok was an independent company they worked with both ATI and Nvidia to support GPU processing of their physics API. Once Intel bought them the interoperability was tossed in the trash. I'm sure this was a pretty big dig at the GPU makers.&lt;br /&gt;&lt;br /&gt;So Nvidia purchases the #2 player in the market to ensure this doesn't happen again. Let's see who enjoys the #1 spot in shipping titles during Christmas of '08.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-810032348251235861?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/810032348251235861/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2008/02/intel-killing-vpu.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/810032348251235861'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/810032348251235861'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2008/02/intel-killing-vpu.html' title='Intel Killing the VPU?'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_UGOF73TqM5A/R7pBPZQCCWI/AAAAAAAAAFU/48qconChKJw/s72-c/Punch.jpeg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-1857091706727857645</id><published>2008-02-18T21:14:00.003-05:00</published><updated>2008-02-18T21:18:17.375-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='function key'/><title type='text'>Eff the Function Lock</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://commons.wikimedia.org/wiki/Image:Inverse_Function.png"&gt;&lt;img style="float:right; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_UGOF73TqM5A/R7o7s5QCCVI/AAAAAAAAAFM/fbcZSisepDA/s400/Inverse_Function.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5168509164829411666" /&gt;&lt;/a&gt;Dear Microsoft:&lt;br /&gt;&lt;br /&gt;The Function Lock key was a funny joke at first, but now it is just immensely annoying. While I love nothing more than spending 15 minutes figuring out why my F2 key stopped working, I really need to move on with my life. &lt;br /&gt;&lt;br /&gt;If you want another lock key, try using the scroll lock. I haven't used it in a hundred years. You can have it if you want.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-1857091706727857645?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/1857091706727857645/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2008/02/eff-function-lock.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/1857091706727857645'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/1857091706727857645'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2008/02/eff-function-lock.html' title='Eff the Function Lock'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_UGOF73TqM5A/R7o7s5QCCVI/AAAAAAAAAFM/fbcZSisepDA/s72-c/Inverse_Function.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-6793097286640872987</id><published>2008-02-17T16:04:00.008-05:00</published><updated>2008-02-17T17:05:56.410-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='amd'/><category scheme='http://www.blogger.com/atom/ns#' term='ati'/><category scheme='http://www.blogger.com/atom/ns#' term='gpu'/><category scheme='http://www.blogger.com/atom/ns#' term='vector processing'/><category scheme='http://www.blogger.com/atom/ns#' term='graphics'/><category scheme='http://www.blogger.com/atom/ns#' term='vpu'/><category scheme='http://www.blogger.com/atom/ns#' term='physics'/><category scheme='http://www.blogger.com/atom/ns#' term='nvidia'/><title type='text'>Make a VPU Socket Already! Get It Over With!</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://commons.wikimedia.org/wiki/Image:Slot_CPU.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_UGOF73TqM5A/R7ivmpQCCUI/AAAAAAAAAFE/9k598JqJTSA/s400/800px-Slot_CPU.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5168073650850629954" /&gt;&lt;/a&gt;My lands. If the floating point unit took this long to become mainstream I'd be using a Core 2 Duo with a math co-processor still.&lt;br /&gt;&lt;br /&gt;Not to go all Halfhill or anything, but it has appeared that a vector co-processor or VPU's on-die were an immediate need &lt;a href="/2006/03/gpu-next-fpu.html"&gt;for at least the past two or three years&lt;/a&gt;. &lt;a href="/2006/10/nvidias-cpu.html"&gt;Both Nvidia and AMD are bringing GPU's closer to the CPU&lt;/a&gt;, and it at once appeared that AMD's multi-core platform has &lt;a href="/2006/11/amds-multi-core-not-just-multiple-cores.html"&gt;included VPU/FPU/integer math/memory controller/CISC/RISC/misc./bacon&amp;swiss&lt;/a&gt; together to take many types of tasks and integrate them under one die's roof.&lt;br /&gt;&lt;br /&gt;And now that &lt;a href="http://www.maximumpc.com/article/daily_news_brief_nvidia_acquire_ageia_technologies"&gt;Nvidia has wisely acquired AGEIA&lt;/a&gt; and their PhysX platform it seems a general purpose vector processing platform is getting closer. A standalone PhysX &lt;a href="http://www.custompc.co.uk/news/601119/john-carmack-reckons-physx-is-useless.html"&gt;never took off on the consumer marketplace&lt;/a&gt;, and purchasing another Radeon or GeForce just for physics processing (as both AMD and Nvidia were touting at electronics expo's) never caught on either. But a generalized, open-platform physics API that takes advantage of unused GPU cycles &lt;i&gt;would definitely&lt;/i&gt; catch on. Spin your GPU fan faster and get real-time smoke effects... sign me up.&lt;br /&gt;&lt;br /&gt;Nvidia has been extremely forward-thinking with their &lt;a href="http://www.nvidia.com/object/unix.html"&gt;Linux drivers&lt;/a&gt;, and I hope they continue to be trend setters with the PhysX API. The &lt;a href="http://www.ageia.com/developers/api.html"&gt;PhysX engine and SDK was made freely available&lt;/a&gt; for Windows and Linux systems prior to Nvidia's acquisition, but hardware acceleration currently only works within Windows. Since Nvidia is &lt;a href="http://techreport.com/discussions.x/14147"&gt;porting PhysX to their own CUDA programming interface&lt;/a&gt;, it seems entirely probable that the Linux API would plugin to Nvidia's binary-only driver. And why not release the PhysX API under GPL? They could port to CUDA (whose specification is already open, available and widely used) then reduce their future development efforts by letting a wide swath of interested engineers maintain the codebase as needed.&lt;br /&gt;&lt;br /&gt;Widely available drivers, development kits and APIs will help drive hardware sales in an era where Vista w/ DirectX 10 adoption isn't exactly stellar. I won't invest in being able to run Crysis in DX10 under native resolution for a 22" LCD, but I will invest to get more particle effects or more dynamic geoms. At that point you're adding to the whole gameplay proposition instead of polishing up aesthetics, with continuously diminishing results.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-6793097286640872987?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/6793097286640872987/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2008/02/make-vpu-socket-already-get-it-over.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/6793097286640872987'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/6793097286640872987'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2008/02/make-vpu-socket-already-get-it-over.html' title='Make a VPU Socket Already! Get It Over With!'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_UGOF73TqM5A/R7ivmpQCCUI/AAAAAAAAAFE/9k598JqJTSA/s72-c/800px-Slot_CPU.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-1218085715933725390</id><published>2008-02-09T22:21:00.000-05:00</published><updated>2008-02-09T22:42:51.041-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='outlook'/><category scheme='http://www.blogger.com/atom/ns#' term='gpg'/><category scheme='http://www.blogger.com/atom/ns#' term='evolution'/><category scheme='http://www.blogger.com/atom/ns#' term='encryption'/><category scheme='http://www.blogger.com/atom/ns#' term='e-mail'/><category scheme='http://www.blogger.com/atom/ns#' term='pgp'/><title type='text'>Encryption Would Be Easy... If We Let It</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://commons.wikimedia.org/wiki/Image:Viking_Age_lock.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_UGOF73TqM5A/R65uZJQCCTI/AAAAAAAAAE8/9oA4ECTe15A/s200/Viking_Age_lock.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5165187200899483954" /&gt;&lt;/a&gt;Whenever something sensitive comes around my desk on a slip of paper I can't think about how much more accessible and secure the info would be if it was passed around using public key cryptography. After all, it has been seventeen years since the more than capable crypto advocate Phil Zimmermann &lt;a href="http://en.wikipedia.org/wiki/Pretty_Good_Privacy"&gt;made the case with PGP&lt;/a&gt;. Surely by now all e-mail clients can now securely pass info back and forth using some asymmetric key algorithm, right? Right?&lt;br /&gt;&lt;br /&gt;Well, yes... unless you're freakin' Outlook. And of course what to 9/10 enterprises mandate you use? Outlook. Fantastic.&lt;br /&gt;&lt;br /&gt;Now I've been able to sail under the radar with &lt;a href="http://www.gnome.org/projects/evolution/"&gt;Evolution&lt;/a&gt;, which sports both excellent &lt;a href="http://webdav.org/"&gt;WebDAV&lt;/a&gt; support and public key encryption. I've got the best of both worlds in Linux. However the rest of my correspondents aren't so lucky - they need to use a Windows e-mail client that can book conference rooms and schedule appointments in Microsoft Exchange. So... stuck with some variant of Outlook.&lt;br /&gt;&lt;br /&gt;About a year ago I went out on a quest to find an interoperable public key encryption plugin for Outlook. I tried several clients... and all failed. I went out looking again and the playing field hasn't changed a bit.&lt;br /&gt;&lt;br /&gt;First you might notice that there were several Outlook plugins originally vying for PGP/GPG abilities, but they have largely atrophied or merged. &lt;a href="http://www.g10code.com/p-outlgpg.html"&gt;OutlGPG&lt;/a&gt; became &lt;a href="http://www.g10code.com/p-gpgol.html"&gt;GpgOL from g10&lt;/a&gt;, but executable distribution was moved to &lt;a href="http://www.gpg4win.org"&gt;Gpg4win&lt;/a&gt;, meaning that GPG distribution became the single player. The only other option would be &lt;a href="http://www3.gdata.de/gpg/"&gt;G DATA's GnuPG-Plugin&lt;/a&gt;, but aside from being over five years old &lt;a href="http://email.about.com/cs/outlookaddonrev/gr/g_data_gnupg_ol.htm"&gt;it was never that great&lt;/a&gt;. And Gpg4win wasn't much better - it too could only do plaintext, and even then as an attachment.&lt;br /&gt;&lt;br /&gt;All Linux and Windows mail clients that have some remote sanity use MIME to encode their encrypted payload, and yet Gpg4win (from what I've been able to find) refuses to do so. At best I get an attachment which I need to decrypt separately.&lt;br /&gt;&lt;br /&gt;Now look at Thunderbird, KMail or Evolution. All can encrypt and decrypt inline, natively, within the mail browser. And it works seamlessly without any additional windows or superfluous UI components. This isn't rocket surgery.&lt;br /&gt;&lt;br /&gt;Until someone out there makes an interoperable GPG plugin for Outlook 2003 that works with OpenPGP MIME compatible messages, no one will adopt public key encryption. &lt;br /&gt;&lt;br /&gt;Maybe that's the whole idea.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-1218085715933725390?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/1218085715933725390/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2008/02/encryption-would-be-easy-if-we-let-it.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/1218085715933725390'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/1218085715933725390'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2008/02/encryption-would-be-easy-if-we-let-it.html' title='Encryption Would Be Easy... If We Let It'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_UGOF73TqM5A/R65uZJQCCTI/AAAAAAAAAE8/9oA4ECTe15A/s72-c/Viking_Age_lock.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-3547192948374768042</id><published>2008-02-03T23:15:00.000-05:00</published><updated>2008-02-03T23:31:43.525-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software development'/><category scheme='http://www.blogger.com/atom/ns#' term='group of four'/><category scheme='http://www.blogger.com/atom/ns#' term='design patterns'/><category scheme='http://www.blogger.com/atom/ns#' term='software architecture'/><title type='text'>Designing Head Patterns</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://commons.wikimedia.org/wiki/Image:Decorator_UML_class_diagram.svg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_UGOF73TqM5A/R6aUjRNRJsI/AAAAAAAAAE0/JWbMHF-Ro3M/s320/757px-Decorator_UML_class_diagram.svg.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5162977356462237378" /&gt;&lt;/a&gt;When I saw Jason McDonald's &lt;a href="http://www.mcdonaldland.info/2007/11/28/40/"&gt;design patterns quick reference guide&lt;/a&gt; I marked out. I forwarded the link to everyone I knew who heard of the &lt;a href="http://en.wikipedia.org/wiki/Design_Patterns"&gt;Gang of Four&lt;/a&gt; and printed out a nice, one-page color version to keep. I almost freakin' framed it. I liked how succinct it is... it gives you the class diagrams so your brain is instantly sparked, and just enough description that you still have to think analytically about the pattern.&lt;br /&gt;&lt;br /&gt;A few people asked me about the original Design Patterns book and a few others mentioned how much they liked &lt;a href="http://safari.oreilly.com/0596007124"&gt;Head First Design Patterns&lt;/a&gt;. I have to sadly admit - I originally wrote off the Head First series as just another "&lt;i&gt;X&lt;/i&gt; for Dummies" clone, but now that I read the &lt;a href="http://safari.oreilly.com/0596009208/hfjava2-CHP-18"&gt;RMI section of their Java book&lt;/a&gt; and read the first 100 pages of their Design Patterns book I have to admit I judged... &lt;i&gt;sigh&lt;/i&gt;... a book by its cover.&lt;br /&gt;&lt;br /&gt;The RMI section was actually fairly straight forward and illustrative and even included an informative chapter that included Jini. The Design Patterns book has done a good job of explaining the Decorator pattern, something that I can't do with a pencil and paper in front of someone. Both books have been good references for me to pass along to other developers.&lt;br /&gt;&lt;br /&gt;If only there was a pattern to remove outdated cliches two paragraphs ago.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-3547192948374768042?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/3547192948374768042/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2008/02/designing-head-patterns.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/3547192948374768042'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/3547192948374768042'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2008/02/designing-head-patterns.html' title='Designing Head Patterns'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_UGOF73TqM5A/R6aUjRNRJsI/AAAAAAAAAE0/JWbMHF-Ro3M/s72-c/757px-Decorator_UML_class_diagram.svg.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-5641069982032731393</id><published>2008-02-01T21:47:00.000-05:00</published><updated>2008-02-01T22:06:37.711-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='jini'/><category scheme='http://www.blogger.com/atom/ns#' term='distributed computing'/><title type='text'>Trying to Work (Together)</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://commons.wikimedia.org/wiki/Image:LLW_Aladdin_genie.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_UGOF73TqM5A/R6PZ_hNRJrI/AAAAAAAAAEs/H-dQEhOqUpM/s320/800px-LLW_Aladdin_genie.jpg" border="0" alt="Photo by Jerry Daykin, re-used with permission from the Wikimedia Project" id="BLOGGER_PHOTO_ID_5162209283165726386" /&gt;&lt;/a&gt;I'm currently bashing my head against a wall. Both physically and metaphysically.&lt;br /&gt;&lt;br /&gt;Nothing is cooler than &lt;a href="/2008/01/jini-in-skull.html"&gt;Jini&lt;/a&gt;. However, unfortunately nothing is more obscure than Jini. It is something that exists etherally as &lt;a href="http://www.jini.org/wiki/Category:Jini_Specifications"&gt;a specification&lt;/a&gt;, not necessarily (although &lt;a href="https://starterkit.dev.java.net/"&gt;occasionally&lt;/a&gt;) as an implementation. It's the how, not the what. It's an adverb. Or something. My brain is lightly fried.&lt;br /&gt;&lt;br /&gt;See, you can start with Jini's reference implementation via the &lt;a href="https://starterkit.dev.java.net/"&gt;starter kit&lt;/a&gt;, which exists as a concrete example of the specification. However, the last release was at the end of 2005. This is probably due to this implementation being picked up by the &lt;a href="http://incubator.apache.org/"&gt;Apache Incubator&lt;/a&gt; and turned into &lt;a href="http://incubator.apache.org/river/RIVER/index.html"&gt;Apache River&lt;/a&gt;. Apache River does seem to be under active development but has yet to issue &lt;a href="http://incubator.apache.org/river/RIVER/downloads.html"&gt;an official release&lt;/a&gt; and has distributed just one release candidate.&lt;br /&gt;&lt;br /&gt;Alright... so the Sun/Apache standard implementation is in transition. Who else has Jini services ready? &lt;a href="https://rio.dev.java.net/"&gt;Rio&lt;/a&gt; is a java.net project that appears to be both flexible as well as standards-compliant, so it appears to be a contender. There even appears to be &lt;a href="https://rio.dev.java.net/servlets/SummarizeList?listName=commits"&gt;moderate development traffic&lt;/a&gt;. However the stable binaries don't seem to match the current on-line documentation, and I haven't been able to download the latest milestone release. It does appear to have Spring integration however - and may yet be a contender. But until the documentation syncs up with the latest stable release, it's a bit hard to follow.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.cheiron.org/"&gt;Cheiron&lt;/a&gt; also has an implementation with &lt;a href="http://www.cheiron.org/seven/index.html"&gt;Seven&lt;/a&gt; that is Jini-compliant, and appears to be receiving some good development traffic as well. I'm still researching how to go about implementation, and their docs currently match up with their releases. I'm trying to (still) read their documentation and see what I need to do to get up to speed. It appears that most people discussing Jini in forums use Seven Suite as their implementation of choice, although Rio has a strong following as well due to its ease of Spring integration and nice administrative tools.&lt;br /&gt;&lt;br /&gt;But for me this means I'm writing a helluva lot of "Hello World" and "Echo" applications, reading until my eyes bleed and trying to figure out how to get this all to work under a local development environment. Jini has been around forever... maybe I'm just having a hard time catching up with the rest of the world.&lt;br /&gt;&lt;br /&gt;I'm hoping &lt;a href="http://www.springframework.org/spring-integration"&gt;Spring Integration&lt;/a&gt; makes this all a bit more straight-forward for complete knobs like myself. Please oh please tell me they're adding Jini into the next milestone. Having ubiquitous services over a self-healing network is just too good. I'd love to be able to scale just by plugging in a server and walking away.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-5641069982032731393?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/5641069982032731393/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2008/02/trying-to-work-together.html#comment-form' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/5641069982032731393'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/5641069982032731393'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2008/02/trying-to-work-together.html' title='Trying to Work (Together)'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_UGOF73TqM5A/R6PZ_hNRJrI/AAAAAAAAAEs/H-dQEhOqUpM/s72-c/800px-LLW_Aladdin_genie.jpg' height='72' width='72'/><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-8749205393896072854</id><published>2008-01-28T21:50:00.000-05:00</published><updated>2008-01-28T22:02:26.844-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='nokia'/><category scheme='http://www.blogger.com/atom/ns#' term='trolltech'/><category scheme='http://www.blogger.com/atom/ns#' term='qt'/><title type='text'>Nokia Acquires Trolltech &amp; Qt</title><content type='html'>&lt;a href="http://trolltech.com/"&gt;Trolltech&lt;/a&gt;, maker of my favorite development platform &lt;a href="http://trolltech.com/products/qt/homepage"&gt;Qt 4&lt;/a&gt;, just &lt;a href="http://trolltech.com/28012008/28012008"&gt;announced they're being purchased by Nokia&lt;/a&gt;. Damn.&lt;br /&gt;&lt;br /&gt;History has pretty much shown that the independent, open-source shops being purchased by mega-corps have largely resulted in a slovenly product. Novell's purchase of SuSE has resulted in a distro that kernel dumps... &lt;i&gt;kernel dumps&lt;/i&gt; occasionally on bootup. I don't hold fantastic hopes for Qt 4 unfortunately.&lt;br /&gt;&lt;br /&gt;It appears that others share my scepticism. A good deal of &lt;a href="http://lwn.net/Articles/266744/"&gt;comments to LWN&lt;/a&gt; - which still boasts a pretty coherent readership - seems to also have the sort of timidity stemming from being burned before. The Register, which &lt;a href="http://www.regdeveloper.co.uk/2008/01/28/nokia_acquires_trolltech/"&gt;prints an overall positive article&lt;/a&gt;, still feels it needs to assert Nokia has made claims of continuing Qt development.&lt;br /&gt;&lt;br /&gt;It feels at the same time like the OSS world is shrinking and expanding. While awareness and adoption is at an all-time high, the high-profile projects are starting to be absorbed into the same machine they raged against.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-8749205393896072854?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/8749205393896072854/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2008/01/nokia-acquires-trolltech-qt.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/8749205393896072854'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/8749205393896072854'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2008/01/nokia-acquires-trolltech-qt.html' title='Nokia Acquires Trolltech &amp; Qt'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-8908590140194782538</id><published>2008-01-19T15:47:00.000-05:00</published><updated>2008-02-03T23:33:31.028-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dual monitor'/><category scheme='http://www.blogger.com/atom/ns#' term='kvm'/><category scheme='http://www.blogger.com/atom/ns#' term='synergy'/><title type='text'>Keyboard and Mouse Synergy</title><content type='html'>I've been using &lt;a href="http://synergy2.sourceforge.net/"&gt;Synergy&lt;/a&gt; for... what... like three years now? It's one of those integral pieces of software that I can't do without anymore. If you ever have craved a dual-screen setup for your laptop, but still want to use your desktop at the same time, Synergy is the perfect thing for you.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://synergy2.sourceforge.net/"&gt;Synergy&lt;/a&gt; works like a KVM in reverse. You give it two or more machines, each with its own display. Pick the machine with the nicest keyboard and mouse - that will become the "host." You tell Synergy where the other machines' monitors are located (i.e. the laptop is to the left of the desktop's monitor) and Synergy will transmit all keyboard and mouse events to the other machines. You basically have connected your mouse and keyboard to your remote machines via TCP/IP.&lt;br /&gt;&lt;br /&gt;For example, let's say you have a desktop at home and a laptop at work. Pretty typical setup. And you have a nice dual-monitor setup at work: you have your laptop's monitor on the left side of your desk, and a nice DVI monitor on the right side of your desk to use. When you get home, you'd like to have the same sort of setup... except you don't want to detach your desktop's monitor at home and re-attach it to your laptop every day.&lt;br /&gt;&lt;br /&gt;Synergy will connect your laptop and your desktop together at home so one keyboard/mouse can control the contents of both screens. Copy and paste, lock screens, whatever you like. You can't drag-and-drop files from one desktop to another mind you - they're still physically separate machines. But you can verily easily browse the Web on one monitor and code in the other, all using the same keyboard.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://synergy2.sourceforge.net/"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_UGOF73TqM5A/R5Jk3cMTA6I/AAAAAAAAAEk/2KWpN7rKVVw/s400/warp.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5157295426915992482" /&gt;&lt;/a&gt;&lt;br /&gt;The above image is translated from &lt;a href="http://synergy2.sourceforge.net/"&gt;http://synergy2.sourceforge.net/about.html&lt;/a&gt; - but unlike the source image it isn't animated (thanks blogspot). It gives you a sense of how the desktops can sit side by side and Synergy allows the mouse cursor to "hop" over to the other screen. Do take a look at the animated version on Synergy's site to get a better sense of it.&lt;br /&gt;&lt;br /&gt;It's cross platform, so Linux desktops and Windows desktops can still work well together. Even works with OS X. So your PowerBook can share a screen with your WinXP desktop alongside your Linux server. Nifty!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-8908590140194782538?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/8908590140194782538/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2008/01/keyboard-and-mouse-synergy.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/8908590140194782538'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/8908590140194782538'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2008/01/keyboard-and-mouse-synergy.html' title='Keyboard and Mouse Synergy'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_UGOF73TqM5A/R5Jk3cMTA6I/AAAAAAAAAEk/2KWpN7rKVVw/s72-c/warp.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-2268703435624186584</id><published>2008-01-15T22:49:00.000-05:00</published><updated>2008-01-15T22:49:58.963-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='jini'/><category scheme='http://www.blogger.com/atom/ns#' term='rmi'/><category scheme='http://www.blogger.com/atom/ns#' term='j2ee'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><title type='text'>Jini in the Skull</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_UGOF73TqM5A/R4FGkcMTA5I/AAAAAAAAAEc/i9jvq8eMoRs/s1600-h/Chess.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_UGOF73TqM5A/R4FGkcMTA5I/AAAAAAAAAEc/i9jvq8eMoRs/s320/Chess.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5152477040545563538" /&gt;&lt;/a&gt;Now that I have my uber-huge project out the door, I'm trying to think smarter about development in general. I kept thinking that being smarter about development meant thinking bigger - so I initially tried to get more involved in the infrastructure of things. But it wasn't a good fit in my brain - you can't lose yourself in a PowerEdge like you can lose yourself in a stream of bytecode.&lt;br /&gt;&lt;br /&gt;This hit home when I was talking to a previously C++ programmer at work. Because I'm a) lazy and b) often muddle explanations, I often tell new Java developers... whilst stammering and mealy-mouthed... that Java passes objects by reference. This quickly helps people understand(ish) why setting a value on an Object inside a method doesn't necessitate a return value. However, when I say that I'm perpetuating a distinctly wrong concept. One I should be ashamed about.&lt;br /&gt;&lt;br /&gt;I try to avoid the long conversation that ensues, but I should tell developers the truth. Java &lt;u&gt;always&lt;/u&gt; passes by value, &lt;i&gt;never&lt;/i&gt; by reference. In fact, it passes references by value. Most people look at me like a Buick is growing out of my head when I say "passes references by value." But the fact is that variables only hold primitives and references, and are always passed by value.&lt;br /&gt;&lt;br /&gt;Take a look at &lt;a href="http://javadude.com/articles/passbyvalue.htm"&gt;Java is Pass-By-Value, Dammit!&lt;/a&gt; It all boils down to this fact: C and Java always pass by value... that's why you can't do the standard "swap" function. For example, in C++ you might do:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;Object hello = new("hello");&lt;br /&gt;Object world = new("world");&lt;br /&gt;&lt;br /&gt;swap(hello, world);&lt;br /&gt;&lt;br /&gt;printf("%s", hello);&lt;br /&gt;printf("%s", world);&lt;br /&gt;&lt;br /&gt;void swap(Object obj1, Object obj2) {&lt;br /&gt;  Object swap = obj1;&lt;br /&gt;  obj1 = obj2;&lt;br /&gt;  obj2 = swap;&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;This transposes the value in obj1 with the one in obj2. You should see "world hello" from running this craptastic pseudocode. Try this same code in Java and nothing happens - you've locally overwritten some values, but you didn't swap your references:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;Object hello = new Object("hello");&lt;br /&gt;Object world = new Object("world");&lt;br /&gt;&lt;br /&gt;swap(hello, world);&lt;br /&gt;&lt;br /&gt;System.out.println(hello);&lt;br /&gt;System.out.println(world);&lt;br /&gt;&lt;br /&gt;void swap(Object obj1, Object obj2) {&lt;br /&gt;Object swap = obj1;&lt;br /&gt;obj1 = obj2;&lt;br /&gt;obj2 = swap;&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Here you'll just get "hello world" out - your references remained intact, because you passed by value.&lt;br /&gt;&lt;br /&gt;This is ultimately a cleaner way to develop... so it's a major plus for both C and Java. And my New Year's resolution is to stop telling people that Java passes by reference just so I can end the conversation sooner.&lt;br /&gt;&lt;br /&gt;On the flip side of the complexity coin, I've been reading the &lt;a href="http://www.jini.org/wiki/Main_Page"&gt;the Jini specification&lt;/a&gt; by the Jini community as well as &lt;a href="http://safari.oreilly.com/0672322587"&gt;Jini and JavaSpaces Application Development&lt;/a&gt; by Robert Flenner. Jini has evidently been around forever, but I've only recently become interested in it. Remember the old pre-turn-of-the-century adage that Java would be running on everything in your house, from your kitchen toaster to the fridge? Evidently around 2000 or so Jini was sold as becoming the premier way Jini could allow your toaster to auto-discover your refrigerator and... er... do... heating and cooling... stuff. Who the hell knows. The idea of automagically connected and integrated micro-device clusters communicating across a mesh network is cool, but practical consumer applications are pretty much nil. Then once EJB's started incorporating RMI, Jini came back to the forefront as an easy way to do the heavy lifting of RMI without the thick refried JavaBean layer.&lt;br /&gt;&lt;br /&gt;Once you get Jini up and running, it is wicked cool. Start up your Jini registrar and then &lt;b&gt;poof&lt;/b&gt;, services get published across a network. Look for a remote service and &lt;b&gt;poof&lt;/b&gt; you can discover it and invoke it - no need for stubs or manual marshalling. Once you get the Jini infrastructure up, you don't have to teach developers how to use it... they just implement an interface and the rest is done for them. You can have a mesh network of peer-to-peer nodes up and running within seconds, and the actual node developers don't even know they've done it.&lt;br /&gt;&lt;br /&gt;No crappy WSDL's. No UDDI. No thick &amp; slow SOAP XML transport over HTTP. Bytecode and serialized objects all the way. We're not just talking a faster mode of transport, we're talking about delving down two entire network &lt;i&gt;layers&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;The application for such technology is mind-boggling... which maybe is why people aren't using it as much as they could. Damn shame, too.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-2268703435624186584?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/2268703435624186584/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2008/01/jini-in-skull.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/2268703435624186584'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/2268703435624186584'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2008/01/jini-in-skull.html' title='Jini in the Skull'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_UGOF73TqM5A/R4FGkcMTA5I/AAAAAAAAAEc/i9jvq8eMoRs/s72-c/Chess.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-26521688397642281</id><published>2008-01-03T21:25:00.000-05:00</published><updated>2008-01-03T21:40:24.627-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='opensuse'/><category scheme='http://www.blogger.com/atom/ns#' term='orcs and elves'/><category scheme='http://www.blogger.com/atom/ns#' term='mythtv'/><category scheme='http://www.blogger.com/atom/ns#' term='orange box'/><category scheme='http://www.blogger.com/atom/ns#' term='chacha'/><category scheme='http://www.blogger.com/atom/ns#' term='nds'/><title type='text'>Now Maybe We Can Talk</title><content type='html'>Well... it's out. The &lt;a href="http://resources.chacha.com/pr_text_service.pdf"&gt;press releases&lt;/a&gt; were finally sent out, the media embargo was lifted, and my big no-sleep-'till-prod project has &lt;a href="http://www.news.com/8301-10784_3-9838019-7.html?part=rss&amp;subj=news&amp;tag=2547-1_3-0-20"&gt;finally been announced to the public&lt;/a&gt;. It was almost four months ago I last &lt;a href="/2007/09/prep-exit-music.html"&gt;prepped the exit music&lt;/a&gt;, and hopefully I'm back for a little while now.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://apricot.blender.org/"&gt;Project Apricot&lt;/a&gt; is in full swing, the NDS &lt;a href="http://dldi.drunkencoders.com/index.php?title=Datel_Games_'n'_Music_(microSD)"&gt;widely available homebrew cart&lt;/a&gt;, I'm still filing bugs for openSUSE 10.3, accelerated MPEG2 playback &lt;a href="/2007/12/left-undone.html"&gt;isn't working on my Mythbox&lt;/a&gt;, I finally got a copy of &lt;a href="http://orange.half-life2.com/"&gt;The Orange Box&lt;/a&gt; along with a copy of &lt;a href="http://www.orcsandelves.com/"&gt;Orcs and Elves&lt;/a&gt; for the NDS. There's plenty to do.&lt;br /&gt;&lt;br /&gt;In my five-minutes-here-five-minutes there I've been enjoying &lt;a href="http://www.armadilloaerospace.com/n.x/johnc/recent%20updates/archive?news_id=322"&gt;Carmack's mobile-turned-DS title&lt;/a&gt;, although it took me a while to adjust my frame of reference. Don't expect more than a turn-based DooM mod... it's a sprite-based engine that is first person but completely turn based. But after you adjust your expectations you realize it's a return to form of sorts. Carmack was a pencil-and-paper AD&amp;D player, and such roots definitely go deep in this title. You can see where his experience as a DM sparked a lot of good ingenuity and design into a rather primitive (but imminently playable) title.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-26521688397642281?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/26521688397642281/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2008/01/now-maybe-we-can-talk.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/26521688397642281'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/26521688397642281'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2008/01/now-maybe-we-can-talk.html' title='Now Maybe We Can Talk'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-5314899526337942923</id><published>2007-12-05T22:38:00.000-05:00</published><updated>2007-12-05T22:54:53.317-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pvr'/><category scheme='http://www.blogger.com/atom/ns#' term='opensuse'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='mythtv'/><category scheme='http://www.blogger.com/atom/ns#' term='deskblocks'/><category scheme='http://www.blogger.com/atom/ns#' term='xvmc'/><category scheme='http://www.blogger.com/atom/ns#' term='consultcomm'/><title type='text'>Left Undone</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_UGOF73TqM5A/R1dyRYYLaRI/AAAAAAAAAEU/KglEOPi8rp8/s1600-h/Veal+Farm.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_UGOF73TqM5A/R1dyRYYLaRI/AAAAAAAAAEU/KglEOPi8rp8/s200/Veal+Farm.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5140703142593915154" /&gt;&lt;/a&gt;I'm so damn tired. And I'm leaving so many things left undone.&lt;br /&gt;&lt;br /&gt;It's amazing to me how close Novell can get with openSUSE, and how far away they still remain. I've known even anti-SuSE people converting away from Fedora Core or Ubuntu lately, due to its (relative) stability, out-of-the-box Compiz and working wifi drivers. But it seems they're ignoring fixes to some pretty obvious issues, even when the answer is served up to them on a silver platter.&lt;br /&gt;&lt;br /&gt;Case in point: &lt;a href="https://bugzilla.novell.com/show_bug.cgi?id=330995"&gt;Intel wireless 3945 not connecting openSUSE 10.3&lt;/a&gt;. Ben gave patches, source RPMs, binary RPMs, explicit debug steps, log files... everything. &lt;b&gt;In freakin' October&lt;/b&gt;. And its still not released via Novell's update service. It's a big, obvious issue... and getting no attention.&lt;br /&gt;&lt;br /&gt;There are so many things I need to take care of, too. I have an entire graveyard of half-completed electronic assemblies that need to be pieced together into some working mechanism. I need to research how I can get &lt;a href="http://www.mythtv.org/wiki/index.php/XvMC"&gt;XvMC&lt;/a&gt; to freakin' work on my &lt;a href="/2007/02/retelling-of-myth-myth-part.html"&gt;VIA EPIA&lt;/a&gt; box. Evidently I decided to pick the one "pro" chipset that works with virtually no other distributions out there, due to the complete insanity behind driver support. No accelerated MPEG2 to for me until then.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://deskblocks.sourceforge.net/"&gt;DeskBlocks&lt;/a&gt; and &lt;a href="http://consultcomm.sourceforge.net/"&gt;ConsultComm&lt;/a&gt; are both abandonware right now, too. I really want to devote some time to them... especially DeskBlocks... but there's absolutely no freakin' time. I can't get over feeling extremely guilty over leaving a half-eaten OSS project sitting out on SourceForge... bitrotting with the rest of the half-eaten projects out there.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-5314899526337942923?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/5314899526337942923/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2007/12/left-undone.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/5314899526337942923'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/5314899526337942923'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2007/12/left-undone.html' title='Left Undone'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_UGOF73TqM5A/R1dyRYYLaRI/AAAAAAAAAEU/KglEOPi8rp8/s72-c/Veal+Farm.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-2554681152580792373</id><published>2007-11-21T22:05:00.000-05:00</published><updated>2007-11-21T22:06:36.341-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='homebrew'/><category scheme='http://www.blogger.com/atom/ns#' term='nds'/><category scheme='http://www.blogger.com/atom/ns#' term='flash cartridges'/><title type='text'>Games 'n' Music Finally Viable?</title><content type='html'>It appears that the widely available Games N Music homebrew cartridge has finally been hacked - &lt;a href="http://dldi.drunkencoders.com/index.php?title=Datel_Games_'n'_Music_(microSD)"&gt;the filesystem can now be written to&lt;/a&gt; after all. It now looks to be a possible development platform...&lt;br /&gt;&lt;br /&gt;Dammit. Wish I had time to mess with it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-2554681152580792373?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/2554681152580792373/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2007/11/games-n-music-finally-viable.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/2554681152580792373'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/2554681152580792373'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2007/11/games-n-music-finally-viable.html' title='Games &apos;n&apos; Music Finally Viable?'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-727794592684448874</id><published>2007-10-07T16:53:00.000-04:00</published><updated>2007-10-07T16:57:17.965-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='redhat'/><category scheme='http://www.blogger.com/atom/ns#' term='opensuse'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='linux desktop'/><category scheme='http://www.blogger.com/atom/ns#' term='suse'/><title type='text'>SuSE Ten Point Ugh</title><content type='html'>It definitely seems like Novell's &lt;a href="http://en.opensuse.org/Welcome_to_openSUSE.org"&gt;openSUSE&lt;/a&gt; distribution has taken a page from RedHat's Fedora Core. RedHat took their mainline distribution and split it into two - an Enterprise product, and a "community" product. Ultimately their community product had a lot of problems with communication and collaboration, although it seems they've leveled off since. The "Core" distro was really a way to publicly test and iron out bugs for their enterprise product. &lt;br /&gt;&lt;br /&gt;10.3 definitely feels this way. Although they have an &lt;a href="https://bugzilla.novell.com/buglist.cgi?bug_file_loc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_id=&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=NEEDINFO&amp;bug_status=REOPENED&amp;bugidtype=include&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;classification=openSUSE&amp;email1=&amp;email2=&amp;emailassigned_to1=1&amp;emailassigned_to2=1&amp;emailcc2=1&amp;emailqa_contact2=1&amp;emailreporter2=1&amp;emailtype1=substring&amp;emailtype2=substring&amp;field-1-0-0=classification&amp;field-1-1-0=product&amp;field-1-2-0=bug_status&amp;field0-0-0=noop&amp;keywords=&amp;keywords_type=anywords&amp;long_desc=&amp;long_desc_type=substring&amp;product=openSUSE%2010.3&amp;query_format=advanced&amp;remaction=&amp;short_desc=&amp;short_desc_type=allwordssubstr&amp;status_whiteboard=&amp;status_whiteboard_type=allwordssubstr&amp;type-1-0-0=anyexact&amp;type-1-1-0=anyexact&amp;type-1-2-0=anyexact&amp;type0-0-0=noop&amp;value-1-0-0=openSUSE&amp;value-1-1-0=openSUSE%2010.3&amp;value-1-2-0=NEW%2CASSIGNED%2CNEEDINFO%2CREOPENED&amp;value0-0-0=&amp;votes=&amp;order=bugs.bug_severity%20&amp;query_based_on="&gt;open Bugzilla&lt;/a&gt;, there are lots of bugs that should have been caught. Eclipse &lt;a href="https://bugzilla.novell.com/show_bug.cgi?id=328671"&gt;doesn't even start&lt;/a&gt;, Intel wireless cards have problems with &lt;a href="https://bugzilla.novell.com/show_bug.cgi?id=330995#c7"&gt;NetworkManager&lt;/a&gt; and &lt;a href="https://bugzilla.novell.com/show_bug.cgi?id=308895"&gt;autoplug&lt;/a&gt;, and Xgl has crashes and other &lt;a href="https://bugzilla.novell.com/show_bug.cgi?id=299581"&gt;weird problems&lt;/a&gt;. Novell is even looking to awkwardly &lt;a href="http://en.opensuse.org/KDE4"&gt;cram all of KDE into /usr&lt;/a&gt;, like RedHat infamously did. &lt;a href="http://lists.kde.org/?l=kde-devel&amp;m=93612445530790&amp;w=2"&gt;Mosfet blew a mosfet &lt;/a&gt; about this layout, and rightfully so.&lt;br /&gt;&lt;br /&gt;I had a similar volume of really, &lt;i&gt;really&lt;/i&gt; &lt;a href="/2006/12/send-suse-back.html"&gt;annoying bugs in 10.2&lt;/a&gt;, although most were eventually remedied after several weeks. And I even grew to like some of &lt;a href="/2006/12/sloppy-suse.html"&gt;features that annoyed me at first&lt;/a&gt;. But the first few months of a release are choppy at best.&lt;br /&gt;&lt;br /&gt;So I'll hold off on any big judgement. The problem with Linux desktop releases is that everything &lt;i&gt;is really close to almost working&lt;/i&gt;... so close that it's maddening. I think that's why people fly off the handle when a new release comes out - you're so close to having a perfect setup, it's absolutely maddening when a few nagging bugs completely screw it up.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-727794592684448874?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/727794592684448874/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2007/10/suse-ten-point-ugh.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/727794592684448874'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/727794592684448874'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2007/10/suse-ten-point-ugh.html' title='SuSE Ten Point Ugh'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-8528334557957037002</id><published>2007-09-15T20:51:00.000-04:00</published><updated>2007-09-15T20:54:57.413-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='optimus rhyme'/><category scheme='http://www.blogger.com/atom/ns#' term='goodbye'/><category scheme='http://www.blogger.com/atom/ns#' term='mc frontalot'/><title type='text'>Prep the Exit Music</title><content type='html'>Started a new job this week. The motivational speech from the .com's owner was "if you're not working 80 hours here, let me know. I'll write your a letter of recommendation and get you out of here."&lt;br /&gt;&lt;br /&gt;So, alas, I'm going to fade away into work. I'll let the two most nerdcore l33t play the music as I sign off into the sunset.&lt;br /&gt;&lt;br /&gt;You know I never post YouTube videos on this blog, right? Right? So trust me when I say this is deserving of breaking my streak.&lt;br /&gt;&lt;br /&gt;Until later...&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="350"&gt;&lt;param name="movie" value="http://www.youtube.com/v/gqbe3nnqu80"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/gqbe3nnqu80" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-8528334557957037002?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/8528334557957037002/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2007/09/prep-exit-music.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/8528334557957037002'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/8528334557957037002'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2007/09/prep-exit-music.html' title='Prep the Exit Music'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-4724812560938970539</id><published>2007-09-03T15:24:00.000-04:00</published><updated>2007-10-07T21:58:36.455-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='game development'/><category scheme='http://www.blogger.com/atom/ns#' term='crystal space'/><category scheme='http://www.blogger.com/atom/ns#' term='computer science'/><title type='text'>Crystal Chair</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_UGOF73TqM5A/Rtxgwct5ppI/AAAAAAAAAEM/99kEV4xagkY/s1600-h/crystalchair.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_UGOF73TqM5A/Rtxgwct5ppI/AAAAAAAAAEM/99kEV4xagkY/s320/crystalchair.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5106062462990001810" /&gt;&lt;/a&gt;I remember, still quite distinctly, one particular moment in the December of 2002. My job wasn't what it once was, and I was starting to contribute more into some random open source projects. I wanted to see what game engines "looked like," so I downloaded the developer documentation for &lt;a href="http://www.crystalspace3d.org"&gt;CrystalSpace&lt;/a&gt; on my (now destroyed) iPAQ. It was December however - and of course I had to do a blitz of Christmas shopping.&lt;br /&gt;&lt;br /&gt;While walking all over the mall's green turf, I tried to read the CrystalSpace HTML docs. Finally I took a break and crashed in a lounge chair inside a Von Maur and poured through half the pages I had sync'd. It was in that chair that I was first turned on to CrystalSpace's automagic "smart pointers." When things finally clicked about factory design patterns. When I finally saw how platform-independent file mounting could work. Things largely fit into place for the first time in my head, and a rush of Computer Science courses that were starting to leak out of my brain finally kicked into place. It all weirdly made sense.&lt;br /&gt;&lt;br /&gt;I still think of that December of 2002 whenever I pass by that chair. Last year, before I aged another decade, I provided myself with a crap-or-get-off-the-pot objective: to finally have a working game out by February of 2007 or otherwise just give up the ghost. While I did some extensive hacking, spent a lot of late nights and tried to do it, in the end I just wasn't able to produce the goods. I have a &lt;a href="http://deskblocks.sourceforge.net/"&gt;partially completed project&lt;/a&gt; out there, but in the end I wasn't able to make it happen. I finally &lt;a href="/2007/04/deckeregos-razor.html"&gt;gave up the daydream&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I passed by the chair yesterday and thought about how fall was coming soon. Christmas shopping season. And how I'm not going to be perched in that chair pouring over docs anymore.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-4724812560938970539?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/4724812560938970539/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2007/09/crystal-chair.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/4724812560938970539'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/4724812560938970539'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2007/09/crystal-chair.html' title='Crystal Chair'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_UGOF73TqM5A/Rtxgwct5ppI/AAAAAAAAAEM/99kEV4xagkY/s72-c/crystalchair.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-8521833920136827337</id><published>2007-09-03T15:15:00.001-04:00</published><updated>2007-09-03T15:22:53.977-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PlanetPenguin Racer'/><category scheme='http://www.blogger.com/atom/ns#' term='arcade'/><category scheme='http://www.blogger.com/atom/ns#' term='Tux Racer'/><category scheme='http://www.blogger.com/atom/ns#' term='gaming'/><title type='text'>Sitting Upright with Tux</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_UGOF73TqM5A/RtxdZst5poI/AAAAAAAAAEE/swMHQR3crpY/s1600-h/tuxracer.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_UGOF73TqM5A/RtxdZst5poI/AAAAAAAAAEE/swMHQR3crpY/s400/tuxracer.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5106058773613094530" /&gt;&lt;/a&gt;I saw the weirdest thing in a local  putt-putt establishment today. Sitting front-and-center was an upright arcade version of an old favorite, &lt;a href="http://tuxracer.sourceforge.net/"&gt;Tux Racer&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Everyone in my family, young and old alike, has played a more updated version of Tux Racer on my Linux box at home. &lt;a href="http://www.planetpenguinracer.com/wiki/index.php?title=Main_Page"&gt;PlanetPenguin Racer&lt;/a&gt; was the more "finished product," granting desperately needed functionality and map layouts to its elder version. I'm used to it being an open source game on every Linux distro that even two year olds love to play.&lt;br /&gt;&lt;br /&gt;Evidentially &lt;a href="http://roxorgames.com/"&gt;Roxor Games&lt;/a&gt; turned this into an upright. It was so weird seeing the familiar Tux splash screen behind a quarter slot... I had to do a double and triple take. And then take a crappy cell phone photo. But it was fantastic to see it occupying floor space. It's like the smell of roast beef and mashed potatoes when you walk through the front door. Not the front door of an arcade... the front door of... crap, forget it. &lt;br /&gt;&lt;br /&gt;It was just cool to see.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-8521833920136827337?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/8521833920136827337/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2007/09/sitting-upright-with-tux.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/8521833920136827337'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/8521833920136827337'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2007/09/sitting-upright-with-tux.html' title='Sitting Upright with Tux'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_UGOF73TqM5A/RtxdZst5poI/AAAAAAAAAEE/swMHQR3crpY/s72-c/tuxracer.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-4690746156941767884</id><published>2007-08-30T22:17:00.001-04:00</published><updated>2009-04-06T08:49:18.435-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='work'/><category scheme='http://www.blogger.com/atom/ns#' term='life'/><title type='text'>Best Intentions</title><content type='html'>I seem to have hit an interesting cycle of professional life. Hire, work 70 hour weeks, burnout. Hire, 70 hour weeks, burnout. My independent development fits into the cycle. When I did work for Planeshift I was in the burnout phase - but then I ran out of time to hack when I started to look for new jobs in the "quit" phase. I lost my Planeshift development responsibilities and instead started flailing about in my new (paid) job. &lt;br /&gt;&lt;br /&gt;Recently I went through another burnout period, which yeilded the beginnings of &lt;a href="http://consultcomm.sourceforge.net"&gt;ConsultComm&lt;/a&gt; version 4 and &lt;a href="http://deskblocks.sourceforge.net"&gt;DeskBlocks&lt;/a&gt;. But ultimately before I was even finished I started to interview for new jobs, quit my old one and move on to the flurry of a new corporate projects.&lt;br /&gt;&lt;br /&gt;I'm starting the new job soon, and I'm sure that means my open-source development will once again need to go on hold for a bit. I'm hoping to finish my latest round of &lt;a href="http://consultcomm.sourceforge.net"&gt;ConsultComm&lt;/a&gt; bugfixes first, so I can at least leave with a clean conscience.&lt;br /&gt;&lt;br /&gt;Paul Graham wrote a good article that pretty much explains the above circumstance in his article &lt;a href="http://www.paulgraham.com/head.html"&gt;“Holding a Program in One’s Head”&lt;/a&gt;, which pretty accurately reflects the difficulties of hacking. Code often exists like a house of cards in your head, and one weak wind can send it all into collapsination. It's really bad in the office, when random walkby's and phone calls are pretty much modus operendi.&lt;br /&gt;&lt;br /&gt;At least I'm starting over again. And a fresh start means I might just make it happen this time, right? Right?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-4690746156941767884?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/4690746156941767884/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2007/08/best-intentions.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/4690746156941767884'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/4690746156941767884'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2007/08/best-intentions.html' title='Best Intentions'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-8019146246710657964</id><published>2007-07-26T21:34:00.000-04:00</published><updated>2007-07-26T22:09:53.424-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='One Laptop Per Child'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><category scheme='http://www.blogger.com/atom/ns#' term='Amiga'/><title type='text'>We Suck Less Than Our Competition!</title><content type='html'>My head is a cloud from the latest plague that I caught, so I'll make this disjointed and brief.&lt;br /&gt;&lt;br /&gt;Everyone (myself included) has been caught up in the &lt;a href="http://www.wired.com/software/coolapps/news/2007/07/linux_desktop?currentPage=3"&gt;Linux for the desktop craze&lt;/a&gt;. I do use Linux as my primary desktop 95% of the day, and the other 5% is either a) scanning b) iTunes or c) gaming.&lt;br /&gt;&lt;br /&gt;However there are several things that I have grown... calloused... towards. Audio can be wonky at times, with either devices being exclusively reserved. Things will become completely unresponsive during high I/O loads. Still, it's a developer's panacea... things work sensically, have an easy interface and are interoperable.&lt;br /&gt;&lt;br /&gt;Still, I can understand why &lt;a href="http://apcmag.com/6735/interview_con_kolivas"&gt;Con Kolivas was frustrated&lt;/a&gt;. He did his best to fix up CPU scheduling, make things more desktop-friendly, and in the end his kernel patches were nibbled on and digested into someone else's mainline patch. I can see both sides of the story at times... but I think advocates like Kolivas are desperately needed in the Linux desktop world. &lt;i&gt;Especially&lt;/i&gt; when it comes to speed. His argument that our gajillion-gigawatt processors should be cutting through our daily chores like cake... but instead we're dealing with the same lag time as the "desktop search engine" indexes every freakin' file on our 1 TB hard drive.&lt;br /&gt;&lt;br /&gt;A familiar notion nowadays is that of the early zygote of a hacker... addicted to the Amiga 500 or Commodore64. Kolivas brings an interesting perspective on why: hardware no longer sells. We're dealing with the same scraps as we had before, just with increasing amperage. Hardware is sold because of the OS, where the hardware was pushing the OS in the late 80's. And so it has been ever since.&lt;br /&gt;&lt;br /&gt;Or maybe not. Take a look at the &lt;a href="http://news.bbc.co.uk/1/hi/technology/6679431.stm"&gt;XO Laptop&lt;/a&gt; from the One Laptop Per Child project. Do you care what operating system it runs? Nope, the hardware is the thing that drives the device. The OS reflects the hardware's abilities and limitations, but in this instance "operating system" is an abstract notion. You don't care that it's running Linux, or Windows, or OS X... just that it's linking together a mesh network of 50 kids over 20 square miles.&lt;br /&gt;&lt;br /&gt;Notice it has a "view source" key? Kids can evidently take a look at the current running program's source code on-the-fly, in hopes that they'll want to peek under the hood and maybe hack a little.&lt;br /&gt;&lt;br /&gt;Sounds like OLPC is spawning a new generation of Amiga 500 hackers, doesn't it? Both stood to be inspired by "cheap, cheerful, unique" computers that spawned their interest as kids. Here's to hoping that we're encouraging another generation of Kolivas'.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-8019146246710657964?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/8019146246710657964/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2007/07/we-suck-less-than-our-competition.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/8019146246710657964'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/8019146246710657964'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2007/07/we-suck-less-than-our-competition.html' title='We Suck Less Than Our Competition!'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-7188112280597928823</id><published>2007-07-12T18:20:00.000-04:00</published><updated>2007-07-12T18:45:36.171-04:00</updated><title type='text'>My Cheydinhal Home</title><content type='html'>I've been suffering from pretty extreme headaches for the past five weeks, so I decided to take a break from... well... everything and try and relax. Part of that relaxation involved finally finishing the main quest &amp; guild quest in &lt;a href="http://www.elderscrolls.com/"&gt;Oblivion&lt;/a&gt;. It only took fourteen months - better late than never!&lt;br /&gt;&lt;br /&gt;Things have been so crazy busy that I haven't played much of anything at all since I walked away &lt;a href="/2006/07/from-desk-of-deckerego.html"&gt;almost exactly one year ago&lt;/a&gt;. Damn... where does the time go? I've been doing more casual gaming since that fateful summer in 2006 - thanks to Nintendo's solution to &lt;a href="/2006/09/nintendos-marketing-dept-1-my-self.html"&gt;gaming in a bathroom stall&lt;/a&gt;. Now I can fill even the most narrow of crevasses in time with some match-three variation.&lt;br /&gt;&lt;br /&gt;To any point, I finally finished the important quests in Oblivion. I finally trucked back to my home in Cheydinhal, put all my memoirs up for display on my shelves, read a few final &lt;a href="http://til.gamingsource.net/obbooks/"&gt;tomes I had sitting on my desk&lt;/a&gt;, visited a few more scenic locales, then went back to reside My Cheydinhal Home en perpetuity. It was hard to give up, but after a solid three days of gaming I was ready to finally put the DVD-ROM away.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_UGOF73TqM5A/Rpap7n_TjkI/AAAAAAAAAD8/GGjaeKfFyXI/s1600-h/ScreenShot33.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_UGOF73TqM5A/Rpap7n_TjkI/AAAAAAAAAD8/GGjaeKfFyXI/s400/ScreenShot33.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5086439670973435458" /&gt;&lt;/a&gt;&lt;br /&gt;It's been hard to code with the headaches, but I've been trying. I'm working on finishing up &lt;a href="http://sourceforge.net/projects/deskblocks"&gt;Deskblocks&lt;/a&gt; and &lt;a href="http://sourceforge.net/forum/forum.php?forum_id=714591"&gt;rolling out a point release for ConsultComm&lt;/a&gt;. It's just really, really hard to concentrate and code when it feels like a titanium spork inside your dura mater is trying to shovel its way back out through your skull.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-7188112280597928823?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/7188112280597928823/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2007/07/my-cheydinhal-home.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/7188112280597928823'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/7188112280597928823'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2007/07/my-cheydinhal-home.html' title='My Cheydinhal Home'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_UGOF73TqM5A/Rpap7n_TjkI/AAAAAAAAAD8/GGjaeKfFyXI/s72-c/ScreenShot33.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-5995667010879721465</id><published>2007-06-29T09:14:00.000-04:00</published><updated>2007-06-29T09:20:40.894-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ReiserFS'/><category scheme='http://www.blogger.com/atom/ns#' term='wired'/><title type='text'>Wow. Just..... wow.</title><content type='html'>I was always a big fan of ReiserFS. It did a good job on filesystem recovery from sudden calamity, and was great with metadata over many small files. I moved to ext3 recently, despite being incredibly slower, mainly due to the more cautious journalling features.&lt;br /&gt;&lt;br /&gt;I heard about Hans Reiser's wife, him being a suspect and his friend admitting to murder of eight other people. But &lt;a href="http://www.wired.com/techbiz/people/magazine/15-07/ff_hansreiser"&gt;Wired's article on the subject&lt;/a&gt; is an unbelievable piece of art. By juxtaposing code snippets of ReiserFS with the crescendoing story line (especially if you recognize the code), there is an amazing amount of suspense and revelation that works in tandem to the first-hand narrative. Reading &lt;br /&gt;&lt;code&gt;+ if (!JF_ISSET(node, JNODE_HEARD_BANSHEE))&lt;br /&gt;+ warning("nikita-3177", "Parent not found");&lt;/code&gt;&lt;br /&gt;gave me absolute goosebumps.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-5995667010879721465?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/5995667010879721465/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2007/06/wow-just-wow.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/5995667010879721465'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/5995667010879721465'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2007/06/wow-just-wow.html' title='Wow. Just..... wow.'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-2576884907500507393</id><published>2007-06-17T16:34:00.000-04:00</published><updated>2007-06-17T16:54:07.301-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='crystal space'/><title type='text'>A Package On Your Doorstep</title><content type='html'>I first started working with &lt;a href="http://www.crystalspace3d.org/"&gt;CrystalSpace&lt;/a&gt; in 2003. Back then compatibility would change from version to version, building CS was a regular task and CEL was still an up-and-coming project.&lt;br /&gt;&lt;br /&gt;Then this January the team &lt;a href="http://www.crystalspace3d.org/main/Crystal_Space_1.0_and_New_Site"&gt;announced the first stable release&lt;/a&gt; of CrystalSpace; one feature-complete and ready to be production ready. It's amazing how mature the project has become since then... documentation has flourished, CEL has become a fantastic development framework, &lt;a href="http://www.crystalspace3d.org/main/CELstart"&gt;titles can be developed with little to no coding&lt;/a&gt; and &lt;a href="http://b2cs.delcorp.org/index.php/Main_Page"&gt;Blender integration&lt;/a&gt; is now ready for prime time and &lt;a href="/2007/06/ive-never-been-so-excited-for-apricot.html"&gt;sponsored by the Blender project itself&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_UGOF73TqM5A/RnWbC3zXabI/AAAAAAAAAD0/BLwKZOOWVzo/s1600-h/YaST2+CrystalSpace.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_UGOF73TqM5A/RnWbC3zXabI/AAAAAAAAAD0/BLwKZOOWVzo/s320/YaST2+CrystalSpace.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5077134628571539890" /&gt;&lt;/a&gt;Not only that, CrystalSpace has finally hit the prime time: binary packages are now widely available on most Linux distros. Debian has been carrying packages for a while, but now native SuSE RPM's are available via &lt;a href="http://packman.links2linux.org/"&gt;PackMan&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;No, &lt;span style="font-style:italic;"&gt;you&lt;/span&gt; shut up.&lt;br /&gt;&lt;br /&gt;Now people can develop entire titles while only focusing on content creation and scripting, allowing people to focus on what makes a game &lt;span style="font-style:italic;"&gt;a game&lt;/span&gt;. Not only that, there are copious templates and examples for how to build projects. And you no longer have to build packages every night. And it's &lt;span style="font-style:italic;"&gt;open source&lt;/span&gt; and &lt;span style="font-style:italic;"&gt;readily available&lt;/span&gt;. It blows my mind.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-2576884907500507393?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/2576884907500507393/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2007/06/package-on-your-doorstep.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/2576884907500507393'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/2576884907500507393'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2007/06/package-on-your-doorstep.html' title='A Package On Your Doorstep'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_UGOF73TqM5A/RnWbC3zXabI/AAAAAAAAAD0/BLwKZOOWVzo/s72-c/YaST2+CrystalSpace.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-483605438233749446</id><published>2007-06-13T01:13:00.000-04:00</published><updated>2007-06-13T01:37:12.554-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='game development'/><category scheme='http://www.blogger.com/atom/ns#' term='crystal space'/><category scheme='http://www.blogger.com/atom/ns#' term='blender'/><title type='text'>I've Never Been So Excited for an Apricot</title><content type='html'>&lt;a href="http://www.blender.org/"&gt;Blender&lt;/a&gt; has been the model editor of choice for &lt;a href="http://www.crystalspace3d.org/"&gt;CrystalSpace&lt;/a&gt; for a long, long time. Most of &lt;a href="http://community.crystalspace3d.org/"&gt;my CrystalSpace documentation&lt;/a&gt; has revolved around using Blender to create content for CrystalSpace code. The two together are like peanut butter and bananas. Fantastic.&lt;br /&gt;&lt;br /&gt;Recently &lt;a href="http://www.crystalspace3d.org/main/Open_Game_with_Blender_and_Crystal_Space"&gt;Jorrit made an exciting announcement&lt;/a&gt; on behalf of the CS team - &lt;a href="http://sourceforge.net/mailarchive/forum.php?thread_name=d487424e0706102344j5da8d8bfm8216ec18e9c2316c%40mail.gmail.com&amp;forum_name=crystal-main"&gt;Blender and CrystalSpace are partnering&lt;/a&gt; to build &lt;a href="http://www.blender.org/blenderorg/blender-foundation/2007-plans/apricot-open-game/"&gt;Apricot&lt;/a&gt;, an independently developed and completely open game title. To fully understand my unbridled enthusiasm you have to understand &lt;a href="http://www.elephantsdream.org/"&gt;Elephants Dream&lt;/a&gt;, originally called Blender's project Orange. This was an open movie project - a full movie title with &lt;b&gt;all content released under a flexible Creative Commons license&lt;/b&gt;. Textures, models, &lt;i&gt;all production files are freely available&lt;/i&gt;. This did &lt;i&gt;unbelievable&lt;/i&gt; things for Blender. Not only did this give users access to professionally generated content, new documentation and a whole new realm of tutorials it also pushed the envelope for Blender itself. Orange generated demand for whole new genres of features, and kept the Blender development team pushing point release after point release to keep up. If I recall correctly, Blender's hair generation system was largely built due to demands made by artists creating content for Elephants Dream. Not only did the movie promote Blender, it made Blender a production-quality product that could demonstrate it was ready for prime time.&lt;br /&gt;&lt;br /&gt;The same envelope is getting ready to be pushed for CrystalSpace now. That's where my unbridled enthusiasm lies; CrystalSpace has been a commercial-quality 3D engine for a while now, but &lt;i&gt;now&lt;/i&gt; every stage of the production process will be thoroughly tested and fleshed out. While I have no doubt that this project will result in enhanced functionality grown by the demands of the game developers, I'm most excited about the tool chain being completely fleshed out. In my mind while the Blender exporters for CS were fantastic, all the corner cases hadn't been completely covered. With Apricot, model exporters should be polished, skeletal animation should be more integrated into Blender armatures, physics should be more strictly related to Blender riggings and meshes should have attributes that more exactly equate to CrystalSpace equivalents. This should make the entire end-to-end content generation process as smooth as a polished stone. &lt;br /&gt;&lt;br /&gt;Nothing like a real-life, production quality project will take the edges off of the various and sundry tools used for development. It's amazing how much one will forbear when it's not a "huge issue," but when you encounter the same "not a huge issue" twenty times a day it suddenly becomes something worth tackling. Ideas and features may be the result of inspiration, but the remaining 99% of time spent refining a project is sheer perspiration. I'm looking forward to both projects' continued trial by fire, and seeing what has been forged once the fires have quieted down.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-483605438233749446?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/483605438233749446/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2007/06/ive-never-been-so-excited-for-apricot.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/483605438233749446'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/483605438233749446'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2007/06/ive-never-been-so-excited-for-apricot.html' title='I&apos;ve Never Been So Excited for an Apricot'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9951390.post-5301914196997439878</id><published>2007-06-13T00:32:00.000-04:00</published><updated>2007-06-13T00:56:11.813-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='homebrew'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><category scheme='http://www.blogger.com/atom/ns#' term='Opera'/><category scheme='http://www.blogger.com/atom/ns#' term='nds'/><title type='text'>What the NDS and iPhone Have In Common</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_UGOF73TqM5A/Rm909nzXaaI/AAAAAAAAADs/eZpQO9zxp6A/s1600-h/NDS+Opera.jpg"&gt;&lt;img style="float:left; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_UGOF73TqM5A/Rm909nzXaaI/AAAAAAAAADs/eZpQO9zxp6A/s320/NDS+Opera.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5075403907075107234" /&gt;&lt;/a&gt;This past weekend I saw a copy of &lt;a href="http://www.opera.com/products/devices/nintendo/"&gt;Opera for the Nintendo DS&lt;/a&gt; just idly sitting on the store shelf. I picked up a copy and thought to myself "damn, I'm out of the loop. I didn't even realize this was out yet!" Evidentially I picked up an early copy - the release &lt;a href="http://feeds.feedburner.com/~r/Gamelife/~3/123948552/opera_releases_.html"&gt;wasn't reported until the following Monday&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I'm surprised how much I'm using the browser. I didn't think I'd be the type to roam through my house checking random sites on the NDS. But in an age of ubiquitous WebMail and continuously streaming blogs, a device that allows you to quickly scroll through snippets of online text is actually pretty useful. There turns out to be plenty of opportunities where I "just want to check something," such as see if a webcomic has been posted for today or check if I've received new e-mail at work. Instances not exactly worth booting up a laptop, but perfect for just cracking open the NDS and hopping on wireless briefly.&lt;br /&gt;&lt;br /&gt;The DS doesn't have an open third-party SDK, and &lt;a href="/2007/06/muted-games-n-music.html"&gt;no accessible means for running homebrew&lt;/a&gt; currently exists. Instead, Nintendo is hoping that Web applications will grant enough functionality to fill the gap. Sound familiar?&lt;br /&gt;&lt;br /&gt;Steve Jobs' recent keynote hammered home the insistence that while 3rd party API exposure won't be available for the iPhone, &lt;a href="http://simplefeed.informationweek.com/rsrc/link/_/jobs_promises_iphone_will_bring_web_20_to_mobile_659339310?f=5141afc0-01db-11db-20dd-0020ed849a1c"&gt;Web applications will be more than enough&lt;/a&gt; to offer custom functionality. He suggests that a Web browser can be used &lt;i&gt;in lieu&lt;/i&gt; of an ability to launch third-party applications.&lt;br /&gt;&lt;br /&gt;The assertion that modern Web applications, what with their asynchronous JavaScript and XML, can replace standard applications is pretty ridiculous. Can JavaScript monitor what roaming tower your SIM card is using? Er... no. Can XML be used to play Doom? No. While you may be able to monitor a RSS mashup, no applications can leverage the hardware in your hand. Saying that any Web application is going to replace a device's native API is hella stupid.&lt;br /&gt;&lt;br /&gt;But will the lack of third-party applications hurt the iPhone's success? Not likely. Lack of homebrew availability on the NDS hasn't exactly hurt sales all that much. If you do something and do it well, you're going to sell.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9951390-5301914196997439878?l=deckerego.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deckerego.blogspot.com/feeds/5301914196997439878/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deckerego.blogspot.com/2007/06/what-nds-and-iphone-have-in-common.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/5301914196997439878'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9951390/posts/default/5301914196997439878'/><link rel='alternate' type='text/html' href='http://deckerego.blogspot.com/2007/06/what-nds-and-iphone-have-in-common.html' title='What the NDS and iPhone Have In Common'/><author><name>DeckerEgo</name><uri>http://www.blogger.com/profile/06234538763600679177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_UGOF73TqM5A/Rm909nzXaaI/AAAAAAAAADs/eZpQO9zxp6A/s72-c/NDS+Opera.jpg' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
