<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
    xmlns:admin="http://webns.net/mvcb/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:content="http://purl.org/rss/1.0/modules/content/">

    <channel>
    
    <title><![CDATA[Geek Blog]]></title>
    <link>https://spicermatthews.com/blogs/geek</link>
    <description>Geek blog from Spicer Matthews</description>
    <dc:language>en</dc:language>
    <dc:creator>spicer@cloudmanic.com</dc:creator>
    <dc:rights>Copyright 2011</dc:rights>
    <dc:date>2011-09-11T18:02:39+00:00</dc:date>
    <admin:generatorAgent rdf:resource="http://expressionengine.com/" />
    
		
			<item>
			  <title><![CDATA[Being An Elegant Business Programmer]]></title>
			  <link>https://spicermatthews.com/site/being_an_elegant_business_programmer</link>
			  <guid>https://spicermatthews.com/site/being_an_elegant_business_programmer#When:18:02:39Z</guid>
			  <description><![CDATA[<em>“I am a Java programmer.” </em><br />
<br />
<em> “I am an object oriented programmer.” </em><br />
<br />
<em>“I am an agnostic programmer, I can program anything.”</em><br />
<br />
<em> “I am a mobile programmer.”</em><br />
<br />
When talking to software developers everyone is something. Today I am going to reveal what I am, creating a new category of programming, a completely new bucket of organization. Drum roll please.......”I am an elegant business programmer”.<br />
<br />
<img src="http://c621674.r74.cf2.rackcdn.com/blog/computer-geek.gif" alt="computer geek image" class="img-center" /><br />
<br />
<strong>Being Elegant</strong><br />
<br />
Ok maybe EBP is not the best name, I will work on a better one. For now, though, let’s define what it is. First let’s analyze the “elegant” part. Code can be a work of art or a tangled web of craziness. I consider code elegant if I can read it as I would a book. A well-written book reads smoothly, and uses words wisely to lead the reader along with the plot. Unnecessary wordiness may drive readers away. Similarly, with software development I should be able to start at the top of a file and read through the entire code at a consistent pace, not getting hung up on any section in particular, and not being flooded with unnecessary terms.<br />
<br />
An example of “not so elegant” would be a 10 line sql statement just to return back a perfect sub-set of data, when a “Select *” would have done the trick. That 10 line statement often will cause someone reading the code to stop and spend a great deal of time dissecting. I am sure that block of sql took 100X longer to write then a simplified version that might have returned a little more data. Furthermore, that block of code is very hard to maintain and debug in the future. <br />
<br />
I know what people may respond to the statement above with “performance is better with the ugly block of code”. You know what does not perform well? Software that never launches. Or software that launches with tons of bugs. Every performance decision should be made on “will my users notice the difference”. They will notice bugs. They will notice it takes forever for you to release new features. <br />
<br />
Be a knowledgeable programmer: recognize when there could be better ways of doing something. However, when software is young, a focus on elegant, maintainable, bug free software is a far better approach. <br />
<br />
Naming conventions: keep them readable. Anyone that has ever read my code will notice I use longer and more descriptive class, variable, and function names. Remember: your code should read like a novel. Don’t make your names so unreadable that no one can understand your code. Both Objective-C and Ruby have gone to great lengths to make naming conventions understandable. I try to follow suit.  <br />
<br />
Another less than elegant approach is being tough with your typing while you program, particularly in scripting languages. I really get annoyed when I see classes riddled with private and public restrictions. I really get annoyed when people go overboard with making sure every variable is typed just perfect. Yes, in some software this stuff really matters. In web scripting world this stuff does not really matter. It just makes you an OCD, control freak programmer.  <em>“I am a Java programmer.” </em><br />
<br />
<em> “I am an object oriented programmer.” </em><br />
<br />
<em>“I am an agnostic programmer, I can program anything.”</em><br />
<br />
<em> “I am a mobile programmer.”</em><br />
<br />
When talking to software developers everyone is something. Today I am going to reveal what I am, creating a new category of programming, a completely new bucket of organization. Drum roll please.......”I am an elegant business programmer”.<br />
<br />
<img src="http://c621674.r74.cf2.rackcdn.com/blog/computer-geek.gif" alt="computer geek image" class="img-center" /><br />
<br />
<strong>Being Elegant</strong><br />
<br />
Ok maybe EBP is not the best name, I will work on a better one. For now, though, let’s define what it is. First let’s analyze the “elegant” part. Code can be a work of art or a tangled web of craziness. I consider code elegant if I can read it as I would a book. A well-written book reads smoothly, and uses words wisely to lead the reader along with the plot. Unnecessary wordiness may drive readers away. Similarly, with software development I should be able to start at the top of a file and read through the entire code at a consistent pace, not getting hung up on any section in particular, and not being flooded with unnecessary terms.<br />
<br />
An example of “not so elegant” would be a 10 line sql statement just to return back a perfect sub-set of data, when a “Select *” would have done the trick. That 10 line statement often will cause someone reading the code to stop and spend a great deal of time dissecting. I am sure that block of sql took 100X longer to write then a simplified version that might have returned a little more data. Furthermore, that block of code is very hard to maintain and debug in the future. <br />
<br />
I know what people may respond to the statement above with “performance is better with the ugly block of code”. You know what does not perform well? Software that never launches. Or software that launches with tons of bugs. Every performance decision should be made on “will my users notice the difference”. They will notice bugs. They will notice it takes forever for you to release new features. <br />
<br />
Be a knowledgeable programmer: recognize when there could be better ways of doing something. However, when software is young, a focus on elegant, maintainable, bug free software is a far better approach. <br />
<br />
Naming conventions: keep them readable. Anyone that has ever read my code will notice I use longer and more descriptive class, variable, and function names. Remember: your code should read like a novel. Don’t make your names so unreadable that no one can understand your code. Both Objective-C and Ruby have gone to great lengths to make naming conventions understandable. I try to follow suit.  <br />
<br />
Another less than elegant approach is being tough with your typing while you program, particularly in scripting languages. I really get annoyed when I see classes riddled with private and public restrictions. I really get annoyed when people go overboard with making sure every variable is typed just perfect. Yes, in some software this stuff really matters. In web scripting world this stuff does not really matter. It just makes you an OCD, control freak programmer.  <br />
<br />
<strong>Programming For Business</strong><br />
<br />
Now, for the second part of EBP. Developers often get trapped in making problems more complex than they really are. They often want to throw the latest and greatest bleeding edge technology at a problem. Developers are engineers, they are complex thinkers. This is all fine and dandy but there is a place and a time for it. <a href="http://www.google.com/jobs/lifeatgoogle/englife/index.html">The Google 20% time</a> is a great example to be followed. Take 20% of your week and become really innovative. Play with bleeding edge stuff. Dive into deep complex thought processes.   <br />
<br />
Now, for the rest of the time, do what is best for your company. Most software developers work for a company or a client. Companies and clients are businesses that make money. I try to not lose focus on what really matters for the business: product, customers, revenue, growth, and so on. When making programming decisions I often start with the business reasons for what I am doing and make that a driving force. The computer science theory I learned in college is always second in my design making process. <br />
<br />
Lastly, programmers often justify some complex design or bleeding edge approach by saying “I am thinking about the future, therefore I am thinking about the business”. Yes, you should think about the future but through small iterations. You should not slow down the growth of the business side of your company because you need time to build for the future. Get to the future through iterations and 20% time.  <br />
<br />
Elegant business programming is nothing more than 2 things. “Keep it simple stupid (KISS)”, and don’t let your computer geekness get in the way of the business execution. ]]></description>
			  <dc:subject><![CDATA[Programming,]]></dc:subject>
			  <dc:date>2011-09-11T18:02:39+00:00</dc:date>
			</item>
		
			<item>
			  <title><![CDATA[Content Management Systems]]></title>
			  <link>https://spicermatthews.com/site/content_management_systems</link>
			  <guid>https://spicermatthews.com/site/content_management_systems#When:11:39:33Z</guid>
			  <description><![CDATA[<img class="alignright size-medium wp-image-236" title="cmsoptions1" src="http://c621674.r74.cf2.rackcdn.com/cmsoptions1-300x194.png" alt="Different CMS Systems" width="270" height="175" />Content management systems (<a href="http://en.wikipedia.org/wiki/Content_management_system">CMS</a>) have been on my mind for a while now. Several months to be exact. A content management system for the web is a system for publishers, producers of content, to easily distribute content without needing a PhD in computer science. Allowing the producer of the content to focus on the content not the technology. Once a CMS is setup a publisher just logs in to a private admin area to add content. Adding content in most cases is as easy as updating your status on <a href="http://www.facebook.com">Facebook</a>.<br />
<br />
<br />
<strong>Content Management On The Brain</strong><br />
<br />
The reason I have been thinking about and playing around with different content management systems is I have had this good guy bad guy thing going on. As a programmer I have always just felt managing content is for non-programmers. If I need to create a new web page I will just open up a text editor and build that page with my programing skills. Who needs that extra layer of fluff? I have used almost every CMS on the market in the past for client work and personal blogs. I always felt they were great if the primary user was not a technical person. Over the last few months I have had this unexplainable urge to prove to myself that I need a content management. I have been on a quest to find a CMS that speaks to me. Diving deep into each CMS offering in search of a CMS that delivers the flexibility I need as a “programing power house” while at the same time giving me features and interfaces to manage my content in a more effective way.<br />
<br />
I spent a great deal of time with <a href="http://wordpress.org/">Wordpress</a>, <a href="http://pyrocms.com/">PyrosCMS</a>, <a href="http://expressionengine.com/">ExpressionEngine</a>, <a href="http://drupal.org/">Drupal</a>, <a href="http://www.joomla.org/">Joomla</a>, and <a href="http://www.getfuelcms.com/">FuelCMS</a>. Almost all these content management systems provided really nice ways to build pages, and a blog (which I am sure is a majority of the CMS market). They all had their pros and cons for customizing into a platform to run my web empire. On several occasions I concluded I was just going to write my own CMS (like every web developer does) but then realized there is a lot to it, hat tip to all you CMS developers out there. Then I went into a phase of “I will just build whatever I need on top of which ever CMS I choose, and maybe contribute the code back to the community”. This was a great idea but felt like there was too much custom hacking going on for the commercial products I manage.<br />
<br />
Finally, I fully committed to Expression Engine (EE), the only commercial, non-free, CMS of the bunch. I have been playing with EE for years but always thought it was not suited for my particular needs. I was pretty wrong about that. EE is the most flexible and robust CMS I have ever used. Its channeling system, templating system, and asset manager really allows me to build web applications the way I want and not structured around some restricted way of doing things the CMS developer chose. My team and I at <a title="Skyclerk making accounting easy" href="http://skyclerk.com/?ACT=15&amp;s=spicermatthews">Skyclerk</a> recently fully converted our public marketing site to EE. We are very proud of what we completed and are very excited about the flexibility EE will offer for us to grow in the future.<img class="alignright size-medium wp-image-236" title="cmsoptions1" src="http://c621674.r74.cf2.rackcdn.com/cmsoptions1-300x194.png" alt="Different CMS Systems" width="270" height="175" />Content management systems (<a href="http://en.wikipedia.org/wiki/Content_management_system">CMS</a>) have been on my mind for a while now. Several months to be exact. A content management system for the web is a system for publishers, producers of content, to easily distribute content without needing a PhD in computer science. Allowing the producer of the content to focus on the content not the technology. Once a CMS is setup a publisher just logs in to a private admin area to add content. Adding content in most cases is as easy as updating your status on <a href="http://www.facebook.com">Facebook</a>.<br />
<br />
<strong>Content Management On The Brain</strong><br />
<br />
The reason I have been thinking about and playing around with different content management systems is I have had this good guy bad guy thing going on. As a programmer I have always just felt managing content is for non-programmers. If I need to create a new web page I will just open up a text editor and build that page with my programing skills. Who needs that extra layer of fluff? I have used almost every CMS on the market in the past for client work and personal blogs. I always felt they were great if the primary user was not a technical person. Over the last few months I have had this unexplainable urge to prove to myself that I need a content management. I have been on a quest to find a CMS that speaks to me. Diving deep into each CMS offering in search of a CMS that delivers the flexibility I need as a “programing power house” while at the same time giving me features and interfaces to manage my content in a more effective way.<br />
<br />
I spent a great deal of time with <a href="http://wordpress.org/">Wordpress</a>, <a href="http://pyrocms.com/">PyrosCMS</a>, <a href="http://expressionengine.com/">ExpressionEngine</a>, <a href="http://drupal.org/">Drupal</a>, <a href="http://www.joomla.org/">Joomla</a>, and <a href="http://www.getfuelcms.com/">FuelCMS</a>. Almost all these content management systems provided really nice ways to build pages, and a blog (which I am sure is a majority of the CMS market). They all had their pros and cons for customizing into a platform to run my web empire. On several occasions I concluded I was just going to write my own CMS (like every web developer does) but then realized there is a lot to it, hat tip to all you CMS developers out there. Then I went into a phase of “I will just build whatever I need on top of which ever CMS I choose, and maybe contribute the code back to the community”. This was a great idea but felt like there was too much custom hacking going on for the commercial products I manage.<br />
<br />
Finally, I fully committed to Expression Engine (EE), the only commercial, non-free, CMS of the bunch. I have been playing with EE for years but always thought it was not suited for my particular needs. I was pretty wrong about that. EE is the most flexible and robust CMS I have ever used. Its channeling system, templating system, and asset manager really allows me to build web applications the way I want and not structured around some restricted way of doing things the CMS developer chose. My team and I at <a title="Skyclerk making accounting easy" href="http://skyclerk.com/?ACT=15&amp;s=spicermatthews">Skyclerk</a> recently fully converted our public marketing site to EE. We are very proud of what we completed and are very excited about the flexibility EE will offer for us to grow in the future.<br />
<br />
<strong>Great You Picked A CMS But.....</strong><br />
<br />
I started out this blog posting complaining about how I did not like content management systems because I could just manage the content with my own programing skills, and then flip flopped to “I picked the best of breed and now I am happy”. You might be asking yourself “what gives?”<br />
<br />
Through my CMS soul searching I realized what makes a good content management system worth its weight for a programmer is the focus on the content. For me at least, producing content and programing websites relies on different parts of the brain. If I am mixing the two I am not giving 100% to either. A solid CMS allows me, the publisher, to focus completely on the content I am trying to produce and less on how this content will get to the world. That solid focus is very much worth it for me.<br />
<br />
<strong>Future Of Content Management Systems</strong><br />
<br />
While on my path of exploring content management systems I came to realize there has not been much innovation in the CMS world in the last 5 years. Sure, these systems are always improving but nothing has really knocked anyone’s socks off in a Steve Jobs kind of way. I think there are several reasons for this but I would guess the biggest is legacy support. Since so many sites on the Internet are driven by content management systems you can not just flip a switch and release the next big thing and not support the slow adopters.<br />
<br />
Here are some ideas of what I think are important to the next generation of content management systems. I hope myself or my company someday will be a part of bringing some of these next generation content management systems to life, but we have much different fish to fry at the moment so we hope more that someone beats us to it.<br />
<br />
<ul><br />
	<li>Content should be managed in-line. It is very clunky and web 1.0 to manage your website from some admin panel. Content creation is a bit of an art. Giving an artist a canvas to create on in real-time is a much better way. Let me see my content as I am creating it. It is very time consuming and disconnecting to build the content in one place and then review it in another. Now-a-days there is no reason for this separation. A few are working on this. MojoMotor for example, from the makers of <a title="Expression Engine" href="http://expressionengine.com/">ExpressionEngine</a>, has done a pretty good job of bringing this concept to life. I hope someday some of the ideas from <a title="MojoMotor" href="http://mojomotor.com/">MojoMotor </a>make it into EE.</li><br />
</ul><br />
<ul><br />
	<li>Where is the content management system for web applications? Yes, there are platforms like Force.com, and Google App engine but they are more plays from their cooperate leadership to lock customers into subscription fees. As a web application developer, every application I write is nearly the same. Data in, data out, and data reports. If I am building an accounting system (<a title="Skyclerk formally skyledger" href="http://skyclerk.com/?ACT=15&amp;s=spicermatthews">http://skyclerk.com</a>), or a system for personal trainers (<a title="Making personal training easy" href="http://www.elevationfit.com/">http://elevationfit.com</a>), it is all the same interaction. We spend more time on the “theme” layer customizing the UI to meet the needs of the particular industry. Our back-end code has gotten so generic in nature that building a super generic CMS for applications is not too hard and I think would be very useful in this world. Imagine if every business owner could build their own web application to help manage the particular data of their organization with a few clicks, as easily as installing Wordpress - which most business owners can do these days. Imagine a plug and play system for mobile developers to help manage the content on their mobile application instead of having to build something custom. A CMS like this could have been very useful for a company like Four Square in their early days.</li><br />
</ul><br />
<ul><br />
	<li>Drop &amp; Drag building of sites. Why are / were Front Page, Dreamweaver, and iWeb so popular? Because people do not have to be a front-end programmer to build pretty nice sites. A user can drop and drag assets into the site editor and move things around until they have built the site of their dreams. I have seen many sites built using these systems from someone who has no idea how to program html. The problem in the past was these systems were not very robust, nor were they very maintainable. I think with HTML 5 we can build systems that allow users to engage in just that manner while being robust and maintainable. I think this type of process belongs in a CMS - and it might go well with my in-line editing idea above. Many sites are working on this, including google sites, but I am not sure the big players have jumped on-board yet.</li><br />
</ul><br />
Overall, I think the next generation of content management systems is around the corner and I look forward to being an early adopters of them or maybe even a contributor.<br />
]]></description>
			  <dc:subject><![CDATA[Programming, Infrastructure,]]></dc:subject>
			  <dc:date>2011-02-23T11:39:33+00:00</dc:date>
			</item>
		
			<item>
			  <title><![CDATA[Love Of Evernote &amp; The Art Of Reflection]]></title>
			  <link>https://spicermatthews.com/site/love_of_evernote_the_art_of_reflection</link>
			  <guid>https://spicermatthews.com/site/love_of_evernote_the_art_of_reflection#When:08:18:27Z</guid>
			  <description><![CDATA[<img class="alignright" title="Evernote &amp; SkyLedger" src="http://www.mobilecrunch.com/wp-content/uploads/2010/04/Evernote_Icon_256.jpg" alt="Evernote &amp; SkyLedger" width="256" height="256" />I have never really been a note taker. For the most part I always have a pen and paper nearby in case I want to jot something down, but often I do not use them. I do not know what constitutes a good memory, but given the fact I can often remember most everything (minus names, spellings, and phone numbers) I am going to say I have a good memory.<br />
<br />
This brings me to my new favorite product, <a href="http://www.evernote.com">Evernote</a>. Evernote is a note taking solution that makes it easy to remember things big and small from your notable life using your computer, phone, and the web. I am going to go as far as naming it my 2nd favorite product of the year. My 1st favorite product is <a href="http://skyclerk.com">Skyclerk</a>, of course!!<br />
<br />
For over a year now I have been looking at Evernote thinking “cool product, I really want to use it, but I am not a note taker”. A few months ago I just took the plunge and started putting anything and everything into Evernote and my life has changed because the use of Evernote has taught me the art of reflection.<img class="alignright" title="Evernote &amp; SkyLedger" src="http://www.mobilecrunch.com/wp-content/uploads/2010/04/Evernote_Icon_256.jpg" alt="Evernote &amp; SkyLedger" width="256" height="256" />I have never really been a note taker. For the most part I always have a pen and paper nearby in case I want to jot something down, but often I do not use them. I do not know what constitutes a good memory, but given the fact I can often remember most everything (minus names, spellings, and phone numbers) I am going to say I have a good memory.<br />
<br />
This brings me to my new favorite product, <a href="http://www.evernote.com">Evernote</a>. Evernote is a note taking solution that makes it easy to remember things big and small from your notable life using your computer, phone, and the web. I am going to go as far as naming it my 2nd favorite product of the year. My 1st favorite product is <a href="http://skyclerk.com">Skyclerk</a>, of course!!<br />
<br />
For over a year now I have been looking at Evernote thinking “cool product, I really want to use it, but I am not a note taker”. A few months ago I just took the plunge and started putting anything and everything into Evernote and my life has changed because the use of Evernote has taught me the art of reflection.<br />
<br />
Evernote as a reflection tool has really opened up my mind. What do I mean by that? After any sort of meeting I will sit down in front of Evernote and replay the meeting in my head transcribing all relevant notes into it. As I write these notes and upload supporting material I am able to reflect about the meeting in ways I have never done before. “What was that person trying to get at?” “Did I come on too strong?” “Shit, I meant to tell the person XYZ”. Taking the time to make such reflections is really helping me grow in all aspects of my professional life. I think we all do those types of reflections in sort of a micro way as we jog our memories from time to time. Taking all these micro reflections and forcing yourself to combine them into an aggregated document to me seems so much more powerful.<br />
<br />
The point of this posting is of course to highlight my new favorite tool but more importantly highlight the importance of taking the time to personally reflect on any interaction in our life that has something you can learn from or requires some future action on your part. <a href="http://www.evernote.com">Evernote</a> is a tool that really jives with me. I am sure there are many other tools out there that do the same. Pick whatever tool or process that works for you and give it a shot.]]></description>
			  <dc:subject><![CDATA[Cloud Computing,]]></dc:subject>
			  <dc:date>2010-12-05T08:18:27+00:00</dc:date>
			</item>
		
			<item>
			  <title><![CDATA[AudioBox - Real Cloud Based Music]]></title>
			  <link>https://spicermatthews.com/site/audiobox_real_cloud_based_music</link>
			  <guid>https://spicermatthews.com/site/audiobox_real_cloud_based_music#When:02:55:52Z</guid>
			  <description><![CDATA[When it comes to hardware and operating systems I am one of the biggest Apple fan boys out there. When it comes to software and control I am truly annoyed by Apple. As a side note I am an Apple share holder and I love what they do from a business stand point. Apple has held back music players for years. They released iTunes a long time ago and it blew all the music players out of the water. Back then compiled desktop based software was cool. Then they went full speed ahead with the Apple iTunes music store. This was amazing from a lets kill cds standpoint. <br />
<br />
I have a library of music that I have gotten from all different sources; Amazon, iTunes, cd rips, and so on. I want to stuff all this music in one bloat free place and have it with me everywhere I go. If I am 100% an Apple user this place is iTunes, but I am not. I have an Android phone, a windows netbook, linux laptop, Apple desktop, Apple laptop. There is no easy way with iTunes to keep all these devices in sync when it comes to my music. Nor do I want my 13 Gig music stash living on all these devices. The service that was about to do all this was Lala.com until Apple purchased them and closed them down. <a href="https://www.grooveshark.com">Grooveshark.com</a> has sort of done it but their way of doing things is a little odd and they use way to much flash.When it comes to hardware and operating systems I am one of the biggest Apple fan boys out there. When it comes to software and control I am truly annoyed by Apple. As a side note I am an Apple share holder and I love what they do from a business stand point. Apple has held back music players for years. They released iTunes a long time ago and it blew all the music players out of the water. Back then compiled desktop based software was cool. Then they went full speed ahead with the Apple iTunes music store. This was amazing from a lets kill cds standpoint. <br />
<br />
I have a library of music that I have gotten from all different sources; Amazon, iTunes, cd rips, and so on. I want to stuff all this music in one bloat free place and have it with me everywhere I go. If I am 100% an Apple user this place is iTunes, but I am not. I have an Android phone, a windows netbook, linux laptop, Apple desktop, Apple laptop. There is no easy way with iTunes to keep all these devices in sync when it comes to my music. Nor do I want my 13 Gig music stash living on all these devices. The service that was about to do all this was Lala.com until Apple purchased them and closed them down. <a href="https://www.grooveshark.com">Grooveshark.com</a> has sort of done it but their way of doing things is a little odd and they use way to much flash.<br />
<br />
Finally!!! <a href="https://audiobox.fm">AudioBox</a> to the rescue!! AudioBox is a service that gives me a complete cloud-based music solution. I pay them a small fee and can upload all my music. I can play their music from any web browser. They have a mobile platform, and best of all they exposed an API that allows me to have complete control over my music collection. While I am sure the rumors that Apple is working on a cloud-based version of iTunes is true, I am 100% sure they are not going to give you complete control over your music nor are they going to make it very easy for me to use my music on non-apple devices. <br />
<br />
Below is a little PHP script I wrote to mass up load my music to AudioBox. I am using AudioBox 100% from now on! I am sick of plugging my phone into my computer. I am sick of writing sync scripts to keep my mp3's up-to-date on all my devices.<br />
<br />
<code><br />
&lt;?php<br />
/*<br />
	By: Spicer Matthews <spicer@cloudmanic.com><br />
	Date: 5/16/2010<br />
*/<br />
<br />
$email = 'user@example.org';<br />
$pass = '**********';<br />
$dir = '/my/music/folder';<br />
foreach(get_filenames($dir) AS $key => $row)<br />
{<br />
	if(preg_match('/.mp3/', strtolower($row)))<br />
		exec("curl -F media=@'$row' -u $email:$pass <a href="https://audiobox.fm/api/tracks">https://audiobox.fm/api/tracks"</a>);<br />
}<br />
	<br />
//<br />
// Get all file names in directory. (thanks CI - <a href="http://codeigniter.com/user_guide/helpers/file_helper.html">http://codeigniter.com/user_guide/helpers/file_helper.html</a>)<br />
//	<br />
function get_filenames($source_dir, $include_path = TRUE, $_recursion = FALSE)<br />
{<br />
  static $_filedata = array();<br />
  		<br />
  if ($fp = @opendir($source_dir))<br />
  {<br />
  	if ($_recursion === FALSE)<br />
  	{<br />
  		$_filedata = array();<br />
  		$source_dir = rtrim(realpath($source_dir), DIRECTORY_SEPARATOR).DIRECTORY_SEPARATOR;<br />
  	}<br />
  	<br />
  	while (FALSE !== ($file = readdir($fp)))<br />
  	{<br />
  		if (@is_dir($source_dir.$file) && strncmp($file, '.', 1) !== 0)<br />
  		{<br />
  			 get_filenames($source_dir.$file.DIRECTORY_SEPARATOR, $include_path, TRUE);<br />
  		}<br />
  		elseif (strncmp($file, '.', 1) !== 0)<br />
  		{<br />
  	<br />
  			$_filedata[] = ($include_path == TRUE) ? $source_dir.$file : $file;<br />
  		}<br />
  	}<br />
  	return $_filedata;<br />
  }<br />
}<br />
?&gt;<br />
</code><br />
]]></description>
			  <dc:subject><![CDATA[Cloud Computing,]]></dc:subject>
			  <dc:date>2010-05-17T02:55:52+00:00</dc:date>
			</item>
		
			<item>
			  <title><![CDATA[My Top Technology List Of 2009]]></title>
			  <link>https://spicermatthews.com/site/my_top_technology_list_of_2009</link>
			  <guid>https://spicermatthews.com/site/my_top_technology_list_of_2009#When:21:13:22Z</guid>
			  <description><![CDATA[<img class="alignright size-medium wp-image-63" title="technology_v1" src="http://c621674.r74.cf2.rackcdn.com/technology_v1-300x198.jpg" alt="technology_v1" width="300" height="198" style="margin-left: 10px;" />Every geek blog I actively read posted a list of top technologies for 2009, so I thought I would be remissed if I did not do the same. These are technologies that really stepped it up or came to my attention in 2009 and became part of my everyday life both for work and personal used.
<div style="margin-top: 0px; margin-bottom: 0px;">2009 was all about moving my life to the cloud. I determined early in 2009 it was stupid to ever store a file on my computer ever again. All my data should live in the cloud so I can have access to it everywhere I go, I can have access on any platform (think cell phone), I can easily share my data with people I want to share it with, and lastly I do not have to worry about backups (for the most part), and that is just what I have done.</div>

<div style="margin-top: 0px; margin-bottom: 0px;">Below is a list of my top 10 products that have changed my life in 2009. The first 6 are sort of consumer related and the last 4 are software developer related. So if you are not a software developer I am thinking you might only find the first 6 interesting.</div><img class="alignright size-medium wp-image-63" title="technology_v1" src="http://c621674.r74.cf2.rackcdn.com/technology_v1-300x198.jpg" alt="technology_v1" width="300" height="198" style="margin-left: 10px;" />Every geek blog I actively read posted a list of top technologies for 2009, so I thought I would be remissed if I did not do the same. These are technologies that really stepped it up or came to my attention in 2009 and became part of my everyday life both for work and personal used.
<div style="margin-top: 0px; margin-bottom: 0px;">2009 was all about moving my life to the cloud. I determined early in 2009 it was stupid to ever store a file on my computer ever again. All my data should live in the cloud so I can have access to it everywhere I go, I can have access on any platform (think cell phone), I can easily share my data with people I want to share it with, and lastly I do not have to worry about backups (for the most part), and that is just what I have done.</div>

<div style="margin-top: 0px; margin-bottom: 0px;">Below is a list of my top 10 products that have changed my life in 2009. The first 6 are sort of consumer related and the last 4 are software developer related. So if you are not a software developer I am thinking you might only find the first 6 interesting.</div>

<h3 style="font-size: 12pt;">Consumer Technology</h3>
<div style="margin-top: 10px; margin-bottom: 0px;"><strong>Google Docs / Gmail (<a title="www.gmail.com" href="http://www.gmail.com">www.gmail.com</a>)-</strong> Hands down the best thing that ever happen to me in 2009. Yes, these products have been around for a while but google finally got to the point where I could use them full time and be happy. I no longer use a native mail client or calendar on my computer, and I no longer install MS Office or iWorks. Google has done an amazing job of taking the most used aspects of a computer and putting them in the cloud. These products still have a ways to go but I am confident Google will continue to push new features everyday.</div>

<div style="margin-top: 10px; margin-bottom: 0px;"><strong>Android (<a title="http://www.android.com" href="http://www.android.com">www.android.com</a>)-</strong> Good bye iPhone!!! I have switched to the Droid for good. My geek religion got the best of me. The iPhone is an amazing phone but the openness of the android, the forward looking of the android, and the seamless integration with google products is priceless. This phone/operating system is everything the iPhone is plus more. Being opens source and controlled by a company that is more community driven tends to bring new features and technologies at a faster rate. I am sick of waiting for Steve Jobs to tell me when I can have the next latest and greatest thing. It is my phone I want to control it.</div>

<div style="margin-top: 0px; margin-bottom: 0px;"><strong>Google Voice (<a title="www.google.com/voice" href="http://www.google.com/voice">www.google.com/voice</a>) -</strong> While Google Voice has a long ways to go it is pretty killer. So killer I have changed my phone number to use Google Voice, a number I have had for over 10 years. When you can port your number to Google Voice it will take off! It is so nice to be able to control where and when I receive calls. The voice mail to text email is amazing. Also, the ability to text message people as if it is an instant message client while I am at my computer is a time safer for me. Google voice is going to be a great product for the everyday consumer and an even better product for business customers.</div>

<div style="margin-top: 0px; margin-bottom: 0px;"><strong>Dropbox (<a title="www.dropbox.com" href="http://www.dropbox.com">www.dropbox.com</a>) -</strong> Dropbox is a service that allows me to sync my files with the cloud. So I can keep all my files in Dropbox and revisions of my files will be stored on their servers. I can connect to my Dropbox account from any computer and have all my files with me. I can even access my files from their website or iPhone app (if I still used an iPhone). There are a lot of services out there that do this same thing but Dropbox is the first company to truly get it right, and that is why I am a customer of theirs. The ability to know my files are with me anywhere I go and that they are backed up is priceless.</div>

<div style="margin-top: 10px; margin-bottom: 0px;"><strong>Shoeboxed (<a title="www.shoeboxed.com" href="http://www.shoeboxed.com">www.shoeboxed.com</a>) -</strong> This is hands down the service I am most excited about. It has really blown my mind that someone has not offered this service years ago. I have thought many times about trying to start a service such as this. What Shoeboxed does is they let you send them (via snail mail) all your receipts and they scan them and then extract the info and add it to a ledger for you. You can even send them business cards and they will scan them for you as well. They are also starting to scan documents. They categories documents, receipts, and business cards by tags which makes it really nice to find particular transactions. Shoeboxed has done a nice job of integrating with other 3rd party products as well. I hope this product continues to grow. They have helped me a great deal in my organization.</div>

<div style="margin-top: 10px; margin-bottom: 0px;"><strong>Google Chrome (<a title="www.google.com/chrome" href="http://www.google.com/chrome">www.google.com/chrome</a>)-</strong> Seems like 2009 was a google year for me. Google really made some nice improvements in their web browser Chrome. When they released the Mac Beta version I started to use Chrome full time. It is super stable, super fast, and it was clearly built fixing all the mistakes of past browsers. I love the integration with google services as well. I think everyone should use this browser because it was the first browser built that really seems to have a successful mission of helping in the transition from native software to the cloud. I really look forward to building Chrome browser plug-ins for my different web projects. Another hat tip to the gang at google and of course the community around chrome.</div>

<h3 style="font-size: 12pt;">Software Development Technology</h3>
<div style="margin-top: 10px; margin-bottom: 0px;"><strong>Codeigniter</strong><strong> (<a title="http://codeigniter.com/" href="http://codeigniter.com/">www.codeigniter.com</a>)-</strong> This PHP framework has changed my life. I have been programing php for over 10 years now. I have played around with many frameworks and have even written my own. Codeigniter has done such a good job of making PHP development fast, simple, secure, lightweight, and more. At the start of 2009 I was spending a great deal of time with Ruby On Rails I was trying to figure out if I should move to RoR or continue building on my own framework. I called it SpicePhp <img src="http://cms2.skyclerk.com/images/smileys/smile.gif" width="19" height="19" alt="smile" style="border:0;" />. After spending a long weekend polishing up my framework and not getting as far as I had hoped I came across Codeigniter in a random google search. I never touched my framework again. Beyond being the coolest of the frameworks I really like Codeigniter because they are based in the north west (whatever that means for an Internet company/project). I am from Portland and I spend as much time in Bend (where their office is) as I can. I keep thinking I need to stop by and buy the Codeigniter people pizza. The problem is many of their developers are not in Bend. Regardless, it is a well thought-out framework that I know will continue to grow in popularity in 2010.</div>

<div style="margin-top: 10px; margin-bottom: 0px;"><strong>Appcelerator's Titanium (<a title="www.appcelerator.com" href="http://www.appcelerator.com">www.appcelerator.com</a>)-</strong> I have been watching this product all year long and have been playing with it along the way. It took a year to become what I would call "production ready" but with the release of version 0.8 they nailed it!!! Titanium is a technology that allows you to write native desktop, iPhone, and Android applications uses web technology such as javascript. I really think this framework is great for people who write web applications and need product add-ons for different platforms. Instead of having to learn 3 different programing languages you get to write really robust applications using the same language you wrote your web application in. It speeds up development time. I am currently working on some applications using this framework. I really wish appcelerator a very happy 2010 and really look forward to their inovation this coming year.</div>

<div style="margin-top: 10px; margin-bottom: 0px;"><strong>GitHub (<a title="www.github.com" href="http://www.github.com">www.github.com</a>)-</strong> This company has changed my life. GitHub gives me a place to store all my source code for projects I am working on. They keep it secure and backed up. I no longer have to maintain some sort of backup system on some server I run. I no longer have to maintain permissions for the different users I am collaborating with. GitHub has done a killer job of taking one less system administration task out of my hands. It also has a sexy interface to review the progress of my software project. All stuff I can get from the commend line if I remember the commands. Saving me time because I can just browse and click.</div>
<div style="margin-top: 10px; margin-bottom: 0px;"><strong>iPlotz</strong><strong> (<a title="www.iplotz.com" href="http://www.iplotz.com">www.iplotz.com</a>)-</strong> This is a web based tool for building website wire-frames. This has been a great tool for me to layout and design websites. I love the tool because it is web based, putting more of my life in the cloud. I also love the tool because they give you all sorts of cool features to allow you to click through the site as if you just built it in HTML. It allows me to wire-frame out the site just as I want it so my designers can nail the design on their first design round. It really helps in speeding up the development process.</div>

<h3 style="font-size: 12pt;">And The Winner Is.....</h3>
Clearly, Google is the over all winner for 2009 in my tech list. I have a feeling they might be a multi year winner in 2010. The company is on fire when it comes to moving the web world in the correct direction. I look forward to the grow of all the products I mentioned here. I know I will be using each one of these products everyday.]]></description>
			  <dc:subject><![CDATA[Cloud Computing, Programming, Infrastructure,]]></dc:subject>
			  <dc:date>2010-01-07T21:13:22+00:00</dc:date>
			</item>
		
			<item>
			  <title><![CDATA[No More Compiled Software For Me]]></title>
			  <link>https://spicermatthews.com/site/no_more_compiled_software_for_me</link>
			  <guid>https://spicermatthews.com/site/no_more_compiled_software_for_me#When:22:18:17Z</guid>
			  <description><![CDATA[<img class="alignright size-full wp-image-51" title="Cloud Computing" src="http://c621674.r74.cf2.rackcdn.com/cloud1.jpg" alt="Cloud Computing" width="220" />
As many of you know I am the founder and president of <a href="http://cloudmanic.com">Cloudmanic Labs, LLC.</a><a href="http://cloudmanic.com"><a href="http://cloudmanic.com"></a></a> At Cloudmanic Labs it is our goal to build web applications that traditionally were handled via compiled native software and stuff them in the Cloud. For a while now I have been not eating my own dog food (for a lack of a better term). I stilled was using a native mail client, still listening to my stored mp3s in iTunes, using word to type documents, still using some sort of compiled solution for a twitter client and so on. Then the recent preview release of Google's Chrome OS came out and it gave me a wake up call.<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Spicer Is Moving To The Cloud</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">As many of you know I am the founder and president of Cloudmanic Labs, LLC. At Cloudmanic Labs it is our goal to build web applications that traditionally were handled via compiled native software and stuff them in the Cloud. For a while now I have been not eating my own dog food (for a lack of a better term). I stilled was using a native mail client, still listening to my stored mp3s in iTunes, using word to type documents, still using some sort of compiled solution for a twitter client and so on. Then the recent preview release of Google's Chrome OS came out and it gave me a wake up call.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">A New Man, Thanks To Google</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">So I watch the presentation that Google put on last week highlighting how the future of computing is just a web browser. Our documents, music, videos and more will live in the cloud through cloud services. For the record I am so excited to see Chrome OS mature. This type of overhaul of operating systems was a long time coming. So I spent a better part of this past weekend truly moving to the cloud. I officially use only a web browser for my everyday computing. There are a few things, which I will get to in a bit that still lack. I read and write all my email in gmail, I type of my documents in google docs, I tweet and listen to music all from my web browser. I even went as far as storing my files in the cloud. I am only storing files with Dropbox from now on. It is so nice to be able to pick up any computer and pick up where I left off. In fact I booted my Mac Book to Windows Xp a few days ago to test out a website and I have not found a need to boot back, a browser is a browser after all. I have even linked up as many services as possible to sync with my iPhone. My iPhone is in the cloud with me!</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">A Few Things Holding Me Back From Being A Real Man</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Music and Video. Where are we on this front? There are tons of services out there that have content I can stream or buy to enjoy on the Internet but I want a place that I can upload movies and music I already own and play it on the go on any computer. I know Google is heading in that direction but I want it now! I sure hope Apple is working their tails off to make a web based version of iTunes. I want a private web based version of iTunes that I can upload all my music and video to and Apple will "sync" it to my Apple Tv, iPhone, and more. This is something we need now not later. If Apple is not already far down this path they will lose to Google. We need to bridge the gap between already owned content and external media devices and we will have an Internet 100% ready to support cloud computing.</div>

<h3>Spicer Is Moving To The Cloud</h3>

<img class="alignright size-full wp-image-51" title="Cloud Computing" src="http://c621674.r74.cf2.rackcdn.com/cloud1.jpg" alt="Cloud Computing" width="275" />As many of you know I am the founder and president of Cloudmanic Labs, LLC. At <a href="http://www.cloudmanic.com">Cloudmanic Labs</a> it is our goal to build web applications that traditionally were handled via compiled native software and stuff them in the Cloud. For a while now I have been not eating my own dog food (for a lack of a better term). I stilled was using a native mail client, still listening to my stored mp3s in iTunes, using word to type documents, still using some sort of compiled solution for a twitter client and so on. Then the recent preview release of Google's Chrome OS came out and it gave me a wake up call.

<h3>A New Man, Thanks To Google</h3>

So I watch the presentation that <a href="http://www.techcrunch.com/2009/11/19/chrome-os-event/">Google</a> put on last week highlighting how the future of computing is just a web browser. Our documents, music, videos and more will live in the cloud through cloud services. For the record I am so excited to see <a href="http://www.chromium.org">Chrome OS</a> mature. This type of overhaul of operating systems was a long time coming. So I spent a better part of this past weekend truly moving to the cloud. I officially use only a web browser for my everyday computing. There are a few things, which I will get to in a bit that still lack. I read and write all my email in gmail, I type of my documents in google docs, I tweet and listen to music all from my web browser. I even went as far as storing my files in the cloud. I am only storing files with <a href="http://www.dropbox.com/">Dropbox</a> from now on. It is so nice to be able to pick up any computer and pick up where I left off. In fact I booted my Mac Book to Windows Xp a few days ago to test out a website and I have not found a need to boot back, a browser is a browser after all. I have even linked up as many services as possible to sync with my iPhone. My iPhone is in the cloud with me!

<h3>A Few Things Holding Me Back From Being A Real Man</h3>

Music and Video. Where are we on this front? There are tons of services out there that have content I can stream or buy to enjoy on the Internet but I want a place that I can upload movies and music I already own and play it on the go on any computer. I know Google is heading in that direction but I want it now! I sure hope Apple is working their tails off to make a web based version of iTunes. I want a private web based version of iTunes that I can upload all my music and video to and Apple will "sync" it to my Apple Tv, iPhone, and more. This is something we need now not later. If Apple is not already far down this path they will lose to Google. We need to bridge the gap between already owned content and external media devices and we will have an Internet 100% ready to support cloud computing.]]></description>
			  <dc:subject><![CDATA[Cloud Computing, Infrastructure,]]></dc:subject>
			  <dc:date>2009-11-25T22:18:17+00:00</dc:date>
			</item>
		
			<item>
			  <title><![CDATA[I Am Totally Jazzed On Appcelerator]]></title>
			  <link>https://spicermatthews.com/site/i_am_totally_jazzed_on_appcelerator</link>
			  <guid>https://spicermatthews.com/site/i_am_totally_jazzed_on_appcelerator#When:03:07:50Z</guid>
			  <description><![CDATA[Take a look at my post over at <a title="Cloudmanic Labs" href="http://www.cloudmanic.com">Cloudmanic Labs</a>.<br />
<br />
<a href="http://www.cloudmanic.com/2009/11/cloudmanic-uses-appcelerators-titanium-mobile/">http://www.cloudmanic.com/2009/11/cloudmanic-uses-appcelerators-titanium-mobile/</a><br />
<br />
Also take a look at the new stuff they are doing in Version 0.8<br />
<br />
<object width="400" height="225"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=7670243&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=7670243&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="225"></embed></object><p><a href="http://vimeo.com/7670243">Titanium 0.8 Preview - Facebook Enhancements</a> from <a href="http://vimeo.com/appcelerator">Appcelerator Video Channel</a> on <a href="http://vimeo.com">Vimeo</a>.</p>Take a look at my post over at <a title="Cloudmanic Labs" href="http://www.cloudmanic.com">Cloudmanic Labs</a>.<br />
<br />
<a href="http://www.cloudmanic.com/2009/11/cloudmanic-uses-appcelerators-titanium-mobile/">http://www.cloudmanic.com/2009/11/cloudmanic-uses-appcelerators-titanium-mobile/</a><br />
<br />
Also take a look at the new stuff they are doing in Version 0.8<br />
<br />
<object width="400" height="225"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=7670243&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=7670243&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="225"></embed></object><p><a href="http://vimeo.com/7670243">Titanium 0.8 Preview - Facebook Enhancements</a> from <a href="http://vimeo.com/appcelerator">Appcelerator Video Channel</a> on <a href="http://vimeo.com">Vimeo</a>.</p>]]></description>
			  <dc:subject><![CDATA[Mobile, Infrastructure,]]></dc:subject>
			  <dc:date>2009-11-18T03:07:50+00:00</dc:date>
			</item>
		
			<item>
			  <title><![CDATA[The Stats - Linode Vs. Slicehost ...... And The Winner Is&#8230;...]]></title>
			  <link>https://spicermatthews.com/site/the_stats_linode_vs._slicehost_......_and_the_winner_is</link>
			  <guid>https://spicermatthews.com/site/the_stats_linode_vs._slicehost_......_and_the_winner_is#When:05:02:26Z</guid>
			  <description><![CDATA[long time ago I went to a linux user group (plug) and there was a fresh new company giving a presentation on this way cool new technology called User Mode Linux or UML. They created this company using virtualization to offer dedicated hosting to users. More or less having many different instances of Linux operating systems all running on one server. Each instance is owned and operated by a different customer. I was so taken in by this idea I became a customer right way. I was a customer for many years as a matter of fact. However I was never really that happy with it. Just seemed to be slow and sluggish. <br />
<br />
So I finally left and went on to a Mac Mini hosting which was interesting but owning the hardware and having \"remove hands\" just annoyed me. So I moved to shared hosting. Well that just sucked!!! So I started to get interested in these VPS dedicated hosting company. Thinking that maybe UML has gotten better with time. I found out the UML is a thing of the past and is now been taken over by Xen and all these VPS hosting companies are using Xen which seems to be way faster! So I thought I would give it a try. I looked at all the companies and concluded that <a href="http://www.slicehost.com">SliceHost</a> and <a href="http://www.linode">Linode</a> were the two best companies on the market. I long time ago I went to a linux user group (plug) and there was a fresh new company giving a presentation on this way cool new technology called User Mode Linux or UML. They created this company using virtualization to offer dedicated hosting to users. More or less having many different instances of Linux operating systems all running on one server. Each instance is owned and operated by a different customer. I was so taken in by this idea I became a customer right way. I was a customer for many years as a matter of fact. However I was never really that happy with it. Just seemed to be slow and sluggish. So I finally left and went on to a Mac Mini hosting which was interesting but owning the hardware and having \"remove hands\" just annoyed me. So I moved to shared hosting. Well that just sucked!!! So I started to get interested in these VPS dedicated hosting company. Thinking that maybe UML has gotten better with time. I found out the UML is a thing of the past and is now been taken over by Xen and all these VPS hosting companies are using Xen which seems to be way faster! So I thought I would give it a try. I looked at all the companies and concluded that <a href="http://www.slicehost.com">SliceHost</a> and <a href="http://www.linode.com/?r=87f832d2eec88148aebf14ba316c0eef289456d9">Linode</a> were the two best companies on the market.<br />
<br />
I now have an account with both companies. I use them both and over all am very happy with both. However, Linode tends to standout just a little bit more. After reading this blog posting <a href="http://journal.dedasys.com/2008/11/24/slicehost-vs-linode"> Slicehost Vs. Linode</a> I started to do some performance testing of my own. Bang for your buck Linode wins and performance wise Linode wins. My slice host account is 512 megs and my linode is 360 megs. In my testing I never used more ram that 250megs so this test is valid.<br />
<br />
The first thing I wanted to look at was the 32bit vs. 64bit kernel memory issue. The 64bit kernel takes twice as much memory. So Slicehost does not offer a 32bit kernel so you are stuck wasting more memory. Here are my results with both accounts loaded nearly identical.<br />
<br />
### Linode ###<br />
root@stowe:/var/www# free -m<br />
total       used       free     shared    buffers     cached<br />
Mem:           360        348         11          0          5        270<br />
-/+ buffers/cache:         73        286<br />
Swap:          255          0        255<br />
<br />
### Slicehost ###<br />
root@slicehost:~# free -m<br />
total       used       free     shared    buffers     cached<br />
Mem:           512        461         50          0         16        303<br />
-/+ buffers/cache:        141        370<br />
Swap:         1023          0       1023<br />
<br />
Both these have a web server with the same configs and about a gig of mysql data loaded into the database. They are running idle.<br />
<br />
The next thing I wanted to look at was over all bandwidth and network speeds. So I did a very simple wget test. I was wget on a remote machine 6meg mp3.<br />
<br />
### Slice Host<br />
spicer@jam$ wget slicehost/satan.mp3<br />
--08:32:46--  <a href="http://slicehost/satan.mp3">http://slicehost/satan.mp3</a><br />
=&gt; `satan.mp3.3'<br />
HTTP request sent, awaiting response... 200 OK<br />
Length: 5,721,420 (5.5M) [audio/mpeg]<br />
<br />
100%[====================================================&gt;] 5,721,420      1.24M/s    ETA 00:00<br />
<br />
08:32:51 (1.16 MB/s) - `satan.mp3.3' saved [5721420/5721420]<br />
<br />
### Linode ##<br />
spicer@jam$ wget linode/satan.mp3<br />
--08:35:31--  <a href="http://linode/satan.mp3">http://linode/satan.mp3</a><br />
=&gt; `satan.mp3.4'<br />
HTTP request sent, awaiting response... 200 OK<br />
Length: 5,721,420 (5.5M) [audio/mpeg]<br />
<br />
100%[======================================================================&gt;] 5,721,420      2.69M/s<br />
<br />
I ran the test many times and did conclude that Linode was about 1M/s faster. I am not sure where my slice host node is so this test might be thrown off by the location of the different data centers.<br />
<br />
Next and lastly, I did http_load tests. http_load got a php script that loaded a much into memory and then printed it out.<br />
<br />
## Linode ##<br />
spicer@jam$ ./http_load -parallel 100 -seconds 10 url.txt<br />
365 fetches, 100 max parallel, 5.57176e+07 bytes, in 10.0029 seconds<br />
152651 mean bytes/connection<br />
36.4896 fetches/sec, 5.57017e+06 bytes/sec<br />
msecs/connect: 270.134 mean, 448.058 max, 71.148 min<br />
msecs/first-response: 353.144 mean, 745.521 max, 76.143 min<br />
HTTP response codes:<br />
code 200 -- 365<br />
<br />
## Slice Host<br />
spicer@jam$ ./http_load -parallel 100 -seconds 10 url.txt<br />
42 fetches, 100 max parallel, 6.72844e+06 bytes, in 10.001 seconds<br />
160201 mean bytes/connection<br />
4.19959 fetches/sec, 672779 bytes/sec<br />
msecs/connect: 59.8185 mean, 60.085 max, 59.535 min<br />
msecs/first-response: 234.224 mean, 582.46 max, 68.179 min<br />
HTTP response codes:<br />
code 200 -- 42<br />
<br />
Once again Linode was just a little bit better.<br />
<br />
Over all Linode is a better bang for your buck, seems to have as good or better stats than Slicehost. Linode also offers more options with a much better control panel.  If you liked this blog posting please feel free to use my referral code to signup <a href="http://www.linode.com/?r=87f832d2eec88148aebf14ba316c0eef289456d9">Sign Up For Linode</a><br />
<br />
Lastly, one of the things that held me back from a dedicated service is I hate being the admin of email and other web services. So I keep a shared hosting account to manage my email. Allowing me only to run the services I really need full control over.<br />
------------<br />
]]></description>
			  <dc:subject><![CDATA[Infrastructure,]]></dc:subject>
			  <dc:date>2009-04-26T05:02:26+00:00</dc:date>
			</item>
		
			<item>
			  <title><![CDATA[PiWik - Oh My God This Is The Best Took Ever!!!]]></title>
			  <link>https://spicermatthews.com/site/piwik_oh_my_god_this_is_the_best_took_ever</link>
			  <guid>https://spicermatthews.com/site/piwik_oh_my_god_this_is_the_best_took_ever#When:05:07:03Z</guid>
			  <description><![CDATA[As someone that looks over many different websites one of the tools I have used is  <a href="http://www.google.com/analytics">Google Analytics</a>. Google Analytics using some javascript that you install on your website to send traffic data back to Google. Then you can log into their website and view data about your traffic. This data consists of visitors, page views, visitor location, and so on. There are hundreds of tools out there for this purpose but Google Analytics really stepped up as the best free option. My only problem with Google Analytics is you have no control over how it works. You do not have direct access to the data, and the data is not processed in real time. While I continue to think there is nothing better out there for free I have recently stumbled upon an amazing open source project called <a href="http://piwik.org">PiWik</a>.As someone that looks over many different websites one of the tools I have used is  <a href="http://www.google.com/analytics">Google Analytics</a>. Google Analytics uses some javascript that you install on your website to send traffic data back to Google. Then you can log into their website and view data about your traffic. This data consists of visitors, page views, visitor location, and so on. There are hundreds of tools out there for this purpose but Google Analytics really stepped up as the best free option. My only problem with Google Analytics is you have no control over how it works. You do not have direct access to the data, and the data is not processed in real time. While I continue to think there is nothing better out there for free I have recently stumbled upon an amazing open source project called <a href="http://piwik.org/">PiWik</a>.
<br><br>
PiWik's goal is to take Google Analytics and make it open source. The user runs it on their own server; which means they control how and where the data is stored. It also allows the user to write plugins to add extra features. It is written in Php and Mysql.
<br><br>
I have sat down many times and thought I need to write a replacement to Google Analytics but never have. Today I said I was going to do it but just before I got started I tried one more google search and found PiWik. I instead spend the rest of the day installing it on all my sites. My major problems with Google Analytics is I can not download the data for further processing and it is not real time. With PiWik I own the data it is already in my database and I can do anything I want with it and the data is processed in real time. Only thing that Google has that PiWik does not have, that really matters to me is the ability to pin point the city and state the visitor is coming from. PiWik has a plugin that is the next best thing <a href="http://lists.piwik.org/pipermail/piwik-trac/2009-April/002878.html">GeoIP</a>. I have a feeling this plugin will get better and better as time goes on.
<br><br>
Over all I am very happy now. I control my data. I get real time stats. Thank you PiWik and keep up the good work!!! ]]></description>
			  <dc:subject><![CDATA[Infrastructure,]]></dc:subject>
			  <dc:date>2009-04-23T05:07:03+00:00</dc:date>
			</item>
		
			<item>
			  <title><![CDATA[My Love Of Jquery&#8217;s Form Plugin]]></title>
			  <link>https://spicermatthews.com/site/my_love_of_jquerys_form_plugin</link>
			  <guid>https://spicermatthews.com/site/my_love_of_jquerys_form_plugin#When:05:11:10Z</guid>
			  <description><![CDATA[The type of web programing I do often has a large database back-end with which requires user input and data return. In the olden days you just created an html form and then posted some input data to some cgi (say PHP script) and the script would speak with the database and return some html causing the browser to reload on post. Now that we are a super cool web 2.0 world we do not do this anymore we make javascript use Ajax to do the post for us. If you are anything like me you take one look at javascript and say "no thank you". Most people hate the syntax of javascript, the confusion of the language, or the browser compatibility issues; when I say most people I am including me. This is where our friends at Jquery come to the rescue  <a href="http://jquery.com">http://jquery.com</a> (more on them in another post).The type of web programing I do often has a large database back-end with which requires user input and data return. In the olden days you just created an html form and then posted some input data to some cgi (say PHP script) and the script would speak with the database and return some html causing the browser to reload on post. Now, that we are a super cool web 2.0 world we do things differently. We make our friend javascript use Ajax to do the post for us. If you are anything like me you take one look at javascript and say "no thank you". Most people hate the syntax of javascript, the confusion of the language, or the browser compatibility issues; when I say most people I am including me. This is where our friends at Jquery come to the rescue  <a href="http://jquery.com">http://jquery.com</a> (more on them in another post).

For now I want to highlight a jquery plugin, an additional library that grows the functionality of jquery.  The Form Plugin <a href="http://www.malsup.com/jquery/form">(Hosted Here)</a> allows jquery to submit form data via Ajax either when the user hits submit using the ajaxForm() or on demand using ajaxSubmit(). Here is an example of how I used it in a recent project.

index.php -

<code> 
<form id="control-form" action="returnGraph.php" method="post">
<input name="graphid" type="hidden" value="88" />
<input id="date" name="date" type="text" />

<select name="type"> 
<option value="Volume">Volume</option>
<option value="Speed">Speed</option> 
<option value="Pace">Pace</option> 
</select>

<input name="title" type="text" />
</form> 
<div id="graph-return"></div>
</code>

So from the above html code you can see there is no submit button. Our goal here is to make it so when you change anyone of the input form items it will collect the value of each field and post the data to returnGraph.php. The data will be posted via Ajax so there is no page refresh. We want Ajax to change the graph and put the graph in the div with id "graph-return". We also want some sort of spinner to spin to show the user the browser is thinking and waiting for a graph to appear. We are going to put an animated gif in the graph div that will be replaced with the graph when it is returned from returnGraph.php.
<br><br>
The next step is the write some javascript. You need to make sure you have the jquery and form plug in included in your code.
<br>
<code>
<script type="text/javascript" src="../javascript/jquery-1.2.6.pack.js"></script>
<script type="text/javascript" src="../javascript/jquery.form.js"></script>
</code>
<br>
<div>Here is the Javascript  I use to bind to the form to make the Ajax call and to also bind to the input items to make a post on change.</div>
<div><br>
<div>// This function will deal with Chart controls.</div>
<div>function setupControls()</div>
<div>{</div>
<div>// Setup Date Picker</div>
<div>$("#date").datepicker({</div>
<div>mandatory: true,</div>
<div>dateFormat: "M d, yy",</div>
<div>showOn: "both",</div>
<div>maxDate: "1",</div>
<div>buttonImage: "../images/calendar.gif",</div>
<div>buttonImageOnly: true,</div>
<div>onSelect: function (date) {</div>
<div>resubmitGraph();</div>
<div>}</div>
<div>});</div>
<br>
<div>// Setup a generic bind to bind all input fields to get a new graph</div>
<div>$("#control-form :input").change(resubmitGraph);</div>
<div>}</div>
<div><br>
<div>// This function will get the value of each control and submit an ajax form request to reder new</div>
<div>// graph.</div>
<div>function resubmitGraph()</div>
<div>{</div>
<div>$("#control-form").ajaxSubmit({</div>
<div>beforeSubmit: function () {</div>
<div>$("#graph-return").html('&lt;div class="loading1" style="margin: 20% 0 0 45%;"&gt;&lt;/div&gt;');</div>
<div>},</div>
<div>success: function (response) {</div>
<div>$("#graph-return").html(response);</div>
<div>}</div>
<div>});</div>
<div>}</div>
<br>
<div>I will not cover what datepicker is but it is part of the jquery ui plugin. I will cover this in a later post. <a href="http://jqueryui.com">Jquery UI</a></div><br>
<div>The function resubmitGraph() is where all the magic happens. It does something call seralize the form data. It goes through each input form field creates a php post string. Here is an example unrelated to my example. I got it from here <a href="http://www.malsup.com/jquery/form/#code-samples">Here</a></div>
<br><br>
Now in the background the ajaxSubmit() function sends the serialized form Post to returnGraph.php. Also, just before posting we clear the "graph-return" div and put an automated gif in place to let the user know something is happening. Once the script is done processing the data it will call the "success" part ajaxSubmit() and pass in the response from the post. In our case it is a graph. The animated gif is replaced with the graph. Ajax Submit complete.  
<br><br>
From the code below you can see we bind a change action to each input item in the form. So anytime anything changes in the fields we redraw the graph.<br>
<code>
$(”#control-form :input”).change(resubmitGraph);
</code>
<br>


</div></div>]]></description>
			  <dc:subject><![CDATA[Programming,]]></dc:subject>
			  <dc:date>2009-04-16T05:11:10+00:00</dc:date>
			</item>
		
		    
    </channel>
</rss>