<?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/"
	>

<channel>
	<title>Sparkfire</title>
	<atom:link href="http://go.sparkfire.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://go.sparkfire.net</link>
	<description>life, love, and the computer</description>
	<pubDate>Tue, 01 Jun 2010 20:50:38 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Easily Export Data from any CakePHP model</title>
		<link>http://go.sparkfire.net/2010/06/easily-export-data-from-any-cakephp-model/</link>
		<comments>http://go.sparkfire.net/2010/06/easily-export-data-from-any-cakephp-model/#comments</comments>
		<pubDate>Tue, 01 Jun 2010 20:49:21 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://go.sparkfire.net/?p=210</guid>
		<description><![CDATA[I recently needed the ability to export data from my application in CSV format in my CakePHP application. It didn&#8217;t need to be anything fancy, mostly just a dump from a given model, which the customer could open in Excel. I&#8217;ve written it in an abstracted way. This fairly simple function takes a model name [...]]]></description>
			<content:encoded><![CDATA[<p>I recently needed the ability to export data from my application in CSV format in my CakePHP application. It didn&#8217;t need to be anything fancy, mostly just a dump from a given model, which the customer could open in Excel. I&#8217;ve written it in an abstracted way. This fairly simple function takes a model name and an array of fields which should be excluded from the output, and delivers a CSV file.</p>
<p>Rather than allow the function to be accessed directly, I&#8217;ve made the function private, and written a public function which accesses it. This has the added benefit of reducing the need for input validation.</p>
<p>Here is the function call:</p>
<pre class="brush: php">
public function export_orders() {
	$this-&gt;export_model(&#039;Order&#039;);
}
</pre>
<p>and the function itself:</p>
<pre class="brush: php">
private function export_model($model, $exclude = array() ) {
	$records = $this-&gt;$model-&gt;find(&#039;all&#039;);
	$headings = array_diff(array_keys($records[0][$model]), $exclude);

	$filename = strtolower($model) . &#039;-export-&#039; . date(&#039;m-d-Y&#039;) . &#039;.csv&#039;;
	header(&quot;Content-type: application/text/csv&quot;);
	header(&quot;Content-Disposition: attachment; filename=\&quot;$filename\&quot;&quot;);

	$h = fopen(&#039;php://output&#039;, &#039;w&#039;);

	fputcsv($h, $headings);

	foreach ($records as $record) {
		foreach($exclude as $ex) unset($record[$model][$ex]);
		fputcsv($h, $record[$model]);

	}

	fclose($h);
	exit();
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://go.sparkfire.net/2010/06/easily-export-data-from-any-cakephp-model/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Try out Ubuntu Unity with quick install</title>
		<link>http://go.sparkfire.net/2010/05/try-out-ubuntu-unity-with-quick-install/</link>
		<comments>http://go.sparkfire.net/2010/05/try-out-ubuntu-unity-with-quick-install/#comments</comments>
		<pubDate>Tue, 11 May 2010 18:38:25 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://go.sparkfire.net/?p=205</guid>
		<description><![CDATA[Canonical recently unveiled a new version of Ubuntu, dubbed Unity (Ubuntu Light), built specifically with netbooks in mind, featuring super short boot times, and a whole slew of interface enhancements. It is still incomplete, but early versions of it are available to OEMs and to adventurous tinkerers.

<img src="http://go.sparkfire.net/wp-content/uploads/2010/05/unity6.jpg" alt="Ubuntu Unity desktop" />]]></description>
			<content:encoded><![CDATA[<p>Canonical recently unveiled a new version of Ubuntu, dubbed Unity (Ubuntu Light), built specifically with netbooks in mind, featuring super short boot times, and a whole slew of interface enhancements. It is still incomplete, but early versions of it are available to OEMs and to adventurous tinkerers.</p>
<p>It is quite easy to get up and running if you&#8217;re using Ubuntu already. I have an Ubuntu desktop at home but decided to try this setup on my laptop via VirtualBox, which is sporting a relatively fresh install of Ubuntu 10.04 with Guest Additions installed. Follow the instructions below to try out Ubuntu Unity. It shouldn&#8217;t take you more than 5 to 10 minutes in total and only takes a few steps, don&#8217;t let the liberal set of screen shots fool you!</p>
<p>1. The first step is to add the repository where Unity is being held as a Software Source. Click System &gt; Administration &gt; Software Sources, and select the &#8220;Other Software&#8221; tab. You should something similar to the image below:</p>
<p><img src="http://go.sparkfire.net/wp-content/uploads/2010/05/unity1.jpg" alt="Software Sources" /></p>
<p>2. At the &#8220;Other Software&#8221; screen of the Software Sources window, click Add, and then Click &#8220;Add Source&#8221; after entering : ppa:canonical-dx-team/une</p>
<p><img src="http://go.sparkfire.net/wp-content/uploads/2010/05/unity2.jpg" alt="Add Software Source" /></p>
<p>3. After adding this new source, it will notify you that information about available software is out of date (we just added a new source afterall, let&#8217;s find out what is available in it!) So click &#8220;Reload&#8221; and let it do it&#8217;s thing.</p>
<p><img src="http://go.sparkfire.net/wp-content/uploads/2010/05/unity3.jpg" alt="Update Software Sources" /></p>
<p>4. Next we are going to install Unity by going to Applications &gt; Ubuntu Software Center, and then searching for &#8220;Unity&#8221;. Among the results, select &#8220;Launcher&#8221; and click &#8220;Install&#8221;. This will install the Unity launcher and all of it&#8217;s dependencies.</p>
<p><img src="http://go.sparkfire.net/wp-content/uploads/2010/05/unity4.jpg" alt="Ubuntu Software Center Unity Launcher" /></p>
<p>5. Once the install is complete, close the Software Center window, and log out. This will bring you back to the Ubuntu login screen. You should see a new Session type at the bottom right, which may be selected by default (it was for me), called &#8220;Ubuntu: Unity Netbook Edition&#8221;. Ensure it is selected and log in as usual.</p>
<p><img src="http://go.sparkfire.net/wp-content/uploads/2010/05/unity5.jpg" alt="Login with Unity Netbook Edition Session" /></p>
<p>6. Congrats, that is it! You should be loaded into the default (albeit incomplete) Unity environment. Most noticeable is the new dock or app launcher to the left and the integrated search in the top panel.</p>
<p><img src="http://go.sparkfire.net/wp-content/uploads/2010/05/unity6.jpg" alt="Ubuntu Unity desktop" /></p>
<p>The Ubuntu logo at the top right acts as an Expose-esque app switcher once you have a few windows open, give it a try.</p>
<p><img src="http://go.sparkfire.net/wp-content/uploads/2010/05/unity7.jpg" alt="Ubuntu Unity App Switcher" /></p>
<p>There are a lot of exciting features that haven&#8217;t been implemented yet, but you can play around with the new dock, and for people who actually have netbooks, perhaps see about getting it to book up quickly. I am booting into it on a VM via the method you see in steps 5 and 6, which doesn&#8217;t take advantage of the new speedy shell. Checkout the Ars Technica article to get all the details on new features in Unity, and especially the comments for a lot of interesting concerns that people have for the new interface. Hope you enjoy!</p>
<p>You can find the official product page here:</p>
<p><a href="http://www.canonical.com/products/unity">http://www.canonical.com/products/unity</a></p>
<p>Ars Technica has already done a fairly good roundup of current and soon to be released features in Unity here:</p>
<p><a href="http://arstechnica.com/open-source/reviews/2010/05/exclusive-hands-on-with-ubuntus-new-unity-netbook-shell.ars">http://arstechnica.com/open-source/reviews/2010/05/exclusive-hands-on-with-ubuntus-new-unity-netbook-shell.ars</a></p>
]]></content:encoded>
			<wfw:commentRss>http://go.sparkfire.net/2010/05/try-out-ubuntu-unity-with-quick-install/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Foursquare Day quickly comes into focus.</title>
		<link>http://go.sparkfire.net/2010/04/foursquare-day-quickly-comes-into-focus/</link>
		<comments>http://go.sparkfire.net/2010/04/foursquare-day-quickly-comes-into-focus/#comments</comments>
		<pubDate>Tue, 13 Apr 2010 20:32:56 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
		
		<category><![CDATA[General]]></category>

		<category><![CDATA[4sqday]]></category>

		<category><![CDATA[foursquare]]></category>

		<category><![CDATA[foursquare day]]></category>

		<category><![CDATA[social media]]></category>

		<guid isPermaLink="false">http://go.sparkfire.net/?p=198</guid>
		<description><![CDATA[The Foursquare Day event is catching on in every corner of the globe. In just a few short weeks, fans and new initiates of Foursquare and social media at large have self organized to plan and launch the first ever Foursquare Day. We created a website to help aggregate information about the many Swarm Parties [...]]]></description>
			<content:encoded><![CDATA[<p>The Foursquare Day event is catching on in every corner of the globe. In just a few short weeks, fans and new initiates of Foursquare and social media at large have self organized to plan and launch the first ever Foursquare Day. We created a website to help aggregate information about the many Swarm Parties and exclusive Specials on Foursquare day, but just browsing lists of information didn&#8217;t quite capture what was really going on.</p>
<p>We&#8217;ve created the Foursquare Day map so you can see where people are participating both near you and all over the world. See who&#8217;s throwing events where, and who is offering special deals for Friday only, so you can start planning your day now! As new events are listed to the website, they&#8217;ll automatically pop up on the map, so you can watch the movement grow. We hope you enjoy!</p>
<p><a href="http://www.4sqday.com/map">Check it out!</a></p>
]]></content:encoded>
			<wfw:commentRss>http://go.sparkfire.net/2010/04/foursquare-day-quickly-comes-into-focus/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Guac!</title>
		<link>http://go.sparkfire.net/2009/10/guac/</link>
		<comments>http://go.sparkfire.net/2009/10/guac/#comments</comments>
		<pubDate>Mon, 26 Oct 2009 15:21:31 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
		
		<category><![CDATA[General]]></category>

		<category><![CDATA[guacamole recipe]]></category>

		<guid isPermaLink="false">http://go.sparkfire.net/?p=182</guid>
		<description><![CDATA[I developed a bit of an obsession with Chipotle&#8217;s guacamole, it was good but expensive, so I decided to make my own. I&#8217;m still tweaking the recipe but this is where I started and gives great results. You can find avocados with the other fresh produce at your grocery store. (extra points if you find [...]]]></description>
			<content:encoded><![CDATA[<p>I developed a bit of an obsession with Chipotle&#8217;s guacamole, it was good but expensive, so I decided to make my own. I&#8217;m still tweaking the recipe but this is where I started and gives great results. You can find avocados with the other fresh produce at your grocery store. (extra points if you find them at a market!)</p>
<p><img class="alignnone" title="Guac" src="http://go.sparkfire.net/wp-content/uploads/2009/10/guac1.jpg" alt="Guacamole Ingrediants" /><span id="more-182"></span></p>
<p>Make sure you have avocados that are JUST ripe, they should be very firm when you buy them and in a days time they should start to give a little to pressure, this is when they are ready. If the avocado is very soft or gives too much it is probably overripe. The serrano chiles may be harder to finder, I&#8217;m not sure, I was able to find them at Publix along the wall in the fridge in the produce area.</p>
<ul>
<li>2 ripe avocados</li>
<li>1/2 red onion, minced (about 1/2 cup)</li>
<li>1-2 serrano chiles, stems and seeds removed, minced</li>
<li>2 tablespoons cilantro leaves, finely chopped</li>
<li>1 tablespoon of fresh lime or lemon juice</li>
<li>1/2 teaspoon salt</li>
<li>A dash of freshly grated black pepper</li>
<li>1/2 ripe tomato, seeds and pulp removed, chopped</li>
</ul>
<p>Cut each avocado in half by running the the blade against and all the way around the large seed inside. Then separate the two sides. You can either pry the seed out or you can very carefully tap the blade against the seed; it should stick and allow you to pull the seed out, don&#8217;t cut yourself!</p>
<p>Use a fork to scoop out the inner flesh, which should come away from the distinct, firm outer shell, discard the shells from each half. Use the fork to mash up the avocado (not too finely, mash to a consistency that you prefer, I like mine a bit chunky. At the same time, add chopped onion, cilantro, lime or lemon, salt and pepper and mash n mix it together. Finely chop some of the serrano chiles to taste, they&#8217;re hot! Make sure to rinse your hands after handling those little guys.</p>
<p>Mix in the tomatoes, and once it looks mixed and mashed up and presentable, it is ready! Refrigerate covered when you&#8217;re done, it stays at least a few days in the fridge (mine didn&#8217;t last longer than that). It is going to turn dark on top, just mix it in when you come back to it. I actually mixed some salsa into mine as well, it&#8217;s a nice shortcut. Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://go.sparkfire.net/2009/10/guac/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Small lessons</title>
		<link>http://go.sparkfire.net/2009/09/small-lessons/</link>
		<comments>http://go.sparkfire.net/2009/09/small-lessons/#comments</comments>
		<pubDate>Wed, 30 Sep 2009 02:13:48 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
		
		<category><![CDATA[General]]></category>

		<category><![CDATA[design]]></category>

		<category><![CDATA[funny]]></category>

		<guid isPermaLink="false">http://go.sparkfire.net/?p=168</guid>
		<description><![CDATA[I work for a small web shop and enjoy a very casual atmosphere. This is great most of the time, but recently it caught up with me. We were all sitting around the conference table eating pizza on the company&#8217;s dime and watching the classic Batman film over lunch. I was sitting there scarfing down [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;">I work for a small web shop and enjoy a very casual atmosphere. This is great most of the time, but recently it caught up with me. We were all sitting around the conference table eating pizza on the company&#8217;s dime and watching the classic Batman film over lunch. I was sitting there scarfing down pizza next to my coworkers and my boss when our sales guy poked his head in and asked me how much we&#8217;d charge for hosting a simple e-commerce site.</p>
<p style="text-align: left;">We&#8217;re not exactly what I&#8217;d call a premium services sort of company, so I quoted him a price of $25/month. But I quickly added that at that price point it really was a bargain and should probably be more if the client is likely going to be a pain in the rear or otherwise using up our support resources. You know&#8230; breaking their own site after demanding FTP access or calling us because they forgot their password or they need new email accounts setup or any variety of other tech support/ customer service related calls.</p>
<p style="text-align: left;">I&#8217;m going on in my whiney client voice when I see that my boss is looking at me weird and the sales guy is bringing his finger up to say &#8220;shhh&#8221;. I realize that there was a reason he wasn&#8217;t having pizza with the rest of us. Evidently he was busy selling something to a client in his office, the door wide open just 10 ft from where I sat. My boss laughed it off, so it wasn&#8217;t a huge deal but I certainly didn&#8217;t make the sale any easier.</p>
<p style="text-align: left;">While I never found out for sure if the client had heard me, it was likely that she had. It never hurts to watch what you say, at least a little, especially in a small office, you never know what might happen, even if I did dodge the bullet this time.</p>
]]></content:encoded>
			<wfw:commentRss>http://go.sparkfire.net/2009/09/small-lessons/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Search By Location (Miles From Zip Code) in PHP</title>
		<link>http://go.sparkfire.net/2009/09/search-by-location-miles-from-zipcode-in-php/</link>
		<comments>http://go.sparkfire.net/2009/09/search-by-location-miles-from-zipcode-in-php/#comments</comments>
		<pubDate>Fri, 11 Sep 2009 00:32:30 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
		
		<category><![CDATA[General]]></category>

		<category><![CDATA[distance]]></category>

		<category><![CDATA[php]]></category>

		<category><![CDATA[zip code]]></category>

		<guid isPermaLink="false">http://go.sparkfire.net/?p=144</guid>
		<description><![CDATA[Whenever you&#8217;re building a site that has a directory of businesses or people or anything with a physical location, it commonly lends itself to offering a search form which allows the user to search by distance from a given location.
For example, a national or state-wide company with many branches may want to allow their website [...]]]></description>
			<content:encoded><![CDATA[<p>Whenever you&#8217;re building a site that has a directory of businesses or people or anything with a physical location, it commonly lends itself to offering a search form which allows the user to search by distance from a given location.</p>
<p>For example, a national or state-wide company with many branches may want to allow their website visitors to find a location near them. Or perhaps you may be building a directory of specialist doctors, or a site with real estate listings, and want to offer users the ability to search within X miles from a given location. It sounds like a difficult feature to implement but in reality it is not.<span id="more-144"></span></p>
<p>The solution comes in essentially three parts, a zip code database, your database of items/people/businesses, and a small PHP script. The database is list of city, state, and county information that is linked to latitude and longitude information, which allows the script to determine where zip codes are in relationship to one another. A flexible class is provided to allow simple access to the zip code functions.</p>
<p>This article does assume that you have a basic understanding of working with PHP and MySQL. Make sure to <a href="http://go.sparkfire.net/wp-content/uploads/2009/09/zipcode-1.2.0.zip">download the zip archive</a> containing the database and associated scripts before getting started.</p>
<h3>Part 1: Setting Up The Zip Code Database</h3>
<p>You&#8217;ll find 6 SQL files in the /sql directory of the zip file that you must also run in order to load the zip code database into MySQL. Make sure to run create_table.sql first in order to create the zip code database table before loading in its entries, which have been split up into data_1.sql, data_2.sql and so on. The zip code database contains over 40,000 rows so it has been split up into 5 parts to allow importing from a web browser via phpMyAdmin&#8217;s &#8220;Import&#8221; tab.</p>
<h3>Part 2: Setting Up Your Database</h3>
<p>Additionally, we will need a database of things to search for, so we&#8217;ll use a database of properties that might be for sale as an example. Below is some very basic SQL for our properties table:</p>
<pre class="brush: sql">
CREATE TABLE `properties` (
`id` int(11) unsigned NOT NULL auto_increment,
`zip_code` varchar(5) collate utf8_bin NOT NULL,
`address` varchar(50) collate utf8_bin default NULL,
`seller_name` varchar(50) collate utf8_bin default NULL,
PRIMARY KEY  (`id`),
KEY `zip_code` (`zip_code`)
)
</pre>
<p>The key field in the table above is zip_code, as you can imagine, the other fields could really be anything that might be associated with a zip code. After creating our table, add some records to it.</p>
<h3>Part 3: The Search Form</h3>
<p>For the purposes of this post we&#8217;ll use a simple zipcode field to search, as reviewing the details of creating a teired city, state, zip selection fieldset warrants a post of its own. So we might have a search field on our search.htm page that looks like this:</p>
<p><img class="alignnone" title="Zip Code Search Form" src="http://go.sparkfire.net/wp-content/uploads/2009/09/zipcode_search_form.gif" alt="" width="445" height="30" /></p>
<pre class="brush: html">
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;head&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;
&lt;title&gt;Zip Code Search&lt;/title&gt;
&lt;/head&gt;

&lt;body&gt;
&lt;form method=&quot;post&quot; action=&quot;results.php&quot;&gt;
&lt;label for=&quot;miles&quot;&gt;Search within &lt;/label&gt;
&lt;input type=&quot;text&quot; name=&quot;miles&quot; id=&quot;miles&quot; size=&quot;10&quot; /&gt;
miles of
&lt;label for=&quot;zip_code&quot;&gt;&lt;/label&gt;
&lt;input type=&quot;text&quot; name=&quot;zip_code&quot; id=&quot;zip_code&quot;  /&gt;
&lt;input type=&quot;submit&quot; name=&quot;submit&quot; value=&quot;Search&quot; /&gt;
&lt;/form&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<h3>Part 4: The Search Results Page</h3>
<p>Now that we have both of our database tables setup, and our search form, we must create the results.php script to process our form submission and generate a result (find the items within X miles of a given zip code!) The full source code is below:</p>
<pre class="brush: php">
require_once(&#039;zipcode.class.php&#039;);
mysql_connect(&#039;host&#039;,&#039;username&#039;,&#039;password&#039;) or die(mysql_error());
mysql_select_db(&#039;database_name&#039;) or die(mysql_error());

$z = new zipcode_class;
$zips = $z-&gt;get_zips_in_range($_POST[&#039;zip_code&#039;], $_POST[&#039;miles&#039;], _ZIPS_SORT_BY_DISTANCE_ASC, true);

if ($zips === false) {
echo &#039;Error: &#039;.$z-&gt;last_error;
} else {
$zips_in_range = implode(&#039;,&#039;, array_keys($zips) );
}

$result = mysql_query(&quot;SELECT * FROM properties WHERE zip_code IN (&quot;. $zips_in_range . &quot;)&quot;);
while ($row = mysql_fetch_assoc($result) ) {
print_r($row);
}
</pre>
<p>Let&#8217;s go through the above script line by line and review what is happening.</p>
<ol>
<li>We include the zipcode class, which contains all of the goodies for calculating distances and whatnot.</li>
<li>Connect to our mysql database, make sure to fill in your own info on this line.</li>
<li>Tell the script which database to use, make sure to fill in your own info.</li>
<li>Inhale&#8230;</li>
<li>Instantiate the zipcode class and assign it to the $z variable.</li>
<li>Call the get_zips_in_range function and pass it the zip and miles variables in the POST array, ask for results sorted by distance, shortest to furthest, and ask it to include the zipcode you searched for in the results</li>
<li>Inhale&#8230;</li>
<li>Make sure there were no errors encountered while searching the zip code database.</li>
<li>Print any errors that may have occurred</li>
<li>But if things went well&#8230;</li>
<li>Take all of the zip codes within range using array_keys($zips) and turn them in a comma seperated list with implode() and assign it to $zips_in_range</li>
<li>Select all records from the properties table which we created above that have a zip code IN the list of zip codes returned from the function on line 6.</li>
<li>Traverse the result set and print each row to see what properties have been returned!</li>
<li> Tada!</li>
</ol>
<h3>Some Final Words</h3>
<p>Obviously this is a bare bones example but I hope that I have illustrated one way of using a great script to accomplish a very useful task on your websites; I am sure it will come in handy time and time again. There are obviously some poor programming practices being illustrated above for the sake of brevity, such as using raw POST data in a function without sanitizing it first, and I hope you will take these things into consideration as you build out your website. The zipcode class that was used in this example was created by <a rel="external nofollow" href="http://www.micahcarrick.com/04-19-2005/php-zip-code-range-and-distance-calculation.html">Micah Carrick</a>, and actually contains a whole host of other nice features such as calculating the distance between two coordinates, calculating the distance between two zip codes, and returning information about a given zip code. I&#8217;ve included my additional search.htm and results.php files, which are detailed above for you to experiment with in addition to the provided demo.php originally included in the archive. If you have any questions about specific implementations or modifying the techniques covered above, please comment below.</p>
<p>Download<a href="http://go.sparkfire.net/wp-content/uploads/2009/09/zipcode-1.2.0.zip"> zipcode-1.2.0.zip</a> [1MB]</p>
]]></content:encoded>
			<wfw:commentRss>http://go.sparkfire.net/2009/09/search-by-location-miles-from-zipcode-in-php/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Hacking H1N1 (Swine Flu)</title>
		<link>http://go.sparkfire.net/2009/09/hacking-h1n1-swine-flu/</link>
		<comments>http://go.sparkfire.net/2009/09/hacking-h1n1-swine-flu/#comments</comments>
		<pubDate>Wed, 02 Sep 2009 13:48:56 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
		
		<category><![CDATA[General]]></category>

		<category><![CDATA[biology]]></category>

		<category><![CDATA[hacking]]></category>

		<guid isPermaLink="false">http://go.sparkfire.net/?p=130</guid>
		<description><![CDATA[What a fantastic read on H1N1 and the basics of DNA And RNA as they function in the body using the analogy of a computer program. The author then goes on to suggest ways in which the virus could be improved, from a reverse engineering standpoint. Read the original article »
]]></description>
			<content:encoded><![CDATA[<p><div id="attachment_133" class="wp-caption alignright" style="width: 110px"><img class="size-thumbnail wp-image-133" title="swine-waakao" src="http://go.sparkfire.net/wp-content/uploads/2009/09/swine-waakao-150x150.jpg" alt="H1N1" width="100" height="100" /><p class="wp-caption-text">H1N1</p></div></p>
<p>What a fantastic read on H1N1 and the basics of DNA And RNA as they function in the body using the analogy of a computer program. The author then goes on to suggest ways in which the virus could be improved, from a reverse engineering standpoint. <a title="Hacking H1N1" href="http://www.bunniestudios.com/blog/?cat=16">Read the original article »</a></p>
]]></content:encoded>
			<wfw:commentRss>http://go.sparkfire.net/2009/09/hacking-h1n1-swine-flu/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Can&#8217;t add widget?</title>
		<link>http://go.sparkfire.net/2009/09/cant-add-widget/</link>
		<comments>http://go.sparkfire.net/2009/09/cant-add-widget/#comments</comments>
		<pubDate>Tue, 01 Sep 2009 20:27:50 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
		
		<category><![CDATA[General]]></category>

		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://go.sparkfire.net/?p=128</guid>
		<description><![CDATA[Quick Wordpress tip for you, especially useful when you&#8217;re initially setting up your blog. If you&#8217;re switching from theme to theme and then find yourself unable to add certain widgets, it&#8217;s probably because they were left enabled on a different theme. Try switching back to the theme you were previously using, remove all of the [...]]]></description>
			<content:encoded><![CDATA[<p>Quick Wordpress tip for you, especially useful when you&#8217;re initially setting up your blog. If you&#8217;re switching from theme to theme and then find yourself unable to add certain widgets, it&#8217;s probably because they were left enabled on a different theme. Try switching back to the theme you were previously using, remove all of the widgets and then try adding them again after switching to the new theme.</p>
]]></content:encoded>
			<wfw:commentRss>http://go.sparkfire.net/2009/09/cant-add-widget/feed/</wfw:commentRss>
		</item>
		<item>
		<title>How to apply for a web design position</title>
		<link>http://go.sparkfire.net/2009/08/how-to-apply-for-a-web-design-position/</link>
		<comments>http://go.sparkfire.net/2009/08/how-to-apply-for-a-web-design-position/#comments</comments>
		<pubDate>Mon, 31 Aug 2009 00:25:11 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
		
		<category><![CDATA[General]]></category>

		<category><![CDATA[job search]]></category>

		<category><![CDATA[web design]]></category>

		<guid isPermaLink="false">http://go.sparkfire.net/?p=106</guid>
		<description><![CDATA[I&#8217;ve recently been charged with finding a couple new hires for entry level positions at our company. We posted an ad on Craigslist and within a day had dozens of applicants. If you find yourself new to the area of web design and are applying for your first job, here are some things to keep [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve recently been charged with finding a couple new hires for entry level positions at our company. We posted an ad on Craigslist and within a day had dozens of applicants. If you find yourself new to the area of web design and are applying for your first job, here are some things to keep in mind, in no particular order:<span id="more-106"></span></p>
<ol>
<li>Read the whole ad, follow instructions!</li>
<li>Include a phone number, just because you&#8217;re applying to a web company, doesn&#8217;t mean we want to email a dozen people.</li>
<li>Include some sort of introduction in the body of your email and give it a proper subject line, do not just send an attachment.</li>
<li>Always have examples of your work online and include links to it in your email; describe what role you played in each project. There are plenty of great <a href="http://www.carbonmade.com/">free online portfolio solutions</a> out there. No excuses!</li>
<li>Resumes are great, always tailor them to the position you&#8217;re applying for, especially if it&#8217;s long. Include your full name in the resume filename! I don&#8217;t want to sort through a dozen &#8220;resume.pdf&#8221;s. (Which reminds me, no .doc files, please!)</li>
<li>Most web design positions require you to at least write html, so include coded versions of your portfolio items wherever possible.</li>
<li>If you&#8217;ve got some standout work, link them in the email prominently, I look at work examples first and foremost, the work examples speak volumes.</li>
<li>When you receive a call from me, sound at least a little eager to have an interview, even if you desperately need the job, playing it cool typically comes off as uninterested. Even if the job you&#8217;re applying for isn&#8217;t the best, employers want people who are excited about the position (fake it if you have to).</li>
<li>Be confident, the majority of applicants in this field are terrible, don&#8217;t be afraid to be different, like ending a list on #9.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://go.sparkfire.net/2009/08/how-to-apply-for-a-web-design-position/feed/</wfw:commentRss>
		</item>
		<item>
		<title>The Web, Evolved (and You)</title>
		<link>http://go.sparkfire.net/2009/08/the-web-evolved-and-you/</link>
		<comments>http://go.sparkfire.net/2009/08/the-web-evolved-and-you/#comments</comments>
		<pubDate>Mon, 24 Aug 2009 02:02:48 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
		
		<category><![CDATA[General]]></category>

		<category><![CDATA[e-commerce]]></category>

		<category><![CDATA[marketing]]></category>

		<guid isPermaLink="false">http://go.sparkfire.net/?p=96</guid>
		<description><![CDATA[“Hello, my name is Dave.”
“Hello Dave, nice to meet you… so what do you do, anyway?”
“I work as a Web Developer over at Sparkfire.”
“Oh, cool.”
This is inevitably followed by a blank stare. It’s at this point which I’m always torn, do I go off on some suitable explanation of “web developer”, or do I just [...]]]></description>
			<content:encoded><![CDATA[<p>“Hello, my name is Dave.”</p>
<p>“Hello Dave, nice to meet you… so what do you do, anyway?”</p>
<p>“I work as a Web Developer over at Sparkfire.”</p>
<p>“Oh, cool.”</p>
<p>This is inevitably followed by a blank stare. It’s at this point which I’m always torn, do I go off on some suitable explanation of “web developer”, or do I just move on. <span id="more-96"></span>Sometimes I use the word “programmer”, which seems to give non-techies a better picture, but I try to avoid the (unfortunate) nerd stigma as often as possible. Fact is, I help make the web work, writing custom-made software that runs on the web. As you may know, the web is a network of computers that has rapidly matured into a platform for providing all kinds of services. You probably use many of them: shopping at Amazon, auctioning at eBay, checking your email on GMail or Yahoo, searching the web with Google, IMing friends or networking on Facebook, checking your bank balance and paying bills online; they’re all applications that run on the web, built by web developers.</p>
<p>Sun Microsystems, most prominently known for their development of Java, says “The Network is the Computer”, and it’s true. What good is your computer if the internet is out? I don’t even bother to sit down at mine if my internet service happens to be out. The web was originally built as a method of sharing textual information, a task at which it still excels, but is has grown to be far more than that. The web has advanced so much in fact, that in the near future it is even poised to replace giants like cable television, print newspaper, broadcast radio and landline telephones for a very large portion of the consumer base.</p>
<p>The modern web is a highly visual medium, and is fertile ground for advertising and sales. Marketing agencies and the businesses they serve have quickly embraced this new platform as an incredibly powerful, interactive, and cost effective 24/7 outlet for reaching customers. Due to its interactive nature, marketing agencies need programmers to make the web work, to make it do things besides display unchanging text and pictures.</p>
<p>Life moves quickly, arguably faster in technology that anywhere else. The web is at the cutting edge of this tide. It’s therefore advantageous for companies to understand and consider the possibilities of web applications when they approach a marketing company that offers them. Just like traditional software, web applications can be built to offer almost any sort of functionality you can imagine. From processing sales, tracking conversation rates, and promoting customer feedback to managing customer databases and more. Web applications are the most cost effective way of increasing efficiency for any business.</p>
<p>Web development is a custom-tailored solution, so be sure to include questions about development in your dialog with a marketing agency. Consider it more than just a website, more than a brochure online; it is a tool, an organism, a machine that works for your company, it has no limits as it is naturally an extension of the abilities and functions of those who create it (by way of us, that’s you!). Programming is about solving problems, so when you consider a website or web application for your business, consider the problems that you have, inefficiencies that slow you down, or abilities that you don’t yet have at all, and see if they can’t be solved with a web-based application.</p>
]]></content:encoded>
			<wfw:commentRss>http://go.sparkfire.net/2009/08/the-web-evolved-and-you/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
