<?xml version="1.0" encoding="utf-8"?>
<!-- If you are running a bot please visit this policy page outlining rules you must respect. http://www.livejournal.com/bots/ -->
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:lj="http://www.livejournal.com">
  <id>urn:lj:livejournal.com:atom1:davidphillips</id>
  <title>David Phillips</title>
  <subtitle>David Phillips</subtitle>
  <author>
    <email>david@acz.org</email>
    <name>David Phillips</name>
  </author>
  <link rel="alternate" type="text/html" href="http://davidphillips.livejournal.com/"/>
  <link rel="self" type="text/xml" href="http://davidphillips.livejournal.com/data/atom"/>
  <updated>2007-10-22T15:03:05Z</updated>
  <lj:journal username="davidphillips" type="personal"/>
  <link rel="service.feed" type="application/x.atom+xml" href="http://davidphillips.livejournal.com/data/atom" title="David Phillips"/>
  <entry>
    <id>urn:lj:livejournal.com:atom1:davidphillips:9760</id>
    <link rel="alternate" type="text/html" href="http://davidphillips.livejournal.com/9760.html"/>
    <link rel="self" type="text/xml" href="http://davidphillips.livejournal.com/data/atom/?itemid=9760"/>
    <title>PHP PEAR install error</title>
    <published>2006-11-28T05:07:14Z</published>
    <updated>2007-10-22T15:03:05Z</updated>
    <content type="html">I encountered this error while installing PHP.  It took me a while to determine the cause: an existing &lt;tt&gt;/tmp/pear&lt;/tt&gt; directory not writable by me.  Removing the directory or changing permissions on it fixes the problem.&lt;br /&gt;&lt;pre style="padding-left: 1em; width: 95%; height: 11em; overflow: auto;"&gt;
