<?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-35858582</id><updated>2012-02-16T06:07:04.034-06:00</updated><title type='text'>Rick's Pseudo-Random Rants</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://rickpseudorandom.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://rickpseudorandom.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Rick Kimmel</name><uri>http://www.blogger.com/profile/10445122554779658150</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>38</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-35858582.post-2352379876632976414</id><published>2008-12-29T14:29:00.001-06:00</published><updated>2008-12-29T14:29:06.814-06:00</updated><title type='text'>The Glossy Fad</title><content type='html'>&lt;DIV&gt;&lt;B&gt;&lt;U&gt;The Glossy Fad &lt;/U&gt;&lt;/B&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;I'm really looking forward to the glossy fad ending. &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;I'm not just talking about glossy LCD displays, which annoy the heck out of many users because of the glare.&amp;nbsp; I'm talking about glossy bezels, glossy laptop cases, glossy touchpads, glossy handheld gadgets, glossy this, glossy that, and glossy the other thing. &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;Glossy stuff invariably has lots of ugly, greasy, nasty looking fingerprints on it.&amp;nbsp; Sure, glossy stuff looks really nice...if you never touch it.&amp;nbsp; In the real world, though, people handle glossy things, and the beauty of the glossy finish is then entirely defeated.&amp;nbsp; I came to this realization while watching a CNET TV program my TiVo downloads for me weekly.&amp;nbsp; They show off and demonstrate lots of neat tech gadgets, but the greasy, grimy fingerprints that are always all over their gadgets look really disgusting and distracting.&amp;nbsp; Yuck. &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&amp;nbsp; &lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;My opinion was reinforced by watching my iPhone / iPod Touch toting co-workers constantly wipe off their screens before using them.&lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;br /&gt;&lt;DIV&gt;So I, for one, really, really look forward to the end of the stupid glossy fad, and hope mankind will eventually look back on the glossy fad with disdain and incredulity that the glossy fad even happened in the first place. &lt;/DIV&gt;&lt;BR&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35858582-2352379876632976414?l=rickpseudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rickpseudorandom.blogspot.com/feeds/2352379876632976414/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35858582&amp;postID=2352379876632976414' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/2352379876632976414'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/2352379876632976414'/><link rel='alternate' type='text/html' href='http://rickpseudorandom.blogspot.com/2008/12/glossy-fad.html' title='The Glossy Fad'/><author><name>Ed Jensen</name><uri>http://www.blogger.com/profile/16634025597241349823</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-35858582.post-9145357894709063388</id><published>2008-10-30T18:19:00.002-05:00</published><updated>2008-10-30T18:29:07.037-05:00</updated><title type='text'>Social Networking</title><content type='html'>Ok, I give.  I'm in.  I signed up for LinkedIn and started my network.  I resisted for years.  The whole MySpace thing.  Then Facebook.  But they both seemed too immature and it just seemed like the target audiences were a log younger than I am.&lt;br /&gt;&lt;br /&gt;I'm pretty selective about who I add.  That may sound a little arrogant or elitist but I don't want to have 200 contacts of which 180 I don't know that well (or at all).  I'm not in it as a popularity contest.  I'm in it to keep in contact with close friends and the colleagues that I've enjoyed working with.&lt;br /&gt;&lt;br /&gt;So, anyways, if you care you can look me up there.&lt;br /&gt;&lt;br /&gt;Also, I've changed the blog format.  After 2 years of the old one it got old.  So on with the new!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35858582-9145357894709063388?l=rickpseudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rickpseudorandom.blogspot.com/feeds/9145357894709063388/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35858582&amp;postID=9145357894709063388' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/9145357894709063388'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/9145357894709063388'/><link rel='alternate' type='text/html' href='http://rickpseudorandom.blogspot.com/2008/10/social-networking.html' title='Social Networking'/><author><name>Rick Kimmel</name><uri>http://www.blogger.com/profile/10445122554779658150</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-35858582.post-159098597794051793</id><published>2008-10-04T20:02:00.001-05:00</published><updated>2008-10-05T07:36:32.707-05:00</updated><title type='text'></title><content type='html'>&lt;u&gt;&lt;b&gt;My Vista Experience -or- I Hate Vista&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;Several weeks back, I needed to reload my PC.  I said to myself, "Self, since you're going through the painful process of reloading Windows anyway, why not try Vista?"  So I did.  My first exciting dive into Vista from the warm, comfortable embrace of XP.&lt;br /&gt;&lt;br /&gt;At first, it went pretty well.  The install took a surprisingly long time, but it was reasonably straightforward (not as good as, say, Ubuntu Linux, but still pretty good), and Vista recognized nearly all my hardware, whereas with XP, I have to download and install lots of drivers to get all my hardware working.  (For the record, Ubuntu Linux recognizes every last bit of hardware on both of my computers, and configures it all correctly without any extra effort from me.)&lt;br /&gt;&lt;br /&gt;My happiness was short lived, however.  I encountered a myriad of problems with Vista over the next several weeks, including, but not limited to:&lt;br /&gt;&lt;br /&gt;* It takes a long time to boot.  A really long time.  It makes it to the login screen quickly, but that's just to give users the illusion of a fast boot.  It's not really sitting at the desktop and reasonably ready to be used for much longer.&lt;br /&gt;   &lt;br /&gt;* It didn't format the hard drive upon installation, which is a feature.  It allows you to more easily move your old documents into your new install.  However, I ran into tons of problems removing the old documents once I was done with them.  It's a difficult procedure (because I apparently didn't have access to delete my own old documents?!), and I never did get it to work for groups of files and directories.  I was stuck changing the owner and permissions one file at a time, deleting the file, and then moving onto the next.&lt;br /&gt;   &lt;br /&gt;* Microsoft made some pointless name changes to personal directories (folders).  This just makes things needlessly difficult.&lt;br /&gt;   &lt;br /&gt;* User Access Control (UAC) really is an annoyance.  I saw that thing pop up hundreds of times over the course of a few weeks.  I guess you can blame this on poorly written applications, but even Windows itself was constantly popping that thing up in my face.&lt;br /&gt;   &lt;br /&gt;       * Windows Explorer and Windows Photo Gallery can't display Photoshop (PSD) pictures.  Compare this to the free &lt;a href="http://picasa.google.com/" id="y7y0" title="Picasa"&gt;Picasa&lt;/a&gt; from &lt;a href="http://www.google.com/" id="m66o" title="Google"&gt;Google&lt;/a&gt;, which can.  This might sound like a nitpick, but come on, I installed Vista Ultimate.  How can one of the most popular photo editing formats not be supported by Windows Explorer and Windows Photo Gallery?&lt;br /&gt;   &lt;br /&gt;* Vista is fat.  Really fat.  It uses an obscene amount of memory.  Moving from XP to Vista is like removing half of your RAM.&lt;br /&gt;   &lt;br /&gt;* Vista is always grinding the hard drive, for some reason or another.  And, yes, I know about Vista indexing the system.  It grinds the hard drive even after the indexing was done.&lt;br /&gt;   &lt;br /&gt;* Poor application compatibility.  For example, Vista is not compatible with my CD/DVD burning software, and some of my other productivity software.  What happened to the much exhalted backwards compatibility in Windows?&lt;br /&gt;   &lt;br /&gt;* The CD/DVD burning software built into Vista can't burn ISOs.  (Once again, I'll remind the reader that this is the Ultimate version of Vista I'm talking about.  There's just no excuse for forcing me to find, download, install, and learn another program just so I can burn ISOs.)&lt;br /&gt;&lt;br /&gt;* Vista Ultimate is expensive...really expensive.  (So is Vista Business.)  And those are the only two versions that support the Remote Desktop server.  That just stinks, since I'm a Remote Desktop user.&lt;br /&gt;&lt;br /&gt;* Vista is slow.  Dear God, I have no idea what the hell Vista is doing.  But it's damn slow.&lt;br /&gt;&lt;br /&gt;* Lots and lots and lots of pointless changes for no good reason that I could determine.  It makes using the system pointlessly difficult.&lt;br /&gt;&lt;br /&gt;* There are too many versions of Vista.  It was really bewildering and confusing.  I settled on Ultimate because of that confusion.  That's probably what Microsoft is counting on: confusing users with the myriad of versions so they'll give up in frustration and spend far too much money on the Ultimate version.  (Fortunately, I was able to test drive a version of Vista Ultimate for which I didn't have to pay, otherwise I'd be suffering horrible buyer's remorse right now.)&lt;br /&gt;&lt;br /&gt;And that's really just the tip of the iceberg.  It's been a month or two since I used Vista, so I'm going on my memory, which is pretty spotty.  But, believe me, there's a lot more wrong with Vista.  Do yourself a favor, skip Vista, even if it means delaying upgrading your hardware for another year, or two, or three...&lt;br /&gt;&lt;br /&gt;If the next version of Windows is as stinky as Vista, my wife's next machine will be a Macintosh, and I've already moved my personal machine to XP and Ubuntu Linux.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35858582-159098597794051793?l=rickpseudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rickpseudorandom.blogspot.com/feeds/159098597794051793/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35858582&amp;postID=159098597794051793' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/159098597794051793'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/159098597794051793'/><link rel='alternate' type='text/html' href='http://rickpseudorandom.blogspot.com/2008/10/my-vista-experience-or-i-hate-vista.html' title=''/><author><name>Ed Jensen</name><uri>http://www.blogger.com/profile/16634025597241349823</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-35858582.post-8407058276731499735</id><published>2008-08-04T11:12:00.002-05:00</published><updated>2008-08-04T11:17:46.928-05:00</updated><title type='text'>Sup....</title><content type='html'>I haven't blogged in a very long time.  I just haven't really had anything to say so I'm sparing the three readers of this blog from having to read something that I wrote just for the sake of writing something.&lt;br /&gt;&lt;br /&gt;This is what I'm reading right now.  If you're interested in refactoring you'll want to get this after you read the Fowler refactoring book.  It's like an extension.  Good stuff.&lt;br /&gt;&lt;br /&gt;http://search.barnesandnoble.com/Refactoring-to-Patterns/Joshua-Kerievsky/e/9780321213358/?itm=1&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35858582-8407058276731499735?l=rickpseudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rickpseudorandom.blogspot.com/feeds/8407058276731499735/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35858582&amp;postID=8407058276731499735' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/8407058276731499735'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/8407058276731499735'/><link rel='alternate' type='text/html' href='http://rickpseudorandom.blogspot.com/2008/08/sup.html' title='Sup....'/><author><name>Rick Kimmel</name><uri>http://www.blogger.com/profile/10445122554779658150</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-35858582.post-6101347818594623194</id><published>2008-07-30T09:24:00.000-05:00</published><updated>2008-10-05T07:30:58.428-05:00</updated><title type='text'></title><content type='html'>&lt;b id="ux_:"&gt;I {Heart} Firefox 3&lt;/b&gt;&lt;br id="traq"&gt;&lt;br id="traq0"&gt;In a previous rant on this blog, I complained about displays with pixels that were too small. As a result of ever tinier pixels, things like fonts on web pages often ended up far too small to read comfortably, and increasing the text size in web browsers often resulted in web pages rendering incorrectly (often making them unreadable), and increasing the text size in the browser does not help make the graphics on web pages bigger.&lt;br id="jo92"&gt;&lt;br id="jo920"&gt;Enter Firefox 3 and its new zooming enhancements. Not only does zoom increase the font size, but it also zooms the graphics &lt;i id="ds_e"&gt;and&lt;/i&gt; it almost always continues to render the web site correctly (so there is no weird overlapping sections or unreadable sections). (IE7 also has a zoom feature, but in my experience, it's buggy to the point of uselessness.)&lt;br id="ux_:0"&gt;&lt;br id="ux_:1"&gt;This is just a simple fan boy post. Thank you, Mozilla. Thank you, Firefox developers. And thank you, Google, for being largely responsible for funding them.&lt;br id="ux_:2"&gt;&lt;br id="ux_:3"&gt;Long live Firefox!&lt;br id="traq1"&gt;            &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35858582-6101347818594623194?l=rickpseudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rickpseudorandom.blogspot.com/feeds/6101347818594623194/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35858582&amp;postID=6101347818594623194' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/6101347818594623194'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/6101347818594623194'/><link rel='alternate' type='text/html' href='http://rickpseudorandom.blogspot.com/2008/07/i-heart-firefox-3-in-previous-rant-on.html' title=''/><author><name>Ed Jensen</name><uri>http://www.blogger.com/profile/16634025597241349823</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-35858582.post-2738655998307732147</id><published>2008-05-08T12:55:00.000-05:00</published><updated>2008-07-30T09:13:19.087-05:00</updated><title type='text'></title><content type='html'>&lt;b id="hrf10"&gt;&lt;u&gt;The Changing Attitudes of Software Developers&lt;/u&gt;&lt;/b&gt;&lt;br id="hrf11"&gt;&lt;br id="hrf12"&gt;As I watch my PC obey my commands at the pace of a snail (yes, I know I've ranted about this before), it gives me ample time to consider why the user experience never seems to get any better from a performance standpoint (and often, it gets worse, much worse).&lt;br id="gy5o0"&gt;&lt;br id="gy5o1"&gt;I think it's largely because of the changing attitudes of software developers.&lt;br id="h2dq0"&gt;&lt;br id="h2dq1"&gt;Back in the day (when I walked to school and back uphill, both ways, in several feet of snow, an hour in each direction, and I liked it), it used to be a badge of honor to write software that performed well.  Almost everything else was secondary.  Performance was King (or darn close).  If you wrote software that performed poorly, you were pretty much a loser (in software development circles), and your users were appalled.&lt;br id="h-mm0"&gt;&lt;br id="tkzr0"&gt;In other words, you did whatever it took to make sure your application performed well on reasonable hardware (where reasonable was anything five or less years old).&lt;br id="tkzr1"&gt;&lt;br id="h-mm1"&gt;These days, it's all about ease of development.  The program runs 50% slower?  No problem, using this high level language made it easy to develop.&lt;br id="h-mm2"&gt;&lt;br id="h-mm3"&gt;The program uses 100% more memory?  No problem, using this high level language made it easy to develop!&lt;br id="r:j:0"&gt;&lt;br id="r:j:1"&gt;The program stresses my old PC badly?  No problem, using this high level language made it easy to develop!  Look how few lines of code it uses!  Whee!&lt;br id="h-mm4"&gt;&lt;br id="h-mm5"&gt;The user experience hasn't improved?  That's OK, I'll make up for it by shoveling in more bloated and slow features.  It's so easy using this high level language!&lt;br id="rz0m0"&gt;&lt;br id="rz0m1"&gt;The problem is compounded by developers wanting to use elegant languages these days.  Developers are no longer engineers trying to create something useful; instead, developers fancy themselves as Picasso or Monet, trying to create an "elegant" source code base using an "elegant" programming language.&lt;br id="rz0m2"&gt;&lt;br id="rz0m3"&gt;So what if the end result is slow, bloated, and unresponsive?  Who cares if it performs like a pregnant hippopotamus?  It's so elegant!  Look at my pretty, pretty code!&lt;br id="h-mm6"&gt;&lt;br id="h-mm7"&gt;Nobody seems to care about performance anymore, beyond making software just barely fast enough to be just barely acceptable to the user.&lt;br id="y7eb0"&gt;&lt;br id="y7eb1"&gt;How disappointing.&lt;br id="hrf13"&gt;            &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35858582-2738655998307732147?l=rickpseudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rickpseudorandom.blogspot.com/feeds/2738655998307732147/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35858582&amp;postID=2738655998307732147' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/2738655998307732147'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/2738655998307732147'/><link rel='alternate' type='text/html' href='http://rickpseudorandom.blogspot.com/2008/05/changing-attitudes-of-software.html' title=''/><author><name>Ed Jensen</name><uri>http://www.blogger.com/profile/16634025597241349823</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-35858582.post-5020410112191109463</id><published>2008-03-05T18:40:00.000-06:00</published><updated>2008-03-07T14:41:51.765-06:00</updated><title type='text'></title><content type='html'>&lt;b&gt;Is It The Beginning Of The End Of The Web As We Know It?&lt;/b&gt;&lt;br&gt;&lt;br&gt;A few weeks ago, I "completed" the creation of a small web site for my wife's photography business.  (The word "completed" is in quotes because, like most web sites, it'll continue to grow and evolve as time passes.)  I wrote the HTML, CSS, and JavaScript by hand.  (I was warned about the terrible code generated by WYSIWYG web tools.)&lt;br&gt;&lt;br&gt;The experience was terrible.&lt;br&gt;&lt;br&gt;Admittedly, I had written some HTML, CSS, and JavaScript code before, so the technologies weren't completely new to me.  And I've been doing professional software development for almost 20 years, using technologies like C, C++, and Java.&lt;br&gt;&lt;br&gt;Still, the experience was terrible.&lt;br&gt;&lt;br&gt;Getting the HTML and CSS to render correctly in IE6, IE7, and Firefox was annoying, to say the least.  Fortunately, my friend Rick was nice enough to briefly test drive the site in Safari and Opera.  (Thanks, Rick!)  Sadly, some browsers will probably remain untested forever (such as Konquerer).&lt;br&gt;&lt;br&gt;It all seems to render and work correctly -- for now -- but even minor changes would require another round of tests in a bunch of web browsers.  And soon, it may require testing in yet another web browser: IE8.&lt;br&gt;&lt;br&gt;It shouldn't be this hard.  To be blunt, the state of the web -- from a developer perspective -- is that it's completely broken.  Yes, you can do things -- amazing things -- but the effort required is far and above what it should be.&lt;br&gt;&lt;br&gt;It's my opinion that HTML and CSS are just plain bad technologies.  They grew far beyond their original design goals and inevitably had to be hacked to do more complex and interesting things.  JavaScript isn't too bad, but since there's no easy way to thoroughly test it without actually sitting there and testing every possible code path, the possibility of run-time failures are always looming.  (OK, there are tools to mitigate this risk, but they're complex to setup and use themselves.  A workable solution for a big corporation, but not so ideal for smaller operations.)&lt;br&gt;&lt;br&gt;HTML 5 will only muddy the waters further.  Sure, it'll have cool new features, but as a result, it'll make HTML even &lt;b&gt;more&lt;/b&gt; complex, and then web developers need to start deciding how and when it's safe to use those features.  Wait until IE version N supports it?  Wait until IE version N supports it and has &amp;gt; 50% market share?  Tell your users they &lt;b&gt;must&lt;/b&gt; use a particular browser?  Do some browser capability sniffing, and have a &amp;lt; HTML 5 path and a &amp;gt;= HTML 5 path?&lt;br&gt;&lt;br&gt;Bah!&lt;br&gt;&lt;br&gt;I'm starting to wonder if this is the beginning of the end of the web as we know it.  Technologies like &lt;a title="Flash" href="http://en.wikipedia.org/wiki/Adobe_Flash" id="awpc"&gt;Flash&lt;/a&gt;, which (theoretically) work the same on every browser, are appealing more and more, because your code is much more likely to work the same, whether it's Flash-on-IE6, Flash-on-IE7, Flash-on-Firefox, etc.  (Right about now you're probably thinking about how much you hate Flash ads.  Yes, they're horrible and obnoxious, but that doesn't change the fact that Flash is a great technology for creating a rich, interactive web site.)&lt;br&gt;&lt;br&gt;Sure, some people (a surprisingly small percentage, actually) don't have Flash installed, but losing those few users might just be worth the substantial time saved in development.  Besides the easier development and portability angle, you also get better performance (have you seen how slow some of those "rich widgets" JavaScript libraries run, even on blazing fast, modern PCs?), a compiler (which will catch many bugs at compile-time instead of waiting for your users to discover them at run-time), and a huge standard library which include things like rich widgets, persistent socket connections, animation, etc.&lt;br&gt;&lt;br&gt;Perhaps best of all, Flash is well supported by the Free Software community as well.  You can download and use free Flash IDEs and compilers, or you can use Adobe's excellent commercial tools.&lt;br&gt;&lt;br&gt;Google is trying to sidestep the issue using &lt;a title="Google Web Toolkit" href="http://code.google.com/webtoolkit/" id="kn3m"&gt;Google Web Toolkit&lt;/a&gt;.  GWT is a neat technology that "compiles" Java code to HTML, CSS, and JavaScript for you, helping you avoid all sorts of trouble.  A lot of Google's nice web products are written using GWT.  (One of the big caveats here is that you really need Java on the server-side too, in order to make GWT shine, but you can do some impressive client-side only things as well.  Still, it ends up being a big problem for the many web sites that use commercial shared hosting.)&lt;br&gt;&lt;br&gt;Even Microsoft seems to be smelling the stink of death on pure HTML, CSS, and JavaScript.  They recently released a Flash competitor, &lt;a title="Silverlight" href="http://en.wikipedia.org/wiki/Silverlight" id="brmc"&gt;Silverlight&lt;/a&gt;, which will apparently be bundled into IE8 (if you can't beat 'em fair and square, just bundle it!).  The Open Source community has responded with &lt;a title="Moonlight" href="http://www.mono-project.com/Moonlight" id="wdnr"&gt;Moonlight&lt;/a&gt;, which aims to be a Silverlight clone that'll run on free operating systems such as &lt;a title="Linux" href="http://www.linux.org/" id="ghsd"&gt;Linux&lt;/a&gt;.&lt;br&gt;&lt;br&gt;Flash.  Google Web Toolkit.  Silverlight.  Moonlight.&lt;br&gt;&lt;br&gt;The existence of these products by large, prominent companies should tell us something: They're aware of the weaknesses and limitations of traditional web technologies, and are starting to push alternative technologies with success.  Developers win, users win, and the evolution of the web takes a nice leap forward.&lt;br&gt;&lt;br&gt;Are we looking at the beginning of the end of the web as we know it?  If so, I couldn't be happier about it.&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35858582-5020410112191109463?l=rickpseudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rickpseudorandom.blogspot.com/feeds/5020410112191109463/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35858582&amp;postID=5020410112191109463' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/5020410112191109463'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/5020410112191109463'/><link rel='alternate' type='text/html' href='http://rickpseudorandom.blogspot.com/2008/03/is-it-beginning-of-end-of-web-as-we.html' title=''/><author><name>Ed Jensen</name><uri>http://www.blogger.com/profile/16634025597241349823</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-35858582.post-1987590562368244773</id><published>2008-01-07T10:50:00.000-06:00</published><updated>2008-01-07T11:26:32.964-06:00</updated><title type='text'>Wake up, Entertainment industries</title><content type='html'>Music sales plunged another 15 percent in 2007.  Meanwhile, the record labels via the RIAA continue to treat paying customers like criminals.  You can rip your CDs to your computer and other devices.  No, wait you can't.  Yes, actually we misspoke IN COURT.  That's not what we meant.  Fair use?  What's that?&lt;br /&gt;&lt;br /&gt;So you bail on the music industry and start watching TV.  But wait, there's a writers strike.  So no new shows which require writers are being made.  And this has been going on since November.&lt;br /&gt;&lt;br /&gt;If it wasn't in the news would anyone have noticed?  Or care?  Is anyone going to miss the Golden Globes when the actors won't cross the picket lines and so it won't be televised?  Doubt it.&lt;br /&gt;&lt;br /&gt;Seriously.  What the entertainment industry hasn't quite grasped yet is that there are a billion forms of entertainment out there.  If they don't offer a product or make it too difficult to use fairly people will just go do something else.&lt;br /&gt;&lt;br /&gt;I can't legally rip my CDs to a shared folder on my server so I can access them from my desktop and my laptop?  Gee, thanks.  Maybe I'll watch some CSI:Fargo reruns instead.  &lt;br /&gt;&lt;br /&gt;Or maybe I'll go to the library and get a book.  At least that's still free.  For now.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35858582-1987590562368244773?l=rickpseudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rickpseudorandom.blogspot.com/feeds/1987590562368244773/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35858582&amp;postID=1987590562368244773' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/1987590562368244773'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/1987590562368244773'/><link rel='alternate' type='text/html' href='http://rickpseudorandom.blogspot.com/2008/01/wake-up-entertainment-industries.html' title='Wake up, Entertainment industries'/><author><name>Rick Kimmel</name><uri>http://www.blogger.com/profile/10445122554779658150</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-35858582.post-1378629674027123585</id><published>2008-01-02T12:58:00.000-06:00</published><updated>2008-01-07T13:13:36.978-06:00</updated><title type='text'></title><content type='html'>&lt;P&gt;&lt;b&gt;CSS-Driven Layouts vs. Table-Driven Layouts&lt;/b&gt;&lt;/P&gt; &lt;P&gt; &lt;/P&gt; &lt;P&gt;Like many people, I like to browse the world wide web.  It's a great resource for researching information, buying things, or just plain having fun.  Go web!&lt;/P&gt; &lt;P&gt; &lt;/P&gt; &lt;P&gt;However, several things have conspired to make my web browsing less enjoyable than it could be.  There are three main problems which, when added together, cause me headaches (literally and figuratively).&lt;/P&gt; &lt;P&gt; &lt;/P&gt; &lt;P&gt;&lt;b&gt;Problem #1: Tiny Pixels&lt;/b&gt;&lt;/P&gt; &lt;P&gt; &lt;/P&gt; &lt;P&gt;Displays have gotten bigger, but not as fast as pixels have gotten smaller.  On modern displays, pixels are now really, really tiny.  This is both good (really crisp, beautiful displays) and bad (fixed size images -- like those found all over the web -- end up being uncomfortably small to see properly).&lt;/P&gt; &lt;P&gt; &lt;/P&gt; &lt;P&gt;&lt;b&gt;Problem #2: Small Fonts&lt;/b&gt;&lt;/P&gt; &lt;P&gt; &lt;/P&gt; &lt;P&gt;For some reason, small fonts are really popular on the web these days.  Like, really uncomfortably small fonts.  I know very few people over the age of 35 that likes those uncomfortably small fonts.  I can only conclude that most web developers have 30" displays or most web developers are under the age of 35.&lt;/P&gt; &lt;P&gt; &lt;/P&gt; &lt;P&gt;&lt;b&gt;Firefox to the Rescue!&lt;/b&gt;&lt;/P&gt; &lt;P&gt; &lt;/P&gt; &lt;P&gt;Fortunately, using an excellent web browser such as &lt;A id=yth0 title=Firefox href="http://www.mozilla.com/en-US/" target=_blank&gt;Firefox&lt;/A&gt;, I can increase the font size on the pages I browse.  Typically, I increase the font size two or three steps.  This results in a font size that's generally very comfortable for me to read.&lt;/P&gt; &lt;P&gt; &lt;/P&gt; &lt;P&gt;Alas, an ugly problem has cropped up in recent years that makes my solution much less ideal.&lt;/P&gt; &lt;P&gt; &lt;/P&gt; &lt;P&gt;&lt;b&gt;Problem #3: CSS-Driven Layouts&lt;/b&gt;&lt;/P&gt; &lt;P&gt; &lt;/P&gt; &lt;P&gt;I'm not precisely sure what the problem is, but over 90% of the web sites I visit render very poorly when you increase the font size two or three steps.  These web sites almost always have one thing in common: their layout is done via CSS.&lt;/P&gt; &lt;P&gt; &lt;/P&gt; &lt;P&gt;Sometimes the problem is reasonably minor: text overlapping other text.  Sometimes the problem is much worse: the page becomes completely unreadable due to all the rendering problems.&lt;/P&gt; &lt;P&gt; &lt;/P&gt; &lt;P&gt;The excuse I typically hear from web developers is, "That's because people don't know how to use CSS properly."  However, the problem is so pervasive that I've got to wonder if CSS is just too unwieldy of a technology to be used for page layout.  It appears to me that CSS has some serious usability problems, at least when applied to page layout.&lt;/P&gt; &lt;P&gt; &lt;/P&gt; &lt;P&gt;Web sites that use table-driven layouts don't seem to have these problems.  These days, however, you're considered an ignorant buffoon if your web page is laid out using tables instead of CSS (an Ivory Tower attitude I don't at all agree with).&lt;/P&gt; &lt;P&gt; &lt;/P&gt; &lt;P&gt;As a result, from the perspective of a user (not a developer!) of the web, I say: DIE CSS-driven layouts!  GO GO table-driven layouts!&lt;/P&gt; &lt;P&gt; &lt;/P&gt; &lt;P&gt;My friend who started and runs this blog, Rick, loves and worships CSS, so I'm hoping he'll write an article which defends his pro-CSS-driven layout position.  :-)&lt;/P&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35858582-1378629674027123585?l=rickpseudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rickpseudorandom.blogspot.com/feeds/1378629674027123585/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35858582&amp;postID=1378629674027123585' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/1378629674027123585'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/1378629674027123585'/><link rel='alternate' type='text/html' href='http://rickpseudorandom.blogspot.com/2008/01/css-driven-layouts-vs.html' title=''/><author><name>Ed Jensen</name><uri>http://www.blogger.com/profile/16634025597241349823</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-35858582.post-8294094931459098420</id><published>2007-12-20T13:57:00.000-06:00</published><updated>2007-12-21T14:43:27.671-06:00</updated><title type='text'>Reflections</title><content type='html'>Usually this time of year you start reflecting on things that have happened over the last year.  Review the good and the bad.  Things that sucked and things that ruled.  Things that made you laugh and cry.&lt;br /&gt;&lt;br /&gt;Well, these days I can't keep up with anything.  I can't even remember if that iPhone thing came out this year or last year.  I remember buying the new Harry Potter book at 1 am and I think it was cold outside.  Or maybe it was wasn't.  Was that this year?&lt;br /&gt;&lt;br /&gt;My memory is terrible sometimes.&lt;br /&gt;&lt;br /&gt;Regardless, the other day I was thinking about all the technologies that I have learned (and forgotten) over the last 25 years.  I'm pretty sure there are more.  Maybe someday I'll remember one and write about it if I can remember enough.  But in the meantime here are some of the highlights and lowlights of my software development career:&lt;br /&gt;&lt;br /&gt;1980: This Oregon Trail game on the Apple ][ game is really cool!  But I think it needs some modifications.  After a quick check with the Apple Basic manual I punch in "LIST" then "20580 PRINT "YOUR OX PEES IN RIVER.  LOSE TURN SEARCHING FOR CLEAN WATER." Then "20590 GOTO 10".   Ahh, so much better.  Then "SAVE OREGON" just so everyone else can enjoy my little modification.  Hope the teacher doesn't find out.&lt;br /&gt;&lt;br /&gt;1985: It's the BBS heyday.  After having pirated GBBS and run it on my 300 baud modem I got bored with it and wrote my own multi-forum BBS.  A friend of mine wrote the low level driver for the keyboard entry.  He even wrote a nifty text-based tennis game for me.  Hey Jordan Lampe, if you're out there drop me a line.  This is King Arthur.  Ahh, those were the days.&lt;br /&gt;&lt;br /&gt;1986: Apple Pascal RULES.  It's the coolest thing on this planet.  I taught my Pascal teacher at High School how to program.  He gave me a C.  Ingrate.  Seriously.  I wrote a freaking adventure game IN CLASS while he taught everyone else how to code up an addition problem.  What?  You're supposed to be writing an addition problem instead of an adventure game?  Doh!  Maybe I deserved that C after all.&lt;br /&gt;&lt;br /&gt;1986: College.  Woot!  Upgrade to a 80286 PC and sell my Apple ][ to a farmer.  Then take Art History, Calculus, Latin American Studies, and English Literature.  No programming, but I get to use that awesome Word Perfect word processor and then copy my documents to a 5" floppy so I can take them to the computer lab to print them on a high quality dot matrix printer.&lt;br /&gt;&lt;br /&gt;1987: Macintosh computers RULE.  Sure wish I could afford one.&lt;br /&gt;&lt;br /&gt;1988: Start taking Pascal classes.  Sleep through Pascal I and II.  Get A's.  Take Fortran.  Why?  Because the scientific community uses it a lot for it's awesome math library.  And they're working on the new Fortran specification.  It could be huge.  Go to class three times -- first day, mid-term, final.  Get an A.  Wish I could do that for my Shakespeare classes.&lt;br /&gt;&lt;br /&gt;1990: Ok, so upper level Computer Science courses get hard.  Really hard.  I can't skate by and skip class anymore.  But they're at least teaching C++ and object oriented programming now.  That's fun.  Wonder how this is going to affect that new Fortran specification?&lt;br /&gt;&lt;br /&gt;1991: Take computer graphics class and learn how to do cool 3D programming.  Coolest thing I've ever done.  Write my own 3D object displayer/rotator.  Of course, not knowing crap about the Macintosh GUI and event driven programming I create my own buttons with 3D effects (hah!  take that Apple - I went 3D buttons on a Mac before you did!  plblblblblbllbbl....and, yeah, it was a ginormous waste of time).  Write it in Apple Pascal.  Pascal kinda sucks.&lt;br /&gt;&lt;br /&gt;1992: Re-take assembly language class.  God I hate assembly.  WTF invented this devil spawn bastard child from hell?  Yeah, it's better than punch cards but COME ON.&lt;br /&gt;&lt;br /&gt;1992: GRADUATION!!!  Booyah.  Computer Science degree from the University of Minnesota.  I'm living large now, baby.&lt;br /&gt;&lt;br /&gt;1992: This job market sucks.  Thanks, Bush.  Why did I vote for you again?&lt;br /&gt;&lt;br /&gt;1992: YES!!  I got a job.  And HELLS YEAH I get to use OS/2 instead of that girly Windows application.  Get immediately put on a project to write a DLL for a program that will run on that girly Windows application.  Oh the irony.&lt;br /&gt;&lt;br /&gt;1993: Borland C++ is pretty cool.  They really thought things out when they made it.  Windows programming is soooooo easy.  Making a DLL?  Piece of cake!  Making a GUI?  No problem!  This is going to revolutionize Windows development.&lt;br /&gt;&lt;br /&gt;1993: This new Visual Basic thing is kinda slow but you can put together a GUI in about 5 minutes.  Click, click, click, drag, click, drag, type some text.  Voila!  Instant GUI.  Making a GUI in Borland C++ kind of sucks now.  If you need some speed just put the code into a DLL and call it from your VB app.  No problem.  Everyone's happy!&lt;br /&gt;&lt;br /&gt;1994: Borland?  Who's that?  We do everything in Visual Basic.&lt;br /&gt;&lt;br /&gt;1996: God Visual Basic is slow.&lt;br /&gt;&lt;br /&gt;1997: There's this new thing called Forte.  It uses an object oriented language called TOOL.  You can distribute your code!  You can write a "service object" and just say "run this on the server" and it will run on the server.  Your client automatically finds it an uses it!  SWEET.  This is going to revolutionize enterprise Windows development the same way that one company did back in 1993.&lt;br /&gt;&lt;br /&gt;1998: Heard anything about that new Fortran spec lately?&lt;br /&gt;&lt;br /&gt;1999: Still using Forte.  The IDE sucks, the debugger kind of blows, but you know what?  It's pretty decent at this distributed system thing.  Can you imagine trying to do this with .NET?  Life.  Is.  Good!&lt;br /&gt;&lt;br /&gt;2000: Well, not so good.  The web app piece of Forte isn't very good.  Matter of fact, our web app is so big it's just simply not going to work.  This thing called Java is getting a lot of press and a lot of companies are starting to use it.  Let's take a chance and rewrite out web app with it.  Not sure it's going to work out or be the right thing but there really aren't many other good options.&lt;br /&gt;&lt;br /&gt;2001: Ok, so how do we get our Java servlets to talk to our Forte services?  CORBA!  Forte will dump out a file that we can import into Java so that we can easily write some CORBA middleware to transfer objects between Forte and Java.  Cool!  This Java stuff rocks.&lt;br /&gt;&lt;br /&gt;2002: We're going to Windows XP.  Was there something wrong with Windows 2000?  This GUI sucks.  It looks like I'm Teletubby land.  Can I go back to the classic look?  BTW, Java kicks ass.&lt;br /&gt;&lt;br /&gt;2002: Well, somewhere around 2002.  Sun buys Forte.  Why?  Are they on crack?&lt;br /&gt;&lt;br /&gt;2003: Wow, it's been 10 years since I used OS/2.  The only reason anyone ever used that is because Windows was such a pile back then.  GPFs, Blue Screen of Death...You got none of that with OS/2.  It was rock solid.  Then along came NT 3.5 and the whole world shifted.  NT was such a great product.  Lean and mean and a kernel that never ever crashed on me.  I went years without having it crash.  Matter of fact, between NT 3.5, NT 4, 2000 Pro, and XP Pro, I don't think my PC has crashed due to anything but a hardware failure.&lt;br /&gt;&lt;br /&gt;2004: Sun announces they are dropping support for Forte in 2006.  Everyone has 2 years to convert all their stuff.  And, by the way, we have this other product called Java that is a real good thing to convert to.  Good luck!&lt;br /&gt;&lt;br /&gt;2004: We look into converting our Forte apps to Java.  All 3,000,000 lines.&lt;br /&gt;&lt;br /&gt;2005: Turns out that the new Fortran spec was released in 1992 along with minor revisions in 1995 and 2003.  Who knew?  Now where did I leave that Java certification study guide?&lt;br /&gt;&lt;br /&gt;2006: What a waste of time.  I spent all that time studying for the Java Certification only to realize that so many people have one it's practically meaningless.  And I really didn't learn anything.  Anybody want a Java Certification study guide for $5?  $3?&lt;br /&gt;&lt;br /&gt;2007: Well, we're paying for Forte support from Sun now.  We still have 3,000,000 lines of code to convert.  At least we have a plan in place.  There's a company that has a tool that will convert all your code.  It's slick.  Now all we need is management to approve the year it will take to convert it and fix the broken stuff.  Ever try to tell management that you're going to work for a year without giving them anything new?  It's going to have to happen though -- we can't even pay for support in 2009.&lt;br /&gt;&lt;br /&gt;2007: I learned how to make cool web pages without using tables.  All you have to do is div div div div div div div div div div div div and give each one a CSS class.  Then spend a whole bunch of time making it work in all the browsers.  I can't count the number of times I was 1 pixel off in one of the three major browsers.  But hey, it's the technology of the future.  And once it works it's SLICK.  Makes it all worthwhile.&lt;br /&gt;&lt;br /&gt;2007: Does anyone give a crap about Vista?  I don't...  I just upgraded my Ubuntu to Gnarly Gorilla or whatever it is.  Couple quick questions, a little download time, reboot...BANG!  It's done.  And the AMP in my LAMP all fired up flawlessly after the upgrade.  Suck on that, MS.&lt;br /&gt;&lt;br /&gt;So there you have it.  My life as a developer over the last 25 years.  I'm sure I missed a bunch of products I've used or didn't use that I wanted to.  Some of it sucked, some of it ruled -- but that's how everything goes.  You just hope that more things rule than suck.  And since I'm still with that company that hired me way back in 1992 I can say that I've definitely worked on more things that ruled than sucked.&lt;br /&gt;&lt;br /&gt;See y'all next year.  :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35858582-8294094931459098420?l=rickpseudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rickpseudorandom.blogspot.com/feeds/8294094931459098420/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35858582&amp;postID=8294094931459098420' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/8294094931459098420'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/8294094931459098420'/><link rel='alternate' type='text/html' href='http://rickpseudorandom.blogspot.com/2007/12/reflections.html' title='Reflections'/><author><name>Rick Kimmel</name><uri>http://www.blogger.com/profile/10445122554779658150</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>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35858582.post-578683012264956549</id><published>2007-11-01T15:15:00.000-05:00</published><updated>2007-11-01T15:27:33.862-05:00</updated><title type='text'></title><content type='html'>&lt;b&gt;My Vista Conspiracy Theory&lt;/b&gt;&lt;br&gt;&lt;br&gt;Put on your tin hats, boys and girls, I have a great conspiracy theory!&lt;br&gt;&lt;br&gt;By now, most of you know Windows Vista is a big pile of garbage.  It's as slow as molasses in January in Minnesota, it uses so much memory that it makes Fat Bastard look like Richard Simmons, it has more bugs than a New York city sewer, its new security measures are worse than a rectal exam at the airport, and there are so many versions of Vista to choose from that it'll make you more dizzy than drinking an entire bottle of Russian Vodka in one sitting.&lt;br&gt;&lt;br&gt;Yep, Vista sucks like the black hole at the center of the galaxy.  They should have called it Windows ME 2.0.&lt;br&gt;&lt;br&gt;How could a company awash in cash and developer resources produce such an obvious blunder?  Why would they unleash such a rabid beast on the unsuspecting public?&lt;br&gt;&lt;br&gt;Is it gross incompetence?  Is it unbridled hubris?  Were the employees at Microsoft threatened with flying chairs and forced to release Vista before it was ready?&lt;br&gt;&lt;br&gt;No, I say!  NO!  It's all part of a brilliant Microsoft plan!  Here's my theory.&lt;br&gt;&lt;br&gt;The 2008 elections are looming, and after the outrageous ineptitude displayed by the Republican Party these last several years, there's a very good chance we'll end up with a government dominated by Democrats.&lt;br&gt;&lt;br&gt;Microsoft has gotten a free pass during our Republican dominated years.  Heck, Microsoft has practically been encouraged to do whatever it wants, including stealing candy from crying babies.&lt;br&gt;&lt;br&gt;But with the real possibility of Democrats taking control, the Department of Justice might once again try to, you know, dispense some actual justice.  That means Microsoft might once again be punished for little transgressions like illegal monopoly maintenance.&lt;br&gt;&lt;br&gt;Microsoft can dodge some legal bullets more easily if they can point to some competitors that aren't completely irrelevant.  Apple may be their closest competitor, at least when it comes to operating systems.&lt;br&gt;&lt;br&gt;So here's my theory of Microsoft's brilliant plan: They release a craptacular operating system -- Vista -- on purpose!  They know Vista is a clusterfubar of monumental proportions, but that's exactly what they needed to release in order to purposefully boost sales of Macs and Mac OS X.  By the time a new President is in the White House (which could very well be a Democrat), Apple's market share will have grown by leaps and bounds!&lt;br&gt;&lt;br&gt;Then, the next time someone points at Microsoft and claims "illegal monopoly maintenance!!!" or the Department of Justice decides to start doing their job again, Microsoft can point to Apple and say, "But look!  Apple is a serious threat to us now!  They're a huge competitor gaining market share!  Leave us alone to innovate!  We need to innovate!!!"&lt;br&gt;&lt;br&gt;Those people at Microsoft are geniuses!&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35858582-578683012264956549?l=rickpseudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rickpseudorandom.blogspot.com/feeds/578683012264956549/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35858582&amp;postID=578683012264956549' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/578683012264956549'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/578683012264956549'/><link rel='alternate' type='text/html' href='http://rickpseudorandom.blogspot.com/2007/11/my-vista-conspiracy-theory-put-on-your.html' title=''/><author><name>Ed Jensen</name><uri>http://www.blogger.com/profile/16634025597241349823</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>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35858582.post-7395893994699485419</id><published>2007-11-01T12:56:00.000-05:00</published><updated>2007-11-01T15:54:33.230-05:00</updated><title type='text'></title><content type='html'>&lt;b&gt;Does Apple Hate Java?&lt;/b&gt;&lt;br&gt;&lt;br&gt;On October 26, 2007, Apple released Leopard, the latest and greatest version of the excellent operating system, Mac OS X.&lt;br&gt;&lt;br&gt;Even though I haven't owned a Mac since the 1980s, I've been enjoying reading about Mac OS X online.  The temptation to buy a Mac has never been greater, and I was very nearly ready to give in to that temptation .... until I realized, much to my dismay, that Apple hates Java.&lt;br&gt;&lt;br&gt;You see, these days, I'm mostly a Java developer.  Oh sure, I still use C, and dabble with Python, and do a bit of HTML and JavaScript too, but I'm primarily a Java developer.&lt;br&gt;&lt;br&gt;Java does a very good job with, "Write Once, Run Everywhere."  Not perfect, mind you -- but still, a very good job.  And, as a Java developer, I thought to myself, "Self, as a Java developer, you could probably switch to a Mac pretty easily, since Apple supports Java!"&lt;br&gt;&lt;br&gt;Well, Apple does support Java ... poorly.  Leopard, for some reason, didn't ship with Java 6.  Okay, that alone is a huge disappointment, given that Java 6 has already been out for other operating systems for about a year.  But surely Leopard will ship with the latest version of Java 5!  Right?&lt;br&gt;&lt;br&gt;Nope.  A lot of rumors, from several reliable sources, have been saying that Java 5 on Leopard is buggy and broken.  What the hell, Apple?&lt;br&gt;&lt;br&gt;Given the army of Java developers out there, you would think Steve Jobs would try to make Mac OS X one of the best development platforms for Java in the world.  Unfortunately, he can't even be bothered to ship a decent Java runtime for Mac OS X.&lt;br&gt;&lt;br&gt;This baffles me.  Presumably, a lot of Java developers chose Java over competitors like .NET / C# because they dislike Microsoft (for whatever reason).  The battle to win the hearts and minds of those developers is already 1/2 won!  Why not go the rest of the distance and make Java on Mac a priority, Apple?  You could win the hearts and minds of a lot of Java developers with ease, who would then presumably write software for Mac OS X, which would in turn entice more people to use Macs.&lt;br&gt;&lt;br&gt;Needless to say, this major stumbling block makes my decision to &lt;b&gt;not&lt;/b&gt; buy a Mac an easy one.&lt;br&gt;&lt;br&gt;Come on, Apple.  Get with it.&lt;br&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35858582-7395893994699485419?l=rickpseudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rickpseudorandom.blogspot.com/feeds/7395893994699485419/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35858582&amp;postID=7395893994699485419' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/7395893994699485419'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/7395893994699485419'/><link rel='alternate' type='text/html' href='http://rickpseudorandom.blogspot.com/2007/11/does-apple-hate-java-on-october-26-2007.html' title=''/><author><name>Ed Jensen</name><uri>http://www.blogger.com/profile/16634025597241349823</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-35858582.post-6656610333030126484</id><published>2007-10-10T13:18:00.000-05:00</published><updated>2007-10-10T13:31:01.415-05:00</updated><title type='text'>Umm, yeah</title><content type='html'>So it's been pretty close to forever since I last wrote something.  Shoot me.&lt;br /&gt;&lt;br /&gt;Plain fact of the matter is I really haven't had much to rant about lately.  Things have been going pretty smoothly in my life.  Sure, I could rant about Halliburton, the sad state of the upcoming 2008 election, hooking up a Wiimote to your computer, how good Pringles are (and how to make a cantenna when you're done), or why I just can't seem to play guitar just like &lt;a href="http://www.joewalsh.com/"&gt;Joe Walsh&lt;/a&gt;, but do I really have anything of value to add to those topics?&lt;br /&gt;&lt;br /&gt;Probably not.&lt;br /&gt;&lt;br /&gt;Well, ok.  I don't sound like Joe Walsh because I play a Fender through a 40w Crate amp and he plays a Gibson through a Marshall Stack.  And there's a slight talent difference.  But beyond that, what's there to say?  Nada.&lt;br /&gt;&lt;br /&gt;So just think...  since you're not sitting here reading some useless garbage you have enough time to crack open a &lt;a href="http://www.drinkstewarts.com/"&gt;Stewart's&lt;/a&gt; and play a game of &lt;a href="http://www.hurricangames.com/"&gt;Mr. Jack&lt;/a&gt; with a friend.  Woot!&lt;br /&gt;&lt;br /&gt;Enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35858582-6656610333030126484?l=rickpseudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rickpseudorandom.blogspot.com/feeds/6656610333030126484/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35858582&amp;postID=6656610333030126484' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/6656610333030126484'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/6656610333030126484'/><link rel='alternate' type='text/html' href='http://rickpseudorandom.blogspot.com/2007/10/umm-yeah.html' title='Umm, yeah'/><author><name>Rick Kimmel</name><uri>http://www.blogger.com/profile/10445122554779658150</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-35858582.post-400924534620831729</id><published>2007-07-04T16:16:00.000-05:00</published><updated>2007-07-10T08:23:42.130-05:00</updated><title type='text'></title><content type='html'>  &lt;span style="font-weight: bold;"&gt;Firefox and the Flash Plugin&lt;/span&gt;&lt;br&gt;&lt;br&gt;&lt;a title="Firefox" target="_blank" href="http://www.mozilla.com/en-US/"&gt;Firefox&lt;/a&gt; is my web browser of choice.  By itself, it's a best-of-breed web browser.  With a set of carefully chosen plugins, it simply can't be beat.&lt;br&gt;&lt;br&gt;However, there's one plugin I refuse to install on Firefox, and that's the &lt;a title="Flash" target="_blank" href="http://www.adobe.com/products/flashplayer/"&gt;Flash&lt;/a&gt; plugin.&lt;br&gt;&lt;br&gt;It's not that I have anything against Flash itself.  It's a fantastic tool which can make beautiful, media rich web pages.  Unfortunately, 99% of the time, it's used for a more nefarious purpose: to inundate you with obnoxious ads.  The ads usually bounce, jump, shake, and flash (pathetic pun intended) until you're either annoyed enough to close your web browser entirely, or until you're started having an epileptic seizure.&lt;br&gt;&lt;br&gt;My plan of attack to handle this situation is simple: I don't install the Flash plugin on Firefox.  On those occasions when I need to visit a Flash enabled web site for a legitimate reason, I use Internet Explorer instead, where I've installed the Flash plugin.  (And, in fact, I don't leave Firefox to do it.  I simply use the &lt;a title="IE Tab" target="_blank" href="https://addons.mozilla.org/en-US/firefox/addon/1419"&gt;IE Tab&lt;/a&gt; plugin for Firefox to use Internet Explorer right inside Firefox!)&lt;br&gt;&lt;br&gt;There's one slight flaw in the plan, though.  Every single time I visit a web site with Flash ads, which is way too many of them, Firefox displays the following message at the top of the web page:&lt;br&gt;&lt;br&gt;&lt;span style="font-style: italic;"&gt;Additional plugins are required to display all the media on this page.&lt;/span&gt;&lt;br&gt;&lt;br&gt;Perhaps I'm just too sensitive, but that message drives me nuts.  Sure, it's a lot less annoying than looking at obnoxious Flash ads, but it's still annoying.  I purposefully avoided installing the Flash plugin on Firefox to avoid annoyance.&lt;br&gt;&lt;br&gt;Luckily, there's a work-around.  Open a new tab, browse to &lt;span style="font-weight: bold;"&gt;about:config&lt;/span&gt;, and type &lt;span style="font-weight: bold;"&gt;plugin.default_plugin_disabled&lt;/span&gt; into the Filter field.  Right click the one and only attribute that should then be displayed, and Toggle the value to &lt;span style="font-weight: bold;"&gt;false&lt;/span&gt;.  Restart Firefox, and...voila!  No more annoying messages about additional plugins being required.&lt;br&gt;&lt;br&gt;Happy browsing!&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35858582-400924534620831729?l=rickpseudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rickpseudorandom.blogspot.com/feeds/400924534620831729/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35858582&amp;postID=400924534620831729' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/400924534620831729'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/400924534620831729'/><link rel='alternate' type='text/html' href='http://rickpseudorandom.blogspot.com/2007/07/firefox-and-flash-plugin-firefox-is-my.html' title=''/><author><name>Ed Jensen</name><uri>http://www.blogger.com/profile/16634025597241349823</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-35858582.post-5098916512811952701</id><published>2007-06-26T12:46:00.000-05:00</published><updated>2007-07-10T08:24:53.368-05:00</updated><title type='text'></title><content type='html'>&lt;span style="font-weight: bold;"&gt;Why Is My Computer So Slow?&lt;/span&gt;&lt;br&gt;&lt;br&gt;The list of computers I've owned and used over the years almost sounds like some kind of computer museum.  It includes (but isn't limited to) the following:&lt;br&gt;&lt;br&gt;&lt;ul&gt;&lt;li&gt;&lt;a title="TRS-80 Color Computer" target="_blank" href="http://www.vintagecomputing.com/wp-content/images/retroscan/coco_xmas_large.jpg"&gt;TRS-80 Color Computer&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a title="Commodore 64" target="_blank" href="http://computermuseum.50megs.com/images/commodore_64.jpg"&gt;Commodore 64&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a title="Fat Mac (512k)" target="_blank" href="http://upload.wikimedia.org/wikipedia/commons/thumb/3/36/Mac512K_wb.jpg/250px-Mac512K_wb.jpg"&gt;Fat Mac (512k)&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a title="Amiga 500" target="_blank" href="http://www.classiccmp.org/dunfield/amiga/h/a500ful.jpg"&gt;Amiga 500&lt;/a&gt; &lt;/li&gt;&lt;li&gt;25 MHz 80386&lt;/li&gt;&lt;li&gt;90 MHz Pentium&lt;/li&gt;&lt;li&gt;600 MHz Pentium III&lt;/li&gt;&lt;li&gt;AMD Athlon 64 3200+&lt;br&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br&gt;My early computers (the TRS-80 Color Computer and Commodore 64) were great machines, but even I'll admit they only had enough power for one person to run one application at a time (generally speaking).  (Yes, I'm aware there were multi-user, multi-tasking operating systems available for the TRS-80 Color Computer and the Commodore 64, but I'm aiming this article at a more general audience.)&lt;br&gt;&lt;br&gt;The Fat Mac and Amiga were another story.  They easily had enough power for one person to run multiple applications at the same time, those applications being reasonably modern (GUI based).  They also had enough power for dozens of users to run simple (likely text based) applications at the same time (though you would need to install an alternative operating system on the machine).&lt;br&gt;&lt;br&gt;Jump to the 25 MHz 80386 and 90 MHz Pentium, and we're entering a new realm of power.  These machines, when using the right operating system, could handle multiple users running multiple applications at the same time, those applications being reasonably modern (GUI based).  In fact, the 90 MHz Pentium has enough power to handle the needs of most modern users: web browsing, email, word processing, even listening to music.  (To be fair, though, decoding MP3 audio requires enough power that it would cease to be a good multi-user machine).&lt;br&gt;&lt;br&gt;Enter the 600 MHz Pentium III, more than enough machine for, most likely, 95% (or more) of the computer using population.  Decode MP3 audio?  No problem.  Watch HD video?  No problem.  Unless you're editing your own movies, this machine probably has all the power you need (and then some).&lt;br&gt;&lt;br&gt;Last, but not least, the AMD Athlon 64 3200+.  By today's standards (at the time this article was written, June 2007), this machine is already starting to show its age, but it's a beast with some serious power.  With the right operating system, it could easily support dozens of users running multiple applications at the same time, those applications being very modern (GUI based, with all the bells and whistles).&lt;br&gt;&lt;br&gt;And yet, too often, the performance disappoints.  I type a few letters into my word processor, and at that exact moment, the operating system (Windows XP Professional) decides I'm less important than something happening in the background, and I see a noticeable delay before my typing appears on the screen.  Perhaps I restore a program that's been minimized and idle for a while, and wait while the hard drive grinds and brings my application back up (and, in case you're interested, I never exhaust the physical RAM in this machine, which has 2 GB).  Or perhaps I decide to listen to some music in iTunes, and watch it slowly boot up.  There are many other examples of the computer being just plain lethargic.&lt;br&gt;&lt;br&gt;What's going on here?  We all have the equivalent of supercomputers on our desks, with far more power than we really need.  How could it be that we ever wait so long for such mundane things to happen on our computers?&lt;br&gt;&lt;br&gt;A big part of the problem, probably the primary problem, is the operating system (usually Windows).  It should be smarter.  The computer is our electronic servant, and should always give their owner a higher priority than, well, anything else.  For example, I should never see a delay while typing in my word processor.  I should never encounter a delay while restoring an application that's been idle for a while (unless I exhaust physical RAM and it has to be restored from disk, but once again, I never exhaust physical RAM).  Microsoft is obviously doing something terribly wrong inside Windows.&lt;br&gt;&lt;br&gt;Another part of the problem is software development.  As computers have gotten faster, software developers have used increasingly easier computer programming languages.  There are a lot of advantages to using languages that are easier to use and faster to develop with, but each and every user of your application pays a performance penalty.  Perhaps &lt;span style="font-style: italic;"&gt;too much&lt;/span&gt; of a performance penalty in some cases?  I love the safety and ease of use of these modern languages as much as the next software developer, but frequently, I can't help but think that perhaps my users would be better served if I was using a more efficient language, even if it made my job harder.&lt;br&gt;&lt;br&gt;If you'd like to get a taste of the kind of speed and responsiveness you could see from your computer if you were using more efficient software, consider giving &lt;a title="Damn Small Linux" target="_blank" href="http://www.damnsmalllinux.org/"&gt;Damn Small Linux&lt;/a&gt; a test drive.  It's a very small, efficient operating system, but also very capable and powerful.  I've got it booted right this minute, with a few applications running (including the &lt;a title="Firefox web browser" target="_blank" href="http://www.mozilla.com/en-US/"&gt;Firefox web browser&lt;/a&gt;), and the entire thing is consuming just 50 MB of RAM.  In fact, the entire OS itself (with all sorts of handy applications) is just 50 MB -- about 1/14th the size of a single CD.&lt;br&gt;&lt;br&gt;The next time you ask yourself, "Why is my computer so slow?", you should already know the answer: Because the people who wrote your operating system and your applications decided their time is more important than yours.  You might want to consider using more efficient operating systems and applications.&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35858582-5098916512811952701?l=rickpseudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rickpseudorandom.blogspot.com/feeds/5098916512811952701/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35858582&amp;postID=5098916512811952701' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/5098916512811952701'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/5098916512811952701'/><link rel='alternate' type='text/html' href='http://rickpseudorandom.blogspot.com/2007/06/why-is-my-computer-so-slow-list-of.html' title=''/><author><name>Ed Jensen</name><uri>http://www.blogger.com/profile/16634025597241349823</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-35858582.post-8472531544022067161</id><published>2007-04-13T07:51:00.000-05:00</published><updated>2007-04-13T08:22:45.877-05:00</updated><title type='text'>TV on a Cell Phone?!</title><content type='html'>I guess I first really noticed this while watching American Idol on my real TV.  They were advertising that you could watch video clips on your cell phone.  Lately I've seen and heard commercials for Verizon's VCast videos.  They're talking about it like it's the greatest new technology on Earth.  Hooray!  You can take video with you!  See what you can watch 48 hours in advance!&lt;br /&gt;&lt;br /&gt;I find the whole thing ridiculous.&lt;br /&gt;&lt;br /&gt;Not only are cell phone screens way too small to be useful as a streaming video player but is it really necessary to have video available to you at all times?  Has our society gotten so dependent on not being bored that we have to have something entertaining every second of every day no matter where we are?  We gotta have iPods in our ears at all time, cell phones that can surf, IM, and play videos, GameBoys and PSPs to play games, and Blackberrys so we can do business anytime anywhere.  Ever wonder why, as a society, our attention spans are getting shorter and we seem to have much less patience?&lt;br /&gt;&lt;br /&gt;I don't.  We're training ourselves.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35858582-8472531544022067161?l=rickpseudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rickpseudorandom.blogspot.com/feeds/8472531544022067161/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35858582&amp;postID=8472531544022067161' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/8472531544022067161'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/8472531544022067161'/><link rel='alternate' type='text/html' href='http://rickpseudorandom.blogspot.com/2007/04/tv-on-cell-phone.html' title='TV on a Cell Phone?!'/><author><name>Rick Kimmel</name><uri>http://www.blogger.com/profile/10445122554779658150</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-35858582.post-4897544766500379264</id><published>2007-04-03T15:04:00.000-05:00</published><updated>2007-04-13T08:22:59.593-05:00</updated><title type='text'></title><content type='html'> &lt;span style="font-weight: bold;"&gt;When is the last time you had fun programming?&lt;/span&gt;&lt;br&gt;&lt;br&gt;Ask yourself that question.  Be honest with the answer.&lt;br&gt;&lt;br&gt;If your answer is something similar to, "It's been a long time since I had fun programming," you owe it to yourself to check out the &lt;a title="Python programming language" target="blank_" href="http://www.python.org/"&gt;Python programming language&lt;/a&gt;.&lt;br&gt;&lt;br&gt;Even though I have my doubts about &lt;a title="dynamically typed programming languages" href="http://www.diveintopython.org/getting_to_know_python/declaring_functions.html"&gt;dynamically typed programming languages&lt;/a&gt; in general, I have to admit that &lt;span style="font-style: italic;"&gt;learning&lt;/span&gt; to program in Python, and programming in Python, is just plain fun.  It's easy to get started: Just &lt;a title="download and install Python" target="blank_" href="http://wiki.python.org/moin/BeginnersGuide/Download"&gt;download and install Python&lt;/a&gt;, and hop into the interactive interpreter.  There's an &lt;a title="excellent Python tutorial" target="blank_" href="http://docs.python.org/tut/tut.html"&gt;excellent Python tutorial&lt;/a&gt; to help you get started, and even a &lt;a title="free, high quality online book" target="blank_" href="http://diveintopython.org/toc/index.html"&gt;free, high quality online book&lt;/a&gt;.&lt;br&gt;&lt;br&gt;The Python interactive interpreter is a big part of what, for me, makes Python so much fun.  It reminds me of programming BASIC on the Commodore 64 in the early 1980s.  The Python interactive interpreter gives you that kind of instant gratification.  (With suitable apologies to anyone under 30 years old, who probably has no idea what I'm talking about.)&lt;br&gt;&lt;br&gt;For example, let's say you're starting to learn about Python lists.  Instead of flipping back and forth between an editor and running your Python program to check the results, you can experiment with Python lists right in the interactive interpreter.  Here's an example:&lt;br&gt;&lt;br&gt;&lt;span style="font-family: Courier New;"&gt;&amp;gt;&amp;gt;&amp;gt; mylist = ['one', 'two', 'three', 'four']&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;gt;&amp;gt;&amp;gt; print mylist&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;['one', 'two', 'three', 'four']&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;gt;&amp;gt;&amp;gt; mylist[1] = 'TWO!'&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;gt;&amp;gt;&amp;gt; print mylist&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;['one', 'TWO!', 'three', 'four']&lt;/span&gt;&lt;br&gt;&lt;br&gt;This kind of experimentation in the interactive interpreter saves a lot of time.  It's also a good way to learn how different functions behave in Python.  Here's another example:&lt;br&gt;&lt;br&gt;&lt;span style="font-family: Courier New;"&gt;&amp;gt;&amp;gt;&amp;gt; myfile = file("hello.txt", "r")&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;gt;&amp;gt;&amp;gt; line = myfile.next()&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;gt;&amp;gt;&amp;gt; print line&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;hello world&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;&amp;gt;&amp;gt;&amp;gt; myfile.close()&lt;/span&gt;&lt;br&gt;&lt;br&gt;You can even ask the interactive interpreter for help on objects and methods:&lt;br&gt;&lt;br&gt;&lt;span style="font-family: Courier New;"&gt;&amp;gt;&amp;gt;&amp;gt; help(file.close)&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;Help on method_descriptor:&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;close(...)&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;    close() -&amp;gt; None or (perhaps) an integer.  Close the file.&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;    Sets data attribute .closed to True.  A closed file cannot be used for&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;    further I/O operations.  close() may be called more than once without&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;    error.  Some kinds of file objects (for example, opened by popen())&lt;/span&gt;&lt;br style="font-family: Courier New;"&gt;&lt;span style="font-family: Courier New;"&gt;    may return an exit status upon closing.&lt;/span&gt;&lt;br&gt;&lt;br&gt;The standard Python library is also quite comprehensive.  You'll find support for just about anything you might need to do.  For anything not built into Python by default, you can probably find a Python library that does what you need.&lt;br&gt;&lt;br&gt;The community support for Python is impressive, too.  If you have a question about Python, type your question into Google and you're likely to get a relevant result in your first search results page.  You can also ask the friendly people at comp.lang.python on Usenet (though, admittedly, some of them are misguided and solidly in the "Python can do no wrong!" camp, or the "Why would you want to do that anyway?" camp -- you can identify and ignore them pretty easily, though).&lt;br&gt;&lt;br&gt;In case you're worried or wondering, Python is plenty buzzword compliant.  Dynamically typed, garbage collected, object oriented, etc.  It's also very portable: You can run Python on your Java Virtual Machine (thanks to &lt;a title="Jython" target="blank_" href="http://www.jython.org/Project/index.html"&gt;Jython&lt;/a&gt;) and on your .NET runtime (thanks to &lt;a title="IronPython" target="blank_" href="http://www.codeplex.com/Wiki/View.aspx?ProjectName=IronPython"&gt;IronPython&lt;/a&gt;), as well as running the standard Python interpreter.  Projects are well underway and making nice progress that enable you to compile Python to native code, as well.&lt;br&gt;&lt;br&gt;If your corporate software development has you singing the blues, and you feel like bringing back some of that magic you used to feel when writing software, give Python a test drive.  The worst that can happen is you waste a few hours, and the best that can happen is you'll discover a new, favorite programming language.&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35858582-4897544766500379264?l=rickpseudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rickpseudorandom.blogspot.com/feeds/4897544766500379264/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35858582&amp;postID=4897544766500379264' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/4897544766500379264'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/4897544766500379264'/><link rel='alternate' type='text/html' href='http://rickpseudorandom.blogspot.com/2007/04/when-is-last-time-you-had-fun.html' title=''/><author><name>Ed Jensen</name><uri>http://www.blogger.com/profile/16634025597241349823</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-35858582.post-8231458547782587756</id><published>2007-03-02T10:14:00.000-06:00</published><updated>2007-03-03T10:13:11.809-06:00</updated><title type='text'></title><content type='html'> &lt;span style="font-weight: bold;"&gt;Libraries: Java vs. C and C++&lt;/span&gt;&lt;br&gt;&lt;br&gt;Java is bloated.  I hear it over and over.  I hear it from colleagues; I hear it from C programmers, I hear it from C++ programmers.  I hear it from Java programmers.  I even hear it coming from my own lips (or typed from my own fingers), even though I generally like the Java programming language!&lt;br&gt;&lt;br&gt;And, to be honest, the fact that Java is bloated is becoming increasingly irrelevant (though, to be honest, it's not always irrelevant -- sometimes you really do need all the performance you can muster and/or and the smallest executable you can achieve).&lt;br&gt;&lt;br&gt;However, having been a software developer as long as I have, I can still remember the Assembly vs. C wars, and the C vs. C++ wars.  The wars stay the same, only the names change: Now it's usually C++ vs. Java, with the C++ advocates on the side that always seems to lose.&lt;br&gt;&lt;br&gt;&lt;span style="font-weight: bold;"&gt;With Great Bloat Comes Great Power!&lt;/span&gt;&lt;br&gt;&lt;br&gt;One of the reasons Java is bloated is actually one of its greatest strengths: the standard Java library.&lt;br&gt;&lt;br&gt;I had a (very brief) debate with someone on Usenet regarding libraries.  He was trying to convince me that the fact that C came with a very spartan standard library wasn't a disadvantage.  He felt it was advantageous: It keeps C small and agile, and gives you a lot of third party libraries to choose from, so you can be sure to choose the very best.  I'll admit that there's some small truth to his argument, but the disadvantages outweigh the advantages in most application domains, as I'll attempt to show here.&lt;br&gt;&lt;br&gt;&lt;span style="font-weight: bold;"&gt;When Will I Actually Get To Start Coding?&lt;/span&gt;&lt;br&gt;&lt;br&gt;To complete any non-trivial application in C or C++, you need to involve a lot of libraries.  You may end up needing GUI libraries, database libraries, scripting language libraries, arbitrary precision math libraries, collections libraries (this being more true of C than C++), networking libraries, security libraries...  The list goes on and on.&lt;br&gt;&lt;br&gt;In the world of C and C++ development, each of those libraries may, in turn, depend on other libraries.  You pretty quickly end up in a hell of spaghetti dependencies.  Just look at any non-trivial Linux application.  The dependency tree on many of them will blow you away.&lt;br&gt;&lt;br&gt;Of course, if you're being diligent, you'll want to evaluate multiple libraries in each category, right?  You need a GUI?  Okay, no problem: Do you use Qt?  How about Gtk+?  Have you considered wxWindows?  Maybe FLTK?  &lt;span style="font-style: italic;"&gt;&amp;lt;Insert a dozen more GUI libraries here!&amp;gt;&lt;/span&gt;&lt;br&gt;&lt;br&gt;Qt looks nice, but...  Oops, your budget is small and Qt is expensive, &lt;span style="text-decoration: underline;"&gt;really&lt;/span&gt; expensive.  No problem, we'll use the free (GPL licensed) version of Qt.  Oops, the onerous restrictions of the GPL doesn't meet the requirements of your company?  That's a shame.  Let's try Gtk+.&lt;br&gt;&lt;br&gt;Oh dear, the latest version of Gtk+ has a security advisory out against it?  Wait, it's not the Gtk+ library itself, but a library the Gtk+ library itself depends on?  Better keep track of all those dependencies...&lt;br&gt;&lt;br&gt;Bah, let's try wxWindows.  Happy days, it looks like the wxWindows library will meet your needs!&lt;br&gt;&lt;br&gt;Aw, darn it.  wxWindows doesn't support all the platforms you're targeting.  Back to the drawing board.&lt;br&gt;&lt;br&gt;Now repeat this exercise for the dozen or more libraries your application may require.  Good luck finding some time to actually, you know, start coding your own application.  (And, yes, I'm exaggerating a little bit to make my point.  Sue me.)&lt;br&gt;&lt;br&gt;Java, on the other hand, comes standard with Swing for your GUI; JDBC for your database connectivity (or even Dirby if you need a lightweight database); a JavaScript interpreter for scripting (Rhino); arbitrary precision math APIs, collections APIs; networking APIs; security APIs; etc.&lt;br&gt;&lt;br&gt;All of a sudden, the burden of evaluating libraries, researching licensing issues, tracking dependencies, ensuring platform support, and keeping abreast of security vulnerabilities has dropped to zero.  You work has been reduced to making sure an appropriate Java Runtime Environment is installed.&lt;br&gt; &lt;br&gt; Every developer probably already knows this, but Sun also offers Java with an extremely generous license (free as in beer).  This includes the development kit and the runtime environment.&lt;br&gt;&lt;br&gt;Starting with Java 7, Sun even plans to release Java under a license that should make most Free Software advocates happy.  There won't be any barriers to anyone shipping Java with their operating system, whether it be Windows, MacOS X, Linux, BSD, etc.&lt;br&gt; &lt;br&gt;&lt;span style="font-weight: bold;"&gt;Conclusions&lt;/span&gt;&lt;br&gt;&lt;br&gt; In any case, I hope I've made my point.  The rather spartan standard libraries that come with C and C++ are a huge disadvantage in many application domains, putting a much greater burden on the developer.  I'm convinced C and C++ still have their place and will still be in active use decades from now, but a huge number of applications are better built on higher level languages with massive (read: bloated) standard libraries.&lt;br&gt;&lt;br&gt;Go Bloat!&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35858582-8231458547782587756?l=rickpseudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rickpseudorandom.blogspot.com/feeds/8231458547782587756/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35858582&amp;postID=8231458547782587756' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/8231458547782587756'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/8231458547782587756'/><link rel='alternate' type='text/html' href='http://rickpseudorandom.blogspot.com/2007/03/libraries-java-vs.html' title=''/><author><name>Ed Jensen</name><uri>http://www.blogger.com/profile/16634025597241349823</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-35858582.post-3778395716391268692</id><published>2007-02-26T08:09:00.000-06:00</published><updated>2007-02-26T08:25:15.443-06:00</updated><title type='text'>Where are all the fancy schmancy graphics?</title><content type='html'>And where are the real links?  We mention a lot of stuff here and we never seem to link up the stuff.&lt;br /&gt;&lt;br /&gt;No graphics.  No links.&lt;br /&gt;&lt;br /&gt;I would love to add a bunch of sweet looking eye candy to this blog but the reality is that I suck at graphics.  I could spend hours putting graphics together but I'd much rather spend it doing something else.  Like writing here.  Or &lt;a href="http://www.ultimate-guitar.com/"&gt;playing guitar&lt;/a&gt;.  Or &lt;a href="http://www.boardgamegeek.com/"&gt;playing a board game&lt;/a&gt;.  Or watching the Osca...er...wait.  I'd rather make graphics than watch the Oscars.  But not &lt;a href="http://www.americanidol.com/"&gt;American Idol&lt;/a&gt;!  I'm a sucker for that show.&lt;br /&gt;&lt;br /&gt;As for the links?  I'm still not sure I want to litter my blog with tons of links.  They're distracting in a paragraph and usually take something away from the meaning of it.  They focus the reader on the links rather than other parts you may want to emphasize.  I'll try to make them more subtle with the CSS and if that doesn't work I may put the links at the end of the text in each blog entry.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35858582-3778395716391268692?l=rickpseudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rickpseudorandom.blogspot.com/feeds/3778395716391268692/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35858582&amp;postID=3778395716391268692' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/3778395716391268692'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/3778395716391268692'/><link rel='alternate' type='text/html' href='http://rickpseudorandom.blogspot.com/2007/02/where-are-all-fancy-schmancy-graphics.html' title='Where are all the fancy schmancy graphics?'/><author><name>Rick Kimmel</name><uri>http://www.blogger.com/profile/10445122554779658150</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-35858582.post-2345454316773949258</id><published>2007-02-23T13:52:00.000-06:00</published><updated>2007-02-23T13:54:53.407-06:00</updated><title type='text'></title><content type='html'>FYI, I've opened the comments to anonymous users.  If this becomes a problem I will have to change it back to registered users only.  Let's hope for the best!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35858582-2345454316773949258?l=rickpseudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rickpseudorandom.blogspot.com/feeds/2345454316773949258/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35858582&amp;postID=2345454316773949258' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/2345454316773949258'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/2345454316773949258'/><link rel='alternate' type='text/html' href='http://rickpseudorandom.blogspot.com/2007/02/fyi-ive-opened-comments-to-anonymous.html' title=''/><author><name>Rick Kimmel</name><uri>http://www.blogger.com/profile/10445122554779658150</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-35858582.post-8836190717843720251</id><published>2007-02-23T10:48:00.000-06:00</published><updated>2007-02-23T11:51:33.102-06:00</updated><title type='text'>Decaffeinated</title><content type='html'>A couple weeks ago I had a life changing event.  I was home alone with the kids and completely out of Pepsi.  I don't drink tea or coffee so I tried to go without the caffeine.  I was doing alright until about 1 o'clock when I started getting the dreaded lack-of-caffeine-headache.  At that point I should have packed the kids up, gone to the store, and gotten some caffeine.  But no, I decided to stay the course and wait for my wife to come back with some Pepsi.&lt;br /&gt;&lt;br /&gt;Bad plan.&lt;br /&gt;&lt;br /&gt;The headache kept getting worse.  By the time I finally decided to take some ibuprofen for it I realized we didn't have any of that either.  Shortly after that my wife arrived with some Pepsi which I quickly opened up and gulped down.  Then I went to lay down for a while and wait for the headache to go away.&lt;br /&gt;&lt;br /&gt;Wrong.&lt;br /&gt;&lt;br /&gt;It kept getting worse.  And I had to go to the bank.  I grabbed another Pepsi and went up to the store to buy some Ibuprofen.  My headache was so bad at that point my vision was starting to deteriorate.  Fortunately the grocery store is only a few block away.  I got the pain killers, went back out to my car, took 3 or 4 and slammed down some more Pepsi.  Then I proceeded to the bank -- painfully.  When I got there I felt like throwing up but they didn't have a public restroom (small town bank).  So I finished my business there and went back home.  When I got home I lied down for a short time and the nausea went away.&lt;br /&gt;&lt;br /&gt;After a while I was finally able to sleep.  A couple hours later I awoke to a very minor headache and an incredibly valuable lesson learned.&lt;br /&gt;&lt;br /&gt;There's really no punchline to go in here. It was the most miserable day in recent memory. I don't get migraines but I suspect what I got was much like one. I don't think I have ever felt pain that bad in my life.  The lesson?&lt;br /&gt;&lt;br /&gt;Caffeine wreaks havoc on your body.&lt;br /&gt;&lt;br /&gt;On that day I vowed to myself that I would never have that kind of reaction again to the lack of caffeine and the only way to do that was to break my addiction.  Was it a combination of factors?  Possibly.  But it certainly wasn't worth taking that risk.&lt;br /&gt;&lt;br /&gt;So I quit.  It took a long time to do it and it wasn't without moments of minor headaches.  I had to slowly wean myself off of it.  Every day I'd drink less caffeine and wait longer between feeding it to my body.  Eventually my body adjusted, grudgingly.&lt;br /&gt;&lt;br /&gt;It's Friday and I had a Coke this morning.  Before that I had one Wednesday afternoon.  Before that it was Tuesday morning.  I didn't drink one this morning because I was getting a headache. or because I'd get one if I didn't .  I drank it because I like the taste.  But I realize that if I have another one today I could fall into bad habits.  This isn't going to be easy.  When this 12-pack is gone (only 2 left) I'm going to get decaffeinated cola drinks.  That'll be good.&lt;br /&gt;&lt;br /&gt;The caffeine is still pulling at me.  I'm craving one right now.  But I'm not going to risk getting that kind of headache again.  Not ever.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35858582-8836190717843720251?l=rickpseudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rickpseudorandom.blogspot.com/feeds/8836190717843720251/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35858582&amp;postID=8836190717843720251' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/8836190717843720251'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/8836190717843720251'/><link rel='alternate' type='text/html' href='http://rickpseudorandom.blogspot.com/2007/02/decaffeinated.html' title='Decaffeinated'/><author><name>Rick Kimmel</name><uri>http://www.blogger.com/profile/10445122554779658150</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-35858582.post-6725337426545614600</id><published>2007-02-12T16:10:00.000-06:00</published><updated>2007-02-21T08:13:05.632-06:00</updated><title type='text'></title><content type='html'> &lt;span style="font-weight: bold;"&gt;Memory Management: C vs. Java&lt;/span&gt;&lt;br&gt;&lt;br&gt;Like many other companies, the company I work for decided to move from C to Java.  There were a lot of good reasons for the switch.  One of the biggest reasons was that we could ditch manual memory management (malloc(), free(), etc.) for automatic memory management (garbage collection).&lt;br&gt;&lt;br&gt;Garbage collection is usually marketed as having the following advantages:&lt;br&gt;&lt;br&gt;&lt;ul&gt;&lt;li&gt;No memory leaks&lt;br&gt;&lt;/li&gt;&lt;li&gt;Less development time spent on memory management&lt;br&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br&gt;Let's examine these claims in more detail.&lt;br&gt;&lt;br&gt;&lt;span style="font-weight: bold;"&gt;No memory leaks?&lt;/span&gt;&lt;br&gt;&lt;br&gt;It's not really entirely true that garbage collected languages have no memory leaks, depending on your exact definition for "memory leak".  Here are a few ways you can still leak memory in garbage collected languages like Java:&lt;br&gt;&lt;br&gt;&lt;ul&gt;&lt;li&gt;Accidentally keeping object references in collections.&lt;br&gt;&lt;br&gt;Garbage collected languages induce a false sense of security in many developers.  I've seen code that leaks memory by the megabyte because of developers forgetting to remove object references from collections when they're done with those objects.&lt;br&gt;&lt;br&gt;&lt;/li&gt;&lt;li&gt;Forgetting to release non-memory resources which themselves have allocated memory "under the covers".&lt;br&gt;&lt;br&gt;Many APIs, such as AWT, Swing, and JDBC are partially implemented in native code.  That native code often allocates memory from the operating system.  If the application fails to release one of these kinds of resources, memory is leaked more often than not.&lt;br&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br&gt;It's worth pointing out that I'm not suggesting garbage collected languages are just as likely as non-garbage collected languages to leak memory.  I'm just trying to show that garbage collected languages can also leak memory.&lt;br&gt;&lt;br&gt;&lt;span style="font-weight: bold;"&gt;Less development time spent on memory management?&lt;/span&gt;&lt;br&gt;&lt;br&gt;There's no doubt that it takes more time to write software that does manual memory management.  After all, those developers have to take the time to think about when memory resources can be safely disposed.&lt;br&gt;&lt;br&gt;There's also no doubt that developers will likely spend less time fixing memory leaks in garbage collected programs.  That's because there should be less memory leaks to track down and fix in the first place.&lt;br&gt;&lt;br&gt;However, there's another issue that's often swept under the rug...&lt;br&gt;&lt;br&gt;Before switching to Java, the company I work for used to sell products written mostly in C.  Not surprisingly, these products had the occasional memory leak.  It usually caused quite a stir around the office.  One or more developers would spend anywhere from a few hours to several days hunting down and fixing the leak.  Manual memory management was wasting our time!  Garbage collection would free us from this onerous task!&lt;br&gt;&lt;br&gt;Fast forward to the present.  Hardly a day goes by that I don't hear about our JVMs running out of memory, or our products not scaling well because they consume such a massive amount of memory.  It seems like developers are constantly trying to determine where the memory is going and how to use it more efficiently.&lt;br&gt;&lt;br&gt;All of a sudden, the occasional memory leak doesn't sound so bad.  Personally, I'm quite convinced we have more memory problems now than we did before.&lt;br&gt;&lt;br&gt;&lt;span style="font-weight: bold;"&gt;Conclusion&lt;/span&gt;&lt;br&gt;&lt;br&gt;To be fair, I can't say with any certainty that massive memory consumption is a common issue in garbage collected languages in general, though it does seem to be a problem with Java in particular.  The company I work for has a lot of really smart architects: &lt;span style="font-style: italic;"&gt;too smart&lt;/span&gt;, if you know what I mean.  They're ready and eager to deploy complicated patterns and over-engineered solutions for every problem, which most of us mere mortal developers find really hard and time consuming to maintain.&lt;br&gt;&lt;br&gt;Apparently, someone forgot to tell them that more time is spent on maintenance than on new development.  Writing easily maintainable code should always be priority #1.  Using every pattern imaginable isn't nearly as important.&lt;br&gt;&lt;br&gt;But I can say with certainty that we seem to be spending inordinate amounts of time worrying about the shocking memory requirements of our applications these days.  It seems garbage collection isn't quite the panacea that we were sold.&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35858582-6725337426545614600?l=rickpseudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rickpseudorandom.blogspot.com/feeds/6725337426545614600/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35858582&amp;postID=6725337426545614600' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/6725337426545614600'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/6725337426545614600'/><link rel='alternate' type='text/html' href='http://rickpseudorandom.blogspot.com/2007/02/memory-management-c-vs.html' title=''/><author><name>Ed Jensen</name><uri>http://www.blogger.com/profile/16634025597241349823</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>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35858582.post-3618042983621288426</id><published>2007-01-04T13:38:00.000-06:00</published><updated>2007-01-05T12:53:13.620-06:00</updated><title type='text'>Using Seams for Test Cases</title><content type='html'>I promised I'd write something techie one of these days so here it is.&amp;nbsp; It's a technique I've been using to write unit tests against code that has a problem with dependencies.&amp;nbsp; Many times this is a third party system or a database with a variable data set that you can't write a good case against.&amp;nbsp; Michael C. Feathers describes this as a Seam in &lt;a href="http://search.barnesandnoble.com/booksearch/isbnInquiry.asp?z=y&amp;amp;EAN=9780131177055&amp;amp;itm=6" target="blank_" title="Working Effectively with Legacy Code"&gt;Working Effectively with Legacy Code&lt;/a&gt; (a fantastic book -- buy it).&lt;br/&gt; &lt;br/&gt; So let's say you have a class something like this...&lt;br/&gt; &lt;br/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; public class Report {&lt;br/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public Integer[] fetchDataSet() {&lt;br/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Integer[] lDataSet = null;&lt;br/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Go to the DB and fetch the data set (use your imagination here...lol)&lt;br/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return lDataSet;&lt;br/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public int sumDataSet() {&lt;br/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Integer[] lDataSet = fetchDataSet();&lt;br/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int sum = 0;&lt;br/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (int i = 0; i &amp;lt; lDataSet.length; i++) {&lt;br/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sum += lDataSet[i].intValue();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return sum;&lt;br/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br/&gt; &lt;br/&gt; ...and you need to write a test for the sumDataSet() method.&amp;nbsp; Normally you would write a JUnit test something like this:&lt;br/&gt; &lt;br/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; public void testSumDataSet() {&lt;br/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Report report = new Report();&lt;br/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int sum = report.sumDataSet();&lt;br/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; assertFalse(sum == 0);&lt;br/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br/&gt; &lt;br/&gt; The two main problems with this is that it has a dependency on the database and you might not know what the values in the database are going to be so it's hard to make a proper assert.&amp;nbsp; There may be some cases where a sum of 0 is a valid sum so the assert in the example isn't a valid assert.&lt;br/&gt; &lt;br/&gt; Fortunately, this problem is easily solved.&amp;nbsp; All you need to do is subclass your Report object and replace the fetchDataSet() method with one of your own that returns a set of known values.&amp;nbsp; It looks like this:&lt;br/&gt; &lt;br/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; public class ReportTest extends Report {&lt;br/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public Integer[] fetchDataSet() {&lt;br/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Integer[] dataSet = new Integer[2];&lt;br/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dataSet[0] = new Integer(1);&lt;br/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dataSet[1] = new Integer(5);&lt;br/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return dataSet;&lt;br/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br/&gt; &lt;br/&gt; Now you can write your test case like this:&lt;br/&gt; &lt;br/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; public void testSumDataSetWithoutDB() {&lt;br/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Report report = new ReportTest();&lt;br/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int sum = report.sumDataSet();&lt;br/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; assertTrue(sum == 6);&lt;br/&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br/&gt; &lt;br/&gt; And voila!!&amp;nbsp; A true test of your sumDataSet() method that has no dependencies and a set of known values you can write a true assert against.&amp;nbsp; It's a real unit test!&amp;nbsp; Yes!!&lt;br/&gt; &lt;br/&gt; If you have any questions please refer to the Feathers book.&amp;nbsp; Every group that has legacy code should have a copy of it.&amp;nbsp; Buy it, read it, live it.&lt;br/&gt; &lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35858582-3618042983621288426?l=rickpseudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rickpseudorandom.blogspot.com/feeds/3618042983621288426/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35858582&amp;postID=3618042983621288426' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/3618042983621288426'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/3618042983621288426'/><link rel='alternate' type='text/html' href='http://rickpseudorandom.blogspot.com/2007/01/i-promised-id-write-something-techie_04.html' title='Using Seams for Test Cases'/><author><name>Rick Kimmel</name><uri>http://www.blogger.com/profile/10445122554779658150</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-35858582.post-6924187103490938379</id><published>2006-12-31T19:56:00.000-06:00</published><updated>2007-01-04T13:29:05.778-06:00</updated><title type='text'></title><content type='html'> &lt;span style="font-weight: bold;"&gt;Quit Stealing my Browser Windows!&lt;/span&gt;&lt;br&gt;&lt;br&gt;These days, a lot of applications open browser windows, for whatever reason.  Maybe you clicked on "Help" or "FAQ", and the application politely started an instance of your default browser, displaying whatever it is you wanted to see.  And that's great.  There's no reason to reinvent the wheel.  A web browser is really good at displaying help information, FAQs, and lots of other things.&lt;br&gt;&lt;br&gt;However, have you ever noticed that if you already have one or more browser windows open, applications will often steal one of those preexisting browser windows?  That is, the application has decided that it's time to navigate one of your preexisting browser windows to a different page, rather than opening a new browser window.&lt;br&gt;&lt;br&gt;Dumb, dumb, dumb.&lt;br&gt;&lt;br&gt;Happy New Year!  :-)&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35858582-6924187103490938379?l=rickpseudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rickpseudorandom.blogspot.com/feeds/6924187103490938379/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35858582&amp;postID=6924187103490938379' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/6924187103490938379'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/6924187103490938379'/><link rel='alternate' type='text/html' href='http://rickpseudorandom.blogspot.com/2006/12/quit-stealing-my-browser-windows-these.html' title=''/><author><name>Ed Jensen</name><uri>http://www.blogger.com/profile/16634025597241349823</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-35858582.post-7841435582067495399</id><published>2006-12-21T09:47:00.000-06:00</published><updated>2006-12-21T10:03:12.216-06:00</updated><title type='text'></title><content type='html'>About a month ago the company I work for changed their name (more like simplified their name) and introduced a new logo.  At the big Town Hall meeting where they unveiled the new logo they gave all the attendees some branded merchandise.  Cool, right?&lt;br /&gt;&lt;br /&gt;The problem is that it was (and you can't make this up) old leftover merchandise with the old logos!&lt;br /&gt;&lt;br /&gt;Here was a golden opportunity to give all their employees a bunch of t-shirts, sweatshirts, and hoodies with the new logo that they would wear out in public (i.e., free advertising) and promote the new corporate brand and image.&lt;br /&gt;&lt;br /&gt;But they blew it.  Utterly and completely blew it.&lt;br /&gt;&lt;br /&gt;What's worse is the demoralization effect on the employees.  I don't feel like a valued employee by receiving that stuff -- I feel like I'm one step above the garbage dumpster out back.  I would have been much happier if the company would have donated that stuff to local charities and then given out nothing.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35858582-7841435582067495399?l=rickpseudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rickpseudorandom.blogspot.com/feeds/7841435582067495399/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35858582&amp;postID=7841435582067495399' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/7841435582067495399'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/7841435582067495399'/><link rel='alternate' type='text/html' href='http://rickpseudorandom.blogspot.com/2006/12/about-month-ago-company-i-work-for.html' title=''/><author><name>Rick Kimmel</name><uri>http://www.blogger.com/profile/10445122554779658150</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-35858582.post-5820705150004196773</id><published>2006-12-20T08:27:00.000-06:00</published><updated>2006-12-20T08:30:40.303-06:00</updated><title type='text'></title><content type='html'>&lt;span style="font-weight: bold;"&gt;My Love/Hate Relationship with Microsoft&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It seems every time they do something really stupid (i.e., Vista) they do something really good for the community.  One of those is their constant battles against spam and spyware.  I applaud Microsoft for using some of their vast resources to combat these plagues.  This is from the SANS NewsBites newsletter which you can &lt;a href="http://portal.sans.org/"&gt;sign up for here&lt;/a&gt; (it's well worth it).&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt; --Microsoft Wins Summary Judgment Against Man for Selling Spam Lists&lt;br /&gt;(15 December 2006)&lt;br /&gt;A UK court granted a summary judgment against a man who was selling lists of email addresses for use in spamming schemes.  A lawsuit filed by Microsoft alleged that Paul Martin McDonald's sale of the lists violated the Privacy and Electronic Communications Regulations.  A summary of the case indicates the judge found that "the evidence plainly established that the business of [McDonald's company] was supplying email lists of persons who had not consented to receive direct marketing mail and that it had encouraged purchasers of the lists to send emails to those people."&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35858582-5820705150004196773?l=rickpseudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rickpseudorandom.blogspot.com/feeds/5820705150004196773/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35858582&amp;postID=5820705150004196773' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/5820705150004196773'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/5820705150004196773'/><link rel='alternate' type='text/html' href='http://rickpseudorandom.blogspot.com/2006/12/my-lovehate-relationship-with-microsoft.html' title=''/><author><name>Rick Kimmel</name><uri>http://www.blogger.com/profile/10445122554779658150</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-35858582.post-3028073044078993601</id><published>2006-12-16T13:09:00.000-06:00</published><updated>2006-12-16T13:16:40.602-06:00</updated><title type='text'></title><content type='html'>&lt;span style="font-weight: bold;"&gt;The Cell Phone Charger Scam&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Just a few days ago, I replaced my old cell phone with a new cell phone.&lt;br /&gt;&lt;br /&gt;The good news: It was a free upgrade! (I'm saying that tongue-in-cheek, since cell phone upgrades are typically subsidized by outrageously high monthly service fees. I'm looking at you, Verizon Wireless!)&lt;br /&gt;&lt;br /&gt;The bad news: I locked myself into two more years of slavery. Oops, I mean, I signed another two year contract.&lt;br /&gt;&lt;br /&gt;Every time I've ever upgraded my cell phone, I get a new cell phone charger, and they're always different. Why don't cell phone manufacturers settle on a standard interface for cell phone chargers? Probably because they make more money when they're all incompatible. Why sell people just a cell phone when you can sell them a cell phone and a charger every single time they upgrade?&lt;br /&gt;&lt;br /&gt;To be fair, you can buy universal cell phone chargers that claim to fit most cell phones. Be prepared to pay $20 to $30 for one, though. And remember, there's no guarantee your universal cell phone charger will fit your next cell phone.&lt;br /&gt;&lt;br /&gt;It gets even worse when you're talking about car cell phone chargers, the kind that plug into the cigarette lighter jack in your car. New cell phones almost always come with a regular charger (which plug into standard house power receptacles), but they never seem to come with a car cell phone charger. Open your wallet and prepare to pay another $20 to $30 for the privilege of being able to charge your cell phone in your car.&lt;br /&gt;&lt;br /&gt;Enough is enough! This time, I'm saying "NO!" to the man! I'm not going to pay $20 to $30 for a car cell phone charger that required maybe $4 to $5 worth of parts! Power to the people! Ahem...excuse me.&lt;br /&gt;&lt;br /&gt;This time, I've decided to buy an inverter. For those of you that don't know what an inverter is: It's a circuit for converting direct current (which is the kind of current the cigarette lighter jack in your car provides) to alternating current (which is the kind of current the power receptacles in your house provide). That way, I won't need a car cell phone charger: I can plug my regular cell phone charger into the inverter.&lt;br /&gt;&lt;br /&gt;Inverters run about $30 to $50, which is certainly more than a $20 to $30 car cell phone charger, but they also give you a lot more utility, since they can power lots of different devices depending on your need at the time. For example, they can power:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Cell phone charger &lt;/li&gt;&lt;li&gt;Laptop computer &lt;/li&gt;&lt;li&gt;An extra light &lt;/li&gt;&lt;li&gt;Video camera &lt;/li&gt;&lt;li&gt;Portable DVD player &lt;/li&gt;&lt;li&gt;Television set &lt;/li&gt;&lt;li&gt;Hand-held games &lt;/li&gt;&lt;li&gt;Rechargeable battery chargers&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Of course, the list goes on.&lt;br /&gt;&lt;br /&gt;Inverters are also bulkier, but if you're careful to buy an inverter with a long enough cord, you can easily stash it under your car seat and mostly forget about it. Also, most inverters can power more than one device at a time.&lt;br /&gt;&lt;br /&gt;If you upgrade your cell phone regularly, and each time, buy another car cell phone charger, you should consider an inverter. Do a bit of research and get a quality inverter, and it should be a long, long time before you ever need to worry about buying a car cell phone charger again. And, as I've already mentioned, the extra utility provided by an inverter can be quite valuable.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35858582-3028073044078993601?l=rickpseudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rickpseudorandom.blogspot.com/feeds/3028073044078993601/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35858582&amp;postID=3028073044078993601' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/3028073044078993601'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/3028073044078993601'/><link rel='alternate' type='text/html' href='http://rickpseudorandom.blogspot.com/2006/12/cell-phone-charger-scam-just-few-days.html' title=''/><author><name>Ed Jensen</name><uri>http://www.blogger.com/profile/16634025597241349823</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>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35858582.post-5531354040423661890</id><published>2006-12-14T11:16:00.000-06:00</published><updated>2006-12-14T11:18:58.342-06:00</updated><title type='text'></title><content type='html'>I am protesting the current trend of Tiny Font Syndrome and increasing the average size of all fonts on this blog.  Sorry tiny font lovers.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35858582-5531354040423661890?l=rickpseudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rickpseudorandom.blogspot.com/feeds/5531354040423661890/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35858582&amp;postID=5531354040423661890' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/5531354040423661890'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/5531354040423661890'/><link rel='alternate' type='text/html' href='http://rickpseudorandom.blogspot.com/2006/12/i-am-protesting-current-trend-of-tiny.html' title=''/><author><name>Rick Kimmel</name><uri>http://www.blogger.com/profile/10445122554779658150</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-35858582.post-116561787404791519</id><published>2006-12-08T16:44:00.000-06:00</published><updated>2006-12-19T09:19:15.065-06:00</updated><title type='text'></title><content type='html'>&lt;span style="font-weight: bold;"&gt;Windows XP Professional vs. Ubuntu GNU/Linux&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In the not-too-distant past, my hard drive crashed, and that made me sad. It also made me happy, because it gave me an excuse to purchase a larger hard drive. I ended up buying a hard drive with enough space to install both Windows XP Professional and &lt;a href="http://www.ubuntu.com/"&gt;Ubuntu GNU/Linux&lt;/a&gt; (which I'll just call Ubuntu going forward).&lt;br /&gt;&lt;br /&gt;All of this happened on my rather crappy Dell Inspiron 1150 laptop computer. (Dude, I'm &lt;span style="font-weight: bold;"&gt;never&lt;/span&gt; getting another Dell! Ya, like they care...)&lt;br /&gt;&lt;br /&gt;Like most people, I expected the Windows install to be easy, and the Ubuntu install to be hard. To my surprise, the exact opposite happened:&lt;br /&gt;&lt;br /&gt;Windows did not recognize my video.&lt;br /&gt;Windows did not recognize my audio.&lt;br /&gt;Windows did not recognize my touch pad (it worked, but none of the advanced features worked).&lt;br /&gt;Windows did not recognize my internal modem.&lt;br /&gt;Windows did not recognize my Ethernet port.&lt;br /&gt;&lt;br /&gt;About the only thing that worked out-of-the-box was Windows making damn sure I had a valid serial number.&lt;br /&gt;&lt;br /&gt;The last two problems could have been a big issue. Fortunately, I had a USB Flash Drive and another computer, so I could download all the appropriate drivers.&lt;br /&gt;&lt;br /&gt;And that I did. Search for driver, download. Search for driver, download. Search for driver, download. Etc.&lt;br /&gt;&lt;br /&gt;And then the really fun part. Install driver, reboot. Install driver, reboot. Install driver, reboot. Ah, Windows, how I hate thee sometimes.&lt;br /&gt;&lt;br /&gt;After downloading a bunch of Windows patches and rebooting a few more times, I had a fully functional Windows install. A fresh Windows install is a wonderful thing. It boots fast, it uses less than 128 MB of RAM to boot to your desktop, and it runs fast. Too bad it never lasts more than a few weeks, or a few months at most. Why is it that every piece of software on the planet thinks it's so important that it has to install and start parts of itself during system start-up? Sigh.&lt;br /&gt;&lt;br /&gt;After a few hours of installing Windows (and a few gray hairs), I installed Ubuntu. It went something like this:&lt;br /&gt;&lt;br /&gt;Ubuntu automatically recognized and configured my video.&lt;br /&gt;Ubuntu automatically recognized and configured my audio.&lt;br /&gt;Ubuntu automatically recognized and configured my touch pad (including the advanced features).&lt;br /&gt;Ubuntu automatically recognized and configured my internal modem.&lt;br /&gt;Ubuntu automatically recognized and configured my Ethernet port.&lt;br /&gt;&lt;br /&gt;Um...wow?&lt;br /&gt;&lt;br /&gt;Not only that, but Ubuntu gives you a real system. That is, it installs a decent (but not overwhelming) array of productivity applications for you automatically. Right after an Ubuntu install, you hit the ground running. And installing more applications is just a few clicks away. It's fantastic.&lt;br /&gt;&lt;br /&gt;People sometimes ask me, "Is Linux ready for the desktop yet?" From now on, I think I'll have to respond, "Yes, it is. Is Windows ready for the desktop yet?"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35858582-116561787404791519?l=rickpseudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rickpseudorandom.blogspot.com/feeds/116561787404791519/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35858582&amp;postID=116561787404791519' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/116561787404791519'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/116561787404791519'/><link rel='alternate' type='text/html' href='http://rickpseudorandom.blogspot.com/2006/12/windows-xp-professional-vs.html' title=''/><author><name>Ed Jensen</name><uri>http://www.blogger.com/profile/16634025597241349823</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-35858582.post-116526053677263557</id><published>2006-12-04T13:22:00.000-06:00</published><updated>2006-12-04T13:34:54.636-06:00</updated><title type='text'></title><content type='html'>I would like to welcome Ed to my blog.  I've known him forever and he's a great friend.  He'll be writing occasionally here on many of the same topics that I cover -- though I suspect most of them will be more technical than mine.  See his first blog entry below.&lt;br /&gt;&lt;br /&gt;I'll try to write some techie stuff soon.  Really.  I actually do work as a programmer as I have for the last 15 years and I do have some things to offer in the programming world.  I hope.&lt;br /&gt;&lt;br /&gt;I'll also try to update the look and feel of the site.  Right now it looks like a complete n00b put it together.  Which is...well...actually true.  I'm really not much of a css guy but I'm going to have to learn because I want to change a few things.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35858582-116526053677263557?l=rickpseudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rickpseudorandom.blogspot.com/feeds/116526053677263557/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35858582&amp;postID=116526053677263557' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/116526053677263557'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/116526053677263557'/><link rel='alternate' type='text/html' href='http://rickpseudorandom.blogspot.com/2006/12/i-would-like-to-welcome-ed-to-my-blog.html' title=''/><author><name>Rick Kimmel</name><uri>http://www.blogger.com/profile/10445122554779658150</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-35858582.post-116499372916049126</id><published>2006-12-01T11:22:00.000-06:00</published><updated>2006-12-01T11:22:09.190-06:00</updated><title type='text'></title><content type='html'> &lt;span style="font-weight: bold;"&gt;Why my next computer won't be a MacBook&lt;/span&gt;&lt;br&gt;&lt;br&gt;Lately I've been wanting my next computer to be a Macintosh. Beautiful GUI, Unix under the hood, Apple hardware. Yummy goodness!&lt;br&gt;&lt;br&gt;One of my co-workers was kind enough to give me a demonstration of his white MacBook. I was very impressed, but there are a number of things that I didn't like:&lt;br&gt;&lt;br&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;The pixels are too small for the screen size.&lt;/span&gt;&lt;br&gt;Here's the standard response I typically get: Change your font size! Icons in MacOS X are scalable! Etc.&lt;br&gt;I know, I know. Believe me, I know. But I still spend a lot of time doing things like browsing the world wide web, and there's a lot of content on the world wide web which (a) doesn't render correctly if you increase the font size in your browser, and (b) has graphics (such as navigation icons) that are fixed size (and often very tiny).&lt;br&gt;For most people this probably isn't an issue, but my vision isn't that great.&lt;br&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;I don't like glossy screens.&lt;/span&gt;&lt;br&gt;I'm sensitive to glare. I prefer matte screens. Enough said.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;The MacBook only has one mouse button.&lt;/span&gt;&lt;br&gt;I'm not sure why Apple has been pig-headed about this issue for so long. The utility of a second mouse button is huge. I know there are ways to work around the lack of a second mouse button, but they're simply not ideal.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;I'm not happy with the keyboard.&lt;/span&gt;&lt;br&gt;Some highlights: There are no stand-alone Page Up, Page Down, Home, and End keys. I use those keys frequently. The Eject button is too prominent. Reaching for Backspace results in hitting the CD/DVD Eject button too often.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Smooth laptop surface picks up too many fingerprints.&lt;/span&gt;&lt;br&gt;Perhaps it's just my Obsessive Compulsive Disorder talking, but I don't want a laptop full of ugly fingerprints.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Lack of built-in analog modem.&lt;/span&gt;&lt;br&gt;Part of the allure of laptops is their mobility, right? We might want to use them for traveling, right? And the MacBook doesn't have a built-in analog modem?! It just seems like a strange oversight to me.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Strange power adapter.&lt;/span&gt;&lt;br&gt;The MacBook power adapter sticks out from the wall even farther than typical wall warts. Bad design.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Video adapter needed for external displays (at extra cost, of course).&lt;/span&gt;&lt;br&gt;Forgive me for having old fashioned monitors and LCD panels. I don't want to pay extra for the adapter. A standard (translation: old fashioned) video port should be built-in.&lt;/li&gt;&lt;/ol&gt;&lt;br&gt;Despite all these things, &lt;span style="font-weight: bold;"&gt;MacOS X is so damn good&lt;/span&gt;, it almost (almost!) overrides the things I don't like about the MacBook. But that's a subject for a different time. :-)&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35858582-116499372916049126?l=rickpseudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rickpseudorandom.blogspot.com/feeds/116499372916049126/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35858582&amp;postID=116499372916049126' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/116499372916049126'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/116499372916049126'/><link rel='alternate' type='text/html' href='http://rickpseudorandom.blogspot.com/2006/12/why-my-next-computer-wont-be.html' title=''/><author><name>Ed Jensen</name><uri>http://www.blogger.com/profile/16634025597241349823</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-35858582.post-116482342912475678</id><published>2006-11-29T12:03:00.000-06:00</published><updated>2006-11-29T12:03:49.126-06:00</updated><title type='text'></title><content type='html'>&lt;span style="color: rgb(51, 204, 0);"&gt;The Grinch&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I've always liked The Grinch.  I've also always liked Ebenezer Scrooge.  Yeah, they go through a rough time in their life (who hasn't?) but in the end they just "Get it".&lt;br /&gt;&lt;br /&gt;Unlike most Americans.&lt;br /&gt;&lt;br /&gt;Every year I go to the Mall of America/Target/Best Buy and see people frantically buying....stuff.  I don't know how else to describe it.  It's just stuff.  And about 90% of it is crap.&lt;br /&gt;&lt;br /&gt;Target sent out a nice looking mini Christmas Catalog last week.  It had maybe 40 pages of toys and several pages of coupons for those toys.  In the front were the video games and DVDs -- most of which were crap.  Followed by about 20 pages of crap toys.  Followed by one page of great games from Cadoo.  And the last pages were filled with...you guessed it...crap.  I just looked at that stuff and stared at how bad it was.  I went through the thing again.  And again.  I shook my head.&lt;br /&gt;&lt;br /&gt;I think this sad state of toys started to happen when toys stopped being just toys.  It used to be that a Barbie was a Barbie.  Sure, you could buy a million outfits for Barbie but that was the whole point.  Now you have Barbie and her 100 friends in 100 different packages.  You have Beach Barbie, NASCAR Barbie, Redhead Barbie, Ballet Barbie.  You have Barbie video games, Barbie DVDs, Barbie chairs, girls clothing with Barbie on it, Barbie coloring books, Barbie fruit snacks, a Barbie board game, and Barbie tennis shoes (I kid you not).  It's freaking everywhere.&lt;br /&gt;&lt;br /&gt;And I wish it would just stop.&lt;br /&gt;&lt;br /&gt;This world doesn't need Barbie tennis shoes.  It doesn't need Barbie fruit snacks.  It doesn't need 90% of the garbage that has Barbie's logo on it.  It really just needs what it had back in the 70's.  A couple of dolls and a million different outfits that kids could creatively mix and match.&lt;br /&gt;&lt;br /&gt;And don't think I'm just picking on Barbie.  You can apply the same thing to Mattel's other cash cow Hot Wheels.  Then there's Bratz and Spongebob Squarepants.  Just go to Target or Wal-Mart and walk down the toy aisles.  Then go to the kids shoes.  Then go to the kids bed sheets.  Then go to the kids underwear.  Then go to the kids DVDs.  You'll see who the offenders are.&lt;br /&gt;&lt;br /&gt;But guess where everyone goes for kid's Christmas gifts?  Yep, Target.  And Wal-Mart.  So everyone is most likely to end up with a bunch of junky crap toys to give to kids.&lt;br /&gt;&lt;br /&gt;It's not much better at Best Buy.  Yes, I'd rather see a kid get a cool MP3 player than a 6-pack of Spongebob underwear.  Heck, even a Kidz Bop CD is better than that.  But most of the stuff that Best Buy features as gift ideas are equally as crappy as the stuff at Target.  Want to buy something for an adult?  Hey, he's a John Wayne fan.  Maybe score him that Deluxe Box Set of DVDs that he probably already has.  Or a cheap MP3 player instead of the iPod he wants.  Or a battery-chewing cordless optical mouse (those suck, BTW) to replace his corded one.  Can't find anything?  No problem!  Give him a nice shiny Gift Card.  The basic problem is that all the cool stuff in Best Buy that you would really want to receive costs a lot more than most people are willing to spend.  The odds of getting something cool from Best Buy from your second-uncle-twice-removed defines zero in the dictionary.  He's got $20 to spend and there's damned little in Best Buy worth buying for $20.  It's all......yup.......junk.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;There's a &lt;/span&gt;Revolution &lt;span style="color: rgb(51, 204, 0);"&gt;Calling&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Why does your second-uncle-twice-removed feel the need to buy something for you for Christmas anyways?&lt;br /&gt;&lt;br /&gt;Because that's the way the retail industry wants it and it works hard to reinforce the fallacy that Christmas will suck unless you give everyone you care about a gift -- no matter how crappy it might be.&lt;br /&gt;&lt;br /&gt;I SAY ENOUGH!!&lt;br /&gt;&lt;br /&gt;We need to get back to the basics.  Everyone talks about it or knows it but almost nobody does it.  How many times have you heard "Christmas is about more than just the gifts"?  Prove it!  People ask themselves "What would Jesus do?"  I can guarantee that Jesus wouldn't be buying a crappy $20 MP3 player or a 6-pack of Spongebob underwear for his second-cousin-twice-removed.  And he most certainly wouldn't just grab "whatever" at 4:59 PM on Christmas Eve so he'd have something to give someone.&lt;br /&gt;&lt;br /&gt;Let's all take a step back and remember what Christmas is all about and flip the bird to mass commercialization.  Buy fewer but more meaningful gifts.  Spend more time with the family.  Enjoy a great dinner.  Sing some carols, play some family games, have a snowball fight.  Make a Christmas decoration for next year.  Start a new tradition.  There are so many wonderful things about the holidays that we shouldn't pollute it with the stress and pain of the commercial aspects.&lt;br /&gt;&lt;br /&gt;Happy Holidays!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35858582-116482342912475678?l=rickpseudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rickpseudorandom.blogspot.com/feeds/116482342912475678/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35858582&amp;postID=116482342912475678' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/116482342912475678'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/116482342912475678'/><link rel='alternate' type='text/html' href='http://rickpseudorandom.blogspot.com/2006/11/grinch-ive-always-liked-grinch_29.html' title=''/><author><name>Rick Kimmel</name><uri>http://www.blogger.com/profile/10445122554779658150</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-35858582.post-116464363444607276</id><published>2006-11-27T09:58:00.000-06:00</published><updated>2006-11-27T10:08:26.323-06:00</updated><title type='text'></title><content type='html'>&lt;span style="color: rgb(255, 153, 0);"&gt;Another Reason for Microsoft to Get Bent&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;As if we needed any more...&lt;br /&gt;&lt;br /&gt;If you double-click on an M4A file (standard iPod music file) and don't have iTunes installed then Windows XP tells you that it can't open the file and asks you what to do.  If you select "Use the Web service to find the appropriate program" and click OK you get this:&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;b&gt;File Type: &lt;/b&gt;Unknown &lt;/p&gt;&lt;b&gt;Description: &lt;/b&gt;Windows does not recognize  this file type.&lt;br /&gt;&lt;br /&gt;Microsoft doesn't recognize the file format of the most popular portable music device in the world??  BULL.  Microsoft damn well knows what the file format is.  They just don't want to tell you to because you might choose an iPod over their crappy Zune.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35858582-116464363444607276?l=rickpseudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rickpseudorandom.blogspot.com/feeds/116464363444607276/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35858582&amp;postID=116464363444607276' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/116464363444607276'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/116464363444607276'/><link rel='alternate' type='text/html' href='http://rickpseudorandom.blogspot.com/2006/11/another-reason-for-microsoft-to-get.html' title=''/><author><name>Rick Kimmel</name><uri>http://www.blogger.com/profile/10445122554779658150</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-35858582.post-116291015516703839</id><published>2006-11-07T08:30:00.000-06:00</published><updated>2006-11-07T08:36:03.516-06:00</updated><title type='text'></title><content type='html'>&lt;h6&gt;Separation of Church and State?&lt;/h6&gt;&lt;br /&gt;&lt;br /&gt;I voted in a Christian church this morning.  I wonder how the local Muslims felt about that?  And I wonder how Christians would have felt if they had to vote in a Muslim church?  I'm guessing both situations make certain areas of population a little uncomfortable which can affect the voting results.&lt;br /&gt;&lt;br /&gt;I would like to see all polling places be either public schools, public libraries, or some other public government building.  Keep religion out of it and keep the voting fair for everyone.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35858582-116291015516703839?l=rickpseudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rickpseudorandom.blogspot.com/feeds/116291015516703839/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35858582&amp;postID=116291015516703839' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/116291015516703839'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/116291015516703839'/><link rel='alternate' type='text/html' href='http://rickpseudorandom.blogspot.com/2006/11/separation-of-church-and-state-i-voted.html' title=''/><author><name>Rick Kimmel</name><uri>http://www.blogger.com/profile/10445122554779658150</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-35858582.post-116230735209446826</id><published>2006-10-31T09:04:00.000-06:00</published><updated>2006-11-01T08:15:21.316-06:00</updated><title type='text'></title><content type='html'>Only in Minnesota can it be 65, sunny, with no wind on one day and then have 35, overcast, and a 30 below wind chill the next.  And, of course, the nice sunny day is the day &lt;span style="font-style: italic;"&gt;before&lt;/span&gt; Halloween.  Time to break out the parka.&lt;br /&gt;&lt;br /&gt;I'll leave you with one of my favorite quotes.  Original source is unknown but it's on a Living Colour CD.  Maybe they wrote it and just had some British guy read it?  Who knows.  Anyways...&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;"We must never take these words too seriously.  Words are very important.  If we take them too seriously we destroy everything."&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35858582-116230735209446826?l=rickpseudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rickpseudorandom.blogspot.com/feeds/116230735209446826/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35858582&amp;postID=116230735209446826' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/116230735209446826'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/116230735209446826'/><link rel='alternate' type='text/html' href='http://rickpseudorandom.blogspot.com/2006/10/only-in-minnesota-can-it-be-65-sunny.html' title=''/><author><name>Rick Kimmel</name><uri>http://www.blogger.com/profile/10445122554779658150</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-35858582.post-116169893322952048</id><published>2006-10-24T08:40:00.000-05:00</published><updated>2006-10-24T09:08:53.273-05:00</updated><title type='text'></title><content type='html'>So here we go.  It's time for Microsoft to force upon us another OS upgrade we don't really need.   If you haven't heard about Vista you've probably been living in a cave and you got here by Feeling Lucky on Google in the first 5 seconds you've been on the internet.&lt;br /&gt;&lt;br /&gt;Otherwise you've probably at least heard about Vista or read some reviews on it.  Honestly I've read very few things about Vista because I don't really need to.  All I need to know is this:&lt;br /&gt;&lt;br /&gt;1. It will cost me $600 to upgrade my 3 computers to Vista&lt;br /&gt;2. I don't have $600 to spend on OS upgrades&lt;br /&gt;&lt;br /&gt;So I won't upgrade.  It's as simple as that.  I didn't upgrade to XP either for the same reason.  I have XP at work.  The first thing I did was turn off that eye candy XP interface and go back to the classic look.  Then I switched from the Teletubbyland background to something cool.&lt;br /&gt;&lt;br /&gt;(Side rant:  If you're still using the Teletubbyland background please change it.  Pretty please?)&lt;br /&gt;&lt;br /&gt;Then I realized that it really doesn't do anything that Windows 2000 doesn't do.  There's a few changes but on a daily basis I can't tell the difference between my Windows 2000 OS at home and my XP OS at work.&lt;br /&gt;&lt;br /&gt;So why the hell do I need Vista?&lt;br /&gt;&lt;br /&gt;I imagine at some point Microsoft will stop supporting Windows 2000 and force everyone to upgrade.  That's the point where I look hard at the future of Windows and how much money the ongoing OS upgrades are going to cost me when my family has 3-4 computers.  Unless Microsoft drastically changes their licensing and fee structures for their OS it's starting to look more and more like Mac OS is going to be a viable alternative.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35858582-116169893322952048?l=rickpseudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rickpseudorandom.blogspot.com/feeds/116169893322952048/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35858582&amp;postID=116169893322952048' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/116169893322952048'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/116169893322952048'/><link rel='alternate' type='text/html' href='http://rickpseudorandom.blogspot.com/2006/10/so-here-we-go.html' title=''/><author><name>Rick Kimmel</name><uri>http://www.blogger.com/profile/10445122554779658150</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-35858582.post-116109057773926831</id><published>2006-10-17T08:01:00.000-05:00</published><updated>2006-10-23T15:29:38.646-05:00</updated><title type='text'></title><content type='html'>Shortly after creating my blog I started wondering when I would actually have time to keep it updated.  I started writing my entry on code ownership and realized that it was going to take a lot longer than I thought.  I remember back in college I would mock the journalism guys for taking the easy major the same way I would mock the business school guys.  I still mock the business school but I have a whole new respect for the journalism guys.  Writing articles is hard.  Writing good articles is even harder.  And writing good and interesting articles seems like a monumental task.  So, kudos to all you journalism folks.  I have a whole new respect for you.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35858582-116109057773926831?l=rickpseudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rickpseudorandom.blogspot.com/feeds/116109057773926831/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35858582&amp;postID=116109057773926831' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/116109057773926831'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/116109057773926831'/><link rel='alternate' type='text/html' href='http://rickpseudorandom.blogspot.com/2006/10/shortly-after-creating-my-blog-i.html' title=''/><author><name>Rick Kimmel</name><uri>http://www.blogger.com/profile/10445122554779658150</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-35858582.post-116058164101222167</id><published>2006-10-11T10:28:00.000-05:00</published><updated>2006-10-11T10:47:21.020-05:00</updated><title type='text'></title><content type='html'>Ok, so I finally did it.&lt;br /&gt;&lt;br /&gt;I created a blog.&lt;br /&gt;&lt;br /&gt;It was something I have considered  doing for a while now but just didn't know where to start.  But then I had a great conversation with a good friend of mine about code ownership and decided that would be a good place to start a blog.  It's something I feel fairly strongly about and I think I have some views worth sharing.  Which I'll do in another post.&lt;br /&gt;&lt;br /&gt;This blog will mostly cover software development topics -- design, process, etc. -- but will also cover anything else I feel like writing about.  I'm interested in a lot of things and I find curious or interesting things about the world almost every day.  Things where you think to yourself "That was odd!" or "Wow.  How many times have you seen that happen?" or just simply "WTF?".&lt;br /&gt;&lt;br /&gt;Hopefully I'm at least mildly informative or entertaining enough so that I get somewhat of a following.  If not, oh well.  I have no formal training in writing.  I never took writing classes while in college.  My vast experience in writing comes from everyday experience.  So I'm not sure what to expect.  At the very least I'll get a few things off my chest so it might have a therapeutic value for me outside of any value that you guys and gals might get.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35858582-116058164101222167?l=rickpseudorandom.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rickpseudorandom.blogspot.com/feeds/116058164101222167/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35858582&amp;postID=116058164101222167' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/116058164101222167'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35858582/posts/default/116058164101222167'/><link rel='alternate' type='text/html' href='http://rickpseudorandom.blogspot.com/2006/10/ok-so-i-finally-did-it.html' title=''/><author><name>Rick Kimmel</name><uri>http://www.blogger.com/profile/10445122554779658150</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></feed>
