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

<channel>
	<title>Leon Atkinson &#187; Programming</title>
	<atom:link href="http://www.leonatkinson.com/category/programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.leonatkinson.com</link>
	<description>There is no duty that is not accepted.</description>
	<lastBuildDate>Tue, 31 Aug 2010 05:12:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>FreeTime 3</title>
		<link>http://www.leonatkinson.com/freetime-3/</link>
		<comments>http://www.leonatkinson.com/freetime-3/#comments</comments>
		<pubDate>Sat, 02 Jan 2010 00:54:26 +0000</pubDate>
		<dc:creator>Leon</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Clear Ink]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Project Management]]></category>

		<guid isPermaLink="false">http://www.leonatkinson.com/?p=448</guid>
		<description><![CDATA[Thanks to the extra time provided by the holiday, I&#8217;ve finally put together a release of FreeTime 3, a pet project of mine for more than 10 years. This newest release is based on work I did on the software at Clear Ink from 2006 through 2009. Thanks to David Burk and Steven Nelson for [...]]]></description>
			<content:encoded><![CDATA[<p>Thanks to the extra time provided by the holiday, I&#8217;ve finally put together a release of <a href="https://sourceforge.net/projects/freetime/">FreeTime 3</a>, a pet project of mine for more than 10 years. This newest release is based on work I did on the software at Clear Ink from 2006 through 2009. Thanks to David Burk and Steven Nelson for sponsoring writing the code in the first place as their employee and more recently agreeing to donate the code back to the open source project. Their support is most generous!</p>
<p>FreeTime is a Web application written in PHP for MySQL that allows you to keep track of projects. It tracks comments, files and timesheet entries for projects divided up by clients and their divisions. Recently added features, not appearing in previous versions, include tasks, estimates and more reports. There&#8217;s also code that allows clients to log in to review work as if it&#8217;s a mini-site, but it hasn&#8217;t been tested in production. The most well-developed aspects of the application are related to timesheets, both gathering them from staff and then reporting on them.</p>
<p>I&#8217;m curious whether anyone will find the code useful, whether for educational or practical purposes. Its purpose was as a highly customized solution for Clear Ink, and it may have no utility outside the same type of consultancy. On the other hand, it could prove useful after some hacking. I would use it for myself if I do more consulting again.</p>
<p>You can download the source code from <a href="https://sourceforge.net/projects/freetime/">the FreeTime project page on SourceForge</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leonatkinson.com/freetime-3/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Annoying Anti-Piracy for Book from Manning</title>
		<link>http://www.leonatkinson.com/annoying-anti-piracy-for-book-from-manning/</link>
		<comments>http://www.leonatkinson.com/annoying-anti-piracy-for-book-from-manning/#comments</comments>
		<pubDate>Thu, 28 May 2009 22:37:07 +0000</pubDate>
		<dc:creator>Leon</dc:creator>
				<category><![CDATA[Marketing]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.leonatkinson.com/?p=416</guid>
		<description><![CDATA[I bought Zend Framework in Action yesterday because the short tutorial isn&#8217;t quite enough to know how to architect an big application. I&#8217;m building an enterprise app at work for a client and picked ZF and YUI as core platforms. I&#8217;m pleased with the content of the book. Rob Allen is a fine writer and [...]]]></description>
			<content:encoded><![CDATA[<p>I bought <a href="http://www.amazon.com/gp/product/1933988320?ie=UTF8&amp;tag=leonatkinson-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=1933988320">Zend Framework in Action</a><img style="border:none !important; margin:0px !important;" src="http://www.assoc-amazon.com/e/ir?t=leonatkinson-20&amp;l=as2&amp;o=1&amp;a=1933988320" border="0" alt="" width="1" height="1" /> yesterday because the short tutorial isn&#8217;t quite enough to know how to architect an big application. I&#8217;m building an enterprise app at work for a client and picked ZF and YUI as core platforms. I&#8217;m pleased with the content of the book. Rob Allen is a fine writer and the organization of the text is logical.</p>
<p>Now that I&#8217;m about 80 pages into the book, I thought I&#8217;d grab a copy of the PDF version for easy reference whichever desk I&#8217;m sitting at.  The print edition comes with a &#8220;free&#8221; ebook. There are two ways to get this free ebook.</p>
<p>The way they want you to do it is as follows.</p>
<ol>
<li>Cut open a folded paper in the front of the book.</li>
<li>Go to the URL printed on the paper.</li>
<li>Type in a code they ask you for out of 9&#215;20 grid.</li>
<li>Type in <em>another </em>code from the grid.</li>
<li>Type in your name and email address.</li>
<li>Wait for the email to arrive.</li>
<li>Find the email in your spam folder.</li>
<li>Click on a link to start the download.</li>
<li>Rename the file from &#8220;gi&#8221; (wtf?) to something rational, such as &#8220;Zend_Framework_In_Action.pdf&#8221;.</li>
</ol>
<p>However, you could do the following.</p>
<ol>
<li>Enter &#8220;zend framework in action pdf&#8221; into Google Search.</li>
<li>Click to some blog.</li>
<li>Click the link into RapidShare.</li>
<li>Wait for your 30 seconds to expire since you are a &#8220;free&#8221; user.</li>
<li>Download the .rar file.</li>
<li>Expand whatever&#8217;s in the rar file. (I didn&#8217;t actually go this far).</li>
</ol>
<p>Typing in codes from a grid is pretty annoying. I threw down $45 to get the book. Maybe they should just trust me and print a direct download link inside the text of the book. After all, we&#8217;re all only a couple of links away from downloading it from RapidShare. What would have been really cool was if I could have downloaded the PDF for free first and then bought the print version when I decided that the book was of great value. I had that exact experience with another author recently.</p>
<p>If you are going to buy Zend Framework in Action (and you aren&#8217;t in a rush like I was), you might use the Amazon.com link above. It&#8217;s a lot cheaper than buying it off the shelf at B&amp;N.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leonatkinson.com/annoying-anti-piracy-for-book-from-manning/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New MySpace Apps: Random Band Names and Random Advice</title>
		<link>http://www.leonatkinson.com/new-myspace-apps-random-band-and-random-advice/</link>
		<comments>http://www.leonatkinson.com/new-myspace-apps-random-band-and-random-advice/#comments</comments>
		<pubDate>Thu, 22 Jan 2009 19:10:18 +0000</pubDate>
		<dc:creator>Leon</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[myspace]]></category>
		<category><![CDATA[Random Generators]]></category>

		<guid isPermaLink="false">http://www.leonatkinson.com/?p=374</guid>
		<description><![CDATA[I now have two apps live on MySpace, Random Advice and Random Band Names. The core functionality is exactly the same as what&#8217;s on Leon&#8217;s Random Generators. Both of them place content on your MySpace profile. You can see them in action on my profile page, myspace.com/leonatkinson. It&#8217;s somewhat obtuse to get the apps on [...]]]></description>
			<content:encoded><![CDATA[<p>I now have two apps live on MySpace, <a href="http://profile.myspace.com/index.cfm?fuseaction=user.viewProfile&amp;friendID=436555421" target="_blank">Random Advice</a> and <a href="http://profile.myspace.com/index.cfm?fuseaction=user.viewProfile&amp;friendID=447432446" target="_blank">Random Band Names</a>. The core functionality is exactly the same as what&#8217;s on <a href="http://www.leonatkinson.com/random/">Leon&#8217;s Random Generators</a>. Both of them place content on your MySpace profile. You can see them in action on my profile page, <a class="url" href="http://www.myspace.com/leonatkinson">myspace.com/leonatkinson</a>.</p>
<p>It&#8217;s somewhat obtuse to get the apps on your own profile. Visit the app&#8217;s profile page (linked above). Click the button to add the app. Then, modify your profile and add the &#8220;module&#8221;. (I&#8217;m hand-waving a bit here). I think you must be upgraded to the 2.0 version of profiles.</p>
<p>Despite my bickering about how I was fighting with the approval process last month, I did get the advice generator active. The band names app was approved within hours. So maybe they like to hassle unproven developers. In any event, the advice generator has been live for less than a month and has 116 &#8220;active users&#8221;. I&#8217;m not clear if that means installs, or if people have activated the module in their profile. I can&#8217;t find any examples of profiles with it installed.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leonatkinson.com/new-myspace-apps-random-band-and-random-advice/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Track Your Migraines on Facebook</title>
		<link>http://www.leonatkinson.com/track-your-migraines-on-facebook/</link>
		<comments>http://www.leonatkinson.com/track-your-migraines-on-facebook/#comments</comments>
		<pubDate>Tue, 06 Jan 2009 18:01:48 +0000</pubDate>
		<dc:creator>Leon</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Migraine]]></category>

		<guid isPermaLink="false">http://www.leonatkinson.com/?p=246</guid>
		<description><![CDATA[Many people suffer from migraines, a kind of storm in the brain that causes more than just headaches. I am one of those people. After I&#8217;d heard Mark Zuckerberg speak at last year&#8217;s Facebook developers conference, it occurred to me that sharing the experience might fit with his vision to give people the power to [...]]]></description>
			<content:encoded><![CDATA[<p>Many people suffer from <a href="http://en.wikipedia.org/wiki/Migraine" target="_blank">migraines</a>, a kind of storm in the brain that causes more than just headaches. I am one of those people. After I&#8217;d heard <a href="http://www.businessweek.com/the_thread/techbeat/archives/2008/07/live_from_faceb.html" target="_blank">Mark Zuckerberg speak at last year&#8217;s Facebook developers conference</a>, it occurred to me that sharing the experience might fit with his vision to <em>give people the power to share and make the world more open and connected</em>.</p>
<p><a href="http://apps.facebook.com/migraines"><img class="alignnone size-full wp-image-248" title="migraines screenshot" src="http://www.leonatkinson.com/wp-content/uploads/2009/01/migraines-screenshot.png" alt="migraines screenshot" width="455" height="367" /></a></p>
<p>I had an app done in August but got distracted for several months. Over the Christmas break, I found the time to polish it up and release it. The main feature of the app is a personal database of migraine events with the aim to helping you discover patterns or triggers. In the context of Facebook allows you to automatically let your friends know you&#8217;ve had a migraine. That could lead to better understanding or just a feeling of comfort.</p>
<p>You can get started using the app by visiting the <a href="http://www.facebook.com/apps/application.php?id=28241364782" target="_blank">Migraines About Page on Facebook</a>.</p>
<p>One advantage in waiting was the the new template bundles for the news feed is working flawlessly. In August it was brand new and buggy. I also had more fun with the <a href="http://www.google.com/url?sa=t&amp;source=web&amp;ct=res&amp;cd=1&amp;url=http%3A%2F%2Fcode.google.com%2Fapis%2Fchart%2F&amp;ei=NJpjSaeoBZK2sAOXq_WEDQ&amp;usg=AFQjCNHtD_XG9n06lyu6yjyEmnzMYTh1LA&amp;sig2=B_gVbRc2NsP4HHdvFT8ksw" target="_blank">Google Chart API</a>. Once you get a few migraines recorded, I can generate a pie chart of how severe they are and a line graph of how many you have each month.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leonatkinson.com/track-your-migraines-on-facebook/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Facebook Platform Team Are Thankful</title>
		<link>http://www.leonatkinson.com/facebook-platform-team-are-thankful/</link>
		<comments>http://www.leonatkinson.com/facebook-platform-team-are-thankful/#comments</comments>
		<pubDate>Tue, 23 Dec 2008 05:31:09 +0000</pubDate>
		<dc:creator>Leon</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[myspace]]></category>

		<guid isPermaLink="false">http://www.leonatkinson.com/?p=222</guid>
		<description><![CDATA[What a nice surprise! As a developer on the Facebook platform for more than a year, I get occational messages from Facebook about new features, such as the revolutionary Facebook Connect functionality that went live recently.  I was pleasantly surprised to find a note from the Platform Team thanking all 600K+ developers! We wanted to [...]]]></description>
			<content:encoded><![CDATA[<p>What a nice surprise! As a developer on the Facebook platform for more than a year, I get occational messages from Facebook about new features, such as the revolutionary Facebook Connect functionality that went live recently.  I was pleasantly surprised to find a note from the Platform Team thanking all 600K+ developers!</p>
<blockquote><p>We wanted to take a moment and thank you for all of your great work and amazing applications that have helped make Facebook Platform the largest and fastest-growing social platform over the past year and a half. As we end 2008 there are over 660,000 of you worldwide building applications that give users more powerful ways to share and connect, and collectively your applications have reached nearly 140 million people.</p></blockquote>
<p>It&#8217;s a stark contrast to the <a href="http://www.leonatkinson.com/myspace-is-not-friendly-to-developers/">total lack of developer love shown by MySpace</a>. I hope Santa leaves some coal in their stockings. I have no doubt there will be many presents under the trees of the Facebook Platform Team.</p>
<p>I am so very pleased to be working with Facebook in their mission to bringing people closer together. Little notes like this remind me of Mark Zuckerberg&#8217;s presentation last July and how I came away feeling inspired. So, to Facebook, I&#8217;d like to say, &#8220;no, thank you!&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leonatkinson.com/facebook-platform-team-are-thankful/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySpace is not Friendly to Developers</title>
		<link>http://www.leonatkinson.com/myspace-is-not-friendly-to-developers/</link>
		<comments>http://www.leonatkinson.com/myspace-is-not-friendly-to-developers/#comments</comments>
		<pubDate>Thu, 18 Dec 2008 18:23:54 +0000</pubDate>
		<dc:creator>Leon</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[myspace]]></category>
		<category><![CDATA[social]]></category>

		<guid isPermaLink="false">http://www.leonatkinson.com/?p=195</guid>
		<description><![CDATA[I&#8217;m reasonably certain now that unless MySpace wakes up and fixes their developer approach, they can expect to lose out to Facebook. The experience for the developer is so off the mark over at MySpace, it is no wonder that after nearly a year of being available, innovation in the applications is stagnant. The reason [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m reasonably certain now that unless MySpace wakes up and fixes their developer approach, they can expect to lose out to Facebook. The experience for the developer is so off the mark over at MySpace, it is no wonder that after nearly a year of being available, innovation in the applications is stagnant. The reason is simple: MySpace makes it too hard on developers. The rest of this post is rant against MySpace&#8217;s developer platform.</p>
<p>Facebook set a standard for the developer experience. It works as follows. I join the developer group; I&#8217;m a developer. I don&#8217;t wait to be approved. I self-identify and I get started. I can immediately build a demo app. I can place it in a sandbox mode where only people I&#8217;ve designated can view it, or I can just make it live. Once I think it&#8217;s polished, I can submit it to Facebook&#8217;s directory. That will get me some free advertising. Or I could skip it. I could drive traffic to it with ads. It doesn&#8217;t matter. Facebook offers me the freedom.</p>
<p>Facebooks offers a system for certification that shows off my app as complying with their ideals for apps. I have to pay for this, and for most apps, it&#8217;s probably not worth it. I like that Facebook is trying this and letting the market decide. I suspect consumers won&#8217;t care about the certification, but I still appreciate them experimenting and letting developers opt in.</p>
<p><strong>MySpace takes a big brother approach to developers.</strong> You apply to get an account, and you wait. I&#8217;m not sure what they actual check about people, perhaps that their email isn&#8217;t fake. Once you get into the developer program, you must create a &#8220;profile&#8221; for each application you develop. That requires a unique email address, even for a demo app. This must have been someone&#8217;s bright idea to overload the meaning of profiles at MySpace instead of generating unique IDs&#8230;except, apps do have unique numeric IDs. Facebook got this right&#8211;create an app, get a long, unique ID. Plus, on Facebook, I am shown as the developer. I don&#8217;t have some other email address that MySpace sends junk to.</p>
<p>On MySpace, I can see my app, but no one else can until it&#8217;s approved. This isn&#8217;t actually clear, since as you visit the live versions of your profile or home page, you see your app. If you recommend the app to a friend, no error is generated. I only understood this after I looked over a friend&#8217;s shoulder to see that my app did not appear for him when he looked at my profile.</p>
<p>So, I clicked to publish my app, and I waited two days. I was irritated to find it rejected. I got boilerplate complaints that I had to decipher how they related to my app. And I got this warning at the end of the email: <em>DO NOT REPLY TO THIS EMAIL. THIS MAILBOX IS NOT MONITORED.</em> (Yes, it was all in caps like that).</p>
<p>Some of the issues were valid, and it was good to get the feedback. I hadn&#8217;t tested the app on MSIE, and some quirks in the Javascript prevented it from working on that browser. Other issues are bogus and prevent me from providing the experience that is best for the users.</p>
<p>I want to allow my users to install the app either on their profile, for their friends to see, or on their home page, for their eyes only. It&#8217;s a reasonable decision. MySpace keeps telling me  &#8220;<em>must contain unique content on every application surface</em>&#8220;. I&#8217;ve actually seen other apps behave this way, so I can only assume that whatever mindless approval mechanism is in place (human or otherwise) is just happening to catch me. Perhaps other developers have figured out that you develop your app once for approval and then again for being useful. I have to finally get approved before I can test that idea.</p>
<p>I&#8217;m on my third round of asking for approval. I&#8217;ve made 5 minutes of changes today and now I can wait another 24 hours to see if I get satisfaction. One of the latest bit of feedback, which was new to the latest round but had been there from the beginning, is related to targets for links. If you link off of myspace.com, then you must set your link to target a new window. I see why you have to do this&#8211;the app is in an iframe and it loads the remote site in the little frame otherwise. MySpace hosts the application code. Why don&#8217;t they just add targets to links themselves? Facebook touches every bit of code to make it work best with their site.</p>
<p>I can only conclude that <strong>MySpace does not think of developers as providing value for their site</strong>. Facebook clearly understand the fair exchange of values. Developers make these sites more attractive to users. The more time spent on Facebook, the more ad revenue for Facebook.  MySpace seems to take the attitude that developers are miscreatants who must be forced to follow the rules. Facebook has a laisse-faire attitude. Developers try ideas in the market and Facebook only intervenes in cases where the apps are clearly being harmful.</p>
<p>It&#8217;s an interesting balance. Certainly MySpace tends to allow it&#8217;s users run rampant. They still allow users to place big chunks of CSS code in their &#8220;about me&#8221; profile box. Facebook attempts to keep the user experience uniform. You don&#8217;t get to have a black background on your profile page. It&#8217;s clear that Facebook spends time on serious user experience development. MySpace continues to appear to be an ugly hack.</p>
<p><strong>Update 12/19:</strong> Of course, the next day I get a brand new complaint from MySpace. Today, it&#8217;s &#8220;<em>Canvas Surface of the app is not appropriately sized to fit the module.</em>&#8221; When I get these complaints, they include a link to <a href="http://developer.myspace.com/community/myspace/applicationguidelines.aspx">Application Guidelines</a>. That previous complaint about unique content quoted these guidelines, but this time I can&#8217;t find the word <em>size </em>anywhere on the page! Maybe that guideline was revised away the last time they updated the guidelines November 19th. I think I&#8217;ll just turn off the canvas page completely like I did the home page.</p>
<p><strong>Update 12/22:</strong> I guess the reviewers take weekends off. Of course, the app was rejected yet again. Last Friday I used the checkbox on the developer console labeled &#8220;Enabled&#8221;. I unchecked it. I didn&#8217;t bother to click to where the &#8220;canvas surface&#8221; used to be because I logically assumed that with it disabled, there&#8217;d by no point. Applying logic to this process is clearly a mistake. The rejection I this time complained about an invalid canvas surface. It&#8217;s invalid to uncheck the checkbox?!? Why is it there?!? OK, so, the canvas is turned back on with just some plain text explaining that although I don&#8217;t want anything to be here, I have to put something there. I have to admit, I&#8217;m just about done screwing around with them. I feel like I&#8217;m talking to a random error generator.</p>
<p><strong>Update 12/26:</strong> I guess putting some text for the reviewer on the canvas page works because I got a reply that makes it seem like it&#8217;s in reply to my complaint. Still, the app was rejected. This time it&#8217;s because I used the word &#8220;MySpace&#8221;, which implies affiliation with MySpace. Right. I did did get some advice for how to disable the canvas: redirect the user to the profile. I think the advice was meant to be about <em>gadgets.views.requestNavigateTo()</em>, although the advice mentioned <em>navigateTo</em>, which I think is a method on the window object in MSIE. I decided to be nice and tell the user that they are about to be sent to their profile page by including a 3 second timeout with a link to go their immediately. I wonder what error the MDP folks will complain about next.</p>
<p><strong>Update 12/29:</strong> I&#8217;m finally approved. Now that I am, I can see that any change I want to make must go through the approval process again, even just a small text change. I have to think that however they are reviewing apps, it can&#8217;t scale up if they ever match Facebook which has more than 660K developers. It also strikes me that rapidly adapting the app to user behavior will be dampened if you have to wait a day for every change to be approved.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leonatkinson.com/myspace-is-not-friendly-to-developers/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>LinuxWorld 2008 and PHP Meetup</title>
		<link>http://www.leonatkinson.com/linuxworld-2008-and-php-meetup/</link>
		<comments>http://www.leonatkinson.com/linuxworld-2008-and-php-meetup/#comments</comments>
		<pubDate>Sat, 09 Aug 2008 18:07:38 +0000</pubDate>
		<dc:creator>Leon</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.leonatkinson.com/?p=143</guid>
		<description><![CDATA[Computer science super genius and Python proselytizer JJ Behrens and I returned to LinuxWorld again this year. We&#8217;ve been doing this together for many years with only the pesky birth of a child interrupting my attendence. As JJ says, the conference was disappointing. It does seem like it&#8217;s on its last legs. The decline of [...]]]></description>
			<content:encoded><![CDATA[<p>Computer science super genius and Python proselytizer <a href="http://jjinux.blogspot.com/2008/08/linux-linuxworld-beos-openmoko.html" target="_blank">JJ Behrens and I returned to LinuxWorld</a> again this year. We&#8217;ve been doing this together for many years with only the pesky birth of a child interrupting my attendence. As JJ says, the conference was disappointing. It does seem like it&#8217;s on its last legs. The decline of this conference matches the shrinking posse that I bring with me. Two years ago I brought my entire department with me. It was pretty cool to have six Clear Ink technologist all running around hassling booth people. Last year, my department had shrunk a bit and this year, the one guy I&#8217;ve got reporting to me is didn&#8217;t come because he&#8217;s on vacation. At least I had JJ and Carl to hang out with.</p>
<p>One of the most enjoyable parts of LinuxWorld for me is the spectacle of JJ asking booth people really hard questions. The atrophying conference meant there were fewer people to put on the spot, although we did give the NYT guy and the mobius strip gal some trouble. When we passed the foot massaging shoe booth, I realized what this was&#8211;spam! My conference has been spammed! Yuck!</p>
<p>After the conference, I had the pleasure of chaperoning Dmitri Gaskin, Drupal wunderkind, to the PHP Meetup at the CNET building. Dmitri is 12 years old and the son of <a href="http://boldium.com/" target="_blank">Igor Gasowski</a>, with whom I&#8217;ve worked at Clear Ink for the past five years. JJ and I both had a lot of fun sitting in Starbucks and advising Dmitri on various computer science topics. There was a time when JJ was fresh out of college and I had a few things to teach him. I now find it hard to understand him half of the time. Fortunately, I can still understand the things Dmitri tells me, although when he first explained CCK to me a few months ago, it took me a bit.</p>
<p>One thing JJ and I agree on is that young programmers should read <a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.com%2FHackers-Computer-Revolution-Steven-Levy%2Fdp%2F0141000511%3Fie%3DUTF8%26s%3Dbooks%26qid%3D1218304172%26sr%3D1-1&amp;tag=leonatkinson-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=9325">Hackers by Steven Levy</a><img style="border:none !important; margin:0px !important;" src="http://www.assoc-amazon.com/e/ir?t=leonatkinson-20&amp;l=ur2&amp;o=1" border="0" alt="" width="1" height="1" />. Programming techniques are one thing, but it&#8217;s harder to acquire an understanding for history and lore of the craft.</p>
<p>Dmitri and I had dinner with Lee Springer at Chevy&#8217;s and then headed over the CNET building for the PHP Meetup. Joe Stump talked about a new system in PEAR for hosting your own repository channels. It&#8217;s obvious how this can help keep code straight, especially for a company like Digg that has many production servers. PEAR&#8217;s system for installing modules is similar to Apt or RPM. Having been coding in PHP for so long (11 years!), my tendency is to do things the &#8220;old way&#8221;. So, while I&#8217;ve taken sips of the PEAR koolade, I&#8217;ve never taken a big gulp. I&#8217;m still trying to sort out PEAR versus Zend Framework versus sticking with my FreeEnergy codebase.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leonatkinson.com/linuxworld-2008-and-php-meetup/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Optimize the Most Significant Parts</title>
		<link>http://www.leonatkinson.com/optimize-the-most-significant-parts/</link>
		<comments>http://www.leonatkinson.com/optimize-the-most-significant-parts/#comments</comments>
		<pubDate>Mon, 31 Mar 2008 03:02:28 +0000</pubDate>
		<dc:creator>Leon</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Politics]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.leonatkinson.com/index.php/optimize-the-most-significant-parts/</guid>
		<description><![CDATA[There&#8217;s a general principle to optimization that many people miss, but seems so simple once you know it. I&#8217;m sure I first read about it in The Practice of Programming from Kernighan and Pike. You should optimize the most significant part of a program to get the most reward for your effort. The procedure is [...]]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s a general principle to optimization that many people miss, but seems so simple once you know it. I&#8217;m sure I first read about it in <a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.com%2FPractice-Programming-Addison-Wesley-Professional-Computing%2Fdp%2F020161586X%3Fie%3DUTF8%26s%3Dbooks%26qid%3D1206930320%26sr%3D8-1&amp;tag=leonatkinson-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=9325">The Practice of Programming</a><img src="http://www.assoc-amazon.com/e/ir?t=leonatkinson-20&amp;l=ur2&amp;o=1" style="border: medium none  ! important; margin: 0px ! important" border="0" height="1" width="1" /> from Kernighan and Pike. You should optimize the most significant part of a program to get the most reward for your effort. The procedure is simple. Measure how much time the computer spends in each part of your program. There&#8217;s likely a loop that takes up a significant portion of the time. Optimize that part first. If you don&#8217;t follow this formula, you&#8217;ll probably spend a bunch of time optimizing what you intuitively think is slow, but it may not matter at all.</p>
<p>I&#8217;ve found that this approach applies equally well to optimizing money. For example, when you&#8217;re running a business, you have a range of expenses. Some of them are for tangible goods, some of them are for outside services and some of them are for salaries. Imagine an office with a fancy coffee maker. Everyone might think it&#8217;s a waste of money and a luxury, but the cost of that expense is likely minuscule compared to salaries. You&#8217;re usually better off figuring out how to improve efficiencies in your work process than going with cheapo amenities.</p>
<p>Of course, once you know how this work, you can use it deceptively. Politicians do it all the time. Watch how they talk about earmarks, or the apocryphal $100 hammer. You might agree that it&#8217;s not a good idea for a congressman to request a $1mil earmark for his wife&#8217;s employer, but even $1mil is nothing compared to the most significant costs to the U.S. budget: Social Security and Medicare. If you check the measurements, you&#8217;ll find that all the earmarks together total about 1% of the budget, which Social Security and Medicare are about a third. (<a href="http://www.fedspending.org/">Total federal spending is about $2.9tril</a>, and <a href="http://www.ssa.gov/OACT/TRSUM/trsummary.html">Social Security plus Medicare is about $900mil</a>).</p>
<p>I&#8217;m a relatively young person in my late 30s. I wonder if I&#8217;m not alone in counting on getting absolutely nothing from Social Security by the time I might need it. I&#8217;m not taking that chance. I&#8217;m saving money in a 401K plus whatever else I can beyond the annual limit of a 401K. I really wouldn&#8217;t mind if my taxes were 30% lower and I had to take responsibility for my own retirement.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leonatkinson.com/optimize-the-most-significant-parts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
