<?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>while coding &#187; not good enough</title>
	<atom:link href="http://www.youell.com/matt/writing/?cat=16&#038;feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.youell.com/matt/writing</link>
	<description>simplify</description>
	<lastBuildDate>Wed, 31 Oct 2018 04:08:22 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Speaking of Sucking</title>
		<link>http://www.youell.com/matt/writing/?p=410</link>
		<comments>http://www.youell.com/matt/writing/?p=410#comments</comments>
		<pubDate>Mon, 08 Jun 2009 21:05:58 +0000</pubDate>
		<dc:creator>matt</dc:creator>
				<category><![CDATA[30-in-30]]></category>
		<category><![CDATA[not good enough]]></category>

		<guid isPermaLink="false">http://www.youell.com/matt/writing/?p=410</guid>
		<description><![CDATA[In 30 days I&#8217;ve shipped about &#8230; 5 things.
So yeah, that didn&#8217;t work out so great.
&#8220;WTF?&#8221; you might ask.
Yeah, I know. Lame. But you know what? I just wasn&#8217;t into it. When I started on 30-in-30 the first time, back in March, I was gung ho. I was pumped. I knew what I wanted to [...]]]></description>
			<content:encoded><![CDATA[<p>In 30 days I&#8217;ve shipped about &#8230; 5 things.</p>
<p>So yeah, that didn&#8217;t work out so great.</p>
<p>&#8220;WTF?&#8221; you might ask.</p>
<p>Yeah, I know. Lame. But you know what? I just wasn&#8217;t into it. When I started on 30-in-30 the first time, back in March, I was gung ho. I was pumped. I knew what I wanted to do and how I was going to do it. Then &#8211; almost immediately &#8211; the doctors visits and tests started up (culminating in colonoscopy) and I didn&#8217;t think I&#8217;d be able to finish respectably.</p>
<p>Well I know better NOW, don&#8217;t I? Jeez. If I had kept my mouth shut I&#8217;d have had about 14 releases in that first 30 days. Personally, I expected to end up in the low 20s, so 14 wouldn&#8217;t have been too bad. Especially given the health stuff.</p>
<p>But this&#8230; restarting and then just flaming out? Ugh. Tres lame. And no excuses. I suck. I actually considered dropping the whole thing about two weeks ago, but I&#8217;m great at deluding myself. &#8220;I can still pull this off!&#8221; I said. </p>
<p>Obviously.</p>
<p>The biggest problem overall has been motivation. I just didn&#8217;t have the vision for 30-in-30 that I had back in March. Also, my focus changed. In March I figured I&#8217;d knock out a lot of little projects that had been piling up and maybe get a few larger projects off the ground, and it would all work out. When I came back at this in May I realized that I didn&#8217;t care about the little stuff. I could only think about the bigger projects. </p>
<p>I&#8217;m like that though, at least for my personal projects. Butterfly-brained. When there is a client or an employer there is external motivation, and often external scaffolding (coworkers, systems, tools, etc.) that make getting things done much easier. But when it&#8217;s my own personal interests, that&#8217;s where I falter. I am the cobbler. My personal projects go unshod.</p>
<p>That doesn&#8217;t mean I&#8217;m giving up though. I don&#8217;t generally like to stop when I fail. (Definition of crazy?) I tend to back up and go more slowly to see where I fucked up and to try to manage a little better.</p>
<p>So I&#8217;ll be taking another shot at this. I might just have to scale it down a bit. More later.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.youell.com/matt/writing/?feed=rss2&amp;p=410</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Execution Alone Isn&#8217;t Enough</title>
		<link>http://www.youell.com/matt/writing/?p=263</link>
		<comments>http://www.youell.com/matt/writing/?p=263#comments</comments>
		<pubDate>Wed, 25 Mar 2009 00:50:57 +0000</pubDate>
		<dc:creator>matt</dc:creator>
				<category><![CDATA[30-in-30]]></category>
		<category><![CDATA[not good enough]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.youell.com/matt/writing/?p=263</guid>
		<description><![CDATA[I used to think of myself as an &#8220;idea man&#8221;, but I had misconceptions about how ideas play out in the real world. Many years ago someone told me &#8220;ideas are a dime a dozen&#8221; and explained why. That set my world spinning. After all, I had some really great ideas! Eventually I came to [...]]]></description>
			<content:encoded><![CDATA[<p>I used to think of myself as an &#8220;idea man&#8221;, but I had misconceptions about how ideas play out in the real world. Many years ago someone told me &#8220;ideas are a dime a dozen&#8221; and explained why. That set my world spinning. After all, I had some really great ideas! Eventually I came to realize that ideas are never great without great execution.</p>
<p>Around Christmas of 1998 I created a web framework similar to Ruby on Rails. I had serious confidence issues though, which meant I never gave my framework the real world testing it needed. Eventually I put my framework into production in a critical situation. Unfortunately that caused problems because of the lack of real world testing early on.</p>
<p>I learned that it&#8217;s not enough to execute, you&#8217;ve got to have some confidence too or your execution will be weak. It will be as though you never executed at all.</p>
<p>Speaking of things not executed, New Year&#8217;s Resolutions stink. Why not have a theme for the year instead? I do. My theme this year is &#8220;Increase Capability&#8221;. My 30 in 30 project is a direct result of that. I want to increase my software shipping capability.</p>
<p>It may seem egotistical but it&#8217;s actually the opposite. I have to set aside my ego and execute with confidence. (That&#8217;s hard!) Otherwise it&#8217;ll be like I ever shipped anything at all.</p>
<p>What I&#8217;m finding these past few days is that one of the worst blows to the ego is having to ship something that really isn&#8217;t awesome yet. For example, I&#8217;m rolling out StringTheory for Javascript today. It will be a great little tool eventually, but I&#8217;ve got to ship a first version that is literally about as minimal as you can go. It&#8217;s so minimal as to seem silly. Still, that is the deal. I&#8217;m shipping something, and it is up to me to have a vision for what I ship and to follow through and realize that vision over time.</p>
<p>Speaking of shipping things, here&#8217;s a status report:</p>
<p>Two more projects have rolled out. If you&#8217;re keeping track, I&#8217;m now at eight days and have shipped four projects. I told you it wasn&#8217;t natural to ship software like this!</p>
<p>Here are the projects:</p>
<h2><a href="http://www.builtsoftware.com">Built Software website</a></h2>
<p>Ordinarily I wouldn&#8217;t declare a website migration to be &#8220;software&#8221;, but the website is now rocking a shiny new Django home. Django is a great platform and I&#8217;m hoping to add new and interesting features to the site over time. WE GOTS PONIES Y&#8217;ALL!!!<br />
<img class="alignright" src="http://farm3.static.flickr.com/2052/2842638666_b24158c6f6.jpg" alt="Django. Ponies. Need we say more?" width="330" height="165" /><br clear="all"/></p>
<p>One thing that is awesome about Django is that you have easy and total control over your URLs. So if you go to the new site and see a page with the extension &#8220;.shtml&#8221;, that&#8217;s not actually an html page. That&#8217;s Django pretending there&#8217;s actually a file with that name. I was able to pull over the site to the new environment without having to mess with the navigation. I think that&#8217;s a win. Over time I&#8217;ll migrate away from file names. I&#8217;ll also get a new look and feel going. I&#8217;m tired of looking at that site every day!</p>
<h2><a href="http://ocho.builtsoftware.com/st/">StringTheory for JavaScript</a></h2>
<p><img class="alignnone" src="http://www.builtsoftware.com/lib/images/st_logo_304x100.gif" alt="" width="304" height="100" /></p>
<p>Back in 2002 or 2003 I rolled out what I thought was a viable commercial library called StringTheory&trade;, which I called a &#8220;text engine&#8221;. Unfortunately I was high from sniffing glue or something, and no one ever bought it. I do think there were some good ideas there though, and even back then I wanted to do a Javascript version. So now I have. It&#8217;s very early stage, but it&#8217;s usable and I plan to make a proper open source project out of it soon. If you do a lot of text work in Javascript give it a look. More importantly, give me feedback. This is one of those projects that not enough people looked at early on. As a result a lot of useless cruft got piled onto the original Java version. I&#8217;d like this new release to be lean and mean, and I can&#8217;t do it without input from the people who might actually use it.</p>
<p>Thanks again for the encouragement.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.youell.com/matt/writing/?feed=rss2&amp;p=263</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>An Inconvenient Fat</title>
		<link>http://www.youell.com/matt/writing/?p=219</link>
		<comments>http://www.youell.com/matt/writing/?p=219#comments</comments>
		<pubDate>Tue, 24 Feb 2009 12:24:38 +0000</pubDate>
		<dc:creator>matt</dc:creator>
				<category><![CDATA[culture]]></category>
		<category><![CDATA[health]]></category>
		<category><![CDATA[humane]]></category>
		<category><![CDATA[not good enough]]></category>
		<category><![CDATA[rants]]></category>

		<guid isPermaLink="false">http://www.youell.com/matt/writing/?p=219</guid>
		<description><![CDATA[Disclaimer: I am not a medical doctor, nutritionist, herbalist, doula, or massage therapist. I am just some guy with a blog. Consult your own medical professional and/or megacorporate lobbyist before determining what is right for you, your heart, and your arteries.
Few topics irk me more than trans fats. Trans fats (specifically artificial trans fats which [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>Disclaimer: I am not a medical doctor, nutritionist, herbalist, doula, or massage therapist. I am just some guy with a blog. Consult your own medical professional and/or megacorporate lobbyist before determining what is right for you, your heart, and your arteries.</p></blockquote>
<p>Few topics irk me more than <a href="http://en.wikipedia.org/wiki/Trans_fat">trans fats</a>. Trans fats (specifically <em>artificial</em> trans fats which are my focus in this post) are what give tasty junk food an incredible shelf life. Chances are good that if you eat fattening prepackaged foods with creaminess or super smooth texture, you&#8217;re enjoying the wonders of trans fats. Many commercially fried foods, like chicken and donuts also contain trans fats.</p>
<h3>What&#8217;s Wrong With Trans Fats?</h3>
<p>There are an overwhelming number of things to worry about in my diet every day. There&#8217;s <a href="http://en.wikipedia.org/wiki/High_fructose_corn_syrup">high fructose corn syrup</a> (HFCS) in just about everything these days. There&#8217;s even <a href="http://www.epa.gov/waterscience/fish/advice/">mercury in fish</a>. What the hell am I supposed to eat?</p>
<p>Grocery shopping in our household is difficult. We&#8217;ve had to make compromises from time to time. There are several things we don&#8217;t eat. HFCS is one we absolutely avoid. We&#8217;re less radical about other ingredients, but still shy away from prepared foods with nitrates or soy-based ingredients. If you are in the habit of looking at the ingredients while shopping, you can imagine how many items we put back on the shelf.</p>
<p>Trans fats have a special place on our no-fly list though. Unlike many other troubling ingredients in foods, trans fats accumulate in the body. For example, if I eat something with HFCS I may have a crazy sugar high but then I&#8217;m done. The HFCS is metabolized and will leave my body. (Or turn into fat on my ass, whichever.) Trans fats, however, have a hard time leaving the bloodstream and even worse, trans fat molecules like to wedge into arterial walls, contributing to <a href="http://www.nhlbi.nih.gov/health/dci/Diseases/Cad/CAD_WhatIs.html">coronary heart disease</a>.</p>
<p>This is very frustrating to me. From the time I had my own money to spend as a kid up until a few years ago, not a day passed where I wasn&#8217;t pounding trans fat crap into my pie-hole. Which means that not only was I eating poorly and packing on the pounds, I was doing direct, permanent harm to my arteries and my heart!</p>
<h3>How to Spot a Trans Fat</h3>
<p><img class="alignnone size-full wp-image-232" title="transfat" src="http://www.youell.com/matt/writing/wp-content/uploads/2009/02/transfat.gif" alt="transfat" width="288" height="154" align="center" /></p>
<p>Trans fats are delivered primarily in hydrogenated oils. Most often you&#8217;ll see the ingredient listed as &#8220;partially hydrogenated vegetable oil&#8221;, although sometimes the particular variety of oil will differ (palm, sunflower, canola, etc.). A few years back the FDA added a separate line item on the Nutrition Facts panel for trans fats. So now if you want to know if a product has trans fats you can just look at the Nutrition Facts and it will tell you. Well, sort of. See, there&#8217;s a catch.</p>
<h3>The FDA Gets Metaphysical</h3>
<p>Unfortunately the Nutrition Facts doesn&#8217;t tell the whole story. While it is true that trans fats have their own line item in the Nutrition Facts panel, it doesn&#8217;t tell the entire truth. I don&#8217;t know the full story, so I&#8217;ll try not to be judgmental of the FDA (see my disclaimer above). What I know is that the food industry was rightly concerned that no one would buy products with trans fats in them. Also, they were having a hard time eliminating trans fats from their products while retaining product consistency and shelf life. So the FDA made a compromise. Food manufacturers can claim that their food has &#8220;0g trans fats per serving&#8221; if the food has less than 0.5g of trans fats per serving. I think the FDA sees this as just a matter of rounding numbers down. As a numerate consumer it means zero != 0. Which is more than a little confusing.</p>
<p>Products can now proclaim &#8220;zero trans fats!&#8221; on the package, and what they actually mean is that their product has less than 0.5g of trans fats per serving. I&#8217;ve had several conversations over the past few years with people who tell me I&#8217;m crazy for not eating a product because the package clearly says &#8220;no trans fats&#8221;. When I point at the partially hydrogenated oil in the ingredients I just get a blank stare.</p>
<p><strong>SOYLENT GREEN IS TRANS FATS!!</strong></p>
<p style="text-align: center;"><img class="size-medium wp-image-236 aligncenter" title="soylent-green" src="http://www.youell.com/matt/writing/wp-content/uploads/2009/02/soylent-green-237x300.jpg" alt="soylent-green" width="237" height="300" /></p>
<p>Can you imagine if the FDA had an equivalent rule for ingredients that caused allergies?</p>
<blockquote><p>&#8220;0g wheat gluten!&#8221;<br />
&#8220;no peanuts&#8221;</p>
<p>&#8220;I can&#8217;t imagine why I had an allergic reaction to these chips. They said no peanuts!&#8221;.</p>
<p>&#8220;Ah, that&#8217;s no peanuts *per serving*, sir!&#8221;</p></blockquote>
<h3>Where Is the Point of Diminishing Returns?</h3>
<p>Certainly there are safe or near-safe levels of consumption for just about any bad thing. What is the safe level for trans fats? I don&#8217;t think it is 0.5g per serving. That&#8217;s just a hunch. Again, I refer you to my disclaimer above.</p>
<p>The real problem with the FDA rules for labeling is that we don&#8217;t get to find out how much trans fat is in any given product that claims to be &#8220;trans fat free&#8221;. All we are allowed to know is that the quantity is under 0.5g per serving. So it could be 0.4999g or it could be 0.0001g per serving. There is no way for the consumer to know.</p>
<h3>My Wife Thinks I&#8217;m Crazy</h3>
<p>And you may think I&#8217;m a bit crazy also. But I&#8217;m not alone. The country of <a href="http://www.msnbc.msn.com/id/15307763">Denmark</a> is crazy too. Denmark outlawed trans fats 5 years ago. Switzerland is apparently also crazy, since they followed Denmark&#8217;s lead. And now local governments around the US are starting to ban foods with trans fats. So I may be crazy, but the crazy is spreading.</p>
<h3>Let&#8217;s Zero In on the Problem</h3>
<p>In a perfect world we wouldn&#8217;t be forced to ferret out fake food from our diet. Since we have to live with fake food for now, it would be nice if we could have a system where the exact amount of artificial trans fats per serving could be stated. It would also be nice if the &#8220;zero&#8221; was returned to it&#8217;s rightful state of literally meaning &#8220;none&#8221; instead of &#8220;a little bit&#8221;. At the very least we should make food manufacturers declare &#8220;very low trans fats&#8221; instead of &#8220;zero trans fats&#8221;. Specific numbers about trans fat content would be nice too. Then we would be on the right track.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.youell.com/matt/writing/?feed=rss2&amp;p=219</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Space, Motherfucker!</title>
		<link>http://www.youell.com/matt/writing/?p=176</link>
		<comments>http://www.youell.com/matt/writing/?p=176#comments</comments>
		<pubDate>Wed, 18 Feb 2009 23:24:47 +0000</pubDate>
		<dc:creator>matt</dc:creator>
				<category><![CDATA[culture]]></category>
		<category><![CDATA[not good enough]]></category>
		<category><![CDATA[space]]></category>
		<category><![CDATA[travel]]></category>

		<guid isPermaLink="false">http://www.youell.com/matt/writing/?p=176</guid>
		<description><![CDATA[
I was addicted to OMNI magazine when I was a kid. Journalistic warts aside, it was a wonderful magazine that sparked my imagination like no other. One issue in particular stands out in my mind. It talked about a possible mission to Mars. I don&#8217;t remember all of the details, but the article made the [...]]]></description>
			<content:encoded><![CDATA[<p><img title="omni-mars-387x210" src="http://www.youell.com/matt/writing/wp-content/uploads/2009/02/omni-mars-387x210.png" alt="omni-mars-387x210" width="387" height="210" style="float: right"/><br />
I was addicted to OMNI magazine when I was a kid. Journalistic warts aside, it was a wonderful magazine that sparked my imagination like no other. One issue in particular stands out in my mind. It talked about a possible mission to Mars. I don&#8217;t remember all of the details, but the article made the point that the US space program had faltered after the moon missions ended, and that if we didn&#8217;t get our shit together the Soviets would eventually catch up with us and have moon bases and Martian colonies. Or something like that.</p>
<p>The reason I remember that particular article is because of how much it frustrated me. At age 12 &#8211; when I read this article &#8211; I was fascinated by space, the idea of going to space, and all things involving space, robots, technology, robots, and space. Space space space. And this article was saying, in 1985, that if Congress had stayed on track with funding for the space program in the 1970s, NASA would have been on track for a Mars mission by 1986!</p>
<p>All that my 12 year old brain could think was: &#8220;SO WHY THE HELL AREN&#8217;T WE DOING THAT???&#8221;</p>
<p>Even now, as an adult, with full knowledge that we spent a lot of our money on winning the Cold War instead of going into space, it is hard for me to accept. It wasn&#8217;t fun living with <a href="http://en.wikipedia.org/wiki/Mutual_Assured_Destruction">MAD</a> hanging over our heads, but sometimes it is abundantly clear that the Cold War cost us a lot more than stress and political inconvenience.</p>
<p>Let&#8217;s recap space policy since I was twelve years old:</p>
<p>Liberal deniers aside, Reagan spent our way out of the Cold War, so I&#8217;ll give him a pass. I don&#8217;t remember space being a top priority for Bush 41, so fuck him.  Clinton did approximately jack shit with regard to the space program as I recall. BUT he did get a beej in the oral office, so&#8230; naw, fuck him too. And Bush 43 waved his hands and tried to get some attention for space projects, but I have a feeling that was only to get people to forget about gems like &#8220;they hate us for our freedom&#8221;. (That dude could have announced a cure for cancer or AIDS and no one would have been listening.) Do I even need to say &#8220;fuck him&#8221; about that guy?</p>
<p>So here we are with President Obama. And what&#8217;s this? The biggest economic crisis in generations? Record unemployment? And giant megacorps are faltering because of the stupid shit they&#8217;ve been pulling, and they need a bailout? Oh, and <a href="http://www.supereco.com/news/2009/02/17/global-warming-will-be-worse-than-expected-scientist-warns/">the Earth is dying</a> too? And it can&#8217;t support our growing population?</p>
<p><strong>JANE! GET ME OFF THIS CRAZY THING!</strong></p>
<p>I was listening to <a href="http://marketplace.publicradio.org/">Marketplace</a> yesterday and they made the point that the auto companies need an economic recovery, not a bailout. Right now we&#8217;re just throwing cash at these companies but if the economy isn&#8217;t better in a year or two they are just going to fail anyway.</p>
<p>People are looking for ways the government can stimulate the economy. Fixing infrastructure and shifting to green energy are the big items on the agenda. And that&#8217;s great. But in the grand scheme of things, and in terms of the history and future of our nation, those are very short-term items. Why not focus on the one thing that will solve a bunch of this shit at once, in a serious way and for generations to come? Why can&#8217;t we have a serious space program again? Why not make space exploration &#8211; and colonization &#8211; the centerpiece of this recovery?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.youell.com/matt/writing/?feed=rss2&amp;p=176</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Internet Works Backwards</title>
		<link>http://www.youell.com/matt/writing/?p=171</link>
		<comments>http://www.youell.com/matt/writing/?p=171#comments</comments>
		<pubDate>Wed, 11 Feb 2009 15:00:40 +0000</pubDate>
		<dc:creator>matt</dc:creator>
				<category><![CDATA[not good enough]]></category>
		<category><![CDATA[problem solving]]></category>
		<category><![CDATA[rants]]></category>

		<guid isPermaLink="false">http://www.youell.com/matt/writing/?p=171</guid>
		<description><![CDATA[A few months ago while riding the train through downtown Portland I had a small epiphany: The Internet works backwards. I tweeted about this but didn&#8217;t explain much. I promised to blog about it and then quickly got wrapped up in other things.
This morning I stumbled across this post which comes painfully close to what [...]]]></description>
			<content:encoded><![CDATA[<p>A few months ago while riding the train through downtown Portland I had a small epiphany: The Internet works backwards. I tweeted about this but didn&#8217;t explain much. I promised to blog about it and then quickly got wrapped up in other things.</p>
<p>This morning I stumbled across <a href="http://www.editorandpublisher.com/eandp/columns/stopthepresses_display.jsp?vnu_content_id=1003940234">this post</a> which comes painfully close to what I had in mind. Painfully because it heads in the right direction and yet is still thinking in a limited, old-media way about the nature of content. </p>
<p>We punish the value creators on the Internet. We should reward those who add value to the network. Instead, the more value a site adds to the network, the more fees the site owners have to pay. </p>
<p>What if the internet worked exactly the opposite from the way it works now? Instead of charging someone like YouTube for bandwidth, carriers would indirectly pay to carry that bandwidth. Consumers would still have a flat-rate ISP subscription, with part of that money being distributed to content providers.</p>
<p>In this way, users would quite literally vote with their attention. This is not the same as your cable company deciding what channels to carry. In this scheme, bandwidth is the only commodity that carriers need concern themselves with. Specific details of content would not matter. Consumers buy bandwidth. Then they hit the sites they like. Those sites receive a portion of the money collected from consumers. This is not on an individual basis; it is aggregate. So if 20% of my ISPs bandwidth went to Youtube yesterday, so did 20% of the allocated money for that day. From Youtube&#8217;s perspective, the bandwidth is free and they make money for hosting the content that the Internet values. Ditto for Flickr, Google, Gmail, the New York Times, or any other site that provides value. </p>
<p>This scheme would work much better than micropayments, mainly because it is dirt simple. Certainly people would try to game the system, and there will always be low-value websites and services which might get some trickle of bandwidth. But over time the wrinkles would be ironed out and the sites and services that create value would be the ones that consistently earn money.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.youell.com/matt/writing/?feed=rss2&amp;p=171</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Finally, someone says it</title>
		<link>http://www.youell.com/matt/writing/?p=131</link>
		<comments>http://www.youell.com/matt/writing/?p=131#comments</comments>
		<pubDate>Thu, 22 Jan 2009 13:44:29 +0000</pubDate>
		<dc:creator>matt</dc:creator>
				<category><![CDATA[How I Code]]></category>
		<category><![CDATA[humane]]></category>
		<category><![CDATA[not good enough]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[software industry]]></category>

		<guid isPermaLink="false">http://www.youell.com/matt/writing/?p=131</guid>
		<description><![CDATA[Null references are a bad idea. When I try to say things like this, people blow me off. I suppose that is understandable. I&#8217;m just another opinionated programmer, never mind the bruises and scars. 
I think it&#8217;s a little harder to blow off C.A.R. Hoare. Thanks Tony!
]]></description>
			<content:encoded><![CDATA[<p><a href="http://qconlondon.com/london-2009/presentation/Null+References:+The+Billion+Dollar+Mistake">Null references are a bad idea</a>. When I try to say things like this, people blow me off. I suppose that is understandable. I&#8217;m just another opinionated programmer, never mind the bruises and scars. </p>
<p>I think it&#8217;s a little harder to blow off <a href="http://en.wikipedia.org/wiki/C._A._R._Hoare">C.A.R. Hoare</a>. Thanks Tony!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.youell.com/matt/writing/?feed=rss2&amp;p=131</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Trailer Park Software</title>
		<link>http://www.youell.com/matt/writing/?p=24</link>
		<comments>http://www.youell.com/matt/writing/?p=24#comments</comments>
		<pubDate>Wed, 03 Sep 2008 18:07:54 +0000</pubDate>
		<dc:creator>matt</dc:creator>
				<category><![CDATA[humane]]></category>
		<category><![CDATA[not good enough]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[rants]]></category>

		<guid isPermaLink="false">http://www.youell.com/matt/writing/?p=24</guid>
		<description><![CDATA[It takes money to make money. Right? Isn&#8217;t that the saying? Everyone seems to know it.
Everyone except the Business Journal. It&#8217;s bad enough they have an ugly site design (clean yes, but poorly organized, uninspired, and dull), but they also apparently have some kind of Soviet-era site management software on the backend. Just to make [...]]]></description>
			<content:encoded><![CDATA[<p>It takes money to make money. Right? Isn&#8217;t that the saying? Everyone seems to know it.</p>
<p>Everyone except the <a href="http://www.bizjournals.com/">Business Journal</a>. It&#8217;s bad enough they have an ugly site design (clean yes, but poorly organized, uninspired, and dull), but they also apparently have some kind of Soviet-era site management software on the backend. Just to make changes to your website account you end up digging around in long screens packed with demographic questions. Not fun. I usually stay away.</p>
<p>This morning they sent an email invitation to join their new &#8220;social network&#8221;. Because we NEED the fucking <a href="http://networking.bizjournals.com/community/app/nf/vistafs.aspx">Business Journal&#8217;s social network</a>! Life just isn&#8217;t complete without it. Heaven forbid they just piggyback on <a href="http://www.facebook.com">Facebook</a> or do something innovative like a <a href="http://reddit.oregonlive.com/">custom Reddit</a>. But I digress.</p>
<p><a href="http://networking.bizjournals.com/community/app/nf/vistafs.aspx">This thing</a> is a mess. You get in there and you have no idea what is going on. As a developer, I can see what is happening. They are handcuffed by the software that controls their site. That software wasn&#8217;t created with a social network in mind. Far from it. So to compensate they have to hang new functionality off the side of the site, so to speak. Kind of like the guy in the trailer park who puts an &#8220;addition&#8221; on his house by connecting a smaller trailer to his big trailer with some sheet metal, green fiberglass shingles, and (of course) duct tape.</p>
<p>This is more than a look-and-feel thing though. By trying to squirm around their handcuffs, they&#8217;ve had to split up where your user information is. Some of it is in your Account Settings, and some of it is in your &#8220;Dashboard&#8221;. (Protip: software isn&#8217;t <a href="http://blueballfixed.ytmnd.com/">enterprisey</a> enough unless you call it a dashboard.) That might sound like nitpicking, but it isn&#8217;t. If you look at every single one of the &#8220;newest members&#8221; on the site, you&#8217;ll see a shadow icon in place of where their profile photo (aka mugshot) should be. Except for me. As far as I can tell I&#8217;m the only user with a mugshot because I&#8217;m the only dumb bastard stubborn enough to dig around in the site for 15 minutes to figure out where I can upload my pic. And it&#8217;s not like these users don&#8217;t know how to upload a pic. There&#8217;s a whole photo gallery filled with 8&#215;10 <a href="http://www.glamourshots.com/">Glamour Shots</a> scans that users have uploaded. But no pics on user profiles!</p>
<p>The striking thing about this social networking attempt is how many features they&#8217;ve tried to pack into it without actually adding much value. They clearly put some thought into what they would provide, but not any thought into how it would actually <strong>work</strong> or what <em>true value</em> it would bring to their users. So you can upload some photos or even &#8220;start a blog&#8221; on their site. But you can&#8217;t have a simple URL to your company in your profile or link off to your own blog outside of their site. So it&#8217;s a walled garden. And walled gardens don&#8217;t work so well on the interwebs.</p>
<p>My advice? Begin with a simple goal which will genuinely serve your users. And get some budget before you try to do this shit. Don&#8217;t go in half-assed. Remove all but the most needed new features from the social part of the site. Trim it down so you can build it back up. Add only features that you can prove are valuable. (Hint: Your users will ask for most of them.) Consolidate your information into one place. Every account on the site should have the same type of profile options available to them (mugshot, url, etc.). And consolidate the information in your database too! I can tell that you keep the same pieces of information in several different databases. That&#8217;s crazy.</p>
<p>And if your website management or CMS software won&#8217;t let you do these things, throw it out and write your own. You&#8217;re obviously already doing some of that. Why not go all the way? It&#8217;s not hard. There are plenty of open source CMS systems out there to get you started, not to mention <a href="http://www.djangoproject.com/">wonderful software  platforms</a> that <a href="http://www.lawrence.com/">other</a> <a href="http://www.washingtonpost.com/">newspapers</a> are already using.</p>
<p>Otherwise, just pack it in. No one needs another annoying/useless &#8220;social&#8221; website that isn&#8217;t bringing its &#8216;A&#8217; game.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.youell.com/matt/writing/?feed=rss2&amp;p=24</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Home Sweet Home</title>
		<link>http://www.youell.com/matt/writing/?p=16</link>
		<comments>http://www.youell.com/matt/writing/?p=16#comments</comments>
		<pubDate>Fri, 25 Jul 2008 19:49:43 +0000</pubDate>
		<dc:creator>matt</dc:creator>
				<category><![CDATA[not good enough]]></category>
		<category><![CDATA[weird]]></category>

		<guid isPermaLink="false">http://www.youell.com/matt/writing/?p=16</guid>
		<description><![CDATA[(Warning: Most of my posts are about programming. Not this one. This is not a post to read during your lunch break, afternoon snack, FourthMeal ™, etc.)
When I was about six years old I had decided that I loved to draw. My mother, seeing a budding artist, encouraged me to no end. I would scribble [...]]]></description>
			<content:encoded><![CDATA[<p>(Warning: Most of my posts are about programming. Not this one. This is <strong>not</strong> a post to read during your lunch break, afternoon snack, FourthMeal ™, etc.)</p>
<p>When I was about six years old I had decided that I loved to draw. My mother, seeing a budding artist, encouraged me to no end. I would scribble little drawings and then show her. Invariably she would tell me that she liked my drawing and maybe ask what things were in the picture. But I remember this one time when I was very bored and for reasons I won&#8217;t go into in this post, I had no place to go outside and play. So I was six  years old, bored, and had a pencil and paper. And a devious sense of humor.</p>
<p>On this one particular day I was suddenly struck with inspiration. I sketched out my picture quickly, giggling at my creation the whole time. When it was done I ran right off to my mom to show her what I had drawn. Smiling, she picked up the paper to take a look.</p>
<p>I think I knew something was wrong when I saw her jaw drop and the blood rush out of her face. And then I saw the blood rush back until her face was red. See, I had drawn a lovely scene: A smiling stick figure, on a toilet, with a giant tail of poo crawling out of the toilet and around the page. On the wall next to the person could be seen a sign which read: &#8220;Toilet, Sweet Toilet&#8221;.</p>
<p>Needless to say, I didn&#8217;t get my pencil and paper back for a few days. My point?  Well, my sense of humor has grown up since I was six but my tendency toward dark or gross humor has remained the same. So I hope you will appreciate the great restraint I have used in relating the following story to you.</p>
<p>When I think about owning a house, most of the time I kick myself that I didn&#8217;t buy a place back in the late 90s when I probably could have swung it and would have caught the early wave of the housing bubble. Reality usually settles in though. I remind myself that I often make dumb money decisions. That means I probably would now be upside down on some piece of sub-par suburbia with a crazy ARM mortgage that I&#8217;d have talked myself into and generally hating life. And then there is my whole rant about how most homeowners don&#8217;t really own shit, than the bank owns their house and their future, and that modern American home ownership is a socio-economic trap on par with sharecropping or indentured servitude. Even so, I&#8217;ve gotta say that most of the time when I think about owning vs. renting, I can say I definitely wish I owned my own home.</p>
<p>Not this week. This week I am flat-out <em>grateful</em> that I don&#8217;t own a home.</p>
<p>Why? Because I don&#8217;t have the pay the plumbing bill. It turns out that this lovely old house, with its well built, farmhouse-meets-craftsman style, high ceilings, and pseudo-wood floors, has been sitting on a huge pile of shit. For quite a while.</p>
<p>When we toured the house in December I thought I smelled a little something. But I thought maybe there was a horse stable nearby.We&#8217;re in the kind of area where a horse corral next door wouldn&#8217;t be that unusual. Not being familiar with the neighborhood I didn&#8217;t think much of it.</p>
<p>After we moved in we started to smell something in certain rooms. It was a phantom smell which would only appear at certain unpredictable times.  We complained to the landlord, but since we couldn&#8217;t pin it down very specifically and we weren&#8217;t nagging about it I guess she didn&#8217;t take it too seriously. It was annoying but honestly we didn&#8217;t know what to make of it.</p>
<p>Many months passed and the smell would come and go, always mild, always smelling like horses or cows or something like that. And we wondered.</p>
<p>Finally, a plumber came out this week. He was supposed to check out a clogged bathtub drain, but as a side note the landlord had asked him to check out that smell we&#8217;d been talking about for months.</p>
<p>Our house sits on a block foundation, which means there is a crawlspace underneath. The moment the plumber got a whiff of the smell he wanted to go under and investigate. (And God bless him, because I sure as hell wasn&#8217;t doing that.) He came back up practically laughing.</p>
<p>See, the house we&#8217;re in had an addition built sometime in the past 20 years or so. It&#8217;s a small extension to the house, with a toilet and sink, plus the washer and dryer. Apparently whoever did the plumbing for the addition back then wasn&#8217;t what you&#8217;d call a &#8220;detail oriented&#8221; type. See, the drain pipe that he added on (and I&#8217;m going to assume it was a He), was never capped at the end.</p>
<p>Get that? The end of the  drain pipe &#8211; the pipe that takes everything out to the sewer &#8211; was wide open. Apparently it was that way ever since that addition was built 15-20 years ago. So let&#8217;s do the math here&#8230; open sewer line plus toilet, sink, washing machine, and adjacent kitchen, plus 15-20 years = ? Yup, a big old pile of crap under the house. The plumber said it looked like the bottom of an outhouse down there. Nice!</p>
<p>Bonus: This old house used to have cast iron piping. Most of which had been replaced, but apparently one leg of the main line out to the sewer was still cast iron. And what happens to cast iron when you mix it with water, kids? Yup, rust. Which it had. A big old hole had rusted out of that section of pipe, in mid-air, under a whole other section of the house. So if you&#8217;re keeping track we had not one, but TWO places where shit was falling out of pipes and piling up under the house.</p>
<p>Added bonus: The line to the sewer was also clogged. Which meant that everything we thought we were flushing was instead backing up into the crawlspace. The plumber was amazed we didn&#8217;t have a 4-inch deep puddle of sewage under the house. I guess the dirt here drains well or something. I&#8217;d really rather not think about it.</p>
<p>So, as you might imagine, we spent the week in a hotel. A special cleaning crew came in and removed all of the &#8220;debris&#8221; from the crawlspace, then they fumigated and cleaned and deodorized and fumigated some more. They ran a giant HEPA-filtered air mover in the house for days. And the plumber did his thing.</p>
<p>And now, finally, at the end of the week we are back home. And things seem fine. But I have learned one hell of a lesson for when we do buy a house: Always get the plumbing checked out. Twice. Maybe three times.</p>
<p>If you made it this far through this nasty story, I have a present for you. I was looking on YouTube for video of the Golgothan from <a href="http://www.imdb.com/title/tt0120655/">Dogma</a>. Sadly that turns out to be the one clip YouTube <em>doesn&#8217;t</em> have. However, they did have this clip of Kevin Smith talking at Cornell. It&#8217;s funnier than the Golgothan:<br />
<center><br />
<object height="344" width="425"><param name="movie" value="http://www.youtube.com/v/5UDoIBgiUAQ&amp;hl=en&amp;fs=1"></param><param name="allowFullScreen" value="true"></param> 	<embed src="http://www.youtube.com/v/5UDoIBgiUAQ&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" height="344" width="425"></embed></object><br />
</center></p>
]]></content:encoded>
			<wfw:commentRss>http://www.youell.com/matt/writing/?feed=rss2&amp;p=16</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Django &#8211; You know, Boba&#8217;s Dad</title>
		<link>http://www.youell.com/matt/writing/?p=14</link>
		<comments>http://www.youell.com/matt/writing/?p=14#comments</comments>
		<pubDate>Thu, 17 Jul 2008 21:49:13 +0000</pubDate>
		<dc:creator>matt</dc:creator>
				<category><![CDATA[not good enough]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[programming languages]]></category>

		<guid isPermaLink="false">http://www.youell.com/matt/writing/?p=14</guid>
		<description><![CDATA[For the past six months I&#8217;ve been pretty heavy into a Python web framework called Django. For the most part I&#8217;ve been quite happy with it, especially since for a few months prior I had been playing with PHP and that wasn&#8217;t making me too happy. Still, there have been a lot of things to [...]]]></description>
			<content:encoded><![CDATA[<p>For the past six months I&#8217;ve been pretty heavy into a Python web framework called <a href="http://www.djangoproject.com/">Django</a>. For the most part I&#8217;ve been quite happy with it, especially since for a few months prior I had been playing with PHP and that wasn&#8217;t making me too happy. Still, there have been a lot of things to get used to:</p>
<p>First off, it&#8217;s Python. Don&#8217;t get me wrong, Python is a fine language, but it is new to me. I assumed incorrectly that being comfortable with the language would be enough to make development a breeze. It was not. Python is an exceedingly obvious language, at least if you take a little time to learn it. Much more so that previous languages which felt as powerful such as C++ or Perl. Still, coding in Python has it&#8217;s quirks. There&#8217;s the whole indentation-as-syntax thing, which works much better than I thought it might, but still doesn&#8217;t read as well as I&#8217;d hoped. But, for the most part the indentation scheme avoids Brace Wars, which I find myself getting irrationally religious about. (Let&#8217;s not go there.)</p>
<p>Nits about Python:</p>
<p>You can&#8217;t mix indentation types. For instance, you can use tabs or spaces, but not both. Which makes sense on an individual line, but gets annoying if you cut and paste some code from somewhere. I have found 4-space indents work better for me than tabs, but sometimes I cut and paste code when I&#8217;m learning something new, and about 70% of code I find seems to use tabs. That&#8217;s when Python has a hissy. I don&#8217;t understand it, but I trust there&#8217;s a good reason it can&#8217;t do it on a line-by-line basis. That would certainly make my life easier.</p>
<p>Another thing I kept running into was with creating libraries. I&#8217;d code up a class, thow it into a folder in the PYTHONPATH and try to import from it. And what would happen over and over until I learned better? My module was never found. Reason? No magical &#8220;__init__.py&#8221; file in my folder. Yes, just the presence of the file means &#8220;hey, there&#8217;s some code here to import&#8221;. Not the way I&#8217;d have done it, but then again I don&#8217;t know the whole story.</p>
<p>Overall my Python nits are minimal. I don&#8217;t get the exhilaration I used to get from making something with amazing performance in C++, and I don&#8217;t get the  smile that comes across my face when I code in Perl. But I do get things done. I guess it&#8217;s a lot like VB in that way. Except not stupid. <img src='http://www.youell.com/matt/writing/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>My problems with Django are still evolving, but so far my biggest problem with Django is configuration. OMG it is a fucking pain in the ass.</p>
<p>Now, I should qualify that: If you already have a current Python, you can install and run Django pretty easily. You just download it, install it, then use the django-admin.py script to create your first app. Once your app is created you can use a mini Python appserver while you develop. You can make changes to the live app and they will get swept up into the current instance of the appserver. It&#8217;s similar to the webrick server you would use with Rails. And since sqlite ships with later Python releases, you can have a working, database-backed webapp up and running in about 5 minutes. Of course it won&#8217;t do much (aside from the wonderful built-in admin system), but still, to get started that fast is great.</p>
<p>Of course, no one is going to put an app into production with the little webserver that Django gives you. For production you need to tie in with a real webserver. Traditionally that means Apache, which is what I use. There are other high performance web servers that people are using (apparently with great success) with Django, but I&#8217;m old school. At least for the time being. Besides, Apache is widely available and supported on a lot of servers, so it makes for an easy target.</p>
<p>Or so you&#8217;d think, anyway. Getting a full stack of Apache, mod_python, MySQL, and Django turns out to be the biggest obstacle to working with Django &#8220;for reals&#8221;. I&#8217;m probably spoiled by years of working with stacks that have more integration like .NET, or just more raw ammo, like Perl/CPAN.</p>
<p>I believe I can honestly claim that out of the past 3 months, I&#8217;ve spent approximately 1.5 to 2 months dealing with Django configuration. Part of that is my fault. For one thing, I want to have a proper deployment waterfall: development box, staging box, client review, then client&#8217;s production.  Which means trying to set up the same damned thing over and over again. Which shouldn&#8217;t be a problem, except that I&#8217;m developing on my Intel Macbook, staging on my G4 Mac Mini, pushing to review on a Django-friendly Ubuntu hosting provider, and then finally pushing out to a Fedora production box. If this was Perl I probably wouldn&#8217;t give a shit. But it ain&#8217;t.</p>
<p>The weak points turned out to be mod_python (the Python interpreter which you embed into Apache) and MySQLdb (the MySQL access library for Python). The mod_python install actually hasn&#8217;t been so bad. I did have trouble at one point getting mod_python to use the correct Python version. (I cheated and renamed the one that was in the system PATH first. Lame but it worked.) Getting MySQLdb was much more of a pain in the ass. Apparently very few people use MySQL from Python (Postgres seems to be far, far more popular), because there&#8217;s basically one dude who maintains the MySQLdb library. That&#8217;s a recipe for a lot of blind corners and situations where things don&#8217;t work so well. I spent an inordinate amount of time getting MySQLdb working, and I think I still don&#8217;t have it working right on my development box.</p>
<p>Oh, that&#8217;s right. Did I mention that? I can&#8217;t run the full Django stack on my Intel Macbook. Partially because of the MySQLdb crap (I clearly have Intel, it clearly thinks I have PPC. Wtf?), but also partly because of one other library, Python Imaging Library. That fucker will NOT build on my Macbook. Since the main client app I&#8217;m working on uses that (sort of&#8230; I think the feature it was included for never gets used), I can&#8217;t run Django for client development on my primary machine.</p>
<p>All of which means I&#8217;m shelling over to my Mac Mini (which hangs daily, btw. Fun.) and developing there (In pico. Yay.), or sometimes I just give up altogether and code on the review box.</p>
<p>Now, this all probably sounds kind of negative. And it is, but only about short-term things. When everything is actually up and running, developing with Django is fast and pretty enjoyable. But getting to that point costs a small portion of your soul.</p>
<p>Worse, I think my <a href="http://www.joelonsoftware.com/articles/fog0000000043.html">Joel score</a> just went down.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.youell.com/matt/writing/?feed=rss2&amp;p=14</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Yahoo Doesn&#8217;t Need A Fail Whale</title>
		<link>http://www.youell.com/matt/writing/?p=13</link>
		<comments>http://www.youell.com/matt/writing/?p=13#comments</comments>
		<pubDate>Tue, 15 Jul 2008 02:43:22 +0000</pubDate>
		<dc:creator>matt</dc:creator>
				<category><![CDATA[humane]]></category>
		<category><![CDATA[not good enough]]></category>
		<category><![CDATA[rants]]></category>

		<guid isPermaLink="false">http://www.youell.com/matt/writing/?p=13</guid>
		<description><![CDATA[I haven&#8217;t posted in a while. I&#8217;ve been crazy busy. But it&#8217;s more than that: I don&#8217;t want to post just to hate on people. And every single time I think I have a good thing to write about, it comes out negative. And that has kept me away. But, apparently I can&#8217;t deny what [...]]]></description>
			<content:encoded><![CDATA[<p>I haven&#8217;t posted in a while. I&#8217;ve been crazy busy. But it&#8217;s more than that: I don&#8217;t want to post just to hate on people. And every single time I think I have a good thing to write about, it comes out negative. And that has kept me away. But, apparently I can&#8217;t deny what I am.</p>
<p>I&#8217;m a hater.</p>
<p>I just can&#8217;t help it.</p>
<p>Maybe it is the heat, I don&#8217;t know. But shit like this just pisses me off, and has for *far too long*:</p>
<p style="text-align: center"><img src="/matt/writing/lib/images/YahooFail.jpg" height="524" width="451" /></p>
<hr />A gentle note to Yahoo:</p>
<p>I DO <strong>NOT</strong> LIVE IN MOTHERFUCKING <strong>FRANCE</strong>!</p>
<p>And dammit, Yahoo, you know this. You&#8217;ve known me forever. Look &#8211; I&#8217;m logged in! Read my profile. Or see that I&#8217;m connected from a well known ISP in the US, with an IP address which simply *does not roam*. And cookies! You&#8217;ve got the cookies.  You can look at those and see every place I&#8217;ve asked about. None of those places is in France, or Mexico, or anywhere else you&#8217;ve asked me about.</p>
<p>I can&#8217;t believe this fail has lasted as long as it has. Why not just go all the way and give me a pulldown list with every country in the world on it. (Be sure to put Afghanistan first on the list and the US way down past Uganda too. Bonus points!)</p>
<p>See how negative I&#8217;m being? Feel the hate? It just seems so wrong.</p>
<p>But man, it *feels* <em>so right</em>.</p>
<p>Still, maybe I should be more compassionate. Maybe Yahoo US is underfunded and just can&#8217;t make it better. Hey! I know: Maybe the guys at Yahoo Japan can make it better. Seems like they have some extra budget over there&#8230;<br />
<center><br />
<object height="344" width="425"><param name="movie" value="http://www.youtube.com/v/-tWwMSM4OZQ&amp;hl=en&amp;fs=1"></param><param name="allowFullScreen" value="true"></param><embed src="http://www.youtube.com/v/-tWwMSM4OZQ&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" height="344" width="425"></embed></object><br />
</center></p>
]]></content:encoded>
			<wfw:commentRss>http://www.youell.com/matt/writing/?feed=rss2&amp;p=13</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
