<?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>Web 4.0 Beta</title>
	<atom:link href="http://www.web4beta.com/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.web4beta.com</link>
	<description>One web programmer's view of the world.</description>
	<lastBuildDate>Wed, 17 Feb 2010 02:08:24 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Hello tech support? How does this newspaper work?</title>
		<link>http://www.web4beta.com/?p=99</link>
		<comments>http://www.web4beta.com/?p=99#comments</comments>
		<pubDate>Wed, 17 Feb 2010 01:51:44 +0000</pubDate>
		<dc:creator>Bishma</dc:creator>
				<category><![CDATA[Geek Life]]></category>
		<category><![CDATA[The New Web]]></category>
		<category><![CDATA[app]]></category>
		<category><![CDATA[media]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[prison rape]]></category>
		<category><![CDATA[publishers]]></category>
		<category><![CDATA[publishing]]></category>
		<category><![CDATA[UI]]></category>

		<guid isPermaLink="false">http://www.web4beta.com/?p=99</guid>
		<description><![CDATA[The downside to the app ecosystem: not knowing how to work your newspaper.]]></description>
			<content:encoded><![CDATA[<p><img class="size-full wp-image-100" title="Frustration" src="http://www.web4beta.com/wp-content/uploads/2010/02/3200191485_175a3715f6_m.jpg" alt="Photo By Stephen Poff" hspace="2" width="189" height="240" align="left" /></p>
<p><a href="http://www.crunchgear.com/2010/02/16/wireds-ipad-app-lookin-good/" target="_blank">This recent post</a> on <a href="http://www.crunchgear.com/" target="_blank">CrunchGear</a> shows off a new tablet app for <a href="http://www.wired.com/" target="_blank">Wired Magazines</a> that is under development. This started the gears working in my head about a real problem emerging in the app ecosystem that has developed around <a href="http://www.apple.com/ipad/" target="_blank">Apple</a>, <a href="http://www.android.com/" target="_blank">Android</a> and to a lesser extent <a href="http://www.rim.com/products/" target="_blank">RIM</a>, <a href="http://technologizer.com/2010/02/16/the-many-names-of-microsofts-mobile-os/" target="_blank">Windows <span style="text-decoration: line-through;">CE</span> <span style="text-decoration: line-through;">Mobile</span> Phone</a>, <a href="http://www.palm.com/us/" target="_blank">WebOS</a>, et. al.</p>
<p>If I pick up a newspaper or magazine I know exactly how it&#8217;s going to work. I can skim through pages, read any article that grabs my fancy and curse at the <a href="http://www.theonion.com/content/node/33252" target="_blank">subscription cards</a> regardless of what type of periodical it is or who has published it. But in a world where we get our publications via app it&#8217;s possible that no two will ever be alike. Not only is it likely that no two interfaces will be the same but it&#8217;s also a near certainty that some will just plain suck. Many engineers are not designers and even those that are may not have any sense of good layout or UI. There shouldn&#8217;t be a learning curve when it comes to reading an article.</p>
<p>I envision this playing out:</p>
<ul>
<li> First, you hear about a great article around the water cooler at work.</li>
<li>The next time you&#8217;re around your tablet you go and look it up.</li>
<li>Curses, it&#8217;s not available online, but if you download the company&#8217;s app you can get it.</li>
<li>Whoops, the app costs $4.99&#8230; well you heard it was a good story so you&#8217;ll pay it. After all there must be other articles you&#8217;d find interesting.</li>
<li>After spending your lunch hour downloading the app and figuring out how it works you discover that the article you&#8217;re after isn&#8217;t in the current issue.</li>
<li>You spend your next coffee break on Google trying to figure out how to get previous issues.</li>
<li>Ah ha, there&#8217;s a separate app for previous issues&#8230; it&#8217;s also $4.99.</li>
<li>After getting home you spend an hour on the phone navigating a phone tree until you can explain to the level one tech support person that you downloaded the wrong app.</li>
<li>Level one manages to shrug his/her shoulders so over dramatically you can actually hear it over the phone. You&#8217;re then transferred to level two.</li>
<li>Level two tells that there&#8217;s no way transfer the purchase price to the other app, but they&#8217;ll send you a refund card in 4 to 6 weeks so that you can get your five bucks back in 8 to 12 weeks. By the way you really <em>should</em> be calling the phone company with these types of issues.</li>
<li>You go head an purchase the second app knowing you&#8217;ll get the the refund before you retire.</li>
<li>After downloading and figuring out how this different UI works you&#8217;re exhausted and go to bed.</li>
<li>You wake up the next morning enthusiastic that you&#8217;ll finally get to read this, surely, amazing article.</li>
<li>You open the app which crashes, but it works fine the second time you try.</li>
<li>You wade through 4 screens worth of advertisements and at long last you make it to the article.</li>
<li>The article quotes two freely available <a href="http://www.ap.org/" target="_blank">AP</a> stories and has one other paragraphs that amounts to &#8220;well, I guess we&#8217;ll have to wait and see.&#8221;</li>
<li>&#8230;</li>
<li>The jury turns in a guilty verdict and you&#8217;re introduced to your new cellmate Big Tony.</li>
</ul>
<p>If the day comes where the majority of people are consuming their print media on portable devices like the <a href="http://www.amazon.com/dp/B0015T963C/?tag=googhydr-20&amp;hvadid=4830317545&amp;ref=pd_sl_19calxq4k4_e" target="_blank">Kindle</a> or iPad I&#8217;m sure these issues will work themselves out. Until then this seems to be one of those issues where technology only serves to make our lives more complicated. Granted most of us won&#8217;t end up getting our salad tossed by Big Tony and his crew but the frustration is inevitable. On the bright side, if it does end up going to the extreme maybe the publisher will issue your refund in cigarettes.</p>
<h6>Thanks to <a href="http://www.flickr.com/photos/stephenpoff/" target="_blank">Stephen Poff</a> for the <a href="http://en.wikipedia.org/wiki/Creative_commons" target="_blank">CC</a> image</h6>
]]></content:encoded>
			<wfw:commentRss>http://www.web4beta.com/?feed=rss2&amp;p=99</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>A plan</title>
		<link>http://www.web4beta.com/?p=83</link>
		<comments>http://www.web4beta.com/?p=83#comments</comments>
		<pubDate>Mon, 03 Nov 2008 05:09:02 +0000</pubDate>
		<dc:creator>Bishma</dc:creator>
				<category><![CDATA[Code Talk]]></category>
		<category><![CDATA[Geek Life]]></category>

		<guid isPermaLink="false">http://www.web4beta.com/?p=83</guid>
		<description><![CDATA[It&#8217;s been just under 2 months since my last post, and three and a half months since I posted anything about programming. I haven&#8217;t had any grand code related inspirations lately and my upcoming work projects don&#8217;t promise anything.
I an effort to expand my knowedge base I&#8217;ve decided to learn a new language and undertake [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been just under 2 months since my last post, and three and a half months since I posted anything about programming. I haven&#8217;t had any grand code related inspirations lately and my upcoming work projects don&#8217;t promise anything.</p>
<p>I an effort to expand my knowedge base I&#8217;ve decided to learn a new language and undertake working with a full fledged framework for the first time. My <a href="http://pathetisad.com/" target="_blank">webiste</a> has suffered one of the worst cases or bit rot that I&#8217;ve seen. I&#8217;ve decided to redesign it and build it all using <a href="http://www.python.org/" target="_self">Python</a> and <a href="http://www.djangoproject.com/" target="_blank">Django</a>. It will also give me a chance to work with <a href="http://jquery.com/" target="_blank">JQuery</a> and to experiment with some database design ideas.</p>
<p>I&#8217;ve also decided to kill two birds with one stone and work on being a better blogger at the same time. As such I&#8217;ll be doing my best to document everything I go through with this project. Look for that late this month or early in December.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.web4beta.com/?feed=rss2&amp;p=83</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>My kingdom for a filter</title>
		<link>http://www.web4beta.com/?p=81</link>
		<comments>http://www.web4beta.com/?p=81#comments</comments>
		<pubDate>Wed, 10 Sep 2008 01:58:06 +0000</pubDate>
		<dc:creator>Bishma</dc:creator>
				<category><![CDATA[Geek Life]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[The New Web]]></category>

		<guid isPermaLink="false">http://www.web4beta.com/?p=81</guid>
		<description><![CDATA[I tried various different ways to express this thought on twitter, but 140 characters just wouldn&#8217;t do it. So instead I&#8217;ll expand a bit and vent as part of a proper blog post. I don&#8217;t make enough of those anyway.
I am firmly addicted to RSS feeds. This despite my assertion when they first came out [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/zen/2777777143/"><img class="alignleft size-full wp-image-82" title="Remove" src="http://www.web4beta.com/wp-content/uploads/2008/09/2777777143_0d91102595_m.jpg" alt="Thanks to zen for use of the photo" hspace="2" width="240" height="180" align="left" /></a>I tried various different ways to express this thought on <a href="http://twitter.com/bishma" target="_blank">twitter</a>, but 140 characters just wouldn&#8217;t do it. So instead I&#8217;ll expand a bit and vent as part of a proper blog post. I don&#8217;t make enough of those anyway.</p>
<p>I am firmly addicted to RSS feeds. This despite my assertion when they first came out that they weren&#8217;t useful to the end users of a website. They say the ability to change your mind is a mark of intelligence&#8230; right?</p>
<p>I currently subscribe to 66 feeds in <a href="http://www.google.com/reader/shared/02457329885088536943" target="_blank">google reader</a>. On an average day this amounts to about 150 to 200 items that come through GR. I skim over quite a few and take my time reading the ones I like. This is a very manageable arrangement that take occupies about an hour of my day.</p>
<p>Then there are days like today in which just about every blog on the internet with any leaning toward technology has posted basically the same stories about iTunes, iPods, <a href="http://www.techcrunch50.com/2008/conference/" target="_blank">TC50</a>, and/or <a href="http://www.demo.com/" target="_blank">Demo</a>. As a result I&#8217;ll probably have sifted through about 500 feed items by the time the day is over.</p>
<p>What I want it some basic filtering built into to Google Reader. I am a big fan of the app in all other ways but the lack of filtering may actually end up being a deal breaker. I blame Apple&#8230; or at least the echo chamber that surrounds it. My desire for a GR filter started with the iPhone, grew to a serious annoyance with iPhone2, and has come to a head with iTunes8.</p>
<p>I know there are options out there. There&#8217;s a <a href="https://addons.mozilla.org/en-US/firefox/addon/748" target="_blank">Greasemonkey</a> scripts to <a href="http://userscripts.org/scripts/show/23671" target="_blank">add filters</a> to Google Reader, but I have no desire to have Grease Monkey installed. There&#8217;s also <a href="http://pipes.yahoo.com/pipes/" target="_blank">yahoo pipes</a>, but Yahoo&#8217;s been shutting a lot of stuff down lately and it would mean running every feed through Yahoo before I add it to GR which is less than ideal.</p>
<p>Now taking bets on when my desire for a filter starts to out-weigh my lazyness to the point where I switch to another RSS reader.</p>
<p>That was what, 4 characters more than 140?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.web4beta.com/?feed=rss2&amp;p=81</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>2 + 2 = 5</title>
		<link>http://www.web4beta.com/?p=79</link>
		<comments>http://www.web4beta.com/?p=79#comments</comments>
		<pubDate>Fri, 05 Sep 2008 16:16:39 +0000</pubDate>
		<dc:creator>Bishma</dc:creator>
				<category><![CDATA[Geek Life]]></category>
		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://www.web4beta.com/?p=79</guid>
		<description><![CDATA[Failure? I say no&#8230; because I said so.
I made it 55 hours without using the internet for anything personal. Then I got bored. Then I discovered some things. First I discovered that we&#8217;re going to Portland this weekend and a long drive means needing podcasts. My &#8220;Buzz Out Loud only&#8221; rule thusly had to be [...]]]></description>
			<content:encoded><![CDATA[<p>Failure? I say no&#8230; because I said so.</p>
<p><a href="http://www.web4beta.com/wp-content/uploads/2008/09/truman_dewey_wins.jpg"><img class="alignleft size-full wp-image-80" title="dewey wins" src="http://www.web4beta.com/wp-content/uploads/2008/09/truman_dewey_wins.jpg" alt="" hspace="2" align="left" /></a>I made it 55 hours without using the internet for anything personal. Then I got bored. Then I discovered some things. First I discovered that we&#8217;re going to Portland this weekend and a long drive means needing podcasts. My &#8220;Buzz Out Loud only&#8221; rule thusly had to be abolished. Secondly I learned that <a href="http://www.spore.com/" target="_blank">Spore</a> came out yesterday and not Sunday as I had thought. This means my preorder should arrive at some point today and I&#8217;ll be damned if I&#8217;m going to wait.</p>
<p>Therefore I must fall back on the theorem of 2 + 2 = 5 for extremely large values of 2. Two+ days without internet plus 2 very good reasons to use the internet equals 5 days without internet. Success!</p>
<p>I actual have more reasons, but that makes my theorem more complicated. They include the season premier of <a href="http://www.hulu.com/bones" target="_blank">Bones</a> being available on Hulu, Friday company lunches with usually involve a fair amount of non-work related youtube, a need to brush up on my <a href="http://www.perl.com/" target="_blank">Perl</a> skills, a largely empty <a href="http://newteevee.com/2008/02/29/dear-comcast-why-is-my-dvr-so-dumb/" target="_blank">DVR</a>, and boredom. Oh the boredom.</p>
<p>Things I learned while not online: Aside from TV being far more insipid than I remember the last time I spent a fair amount of time devoting all my attention to it&#8230; not much. I played with the cat more than usual, which is good, and I finished (mostly) sorting all our CDs away space saving wallets.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.web4beta.com/?feed=rss2&amp;p=79</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Grand Experiment</title>
		<link>http://www.web4beta.com/?p=77</link>
		<comments>http://www.web4beta.com/?p=77#comments</comments>
		<pubDate>Wed, 03 Sep 2008 07:54:29 +0000</pubDate>
		<dc:creator>Bishma</dc:creator>
				<category><![CDATA[Geek Life]]></category>

		<guid isPermaLink="false">http://www.web4beta.com/?p=77</guid>
		<description><![CDATA[I have been inspired to undertake a personal experiment. I am going to attempt the possible and give up the internet for 5 days. From the morning of Wednesday September 3rd, 2008 until Monday the 8th my laptop will be internet free.
Why, you might ask, am I doing this? A more cromulent question might revolve [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/jurvetson/2798315677/"><img class="alignleft size-full wp-image-78" title="Experiment In Progress" src="http://www.web4beta.com/wp-content/uploads/2008/09/2798315677_15d193b139.jpg" alt="Thanks to jurvetson for the photo" hspace="2" width="300" height="229" align="left" /></a>I have been inspired to undertake a personal experiment. I am going to attempt the possible and give up the internet for 5 days. From the morning of Wednesday September 3rd, 2008 until Monday the 8th my laptop will be internet free.</p>
<p>Why, you might ask, am I doing this? A more cromulent question might revolve around why I&#8217;m telling you this. Never the less I shall only attempt to answer the first question.</p>
<ol>
<li>I want to see if I can get more done if I&#8217;m not chained to my laptop. Twitter and Google Reader seem to occupy all my free time lately.</li>
<li>I want to prove to myself that I can do it. I don&#8217;t think I&#8217;m over dependent on the web, but it would be nice to know for sure.</li>
<li>I&#8217;m tired of it. The internet, at least in the circles I&#8217;ve been traveling lately, seems to be a deafening cacophony that frankly is giving me a headache.</li>
<li>I&#8217;m hoping my desire to read, dead since college, will return to me. I&#8217;ve got a stack of books that have gone unread thanks, at least in part, to my time online.</li>
<li>By starting now this will be over by the time my preorder of <a href="http://www.spore.com/ftl" target="_blank">Spore</a> arrives.</li>
<li>I couldn&#8217;t sleep tonight and in my daze this seems like a good idea.</li>
</ol>
<p>For various reasons I am going to have to make three exceptions that will wholey invalidate this as an experiment at least from a scientific standpoint. Two of these are unavoidable and the 3rd is just&#8230; because.</p>
<ol>
<li>Work<br />
There&#8217;s no way to escape this one. I work building a web application, I have to be able to use the internet to do that. I will, however, not be using the internet for anything recreational while working. I figure the timing for this is good since all of the shows I watch on <a href="http://www.hulu.com/burn-notice" target="_blank">hulu</a> are currently on hiatus.</li>
<li>Email<br />
Over the years email has become my primary form of remote communication. Me giving up email would cut me off from most of my friends and family.</li>
<li><a href="http://reviews.cnet.com/buzz-out-loud-podcast/" target="_blank">Buzz Out Loud</a><br />
This is that just because I mentioned previously. Firstly, this podcast is probably my current favorite thing in all of media. Secondly, I would go a little mad without any access to tech news. A half hour a day should be enough to keep me from going completely nuts.</li>
</ol>
<p>I thought about keeping a journal like a civil war solder. Sadly I very much doubt that this experiment will produce any results that could be called interesting no matter how bored historians get in the future. I predict I&#8217;ll get some more chores done than usual and I&#8217;ll finish reading <a href="http://en.wikipedia.org/wiki/Watchmen" target="_blank">Watchman</a>. Other than that it will probably just be business as usual. I will post the results here on Monday at the experiment&#8217;s conclusion&#8230; or shortly there after.</p>
<p>After thought: There are going to be over 1,000 unread items in my Google Reader by Monday morning. That is a little freightening.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.web4beta.com/?feed=rss2&amp;p=77</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Great minds</title>
		<link>http://www.web4beta.com/?p=73</link>
		<comments>http://www.web4beta.com/?p=73#comments</comments>
		<pubDate>Tue, 15 Jul 2008 22:33:04 +0000</pubDate>
		<dc:creator>Bishma</dc:creator>
				<category><![CDATA[Geek Life]]></category>
		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://www.web4beta.com/?p=73</guid>
		<description><![CDATA[Bonnie noticed this when we were watching Dr Horrible&#8217;s Sing Along Blog last night. Here&#8217;s a picture of Neil Patrick Harris as Dr Horrible.

And this is a photo from my 2007 Halloween cosume.

These are a creap pair of welding goggles that Bonnie found on eBay and I modified for my cyberpunk costume. I painted mine [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://catharticink.com" target="_blank">Bonnie</a> noticed this when we were watching <a href="http://drhorrible.com" target="_blank">Dr Horrible&#8217;s Sing Along Blog</a> last night. Here&#8217;s a picture of Neil Patrick Harris as Dr Horrible.<br />
<a href="http://www.latimes.com/entertainment/news/newmedia/la-et-josswhendongallery,0,4207592.photogallery"><img class="aligncenter size-full wp-image-74" title="Dr Horrible" src="http://www.web4beta.com/wp-content/uploads/2008/07/goggles1.jpg" alt="Dr Horrible Wearing his goggles" width="281" height="425" /></a></p>
<p>And this is a photo from my 2007 Halloween cosume.<br />
<img class="aligncenter size-full wp-image-75" title="My Halloween goggles" src="http://www.web4beta.com/wp-content/uploads/2008/07/goggles2.jpg" alt="" width="281" height="220" /></p>
<p>These are a creap pair of welding goggles that Bonnie found on eBay and I modified for my cyberpunk costume. I painted mine differently than they did and I added to optics from a very old digital camera. I also added the LEDs which blinked. Still if you look closely they are very similar.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.web4beta.com/?feed=rss2&amp;p=73</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mod 10 credit card validation</title>
		<link>http://www.web4beta.com/?p=71</link>
		<comments>http://www.web4beta.com/?p=71#comments</comments>
		<pubDate>Mon, 14 Jul 2008 03:25:15 +0000</pubDate>
		<dc:creator>Bishma</dc:creator>
				<category><![CDATA[Geek Life]]></category>

		<guid isPermaLink="false">http://www.web4beta.com/?p=71</guid>
		<description><![CDATA[ Today I learned the magic formula that makes any valid credit card number evenly divisible by 10. There are plenty of other sources of this information on the web, but many are confusing or potentially wrong. This, among other things, is used to validate numbers before sending them off to be processed.
I have verified [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://flickr.com/photos/shawnzlea/"><img class="alignleft size-full wp-image-72" title="credit card" src="http://www.web4beta.com/wp-content/uploads/2008/07/creditcard.jpg" border="0" alt="" hspace="2" width="284" height="300" align="left" /></a> Today I learned the magic formula that makes any valid credit card number evenly divisible by 10. There are plenty of other sources of this information on the web, but many are confusing or potentially wrong. This, among other things, is used to validate numbers before sending them off to be processed.</p>
<p>I have verified this works with visa, mastercard, amex and it should work with discover and jcp too.</p>
<p>I did some searching for a fake credit card numbers that validate which probably put on some goverment watch lists somewhere. Via a blog post by the <a href="http://www.rimmkaufman.com/rkgblog/2007/11/09/credit-card-test-numbers/" target="_blank">Rimm-Kaufman Group</a> I found this Amex number which should demonstrate this method.</p>
<p>371449635398431</p>
<p><strong>Step 1.</strong> Reverse the number<br />
<code>3 7 1 4 4 9 6 3 5 3 9 8 4 3 1 becomes<br />
1 3 4 8 9 3 5 3 6 9 4 4 1 7 3</code></p>
<p><strong>Step 2.</strong> Double every second number<br />
<code>1 3 4 8 9 3 5 3 6 9 4 4 1 7 3 becomes<br />
1 6 4 16 9 6 5 6 6 18 4 8 1 14 3</code></p>
<p><strong>Step 3.</strong> Any 2 digit sums from step 2 have their component number added together. In other words 14 is 1 + 4 = 5<br />
<code>1 6 4 16 9 6 5 6 6 18 4 8 1 14 3 becomes<br />
1 6 4 7 9 6 5 6 6 9 4 8 1 5 3</code></p>
<p><strong>Step 4.</strong> Add all the numbers together<br />
<code>1 6 4 7 9 6 5 6 6 9 4 8 1 5 3 becomes<br />
1+6+4+7+9+6+5+6+6+9+4+8+1+5+3 which is<br />
80</code></p>
<p><strong>Step 5.</strong> Is the sum evenly divisible by 10? If so then you can be 1 step closer to sure that the credit card number is valid. There are also other things you have to check that are card provider specific. For example, all visa number start with 4 and are either 13 or 16 digits long.</p>
<h6>Thanks to <a href="http://flickr.com/photos/shawnzlea/" target="_blank">shawnzlea</a> for the image</h6>
]]></content:encoded>
			<wfw:commentRss>http://www.web4beta.com/?feed=rss2&amp;p=71</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My first hours with PCLINUXOS</title>
		<link>http://www.web4beta.com/?p=69</link>
		<comments>http://www.web4beta.com/?p=69#comments</comments>
		<pubDate>Thu, 03 Jul 2008 18:58:35 +0000</pubDate>
		<dc:creator>Bishma</dc:creator>
				<category><![CDATA[Geek Life]]></category>

		<guid isPermaLink="false">http://www.web4beta.com/?p=69</guid>
		<description><![CDATA[As a mentioned in my previous post I spent a little time last night installing PCLINUXOS on my laptop. Other than my machine at work most of my computer time is spent on this laptop and dealing with Ubuntu Hardy Heron was starting to take its toll on me.
I installed the MiniMe version of the [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-70" title="pclinuxos" src="http://www.web4beta.com/wp-content/uploads/2008/07/pclinuxos.png" alt="" hspace="3" width="200" height="200" align="left" />As a mentioned in my previous post I spent a little time last night installing <a href="http://www.pclinuxos.com/" target="_blank">PCLINUXOS</a> on my <a href="http://www.dell.com/content/products/productdetails.aspx/inspn_e1405?c=us&amp;cs=22&amp;l=en&amp;s=dfh" target="_blank">laptop</a>. Other than my machine at work most of my computer time is spent on this laptop and dealing with <a href="http://www.mattcutts.com/blog/six-annoyances-in-hardy-heron-ubuntu/" target="_blank">Ubuntu Hardy Heron</a> was starting to take its toll on me.</p>
<p>I installed the <a href="http://docs.pclinuxos.com/MiniME" target="_blank">MiniMe</a> version of the distro, the Live CD of which weighs in at just over 200MB. It&#8217;s meant to be just enough to get get everything up and running so you can then, through ATP or <a href="http://www.nongnu.org/synaptic/" target="_blank">Synaptic</a>, install just the software you want. This was one of the major appeals of this Distro to me. The reason I gave up on Window, while I doubt I&#8217;ll ever run OSX, and why I&#8217;m moving away from Ubuntu is that I don&#8217;t so much extra crap built into the OS from the start. I want my operating system to operate my system, I&#8217;ll take care of the rest.</p>
<h2>First Impressions</h2>
<p>The first thing I noticed what that PCLINUXOS was able to start using the broadcom wifi in my laptop right out out of the gate. I opened up the network configuration tool and it asked me if I wanted to use the windows driver for via <a href="http://ndiswrapper.sourceforge.net/joomla/" target="_blank">ndiswrapper</a> for the card since there is no linux driver. I said yes and was done. In Ubuntu I had to use the wired ethernet to search Ubuntu&#8217;s forums for the right driver to use and instructions on how to set up ndiswapper.<br />
PSLINUXOS time: 30 seconds<br />
Ubuntu time: 45 minutes</p>
<p>My graphics card installed and worked correctly right from the get go. In Ubuntu I had to install the driver from Intel which was a hassle. Though the hassle was more Intel&#8217;s fault that Ubuntu&#8217;s.<br />
PSLINUXOS time: 0<br />
Ubuntu time: 20 minutes</p>
<p>Either MiniMe doesn&#8217;t come with klaptop or the install didn&#8217;t figure out that I was running a laptop because the utility wasn&#8217;t installed. But since I already had a working eithernet connection all I needed to do was install the utility via Synaptic and I was able to get all my power managment working just fine. I had to tweek the sleep settings a bit to get the machine to return from being suspended properly, but I&#8217;ve had to do this with every linux distro I&#8217;ve installed on it.<br />
PCLINUXOS time: 2 minutes<br />
Ubuntu time: 0</p>
<p><code>In the file /etc/acpi/events/sleep I changed:<br />
action=/usr/sbin/pmsuspend memory<br />
to<br />
action=klaptop_acpi_helper --suspend</code></p>
<p>I then installed <a href="http://getfirefox.com">firefox3</a>, <a href="http://www.mozilla.com/en-US/thunderbird/" target="_blank">thunderbird</a>, <a href="http://www.openoffice.org/" target="_blank">openoffice</a>, cd burning software, <a href="http://www.videolan.org/vlc/" target="_blank">vlc</a>, flash, and ksudoku. These packages represent about 99% of what I do on my laptop. Getting all the files downloaded and installed from Synaptic took about half an hour. I wouldn&#8217;t have to have installed these packages in Ubuntu, but I would have spent a lot of time uninstalling others.<br />
PCLINUXOS time: 30 minutes<br />
Ubuntu time: 1 hour</p>
<p>I lost all ability to connect to my Windows desktop via samba when I upgraded to Hardy Heron. From what I have gathered this is a problem with the Nautilus file manager. I tried changing the Thundar, but I never could get things working. Ubuntu would hang and hang while trying to connect then finally say it didn&#8217;t have an application to open a smb connection. In PCLINUXOS it connect right away. No hangs, no problems.<br />
PCLINUXOS time: 0<br />
Ubuntu time: weeks without success</p>
<h2>Still to Do</h2>
<p>I need to get Photoshop running, but I&#8217;m confident that the instructions I posted previously on the subject will work fine in PCLINUXOS. I also need to get the media buttons on the front of my laptop to work. I haven&#8217;t even attempted that yet so I&#8217;m not sure what it will take. It&#8217;s a minor thing, but they come in handy for changing volume.</p>
<p>So far I&#8217;m very happy with this Distro.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.web4beta.com/?feed=rss2&amp;p=69</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>PCLINUXOS</title>
		<link>http://www.web4beta.com/?p=65</link>
		<comments>http://www.web4beta.com/?p=65#comments</comments>
		<pubDate>Wed, 02 Jul 2008 05:18:38 +0000</pubDate>
		<dc:creator>Bishma</dc:creator>
				<category><![CDATA[Geek Life]]></category>
		<category><![CDATA[My Sites]]></category>
		<category><![CDATA[OS]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[The New Web]]></category>

		<guid isPermaLink="false">http://www.web4beta.com/?p=65</guid>
		<description><![CDATA[I think I&#8217;ve about had it with Ubuntu Hardy Heron. It&#8217;s a sad day when my windows box is more stable than my linux laptop. I also made the mistake of upgrading my work machine from Gutsy Gibbon to HH last week and I&#8217;ve been regretting it ever since. Three times today alone I had [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/7914635@N03/1673050084/"><img class="alignleft size-full wp-image-68" title="Sad Penguin" src="http://www.web4beta.com/wp-content/uploads/2008/07/1673050084_86ca540174_m.jpg" align="left"  hspace="2" alt="How Hardy Heron is making me feel." width="160" height="240" /></a>I think I&#8217;ve about had it with <a href="http://www.ubuntu.com/" target="_blank">Ubuntu Hardy Heron</a>. It&#8217;s a sad day when my windows box is more stable than my <a href="http://en.wikipedia.org/wiki/Linux_distributions" target="_blank">linux</a> laptop. I also made the mistake of upgrading my work machine from <a href="https://wiki.ubuntu.com/GutsyGibbon" target="_blank">Gutsy Gibbon</a> to HH last week and I&#8217;ve been regretting it ever since. Three times today alone I had <a href="http://en.wikipedia.org/wiki/Nautilus_(file_manager)" target="_blank">Nautilus</a> crash on me without the ability to restart it. When I&#8217;d kill the existing Nautilus process a new one would start automatically and crash until I rebooted the box. Reboots like that are unacceptable to me on a linux machine.</p>
<p>I&#8217;ve been playing with Ubuntu since the <a href="http://en.wikipedia.org/wiki/Warty_Warthog#Ubuntu_4.10_.28Warty_Warthog.29" target="_blank">Warty Warthog</a> days and this is the first upgrade that has not been a significant improvement. That makes me want to not give up on Ubuntu completely and instead downgrade back to Gutsy until the issues get worked out. Then there&#8217;s the bandwagon part of me that wants to jump on the the <a href="http://www.pclinuxos.com/" target="_blank">PCLINUXOS</a> <a href="http://www.seopher.com/articles/pclinuxos_gaining_more_popularity_than_ubuntu_" target="_blank">bandwagon</a>.</p>
<p>Tomorrow after work I&#8217;m going to install PCLINUXOS on my home laptop and if things go well I&#8217;ll consider putting it on my work machine too. PCLOS has it&#8217;s .roots in Mandrake&#8230; aka <a href="http://www.google.com/search?q=redhat+sucks+balls" target="_blank">Redhat</a>, but it&#8217;s a full fledge distro in its own right now and it uses <a href="http://en.wikipedia.org/wiki/Advanced_Packaging_Tool" target="_blank">APT</a>. I can work with anything so long as I have APT.</p>
<h6>Thanks to <a href="http://www.flickr.com/photos/7914635@N03/" target="_blank">Hayden Simons</a> for the photo</h6>
]]></content:encoded>
			<wfw:commentRss>http://www.web4beta.com/?feed=rss2&amp;p=65</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Goodbye image servers</title>
		<link>http://www.web4beta.com/?p=66</link>
		<comments>http://www.web4beta.com/?p=66#comments</comments>
		<pubDate>Thu, 26 Jun 2008 02:04:22 +0000</pubDate>
		<dc:creator>Bishma</dc:creator>
				<category><![CDATA[Geek Life]]></category>
		<category><![CDATA[The New Web]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.web4beta.com/?p=66</guid>
		<description><![CDATA[
A week ago tomorrow IDX decommissioned the last of its image servers. Over the last 2 and a half months I migrated a little over 20 million images, about 480 gigabytes, from our severs to Amazon&#8217;s S3 service. Most of that time was spend just occasionally checking in on the migration scripts that I had [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.web4beta.com/wp-content/uploads/2008/06/image001.png"><img class="aligncenter size-full wp-image-67" title="Goodbye server" src="http://www.web4beta.com/wp-content/uploads/2008/06/image001.png" alt="Saying goodbye tio a departed image server" width="450" height="300" /></a></p>
<p>A week ago tomorrow <a href="http://www.idxbroker.com" target="_blank">IDX</a> decommissioned the last of its image servers. Over the last <a href="http://www.web4beta.com/?p=52">2 and a half months</a> I migrated a little over 20 million images, about 480 gigabytes, from our severs to Amazon&#8217;s S3 service. Most of that time was spend just occasionally checking in on the migration scripts that I had written or rewriting our image acquisition scripts to work with <a href="http://www.amazon.com/gp/browse.html?node=16427261" target="_blank">S3</a>. We download images from about 190 sources every night as we gather <a href="http://www.idxbroker.com/idx_mls_coverage.php" target="_blank">MLS</a> data on behalf of our clients.</p>
<p>The best part of the whole image migration and overhaul is that image acquisition is now tied into into our data balancer system. Each MLS in our system has a time stored in the database that is the earliest we can reliably download data from that source. Once we reach that time in the day the MLS goes through a series of steps triggered by a cronjob that runs once a minute. First the data is downloaded from what ever source makes it available. This can be ftp, http, <a href="http://www.w3schools.com/soap/default.asp" target="_blank">soap</a>, <a href="http://www.rets.org/" target="_blank">rets</a>, or even direct sql connections. Next the data is parsed and made ready for insertion into our database. Once processing is done the data is <a href="http://en.wikipedia.org/wiki/Geocoding" target="_blank">geocoded</a> so that we can easily map all the properties.</p>
<p>This was where the process stopped. When the app was first written image scripting was rushed as we were trying to meat our launch deadline. The image scripts were on different servers, so the data balancer couldn&#8217;t act on them directly. Instead each was launched as its own cronjob on one of the image servers. Every MLS is unique in the way we acquire images and is constantly changing, as such each must have its own acquisition script. Now each of those scripts is defined in our database.</p>
<p>Once per minute a script runs on our <a href="http://www.amazon.com/gp/browse.html?node=201590011" target="_blank">EC2</a> server that looks for image ready flags in our data balancing system. When it finds one it checks the database for the specific file that should be run to gather images. The script runs and then resets the image ready flag. As with data our image sources are varied. In some cases we generate URLs based on a know syntax, in some cases we&#8217;re given URLs by the MLS. In this cases we don&#8217;t need to store anything. Often we get images from some FTP source, via RETS, or in one case we download binary stored as <a href="http://en.wikipedia.org/wiki/Binary_large_object" target="_blank">BLOBs</a> on a remote SQL server. Needless to say it&#8217;s complex to get all these images from 190 disparate sources, so anything we can do to automate things better is good.</p>
<p>My next project is building <a href="http://en.wikipedia.org/wiki/Web_Services_Description_Language" target="_blank">WSDL</a> web services using <a href="http://sourceforge.net/projects/nusoap/" target="_blank">NuSoap</a>. This is uncharted territory for me, so I&#8217;m sure I&#8217;ll have more to say on this subject later.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.web4beta.com/?feed=rss2&amp;p=66</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I spoke a bit to soon</title>
		<link>http://www.web4beta.com/?p=62</link>
		<comments>http://www.web4beta.com/?p=62#comments</comments>
		<pubDate>Tue, 20 May 2008 00:10:33 +0000</pubDate>
		<dc:creator>Bishma</dc:creator>
				<category><![CDATA[Work]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[cache]]></category>
		<category><![CDATA[glitch]]></category>
		<category><![CDATA[release]]></category>

		<guid isPermaLink="false">http://www.web4beta.com/?p=62</guid>
		<description><![CDATA[This post is a bit late as it describes things that happened last Thursday, but it was a busy weekend and all my &#8220;posting to stuff&#8221; energy got sucked up by twitter.
I knew it was risky to make a self congratulatory post about a feature that had just launched. All and all it was pretty [...]]]></description>
			<content:encoded><![CDATA[<p>This post is a bit late as it describes things that happened last Thursday, but it was a busy weekend and all my &#8220;posting to stuff&#8221; energy got sucked up by <a href="http://www.twitter.com/bishma">twitter</a>.</p>
<p>I knew it was risky to make a self congratulatory post about a feature that had just launched. All and all it was pretty successful and took a deent load off the server, but two bugs cropped up that were sever enough to force me to revert the code.</p>
<p>The first issue will be easy enough to fix. Our app has several features, including a property slideshow, that are called remotely via javascript includes which also rely on the results class. Because the caching mechanism needs a PHP session id to avoid having one user contaminating another&#8217;s search results these tools stopped returning any properties. Luckely I wrote the constructor of the results class to have an all purpose override array as one of it&#8217;s parameters. So all I need to do to fix this issue is to generate a sessionID for the javascript includes to pass through to the results class and they should work again.</p>
<p>The second issue is going to take more work and creativity. When I worte the results class I built out the featured properties function to be generic. My thinking was that any property lising that is owned by one or our clients is a featured property and thus belongs on the featured properties page. Our clients, however, seem to have disagreed. They&#8217;ve figured out that they can append search variables to their featured property URLs and do things like make featured properties pages that are only for million+ dollar homes, or just commercial listings, or&#8230; whatever they want. This is all fine and good when the featured property search is repoerformed each time the page is called and is user agnostic, but not so much when my caching mechaism was in place. The caching mecanism treats all featured properties searches the same effectively ignoring any search terms added on.</p>
<p>I reverted the the previous version of the results class from our SVN repository and all went back to normal. Once I tie up these last couple loose ends I&#8217;ll be able to push the caching mechanism back out as part of Wednesday&#8217;s <a href="http://www.web4beta.com/2008/02/25/code-order-svn/">doubledot</a> release. Here&#8217;s hoping it goes better this time. The caching mechanism did seem to take a noticeable load off the server, so it seems like a worthy endeavor to retry.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.web4beta.com/?feed=rss2&amp;p=62</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fun with caching</title>
		<link>http://www.web4beta.com/?p=60</link>
		<comments>http://www.web4beta.com/?p=60#comments</comments>
		<pubDate>Thu, 15 May 2008 05:16:58 +0000</pubDate>
		<dc:creator>Bishma</dc:creator>
				<category><![CDATA[Code Talk]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[cache]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[table]]></category>

		<guid isPermaLink="false">http://www.web4beta.com/?p=60</guid>
		<description><![CDATA[In the last couple of days I did some work to complicate the IDX application a bit. I applied the patch today that contained the changes and so far all seems well. Here&#8217;s the story.
About nine months ago I completed a reworking (aka complete rewrite from the ground up) of the application&#8217;s results class. This [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-61" title="queue" src="http://www.web4beta.com/wp-content/uploads/2008/05/queue.jpg" alt="" hspace="2" width="180" height="240" align="left" />In the last couple of days I did some work to complicate the <a href="http://images.idxbroker.com/demos/SearchResultsFEx/SearchResultsFEx.html" target="_blank">IDX application</a> a bit. I applied the patch today that contained the changes and so far all seems well. Here&#8217;s the story.</p>
<p>About nine months ago I completed a reworking (aka complete rewrite from the ground up) of the application&#8217;s results class. This is the code that assembles all the properties that meet the criteria of the search that has been performed and makes them available for what every they need to do. Once all the various data tables had been queried the matching results were placed in a temporary <a href="http://dev.mysql.com/doc/refman/5.0/en/memory-storage-engine.html" target="_blank">heap table</a> so that they could be sorted, filtered (based on client preferences and/or <a href="http://en.wikipedia.org/wiki/Multiple_Listing_Service" target="_blank">MLS</a> rules), and truncated if need be. I decided to use temporary <a href="http://www.databasejournal.com/features/mysql/article.php/3077531" target="_blank">heap tables</a> because they&#8217;re fast and since they&#8217;re session specific I knew that I wouldn&#8217;t have to worry about one user contaminating another&#8217;s results.</p>
<p>The system has been working beautifully for these last nine months but as our traffic has grown (now upwards of 44,000 hits a day) <a href="http://www.ilovejackdaniels.com/cheat-sheets/mysql-cheat-sheet/" target="_blank">mySQL</a> was having trouble keeping up. All the heap tables we using a lot of the server&#8217;s RAM and since the heap tables were being destroyed as soon as the page was delivered searches had to be rerun completely just to move from page to page.</p>
<p>Todays patched changed things. The heap tables are gone in favor of a searchCache table (one for each client in our system) where all search results end up. When the same search is run again (like when switching pages) the results can be pulled from the cache instead of all the data tables needing to be queried again. All results are tagged with the users <a href="http://us3.php.net/session" target="_blank">PHP session ID</a> to prevent result contamination and every 4 hours the cache is cleaned to prevent the tables from getting too large. <a href="http://hfsgroup.idxco.com/idx/2366/featured.php" target="_blank">Featured property searches</a> are also cached in our system and, because they are the slowest queries we perform<sup>*</sup>, they are cached for 24 hours until we get new data.</p>
<p>I&#8217;m pleased so far. The patch was uploaded to our server 8 hours ago and thus far there are no reports of problems.</p>
<p>Thanks to <a href="http://flickr.com/photos/90001203@N00/" target="_blank">bob the lomond</a> for the photo.</p>
<p><sup>*Featured results are the slowest because of the number of tables that have to be queried. Normal results only have to query 1 table per MLS being searched because they are property type specific. Featured properties are property type independent and thusly upwards of nine tables per MLS may need to be queried.<br />
</sup></p>
]]></content:encoded>
			<wfw:commentRss>http://www.web4beta.com/?feed=rss2&amp;p=60</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wasn&#8217;t sure what I was expecting, but this isn&#8217;t it&#8230; whew</title>
		<link>http://www.web4beta.com/?p=58</link>
		<comments>http://www.web4beta.com/?p=58#comments</comments>
		<pubDate>Mon, 21 Apr 2008 22:30:57 +0000</pubDate>
		<dc:creator>Bishma</dc:creator>
				<category><![CDATA[Code Talk]]></category>
		<category><![CDATA[Geek Life]]></category>
		<category><![CDATA[databases]]></category>
		<category><![CDATA[functions]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[stored procedures]]></category>
		<category><![CDATA[triggers]]></category>

		<guid isPermaLink="false">http://www.web4beta.com/?p=58</guid>
		<description><![CDATA[
The book above arrived at my apartment via Amazon the middle of last week. I made the decision to learn stored procedures as a way to expand my skill base and hopefully reduce some of the load we place on our SQL server at IDX by writing more efficient queries. I was expecting a book [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="aligncenter size-full wp-image-59" title="Mysql Stored Procedure" src="http://www.web4beta.com/wp-content/uploads/2008/04/0596100892.jpg" alt="" width="231" height="300" /></p>
<p><a href="http://www.amazon.com/MySQL-Stored-Procedure-Programming-Harrison/dp/0596100892/ref=pd_bbs_sr_1?ie=UTF8&amp;s=books&amp;qid=1208815886&amp;sr=8-1" target="_blank">The book above</a> arrived at my apartment via Amazon the middle of last week. I made the decision to learn stored procedures as a way to expand my skill base and hopefully reduce some of the load we place on our SQL server at <a href="http://idxbroker.com/idx_broker.php" target="_blank">IDX</a> by writing more efficient queries. I was expecting a book that was a couple hundred pages long describing some method of chaining statements or doing caching or&#8230; I don&#8217;t really know. What I got was a 600 page book that describes a fully realized ANSI standard coding language that loosely resembles <a href="http://en.wikipedia.org/wiki/Pascal_programming_language" target="_blank">Pascal</a>.</p>
<p>My surprise does not equate to disappointment. The new possibilities that stored procedures open up to me are huge and I&#8217;m eager to explore them. I started using MySQL back when it was somewhere in its version 3 life span. Back then all I was after was something easier to work with than files for storing data. I had just recently started coding in PHP and was frustrated by how much more difficult it was to work with files in PHP 3 than it was in Perl 5. It&#8217;s only been in the last 18 months that I&#8217;ve really gotten in to MySQL and all it has to offer. As such I didn&#8217;t really know much of anything about procedures despite the fact that other DB systems have had them for years.</p>
<p>As it turns out there are actually 3 types of programs that make up MySQL procedures. The first it the &#8220;procedure&#8221; which is a full procedural program including control statements and loops. The second type is the &#8220;function&#8221; which, once written, can be used in any SQL statement to increase mysql&#8217;s functionality. The third type is the trigger which is code that will automatically fire when every a specific event occurs.</p>
<p>If you have any interest in learning procedures I&#8217;d recommend it. The time spent learning will be valuable. I am coming to realize that SQL is the most interesting part of application development for me. Relational databases are more powerful than I imagined back when I first started using them. Good SQL is the key to robust applications.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.web4beta.com/?feed=rss2&amp;p=58</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Want a job? Learn PHP.</title>
		<link>http://www.web4beta.com/?p=57</link>
		<comments>http://www.web4beta.com/?p=57#comments</comments>
		<pubDate>Tue, 15 Apr 2008 14:55:46 +0000</pubDate>
		<dc:creator>Bishma</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[job]]></category>
		<category><![CDATA[language]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.web4beta.com/?p=57</guid>
		<description><![CDATA[I learned the language on a whim]]></description>
			<content:encoded><![CDATA[<p>It never ceases to surprise me just how hard it is to find decent PHP developers in Eugene, Or. I never intended to make a career out of PHP, I learned the language on a whim because I was tired of having to treat all my scripts as CGI as must be done with Perl on the web. Now I not only code PHP for a living but I spend part of my time looking for people with PHP skills.</p>
<p><a href="http://idxbroker.com/" target="_blank">My company</a> is looking to fill <a href="http://eugene.craigslist.org/eng/642932554.html">2 positions</a>, <a href="http://www.paloalto.com/" target="_blank">Palo Alto</a> has at least one open, <a href="http://www.engineworks.com/" target="_blank">EngineWorks</a> recently moved to Portland in part for a better employee base, and I know at least one other company is looking too. I never would have thought that PHP would be the big in demand skill I would have. Glad I have that biology degree to fall back on.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.web4beta.com/?feed=rss2&amp;p=57</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>A bit outside my purview</title>
		<link>http://www.web4beta.com/?p=56</link>
		<comments>http://www.web4beta.com/?p=56#comments</comments>
		<pubDate>Mon, 14 Apr 2008 14:50:53 +0000</pubDate>
		<dc:creator>Bishma</dc:creator>
				<category><![CDATA[Geek Life]]></category>

		<guid isPermaLink="false">http://www.web4beta.com/?p=56</guid>
		<description><![CDATA[Ok, this has nothing to do with coding, but sometimes I need to post in order to satisfy the music nerd in me. With that said, check out the horn section in this video of Thet Might Be Giants on Conan last week.

2 baritone saxophones and a bass saxophone. *Glee*
]]></description>
			<content:encoded><![CDATA[<p>Ok, this has nothing to do with coding, but sometimes I need to post in order to satisfy the music nerd in me. With that said, check out the horn section in this video of Thet Might Be Giants on Conan last week.</p>
<p><object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/KMqpNzvTS5w&#038;hl=en"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/KMqpNzvTS5w&#038;hl=en" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object></p>
<p>2 baritone saxophones and a bass saxophone. *Glee*</p>
]]></content:encoded>
			<wfw:commentRss>http://www.web4beta.com/?feed=rss2&amp;p=56</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>A little less perfect</title>
		<link>http://www.web4beta.com/?p=54</link>
		<comments>http://www.web4beta.com/?p=54#comments</comments>
		<pubDate>Wed, 02 Apr 2008 01:37:09 +0000</pubDate>
		<dc:creator>Bishma</dc:creator>
				<category><![CDATA[Geek Life]]></category>
		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://www.web4beta.com/?p=54</guid>
		<description><![CDATA[prime... is just not the same]]></description>
			<content:encoded><![CDATA[<p>I turned 29 today. While that&#8217;s all well and good and impossible to stop no matter how <a href="http://www.youtube.com/watch?v=vY_Ry8J_jdw" target="_blank">wibbly wobbly</a> time is, it&#8217;s just not perfect. 28 is a <a href="http://en.wikipedia.org/wiki/Perfect_number" target="_blank">perfect number</a>. The last perfect number achievable, in terms of age, in the human life span. 29 is prime, but it is just not the same.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.web4beta.com/?feed=rss2&amp;p=54</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Bishma FTW</title>
		<link>http://www.web4beta.com/?p=52</link>
		<comments>http://www.web4beta.com/?p=52#comments</comments>
		<pubDate>Thu, 27 Mar 2008 05:13:56 +0000</pubDate>
		<dc:creator>Bishma</dc:creator>
				<category><![CDATA[Code Talk]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[amazon s3 md5 rest ftp]]></category>

		<guid isPermaLink="false">http://www.web4beta.com/2008/03/26/bishma-ftw/</guid>
		<description><![CDATA[
 I beat Amazon!
Okay&#8230; not so much beat as figured out, and not so much Amazon as my own scripting. A mentioned in my last post I was having issues with corrupted images ongetting stored on S3 during my migration process. I determined that errors were being introduced during the transfers between our old image [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center"><img src="http://www.web4beta.com/wp-content/uploads/2008/03/2293239853_ddd6bc4ef4_m.jpg" alt="Teh Winner" /></p>
<p><strong> I beat Amazon!</strong></p>
<p>Okay&#8230; not so much beat as figured out, and not so much Amazon as my own scripting. A mentioned in my <a href="http://www.web4beta.com/2008/03/25/amazon-fail/" target="_blank">last post</a> I was having issues with corrupted images ongetting stored on <a href="http://en.wikipedia.org/wiki/Amazon_S3" target="_blank">S3</a> during my migration process. I determined that errors were being introduced during the transfers between our old image server via ftp AND during the <a href="http://tomayko.com/writings/rest-to-my-wife" target="_blank">REST</a> upload to AWS.</p>
<p>I implemented the MD5 check I mentioned in my last post and added a step to the S3 upload. After transferring the file to S3 I perform a HEAD request on the object which sends my back a header containing, among other things, content-type and content length. I can then make sure that the content-length matches the size of the image I downloaded and that the content type is some type of image (useful since all errors are delivered as application/xml).</p>
<p>Little by little I&#8217;m developing a rock solid PHP class for S3 file handling.</p>
<p style="font-size: 9px">Thanks to <a href="http://www.lumaxart.com/" target="_blank">Lumaxart</a> for the image</p>
]]></content:encoded>
			<wfw:commentRss>http://www.web4beta.com/?feed=rss2&amp;p=52</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Amazon Fail</title>
		<link>http://www.web4beta.com/?p=50</link>
		<comments>http://www.web4beta.com/?p=50#comments</comments>
		<pubDate>Wed, 26 Mar 2008 04:48:26 +0000</pubDate>
		<dc:creator>Bishma</dc:creator>
				<category><![CDATA[Code Talk]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[access]]></category>
		<category><![CDATA[AccessDenied]]></category>
		<category><![CDATA[denied]]></category>
		<category><![CDATA[EC2]]></category>
		<category><![CDATA[images]]></category>
		<category><![CDATA[MD5]]></category>
		<category><![CDATA[S3]]></category>

		<guid isPermaLink="false">http://www.web4beta.com/2008/03/25/amazon-fail/</guid>
		<description><![CDATA[
&#160;
I&#8217;ve been having S3/EC2 problems over the last couple of days. I was migrating photos for an MLS in Washington and after 2 days of moving images in the background I found that a third of them were errored in some fashion. What&#8217;s worse is that I haven&#8217;t been able to track down the issue [...]]]></description>
			<content:encoded><![CDATA[<p align="center"><a href="http://failblog.wordpress.com/2008/02/08/floppy-fail/" target="_blank"><img src="http://www.web4beta.com/wp-content/uploads/2008/03/floppyfail.jpg" alt="floppy fail" border="0" /></a></p>
<p align="left">&nbsp;</p>
<p align="left">I&#8217;ve been having <a href="http://www.amazon.com/gp/browse.html?node=3435361" target="_blank">S3/EC2</a> problems over the last couple of days. I was migrating photos for an MLS in <a href="http://www.50states.com/facts/washingt.htm" target="_blank">Washington</a> and after 2 days of moving images in the background I found that a third of them were errored in some fashion. What&#8217;s worse is that I haven&#8217;t been able to track down the issue yet. S3 gives an AccessDenied error despite my script setting the access control at public-read&#8230; I hope.</p>
<p align="left"> My S3 class isn&#8217;t fully formed yet. And the holes are now staring back at me from the ether. The biggest issue is that I can&#8217;t currently read or edit the ACL for any object already on S3. The AccessDenied error make me think that my script improperly set the control level to start during upload. There also the possibility that errors were introduced into the image while it was being moved from the old image server and that S3 is erroring because the headers and content-type say it&#8217;s a jpg, but it&#8217;s actually gibberish.</p>
<p align="left">In the mean time migration is halted because I can&#8217;t risk losing images. When I resume migration I&#8217;ll put a simple hash checker in place. On the old image server I&#8217;ll have a script that will accept a file name from _GET and run an MD5 on the request file file like so:<br />
<code>$file = $_GET['file'];<br />
echo md5_file('my/base/path/'.$file);</code></p>
<p align="left"> Then I can read that output via curl and compare it to the MD5 of the file I just got via FTP. Images are our bread and butter. I have to be sure that I have an error free system before I continue.</p>
<p style="font-size: 10px" align="left">Image from the <a href="http://failblog.wordpress.com" target="_blank">Fail Blog</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.web4beta.com/?feed=rss2&amp;p=50</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New look</title>
		<link>http://www.web4beta.com/?p=48</link>
		<comments>http://www.web4beta.com/?p=48#comments</comments>
		<pubDate>Sun, 23 Mar 2008 17:44:15 +0000</pubDate>
		<dc:creator>Bishma</dc:creator>
				<category><![CDATA[My Sites]]></category>
		<category><![CDATA[The New Web]]></category>

		<guid isPermaLink="false">http://www.web4beta.com/2008/03/23/new-look/</guid>
		<description><![CDATA[It&#8217;s looking a little different over here at web 4.0 beta. I upgraded to the latest version of wordpress this morning and I decided to change the theme. The old one was custom build by me and never really got finished, so rather than bring it over to the new install I let it fade [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s looking a little different over here at web 4.0 beta. I upgraded to the latest version of wordpress this morning and I decided to change the theme. The old one was custom build by me and never really got finished, so rather than bring it over to the new install I let it fade into the ether. This is a clean and simple theme that will be easy to customize when I&#8217;m slightly better equipped and motivated.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.web4beta.com/?feed=rss2&amp;p=48</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Photoshop CS2 on Ubuntu 7.10 Gutsy</title>
		<link>http://www.web4beta.com/?p=47</link>
		<comments>http://www.web4beta.com/?p=47#comments</comments>
		<pubDate>Wed, 12 Mar 2008 19:00:04 +0000</pubDate>
		<dc:creator>Bishma</dc:creator>
				<category><![CDATA[OS]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.web4beta.com/2008/03/12/photoshop-cs2-on-ubuntu-710-gutsy/</guid>
		<description><![CDATA[I had a little time to kill this morning while waiting for scripts to execute so I decided to undertake what I thought would be an arduous task of getting Photoshop CS2 running on my work machine&#8217;s install of Ubuntu 7.10. Turns out that with the latest version of wine it&#8217;s no problem at all. [...]]]></description>
			<content:encoded><![CDATA[<p>I had a little time to kill this morning while waiting for scripts to execute so I decided to undertake what I thought would be an arduous task of getting <a href="http://www.amazon.com/Adobe-Photoshop-CS2-Old-Version/dp/B00081I76A" target="_blank">Photoshop CS2</a> running on my work machine&#8217;s install of <a href="http://www.ubuntu.com/" target="_blank">Ubuntu 7.10</a>. Turns out that with the latest version of <a href="http://wiki.winehq.org/AdobePhotoshop" target="_blank">wine</a> it&#8217;s no problem at all. What got me thinking about this was the recent <a href="http://arstechnica.com/news.ars/post/20080219-google-intoxicates-linux-users-with-wine-improvements.html" target="_blank">news</a> that Google had funded some wine improvements for the specific purpose of getting Photoshop to run in Linux. All the instructions I&#8217;m about to lay out are available on the <a href="http://wiki.winehq.org/" target="_blank">WineHQ</a> site, but I&#8217;ve consolidated them here for ease.</p>
<p>First I recommend that you uninstall any existing installations of wine you might have. This may be problematic if you have existing applications running through wine, but I was working on a clean system. Once you&#8217;re wine free install the latest version of wine by adding the their repositories thusly:<br />
<code>wget -q http://wine.budgetdedicated.com/apt/387EE263.gpg -O- | sudo apt-key add -<br />
sudo wget http://wine.budgetdedicated.com/apt/sources.list.d/gutsy.list -O /etc/apt/sources.list.d/winehq.list<br />
sudo apt-get update<br />
sudo apt-get install wine</code></p>
<p>As of the time of this writing that will install wine version 0.9.57</p>
<p>Next you&#8217;ll need to make sure that the times32 font is installed in wine for Photoshop to be able to run properly:<br />
<code>wget http://heanet.dl.sourceforge.net/sourceforge/corefonts/times32.exe<br />
wine times32.exe</code></p>
<p>Now you&#8217;ll need your Photoshop CS2 CD. Locate the Setup.exe file on the CD and run it using:<br />
<code>wine Setup.exe</code></p>
<p>That&#8217;s it. Once setup has run through you should have a working copy of CS on your system. You can now run photoshop using the command:<br />
<code>wine ~/.wine/drive_c/Program\ Files/Adobe/Adobe\ Photoshop\ CS2/Photoshop.exe</code></p>
<p>In order for the clone tool to work properly you&#8217;ll need to set the Movement Key in Ubuntu to &#8220;Super&#8221; aka the windows key. To do this open the systems window preferences by going to System-&gt;Preferences-&gt;Window</p>
<p>You also may want to increase Photoshops UI font size by going to (in CS2) Edit-&gt;Preferences-&gt;General, and change UI Font Size from Small to Medium.</p>
<p>When I first attempted to use Linux as a desktop operating system back in `96 or early `97  I remember it being a giant hassle to even get X-Windows to recognize my serial mouse. Flash forward a few years and everything is getting so easy that I almost miss the old days. At least back then you had to be a proper geek to run MS-Free.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.web4beta.com/?feed=rss2&amp;p=47</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