Installing PEAR environment:      /usr/local/lib/php/
could not extract the package.xml file from "phar://install-pear-nozlib.phar/Archive_Tar-1.3.1.tar"
[PEAR] Archive_Tar: Cannot initialize 'phar://install-pear-nozlib.phar/Archive_Tar-1.3.1.tar', invalid or missing package file
could not extract the package.xml file from "phar://install-pear-nozlib.phar/Console_Getopt-1.2.tar"
[PEAR] Console_Getopt: Cannot initialize 'phar://install-pear-nozlib.phar/Console_Getopt-1.2.tar', invalid or missing package file
could not extract the package.xml file from "phar://install-pear-nozlib.phar/PEAR-1.4.11.tar"
[PEAR] PEAR: Cannot initialize 'phar://install-pear-nozlib.phar/PEAR-1.4.11.tar', invalid or missing package file
Installing PDO headers:          /usr/local/include/php/ext/pdo/
&lt;/pre&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:davidphillips:9636</id>
    <link rel="alternate" type="text/html" href="http://davidphillips.livejournal.com/9636.html"/>
    <link rel="self" type="text/xml" href="http://davidphillips.livejournal.com/data/atom/?itemid=9636"/>
    <title>Pivot Tables in Oracle</title>
    <published>2006-11-20T03:50:59Z</published>
    <updated>2006-11-20T03:50:59Z</updated>
    <content type="html">This trick is a fast and efficient method for generating a set with any number of rows:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;SELECT level&lt;br /&gt;FROM dual&lt;br /&gt;CONNECT BY level &amp;lt;= 100 # row count&lt;br /&gt;&lt;/code&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:davidphillips:9096</id>
    <link rel="alternate" type="text/html" href="http://davidphillips.livejournal.com/9096.html"/>
    <link rel="self" type="text/xml" href="http://davidphillips.livejournal.com/data/atom/?itemid=9096"/>
    <title>Radically Restructured Database Architectures</title>
    <published>2006-04-28T03:41:54Z</published>
    <updated>2006-04-28T12:41:47Z</updated>
    <category term="databases"/>
    <content type="html">I just finished reading &lt;a href="http://acmqueue.com/modules.php?name=Content&amp;amp;pa=showpage&amp;amp;pid=293"&gt;A Call to Arms&lt;/a&gt;, an interesting article about various aspects of future database architectures.  Quotes:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;"...relational operators make up nothing more than the outer loop of&lt;br /&gt;nonprocedural programs and so really must be executed in parallel and&lt;br /&gt;at the lowest possible cost."&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;"For petabyte-scale databases, the only solution may be to run&lt;br /&gt;continuous data scans, with queries piggybacked on top of the scans."&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;This last one seems to have already arrived with &lt;a href="http://www.sqlite.org/"&gt;SQLite&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;"Indeed, if every file system, every disk, every phone, every TV,&lt;br /&gt;every camera, and every piece of smart dust is to have a database&lt;br /&gt;inside, then those database systems will need to be self-managing,&lt;br /&gt;self-organizing, and self-healing."&lt;/i&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:davidphillips:8705</id>
    <link rel="alternate" type="text/html" href="http://davidphillips.livejournal.com/8705.html"/>
    <link rel="self" type="text/xml" href="http://davidphillips.livejournal.com/data/atom/?itemid=8705"/>
    <title>Back in Kansas City</title>
    <published>2006-03-19T19:00:11Z</published>
    <updated>2006-03-19T19:00:11Z</updated>
    <content type="html">This may come as a shock to all three of you who read this, but I am back in the Kansas City area.&lt;br /&gt;&lt;br /&gt;On December 30, exactly three months after I started, I left Amazon and moved back to Kansas City to continue working at &lt;a href="http://www.adknowledge.com/"&gt;Adknowledge&lt;/a&gt;.  The decision to leave Amazon was difficult, but since my first day back at Adknowledge, I am 100% convinced it was the right one.  At Amazon, I felt like a small piece of a single part of a large machine.  At Adknowledge, I have the chance to contribute something valuable to the company and fellow employees every day.&lt;br /&gt;&lt;br /&gt;My condo in Leawood did not sell after being on the market for three and a half months, so I was able to move back into it.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:davidphillips:8654</id>
    <link rel="alternate" type="text/html" href="http://davidphillips.livejournal.com/8654.html"/>
    <link rel="self" type="text/xml" href="http://davidphillips.livejournal.com/data/atom/?itemid=8654"/>
    <title>Seattle</title>
    <published>2005-09-27T22:52:40Z</published>
    <updated>2005-09-27T22:52:40Z</updated>
    <content type="html">I am now in Seattle.  We arrived on Saturday afternoon.  It wasn't much fun flying with the cat.  He didn't enjoy being stuck in a bag (essentially a duffel bag designed for transporting animals) for half the day.  There was a minor complication with Lu's snake -- I failed to find out the container requirements from NWA Cargo and the one we brought was not sufficient.  Fortunately, my parents had insisted on driving us to the airport instead of us taking a cab.  They graciously offered to find the proper container and ship the snake later that day.  It arrived in the evening.  The NWA Cargo people in Seattle were a lot friendlier than the ones in Kansas City.&lt;br /&gt;&lt;br /&gt;The next time I fly I will not choose NWA.  The first leg of the flight only served drinks, no snacks.  The second leg was the same, but also offered &lt;a href="http://www.nwa.com/services/onboard/special/meals.html"&gt;a snack box&lt;/a&gt; for $3.  Both had the usual half drink can (where the flight attendant gives you half a can of whatever drink you select in a cup and keeps the rest of the can for the next passenger).  I think they could do a lot better for a $500 one way domestic flight.  Is a whole 12 oz. drink and complimentary snack (even the typical bag of peanuts) too much to ask?  I flew with them on a round trip international flight that cost $775 and each way had three full meals which were surprisingly good.&lt;br /&gt;&lt;br /&gt;I am still waiting on internet access in the Amazon provided temporary housing (a &lt;a href="http://www.harborsteps.com/"&gt;nice apartment&lt;/a&gt; furnished by a different company), so I am posting this from a &lt;a href="http://www.onlinecoffeeco.com/"&gt;coffee shop&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Seattle is nice, but if feels weird to think that I live here now.  I am excited about starting work on Friday.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:davidphillips:8428</id>
    <link rel="alternate" type="text/html" href="http://davidphillips.livejournal.com/8428.html"/>
    <link rel="self" type="text/xml" href="http://davidphillips.livejournal.com/data/atom/?itemid=8428"/>
    <title>Amazon</title>
    <published>2005-08-31T04:04:46Z</published>
    <updated>2005-08-31T04:04:46Z</updated>
    <content type="html">I have accepted a Software Development Engineer position at &lt;a href="http://www.amazon.com/"&gt;Amazon&lt;/a&gt;.  I will be moving to Seattle and starting work at the end of September.  Everyone I spoke to was very smart and enthusiastic about working at Amazon.  The recruitment process was positive, but longer than expected -- I had eight different interviews with engineers and technical managers, plus four different recruiters.&lt;br /&gt;&lt;br /&gt;I regret having to leave &lt;a href="http://www.adknowledge.com/"&gt;Adknowledge&lt;/a&gt; after a little less than a year, but this opportunity is too good to pass up.  Adknowledge is an excellent company to work for and they are hiring right now for a variety of positions, including several UNIX Engineer positions.  If you are interested in working for a fast paced internet company in the Kansas City area, &lt;a href="mailto:david@acz.org?subject=Resume+for+Adknowledge"&gt;send me&lt;/a&gt; your resume and I will make sure the appropriate people see it.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:davidphillips:8178</id>
    <link rel="alternate" type="text/html" href="http://davidphillips.livejournal.com/8178.html"/>
    <link rel="self" type="text/xml" href="http://davidphillips.livejournal.com/data/atom/?itemid=8178"/>
    <title>Social Security</title>
    <published>2005-05-04T20:58:58Z</published>
    <updated>2005-05-04T20:58:58Z</updated>
    <content type="html">I was reading the &lt;a href="http://abcnews.go.com/Politics/wireStory?id=713576"&gt;transcript of Bush's press conference&lt;/a&gt; and this quote jumped out at me:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Now, it's very important for our fellow citizens to understand there is not a bank account here in Washington, D.C., where we take your payroll taxes and hold it for you and then give it back to you when you retire. &lt;br /&gt;&lt;br /&gt;Our system is called pay as you go. You pay into the system through your payroll taxes and the government spends it. It spends the money on the current retirees and with the money left over, it funds other government programs. &lt;br /&gt;&lt;br /&gt;And all that's left behind is file cabinets full of IOUs.&lt;/i&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:davidphillips:7710</id>
    <link rel="alternate" type="text/html" href="http://davidphillips.livejournal.com/7710.html"/>
    <link rel="self" type="text/xml" href="http://davidphillips.livejournal.com/data/atom/?itemid=7710"/>
    <title>Perl</title>
    <published>2005-04-14T21:28:41Z</published>
    <updated>2005-04-14T21:29:06Z</updated>
    <content type="html">I have decided to be pragmatic and actually learn Perl.  I have never liked the look of Perl and have never wanted to learn it.  This decision has been based on personal taste and principle as a programmer.  But due to the fact that it's installed by default on almost every modern UNIX based OS, I now think it's worth learning.  Python is great, but it's not always available or usable.  What would happen if I start to actually like Perl?</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:davidphillips:7449</id>
    <link rel="alternate" type="text/html" href="http://davidphillips.livejournal.com/7449.html"/>
    <link rel="self" type="text/xml" href="http://davidphillips.livejournal.com/data/atom/?itemid=7449"/>
    <title>Car</title>
    <published>2005-04-01T17:22:57Z</published>
    <updated>2005-04-01T17:23:48Z</updated>
    <content type="html">My car was stolen yesterday evening from the parking garage at my office building, &lt;a href="http://skyscraperpage.com/cities/?buildingID=7523"&gt;Plaza West&lt;/a&gt;.  Unfortunately, this is not an April Fool's joke.  Of all the places that I've parked my car in the five years that I've owned it, this is one of the last places from which I would expect it to be stolen.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:davidphillips:7419</id>
    <link rel="alternate" type="text/html" href="http://davidphillips.livejournal.com/7419.html"/>
    <link rel="self" type="text/xml" href="http://davidphillips.livejournal.com/data/atom/?itemid=7419"/>
    <title>Taiwan</title>
    <published>2005-03-21T00:58:50Z</published>
    <updated>2005-04-01T17:25:09Z</updated>
    <content type="html">I just got back from my week long trip to Taiwan.  I'll post more later.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update:&lt;/b&gt; Here are some &lt;a href="http://pg.photos.yahoo.com/ph/lu6094/album?.dir=83b8"&gt;pictures&lt;/a&gt; from the trip.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:davidphillips:7009</id>
    <link rel="alternate" type="text/html" href="http://davidphillips.livejournal.com/7009.html"/>
    <link rel="self" type="text/xml" href="http://davidphillips.livejournal.com/data/atom/?itemid=7009"/>
    <title>Google Myths</title>
    <published>2005-02-15T23:08:33Z</published>
    <updated>2005-02-15T23:08:33Z</updated>
    <content type="html">If you are interested in Google or search engine optimization then read this interesting article, &lt;a href="http://www.sitepoint.com/article/top-10-google-myths-revealed"&gt;Top 10 Google Myths Revealed&lt;/a&gt;.  I learned a bit about Google SEO at my last job thanks to a co-worker of mine and a guy I met at another company.  Based on my experience I will say that everything in the article seems to be correct.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:davidphillips:6836</id>
    <link rel="alternate" type="text/html" href="http://davidphillips.livejournal.com/6836.html"/>
    <link rel="self" type="text/xml" href="http://davidphillips.livejournal.com/data/atom/?itemid=6836"/>
    <title>Pot Holes</title>
    <published>2005-02-15T23:04:39Z</published>
    <updated>2005-02-15T23:04:39Z</updated>
    <content type="html">I hate driving around here.  It seems that there is a road obstacle every few hundred feet.  I don't remember there being this many holes in the road here.  Maybe it's a winter thing?  Or due to the fact that I drive more in Missouri now?  Whatever the cause, it sucks.  Fix the pot holes!</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:davidphillips:6631</id>
    <link rel="alternate" type="text/html" href="http://davidphillips.livejournal.com/6631.html"/>
    <link rel="self" type="text/xml" href="http://davidphillips.livejournal.com/data/atom/?itemid=6631"/>
    <title>Moving Completed</title>
    <published>2005-02-14T17:02:20Z</published>
    <updated>2005-02-14T17:02:20Z</updated>
    <content type="html">I moved into my new &lt;a href="http://david.acz.org/condo.html"&gt;condo&lt;/a&gt; in Leawood over the weekend.  There is still lots of unpacking and setting up left to do, of course, but the hard part is now out of the way.  If anyone in the Kansas City area is looking for movers to load and/or unload, let me know, as I would recommend the guys that I hired.&lt;br /&gt;&lt;br /&gt;I will post pictures once we get everything setup.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:davidphillips:6211</id>
    <link rel="alternate" type="text/html" href="http://davidphillips.livejournal.com/6211.html"/>
    <link rel="self" type="text/xml" href="http://davidphillips.livejournal.com/data/atom/?itemid=6211"/>
    <title>Insane Clown Posse</title>
    <published>2005-02-10T22:30:21Z</published>
    <updated>2005-02-10T22:30:53Z</updated>
    <content type="html">There is nothing like listening to some ICP at work to put you in a better mood.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:davidphillips:5963</id>
    <link rel="alternate" type="text/html" href="http://davidphillips.livejournal.com/5963.html"/>
    <link rel="self" type="text/xml" href="http://davidphillips.livejournal.com/data/atom/?itemid=5963"/>
    <title>Feed Search Engines</title>
    <published>2005-02-03T21:08:34Z</published>
    <updated>2005-02-03T21:08:34Z</updated>
    <content type="html">&lt;a href="http://www.xml.com/pub/a/2002/12/18/dive-into-xml.html"&gt;RSS&lt;/a&gt; &lt;a href="http://www.feedster.com/"&gt;search&lt;/a&gt; &lt;a href="http://www.blogdigger.com/"&gt;engines&lt;/a&gt; are very cool.  I'm surprised that Google hasn't started searching them yet, especially since they own &lt;a href="http://www.blogger.com/"&gt;Blogger&lt;/a&gt;.  Or maybe they already do search them and I just can't tell.&lt;br /&gt;&lt;br /&gt;RSS is useful because the information is usually fresh.  Google's index update time is usually measured in weeks, not hours.  Blogs empower anyone to be their own news outlet.  Most current topics, especially technical, can be found on blogs all over the internet.  They provide a sort of mini world wide web.&lt;br /&gt;&lt;br /&gt;Implementing a feed search engine would be a fun project.  Relevancy could be determined based on links between blogs and topics.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:davidphillips:5669</id>
    <link rel="alternate" type="text/html" href="http://davidphillips.livejournal.com/5669.html"/>
    <link rel="self" type="text/xml" href="http://davidphillips.livejournal.com/data/atom/?itemid=5669"/>
    <title>Mouse Habits</title>
    <published>2005-01-31T15:29:32Z</published>
    <updated>2005-01-31T15:29:32Z</updated>
    <content type="html">I changed offices at work on Friday and due to the different desk arrangement I had to place my second monitor on the right of the primary monitor instead of on the left.  The physical arrangement matters because I set the logical arrangement in Windows to match.  I found that when going for the titlebar icons (minimize, maximize, close) I usually overshoot them and end up on the second monitor (which is bad because I then click on the titlebar icon of the maximized application on that monitor).&lt;br /&gt;&lt;br /&gt;I don't do this intentionally.  It's a habit of using Windows for ten years.  Normally, this behavior is fine since the edge of the screen bounds the mouse pointer and it ends up in almost exactly the right spot.  This is a great example of the problems faced when doing interface design.  What works well in one situation breaks down the moment some assumed constraints are changed.  I think that the taskbar would be even worse.  I always "overshoot" the taskbar buttons.&lt;br /&gt;&lt;br /&gt;Would this be better on Mac OS X?  I think so.  Why?  Because on OS X the icons are on the left and my second monitor is on the right!  But seriously, it would be better because I rarely use the icons.  The &lt;a href="http://docs.info.apple.com/article.html?artnum=75459"&gt;keyboard shortcuts&lt;/a&gt; are much better: Cmd-Q to quit the application, Cmd-W to close the current window and Cmd-M to minimize the current window.  Windows doesn't have a keyboard shortcut for minimize and the other equivalent shortcuts are not nearly as convenient.  As ironic as it sounds, I use the keyboard more on my PowerBook for window operations than I do on Windows.&lt;br /&gt;&lt;br /&gt;That said, I don't think the Mac is perfect.  For example, the ancient behavior of &lt;a href="http://www.neuro-tech.net/archives/000372.html"&gt;not automatically closing applications when the last document window is closed&lt;/a&gt; seems counter intuitive, especially for normal users who have used Windows, and should at the very least be configurable.  However, it could in fact be easier for people that have never used a computer.  I also find it annoying that Safari doesn't have an option to warn me when I Cmd-Q with multiple tabs open.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:davidphillips:5607</id>
    <link rel="alternate" type="text/html" href="http://davidphillips.livejournal.com/5607.html"/>
    <link rel="self" type="text/xml" href="http://davidphillips.livejournal.com/data/atom/?itemid=5607"/>
    <title>New Condo</title>
    <published>2005-01-14T14:23:28Z</published>
    <updated>2005-01-14T14:23:28Z</updated>
    <content type="html">I closed on a &lt;a href="http://david.acz.org/condo.html"&gt;condo&lt;/a&gt; in the Kansas City area (Leawood) on Wednesday.  I actually spent about a month and a half looking this time.  It's farther from work than I would like, but other than that the location  is good (it's right next to &lt;a href="http://www.towncenterplaza.net/"&gt;Town Center Plaza&lt;/a&gt;).  I guess this means I'm stuck in Kansas for a while.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:davidphillips:5219</id>
    <link rel="alternate" type="text/html" href="http://davidphillips.livejournal.com/5219.html"/>
    <link rel="self" type="text/xml" href="http://davidphillips.livejournal.com/data/atom/?itemid=5219"/>
    <title>Kansas City</title>
    <published>2005-01-09T00:10:44Z</published>
    <updated>2005-01-09T00:13:15Z</updated>
    <content type="html">If you're reading this, then you probably already know, but I'll post it here anyway.&lt;br /&gt;&lt;br /&gt;I accepted a job at &lt;a href="http://www.adknowledge.com"&gt;Adknowledge, Inc.&lt;/a&gt; and moved to Kansas City in mid October.  The office is on the west edge of the Plaza.  I'm currently living in an apartment about two blocks away.  I was hired to do Windows programming, but after about the first month I have been doing UNIX programming.  It is different than GeekTech, but it has been an interesting change.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:davidphillips:5043</id>
    <link rel="alternate" type="text/html" href="http://davidphillips.livejournal.com/5043.html"/>
    <link rel="self" type="text/xml" href="http://davidphillips.livejournal.com/data/atom/?itemid=5043"/>
    <title>Hungarian Notation Revisited</title>
    <published>2005-01-07T18:28:39Z</published>
    <updated>2005-01-07T18:33:53Z</updated>
    <content type="html">I read a good &lt;a href="http://weblogs.asp.net/rick_schaut/archive/2004/02/14/73108.aspx"&gt;blog entry&lt;/a&gt; about Hungarian notation the other day.  The &lt;a href="http://msdn.microsoft.com/library/en-us/dnvs600/html/hunganotat.asp"&gt;original Hungarian notation&lt;/a&gt; proposed by Charles Simonyi actually makes a lot of sense.  It is a shame that &lt;a href="http://weblogs.asp.net/earhart/archive/2005/01/05/346949.aspx"&gt;most people&lt;/a&gt; dislike what they think is Hungarian notation simply because much Windows code uses a horrible variable naming technique that detrects from readiblity.  As you may note from one my &lt;a href="http://www.livejournal.com/users/davidphillips/3614.html"&gt;previous entries&lt;/a&gt;, I used to fall into that camp.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:davidphillips:4727</id>
    <link rel="alternate" type="text/html" href="http://davidphillips.livejournal.com/4727.html"/>
    <link rel="self" type="text/xml" href="http://davidphillips.livejournal.com/data/atom/?itemid=4727"/>
    <title>Texas Holdem and Winamp</title>
    <published>2004-08-27T21:40:21Z</published>
    <updated>2005-01-14T14:25:04Z</updated>
    <content type="html">I played no limit Texas Holdem Tuesday night.  It was a seven person game with a $10 buy-in.  The game started at 7pm and ended up going until 2am, at which point the two of us left decided to call it a quits and split the pot.  Next time, we should either start with fewer chips or raise the blinds more often.&lt;br /&gt;&lt;br /&gt;I learned something yesterday: &lt;a href="http://winamp.com/about/article.php?aid=10567"&gt;Winamp 5 is the same as Winamp 2&lt;/a&gt;.  For some reason I had thought that Winamp 5 was simply a new version of the abomination that was Winamp 3.  If you don't choose support for "modern skins" (Winamp 3 skins) when you install it, then it's almost exactly the same.  The only differences are that the preferences are arranged better, the 3D credits are a bit different, the menu has a link to the help page and it has some extra (optional) plugins.  And no doubt many bugs have been fixed.  So if you haven't upgraded from 2.91, do so.  It's good to see that &lt;a href="http://en.wikipedia.org/wiki/Justin_Frankel"&gt;Justin&lt;/a&gt; left Winamp in good shape before he left AOL.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:davidphillips:4439</id>
    <link rel="alternate" type="text/html" href="http://davidphillips.livejournal.com/4439.html"/>
    <link rel="self" type="text/xml" href="http://davidphillips.livejournal.com/data/atom/?itemid=4439"/>
    <title>Texas Holdem at Canterbury Park</title>
    <published>2004-08-21T23:22:23Z</published>
    <updated>2005-01-07T18:36:17Z</updated>
    <content type="html">I just lost $38 playing $2/$4 Texas Holdem at the &lt;a href="http://www.canterburypark.com/cardclub/poker/holdem_how.htm"&gt;Canterbury Park&lt;/a&gt; Casino.  Though, I won $35 yesterday in our office golf putting pool, so I guess that's alright.  It was fun and I'm sure I'll play again sometime in the near future.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:davidphillips:4277</id>
    <link rel="alternate" type="text/html" href="http://davidphillips.livejournal.com/4277.html"/>
    <link rel="self" type="text/xml" href="http://davidphillips.livejournal.com/data/atom/?itemid=4277"/>
    <title>Evanescence Concert</title>
    <published>2004-07-17T17:57:56Z</published>
    <updated>2005-01-07T18:40:33Z</updated>
    <content type="html">I saw &lt;a href="http://www.evanescence.com/"&gt;Evanescence&lt;/a&gt; in concert on Tuesday, along with &lt;a href="http://www.breakingbenjamin.com/"&gt;Breaking Benjamin&lt;/a&gt;, &lt;a href="http://www.threedaysgrace.com/"&gt;Three Days Grace&lt;/a&gt; and &lt;a href="http://www.seether.com/"&gt;Seether&lt;/a&gt;.  Evanescence put on a great show and performed an excellent cover of &lt;a href="http://www.smashingpumpkins.com/"&gt;Smashing Pumpkins&lt;/a&gt;' Zero.  &lt;br /&gt;&lt;br /&gt;Besides Evanescence, I was most impressed with Breaking Benjamin.  I liked their vocals and performance better than the other two bands (though, I still enjoyed them thoroughly) and was disapointed that they played the least songs.  I think it's been almost two years since I have purchased any CDs, mainly due to me being disgusted by the &lt;a href="http://www.riaa.com/"&gt;evil record cartel&lt;/a&gt;'s business practices, but I am seriously considering buying their CDs.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:davidphillips:4078</id>
    <link rel="alternate" type="text/html" href="http://davidphillips.livejournal.com/4078.html"/>
    <link rel="self" type="text/xml" href="http://davidphillips.livejournal.com/data/atom/?itemid=4078"/>
    <title>White Chicks</title>
    <published>2004-07-04T08:18:59Z</published>
    <updated>2005-01-07T18:41:08Z</updated>
    <content type="html">I enjoyed seeing &lt;a href="http://www.sonypictures.com/movies/whitechicks/"&gt;White Chicks&lt;/a&gt; tonight.  I didn't expect it to be that good.  About half way through the movie I realized that it was basically a remake of &lt;a href="http://imdb.com/title/tt0053291/"&gt;Some Like It Hot&lt;/a&gt;.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:davidphillips:3614</id>
    <link rel="alternate" type="text/html" href="http://davidphillips.livejournal.com/3614.html"/>
    <link rel="self" type="text/xml" href="http://davidphillips.livejournal.com/data/atom/?itemid=3614"/>
    <title>Hungarian Notation</title>
    <published>2004-07-03T23:53:31Z</published>
    <updated>2004-07-04T08:20:13Z</updated>
    <content type="html">For me, I think the biggest general annoyance of Windows programming is &lt;a href="http://msdn.microsoft.com/library/en-us/dnvsgen/html/HungaNotat.asp"&gt;Hungarian Notation&lt;/a&gt;.  I've always found it to be worthless and distracting.  It adds bloat to code without adding any real value.  The compiler knows a variable's type already.  A good IDE (for example, C  Builder) can tell me a variable's type instantly and show me where it is defined.  Why do I need to add the type to the variable name?&lt;br /&gt;&lt;br /&gt;I can understand how Hungarian Notation was useful 15 years ago with projects the size of Windows.  But with modern development environments, why continue to use it?  Here is an example from &lt;a href="http://www.amazon.com/exec/obidos/tg/detail/-/1556227043"&gt;Developer's Workshop to COM and ATL 3.0&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;To help your object users along, a common practice is to create a typedef for your interfaces that automatically accounts for the pointer's necessity.  Many of the core COM interfaces (IUnknown, IDispatch, IClassFactory, and so on) include a typedef, and you may wish to provide your own as well.  Thus, given the existing IDraw interface definition, you may add the following typedef:&lt;br /&gt;&lt;br /&gt;&lt;tt&gt;// MyInterfaces.h&lt;br /&gt;typedef LPDRAW IDraw*;&lt;/tt&gt;&lt;br /&gt;&lt;br /&gt;The object user can then make use of this when working with your objects:&lt;br /&gt;&lt;br /&gt;&lt;tt&gt;// Object user code.&lt;br /&gt;#include "myinterfaces.h"&lt;br /&gt;LPDRAW pDraw;&lt;br /&gt;pDraw = GetIDrawFromTriangle();&lt;br /&gt;pDraw-&amp;gt;Draw();&lt;/tt&gt;&lt;/blockquote&gt;Contrast the above code to this:&lt;br /&gt;&lt;br /&gt;&lt;tt&gt;IDraw *Draw;&lt;br /&gt;Draw-&amp;gt;GetIDrawFromTriangle();&lt;br /&gt;Draw-&amp;gt;Draw();&lt;/tt&gt;&lt;br /&gt;&lt;br /&gt;To me, &lt;tt&gt;IDraw *&lt;/tt&gt; is much clearer than &lt;tt&gt;LPDRAW&lt;/tt&gt;.  Hiding the pointer behind a typedef makes things less lucid.  The &lt;tt&gt;L&lt;/tt&gt; is extremely worthless.  It apparently stands for long, as in long pointer (&lt;tt&gt;LP&lt;/tt&gt;), an odd name for a far pointer.  Near and far pointers only existed in 16-bit code.  Modern 32-bit code only has one pointer type, yet we are still plagued with this anachronism.  And why write &lt;tt&gt;pDraw&lt;/tt&gt; instead of &lt;tt&gt;Draw&lt;/tt&gt;?  Am I going to forget that the variable is a pointer, especially when it is declared a few lines up in the same function?  Fortunately, Borland does not follow this silly practice.&lt;br /&gt;&lt;br /&gt;Note that this is not a criticism of the book in any way.  It is merely an example that jumped out at me today.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:davidphillips:3496</id>
    <link rel="alternate" type="text/html" href="http://davidphillips.livejournal.com/3496.html"/>
    <link rel="self" type="text/xml" href="http://davidphillips.livejournal.com/data/atom/?itemid=3496"/>
    <title>COM and ATL</title>
    <published>2004-07-03T23:00:35Z</published>
    <updated>2004-07-03T23:59:08Z</updated>
    <content type="html">I had an epiphany of sorts yesterday.  First, some background:  I've been doing Windows programming for years, mainly using C++Builder.  When I first wanted to get into Windows development, I was advised to purchase Borland C++Builder, but because &lt;a href="http://asmstudio.acz.org/"&gt;Assembly Studio&lt;/a&gt; was written in Visual C++, I bought that instead.  I certainly don't regret that purchase, as Visual C++ is a great development environment in it's own right and has been very useful to me throughout the years, it was very clear from the moment I first used C++Builder that it was the way to go for application development.&lt;br /&gt;&lt;br /&gt;My initial attempts at learning Windows programming with VC++ failed.  I figured that I could jump right in and quickly write something similar to Assembly Studio.  Boy, was I wrong.  I attempted to work through the MFC based tutorials that came with VC++.  The MFC application wizard would generate source code for a skeleton application that I could compile and run.  But it wasn't obvious how to go any further.  The generated source code looked messy and complex.  The VC++ IDE didn't provide an intuitive way to go forward.  That, combined with the later ease of use of C++Builder, turned me off to all Microsoft specific development technologies.  Borland's tools were so much better.  Why bother with clearly inferior Microsoft junk like MFC?&lt;br /&gt;&lt;br /&gt;For the past few weeks, I've been attempting to write a plugin for Outlook.  From the outside, this seems like it would be simple.  "Everyone else" is writing them, so there must be a simple API, right?  Just write a DLL that exports the right functions, similar to ISAPI, Winamp plugins, etc., right?  Wrong.  Plugins for Outlook involve COM.  A lot of COM.  Of course, I tried doing it in C++Builder.  I read a good &lt;a href="http://www.blong.com/Conferences/BorCon2001/C++COM/3190.htm"&gt;paper&lt;/a&gt; on it and played around with it for a while, but I wasn't getting any closer to making it work.  It didn't help that all the &lt;a href="http://support.microsoft.com/?kbid=291163"&gt;examples&lt;/a&gt; and &lt;a href="http://www.codeproject.com/com/outlookaddin.asp"&gt;tutorials&lt;/a&gt; are for VC++.&lt;br /&gt;&lt;br /&gt;I bit the bullet and decided to use VC++.  I figured that at least I could get something working for now, and later port it to C++Builder or integrate it using DLLs or another method.  Following the tutorial, I got things working quickly.  Knowing Win32 was handy, as many samples are in VB.  But all the COM and ATL stuff was confusing.  What is a &lt;tt&gt;CComVariant&lt;/tt&gt;?  What is the difference between a &lt;tt&gt;CComPtr&lt;/tt&gt; and a &lt;tt&gt;CComQIPtr&lt;/tt&gt;?&lt;br /&gt;&lt;br /&gt;That's when I had the epiphany: I realized that the code was much shorter and cleaner than &lt;a href="http://support.microsoft.com/?id=239795"&gt;other code&lt;/a&gt; that uses COM, thanks to ATL.  ATL turns something horribly kludgy looking into something manageable.  &lt;a href="http://www.amazon.com/exec/obidos/tg/detail/-/1556227043"&gt;Developer's Workshop to COM and ATL 3.0&lt;/a&gt; had been sitting on a shelf in my cubicle for over six months and I hadn't touched it.  I took it home and started reading it.  The book is excellent.  COM is actually starting to make sense.  If you need to know COM, get the book.&lt;br /&gt;&lt;br /&gt;Lesson learned: Not all complex, messy looking Microsoft technologies are bad.  They can actually be useful given the proper explanation and understanding.</content>
  </entry>
</feed>
