<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="/stylesheets/rss.css"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>Weblog of A Command Line Junkie</title>
    <link>http://weblog.commandlinejunkie.com</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description></description>
    <item>
      <title>erb syntax highlighting with TextMate</title>
      <description>I finally am past fixing deprecation errors on older rails sites&lt;br /&gt;
and have started generating some new apps with rails 2.0.2&lt;br /&gt;
I realized that TextMate had not quite caught on, yet, to the new .erb&lt;br /&gt;
file extension and had to edit the property list to add syntax highlighting for &lt;br /&gt;
the newly created .erb files.&lt;br /&gt; 
this is fairly simple&lt;br /&gt;
Just go to your Text Mate . app folder and ctrl-click to show package contents&lt;br /&gt;
go inside of Contents and then SharedSupport -&gt; Bundles&lt;br /&gt;
then, ctrl-click to show package contents for Ruby on Rails.tmbundle&lt;br /&gt;
Inside of the folder Syntaxes is a file called HTML (Rails).plist&lt;br /&gt;
open it with your text editor or with the property list editor&lt;br /&gt;
right below  filetypes-&gt;array-&gt;string-&gt;rhtml&lt;br /&gt;
just add this line&lt;br /&gt;
&lt;div class="typocode"&gt;&lt;pre&gt;&lt;code class="typocode_xml "&gt;&lt;notextile&gt;     &lt;span class="punct"&gt;&amp;lt;&lt;/span&gt;&lt;span class="tag"&gt;string&lt;/span&gt;&lt;span class="punct"&gt;&amp;gt;&lt;/span&gt;erb&lt;span class="punct"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="tag"&gt;string&lt;/span&gt;&lt;span class="punct"&gt;&amp;gt;&lt;/span&gt;&lt;/notextile&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="typocode"&gt;&lt;pre&gt;&lt;code class="typocode_xml "&gt;&lt;notextile&gt;///the first few lines of the file should look like this
&lt;span class="punct"&gt;&amp;lt;&lt;/span&gt;&lt;span class="tag"&gt;dict&lt;/span&gt;&lt;span class="punct"&gt;&amp;gt;&lt;/span&gt;
	&lt;span class="punct"&gt;&amp;lt;&lt;/span&gt;&lt;span class="tag"&gt;key&lt;/span&gt;&lt;span class="punct"&gt;&amp;gt;&lt;/span&gt;fileTypes&lt;span class="punct"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="tag"&gt;key&lt;/span&gt;&lt;span class="punct"&gt;&amp;gt;&lt;/span&gt;
	&lt;span class="punct"&gt;&amp;lt;&lt;/span&gt;&lt;span class="tag"&gt;array&lt;/span&gt;&lt;span class="punct"&gt;&amp;gt;&lt;/span&gt;
		&lt;span class="punct"&gt;&amp;lt;&lt;/span&gt;&lt;span class="tag"&gt;string&lt;/span&gt;&lt;span class="punct"&gt;&amp;gt;&lt;/span&gt;rhtml&lt;span class="punct"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="tag"&gt;string&lt;/span&gt;&lt;span class="punct"&gt;&amp;gt;&lt;/span&gt;
		&lt;span class="punct"&gt;&amp;lt;&lt;/span&gt;&lt;span class="tag"&gt;string&lt;/span&gt;&lt;span class="punct"&gt;&amp;gt;&lt;/span&gt;erb&lt;span class="punct"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="tag"&gt;string&lt;/span&gt;&lt;span class="punct"&gt;&amp;gt;&lt;/span&gt;
	&lt;span class="punct"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="tag"&gt;array&lt;/span&gt;&lt;span class="punct"&gt;&amp;gt;&lt;/span&gt;&lt;/notextile&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;br /&gt;
or if you are a commandlinejunkie like me&lt;br /&gt;
just type &lt;br /&gt;
&lt;br /&gt;
&lt;typo:code"&gt;
open /Applications/TextMate.app/Contents/SharedSupport/Bundles/Ruby\ on\ Rails.tmbundle/Syntaxes/HTML\ \(Rails\).plist
&lt;/typo:code&gt;
&lt;br /&gt;
&lt;br /&gt;
and then add a new sibling under the rhtml string for erb as well..
&lt;br /&gt;
Then restart textmate and your erb files should look just like the rhtml files&lt;br /&gt;



</description>
      <pubDate>Mon, 25 Feb 2008 18:47:00 -0800</pubDate>
      <guid isPermaLink="false">urn:uuid:a4473b44-cc43-4ecc-b7a3-ea8692e6f118</guid>
      <author>admin</author>
      <link>http://weblog.commandlinejunkie.com/articles/2008/02/25/erb-syntax-highlighting-in-textmate</link>
      <category>Ruby on Rails</category>
      <category>Text</category>
      <category>Mate</category>
      <category>erb</category>
      <category>tmbundle</category>
      <category>syntax</category>
      <category>highlighting</category>
      <trackback:ping>http://weblog.commandlinejunkie.com/articles/trackback/17</trackback:ping>
    </item>
    <item>
      <title>Store Locator Using PHP, Mysql and Google Maps geocoding</title>
      <description>I recently had a project where I had to develop a search with PHP.&lt;br /&gt;
This search had to return the distance based on an address entered by the user.&lt;br /&gt;
Here is what I did to get this working in the simplest way possible.&lt;br /&gt;
&lt;br /&gt;
First I had to sign up for the &lt;a href="http://code.google.com/apis/maps/signup.html"&gt;Google Maps API Key&lt;/a&gt;.&lt;br /&gt;
Then, I created a database called Addresses with the following structure.
&lt;br /&gt;
&lt;div class="typocode"&gt;&lt;pre&gt;&lt;code class="typocode_sql "&gt;&lt;notextile&gt;CREATE TABLE `Addresses` (
  `id` int(11) NOT NULL auto_increment,
  `name` varchar(255) default NULL,
  `address_physical` varchar(255) default NULL,
  `city` varchar(255) default NULL,
  `state` varchar(255) default NULL,
  `zip` varchar(255) default NULL,
  `phone` varchar(255) default NULL,
  `fax` varchar(255) default NULL,
  `webpage` varchar(255) default NULL,
  `email` varchar(255) default NULL,
  `latitude` varchar(255) default NULL,
  `longitude` varchar(255) default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;
&lt;/notextile&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;
Then I created a database connection.&lt;br /&gt;
If you are playing along at home, I will assume you know how to do this &lt;br /&gt;
If you need to you can download these as well as a file called distcal.php &lt;a href="http://weblog.commandlinejunkie.com/files/includes.zip"&gt;HERE&lt;/a&gt;&lt;br /&gt;
You will have to edit config.php to reflect your database user and password and host.&lt;br /&gt;
Next, I had to make a form to insert the data into the database..&lt;br /&gt;
This consists of an index&lt;br /&gt;
&lt;div class="typocode"&gt;&lt;pre&gt;&lt;code class="typocode_php "&gt;&lt;notextile&gt;&amp;lt;?php
//index.php
require ('includes/dbconnection.php');
$sql = &amp;quot;SELECT * FROM Addresses ORDER BY name ASC&amp;quot;;
        $result = mysql_query($sql);

        while($row = mysql_fetch_array($result))
             {
               echo &amp;quot;&amp;quot;;
               echo $row['name'];
               echo &amp;quot;&amp;lt;br&amp;gt;&amp;quot;;
           
          
          
              &amp;lt;a href=\&amp;quot;edit.php?id=$row[id]\&amp;quot;&amp;gt;Edit&amp;lt;/a&amp;gt;
                 || &amp;lt;a href=\&amp;quot;delete.php?id=$row[id]\&amp;quot;&amp;gt;Delete&amp;lt;/a&amp;gt;&amp;lt;br&amp;gt;&amp;lt;hr&amp;gt;&amp;quot;;
             }//end of loop
?&amp;gt;

&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;
 &amp;lt;a href=add.php&amp;gt;Add&amp;lt;/a&amp;gt;&lt;/notextile&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;br /&gt;
and three additionals file edit, add.php and delete.php&lt;br /&gt;
you can download all three &lt;a href="http://weblog.commandlinejunkie.com/files/form.zip"&gt;HERE&lt;/a&gt;

&lt;br /&gt;
&lt;div class="typocode"&gt;&lt;pre&gt;&lt;code class="typocode_php "&gt;&lt;notextile&gt;//edit.php
&amp;lt;title&amp;gt;Edit&amp;lt;/title&amp;gt;

&amp;lt;?php


&amp;lt;title&amp;gt;Edit Churches&amp;lt;/title&amp;gt;

&amp;lt;?php


require('includes/dbconnection.php');

   $id = $_GET['id'];

  if ($_POST['submit']) {
echo $id;
	if (isset($_POST['address_physical'])){
	$address_physical = $_POST['address_physical'];

	}
	if (isset($HTTP_POST_VARS['city'])){
	$city = $HTTP_POST_VARS['city'];

	}
	if (isset($HTTP_POST_VARS['state'])){
	$state = $HTTP_POST_VARS['state'];

	}
	if (isset($_POST['name'])){
	$parish_name = $_POST['name'];

	}

	if (isset($HTTP_POST_VARS['zip'])){
	$zip = $HTTP_POST_VARS['zip'];

	}
	if (isset($HTTP_POST_VARS['phone'])){
	$phone = $HTTP_POST_VARS['phone'];

	}if (isset($HTTP_POST_VARS['fax'])){
	$fax = $HTTP_POST_VARS['fax'];

	}if (isset($HTTP_POST_VARS['email'])){
	$email = $HTTP_POST_VARS['email'];

	}if (isset($HTTP_POST_VARS['webpage'])){
	$webpage = $HTTP_POST_VARS['webpage'];

	}
	//Three parts to the querystring: q is address, output is the format, key is the GAPI key
	$key = &amp;quot;ABQIAAAAsbc8lBSz7WAqNwH1pNerBRQ7jsNPLpBjHicJAXoKFf2V3Pr1JBS040yyXtWX97g8QvNpgEGqMNm6Tg&amp;quot;;
	$address = urlencode($address_physical . &amp;quot; &amp;quot; . $city . &amp;quot; &amp;quot; . $state . &amp;quot; &amp;quot; . $zip);
	//If you want an extended data set, change the output to &#8220;xml&#8221; instead of csv
	$url = &amp;quot;http://maps.google.com/maps/geo?q=&amp;quot;.$address.&amp;quot;&amp;amp;output=xml&amp;amp;key=&amp;quot;.$key;
	//Set up a CURL request, telling it not to spit back headers, and to throw out a user agent.
	$ch = curl_init();
	curl_setopt($ch, CURLOPT_URL, $url);
	curl_setopt($ch, CURLOPT_HEADER,0); //Change this to a 1 to return headers
	curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
	curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
	$data = curl_exec($ch);
	curl_close($ch);


	?&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;?php

	$xml = new SimpleXMLElement($data);

	$xml_data = explode(&amp;quot;,&amp;quot;,$xml-&amp;gt;Response-&amp;gt;Placemark-&amp;gt;Point-&amp;gt;coordinates);
	$latitude = $xml_data[1];
	$longitude = $xml_data[0];



$sqlu = &amp;quot;UPDATE Addresses SET name='$name', address_physical='$address_physical',  phone='$phone', fax='$fax', email='$email', webpage='$webpage', latitude='$latitude', longitude='$longitude' WHERE id='$id'&amp;quot;;
$resultu = mysql_query($sqlu);



          echo &amp;quot;&amp;lt;b&amp;gt;Thank you! UPDATED Successfully!&amp;lt;br&amp;gt;You'll be redirected to Home Page after (3) Seconds&amp;quot;;
		  echo &amp;quot;Thank you! Information entered.&amp;lt;br /&amp;gt;&amp;quot;;
		  echo &amp;quot;The Following information was inserted into the database &amp;lt;br /&amp;gt;&amp;quot;;
		  echo &amp;quot;Name:&amp;quot; . $name . &amp;quot;&amp;lt;br /&amp;gt;&amp;quot;;
		  echo &amp;quot;Physical Address:&amp;quot; . $address_physical . &amp;quot;&amp;lt;br /&amp;gt;&amp;quot;;
		  echo &amp;quot;Mailing Address:&amp;quot; . $address_mailing . &amp;quot;&amp;lt;br /&amp;gt;&amp;quot;;
		  echo &amp;quot;Phone:&amp;quot; . $phone . &amp;quot;&amp;lt;br /&amp;gt;&amp;quot;;
		  echo &amp;quot;Fax:&amp;quot; . $fax . &amp;quot;&amp;lt;br /&amp;gt;&amp;quot;;
		  echo &amp;quot;Email:&amp;quot; . $email . &amp;quot;&amp;lt;br /&amp;gt;&amp;quot;;
		  echo &amp;quot;WebSite:&amp;quot; . $webpage . &amp;quot;&amp;lt;br /&amp;gt;&amp;quot;;
		  echo &amp;quot;Latitude:&amp;quot; . $latitude . &amp;quot;&amp;lt;br /&amp;gt;&amp;quot;;
		  echo &amp;quot;Longitude:&amp;quot; . $longitude . &amp;quot;&amp;lt;br /&amp;gt;&amp;quot;;
		echo $data;
          echo &amp;quot;&amp;lt;meta http-equiv=Refresh content=3;url=index.php&amp;gt;&amp;quot;;
}
elseif($id)
{
        $sql = &amp;quot;SELECT * FROM Addresses WHERE id='$id'&amp;quot;;
        $result = mysql_query($sql);
        while($row = mysql_fetch_row($result))
             {
                $parish_name = $row[0];
                $address_physical = $row[1];
                $city_name= $row[3];
                $state_name= $row[4];
                $zip_code = $row[5];
			    $address_mailing = $row[2];
		        $phone = $row[6];
		        $fax= $row[7];
		        $email= $row[9];
		        $website = $row[8];
?&amp;gt;
&amp;lt;br&amp;gt;

&amp;lt;table border=&amp;quot;0&amp;quot; align=&amp;quot;center&amp;quot; cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;2&amp;quot;&amp;gt;
	&amp;lt;h3&amp;gt;edit&amp;lt;/h3&amp;gt;

	&amp;lt;form method=&amp;quot;POST&amp;quot; action=&amp;quot;edit.php?id=&amp;lt;?php echo $id;?&amp;gt;&amp;quot;&amp;gt;
	&amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;id&amp;quot; value=&amp;quot;&amp;lt;?php echo $id;?&amp;gt;&amp;quot;&amp;gt;
     &amp;lt;tr&amp;gt;
       &amp;lt;td align=&amp;quot;right&amp;quot; style=&amp;quot;font-weight:bold;&amp;quot;&amp;gt; Name:&amp;lt;/td&amp;gt;
       &amp;lt;td&amp;gt;&amp;lt;input type=&amp;quot;Text&amp;quot; size=&amp;quot;40&amp;quot; name=&amp;quot;name&amp;quot; class=&amp;quot;inputbox&amp;quot; value=&amp;quot;&amp;lt;?php echo $name;?&amp;gt;&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;
     &amp;lt;/tr&amp;gt;
     &amp;lt;tr&amp;gt;
       &amp;lt;td align=&amp;quot;right&amp;quot; style=&amp;quot;font-weight:bold;&amp;quot;&amp;gt;Physical Address:&amp;lt;/td&amp;gt;
       &amp;lt;td&amp;gt;&amp;lt;input type=&amp;quot;Text&amp;quot; size=&amp;quot;40&amp;quot; name=&amp;quot;address_physical&amp;quot; class=&amp;quot;inputbox&amp;quot; value=&amp;quot;&amp;lt;?php echo $address_physical;?&amp;gt;&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;

	 &amp;lt;/tr&amp;gt;
	      &amp;lt;tr&amp;gt;
	        &amp;lt;td align=&amp;quot;right&amp;quot; style=&amp;quot;font-weight:bold;&amp;quot;&amp;gt;City:&amp;lt;/td&amp;gt;
	        &amp;lt;td&amp;gt;&amp;lt;input type=&amp;quot;Text&amp;quot; size=&amp;quot;40&amp;quot; name=&amp;quot;city&amp;quot; class=&amp;quot;inputbox&amp;quot; value=&amp;quot;&amp;lt;?php echo $city;?&amp;gt;&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;
	      &amp;lt;/tr&amp;gt;
	      &amp;lt;tr&amp;gt;
	        &amp;lt;td align=&amp;quot;right&amp;quot; style=&amp;quot;font-weight:bold;&amp;quot;&amp;gt;State:&amp;lt;/td&amp;gt;
	        &amp;lt;td&amp;gt;&amp;lt;input type=&amp;quot;Text&amp;quot; size=&amp;quot;40&amp;quot; name=&amp;quot;state&amp;quot; class=&amp;quot;inputbox&amp;quot; value=&amp;quot;&amp;lt;?php echo $state_name;?&amp;gt;&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;
	      &amp;lt;/tr&amp;gt;
	      &amp;lt;tr&amp;gt;
	        &amp;lt;td align=&amp;quot;right&amp;quot; style=&amp;quot;font-weight:bold;&amp;quot;&amp;gt;Zip Code:&amp;lt;/td&amp;gt;
	        &amp;lt;td&amp;gt;&amp;lt;input type=&amp;quot;Text&amp;quot; size=&amp;quot;40&amp;quot; name=&amp;quot;zip&amp;quot; class=&amp;quot;inputbox&amp;quot; value=&amp;quot;&amp;lt;?php echo $zip_code;?&amp;gt;&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;
	      &amp;lt;/tr&amp;gt;

		      &amp;lt;tr&amp;gt;
		        &amp;lt;td align=&amp;quot;right&amp;quot; style=&amp;quot;font-weight:bold;&amp;quot;&amp;gt;Phone:&amp;lt;/td&amp;gt;
		        &amp;lt;td&amp;gt;&amp;lt;input type=&amp;quot;Text&amp;quot; size=&amp;quot;40&amp;quot; name=&amp;quot;phone&amp;quot; class=&amp;quot;inputbox&amp;quot; value=&amp;quot;&amp;lt;?php echo $phone;?&amp;gt;&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;
		      &amp;lt;/tr&amp;gt;
		
			 &amp;lt;tr&amp;gt;
			        &amp;lt;td align=&amp;quot;right&amp;quot; style=&amp;quot;font-weight:bold;&amp;quot;&amp;gt;Fax:&amp;lt;/td&amp;gt;
			        &amp;lt;td&amp;gt;&amp;lt;input type=&amp;quot;Text&amp;quot; size=&amp;quot;40&amp;quot; name=&amp;quot;fax&amp;quot; class=&amp;quot;inputbox&amp;quot; value=&amp;quot;&amp;lt;?php echo $fax;?&amp;gt;&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;
			      &amp;lt;/tr&amp;gt;
			      &amp;lt;tr&amp;gt;
			        &amp;lt;td align=&amp;quot;right&amp;quot; style=&amp;quot;font-weight:bold;&amp;quot;&amp;gt;Email:&amp;lt;/td&amp;gt;
			        &amp;lt;td&amp;gt;&amp;lt;input type=&amp;quot;Text&amp;quot; size=&amp;quot;40&amp;quot; name=&amp;quot;email&amp;quot; class=&amp;quot;inputbox&amp;quot; value=&amp;quot;&amp;lt;?php echo $email;?&amp;gt;&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;
			      &amp;lt;/tr&amp;gt;
			      &amp;lt;tr&amp;gt;
			        &amp;lt;td align=&amp;quot;right&amp;quot; style=&amp;quot;font-weight:bold;&amp;quot;&amp;gt;Web Site:&amp;lt;/td&amp;gt;
			        &amp;lt;td&amp;gt;&amp;lt;input type=&amp;quot;Text&amp;quot; size=&amp;quot;40&amp;quot; name=&amp;quot;webpage&amp;quot; class=&amp;quot;inputbox&amp;quot; value=&amp;quot;&amp;lt;?php echo $website;?&amp;gt;&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;
			      &amp;lt;/tr&amp;gt;
			      &amp;lt;tr&amp;gt;
			&amp;lt;td colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;input type=&amp;quot;Submit&amp;quot; name=&amp;quot;submit&amp;quot; value=&amp;quot;Update&amp;quot; class=&amp;quot;inputbox&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;
				      &amp;lt;/tr&amp;gt;
				    &amp;lt;/table&amp;gt;
				        &amp;lt;br&amp;gt;
				&amp;lt;/form&amp;gt;

&amp;lt;?
              }//end of while loop

  }//end else
?&amp;gt;

&lt;/notextile&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class="typocode"&gt;&lt;pre&gt;&lt;code class="typocode_php "&gt;&lt;notextile&gt;//add.php

&amp;lt;html&amp;gt;

&amp;lt;body&amp;gt;



&amp;lt;?php



if ($HTTP_POST_VARS['submit']) {

	if (isset($HTTP_POST_VARS['address_physical'])){
	$address_physical = $HTTP_POST_VARS['address_physical'];
				
	}
	if (isset($HTTP_POST_VARS['city'])){
	$city = $HTTP_POST_VARS['city'];
				
	}
	if (isset($HTTP_POST_VARS['state'])){
	$state = $HTTP_POST_VARS['state'];
				
	}
	if (isset($HTTP_POST_VARS['name'])){
	$parish_name = $HTTP_POST_VARS['name'];
				
	}

	if (isset($HTTP_POST_VARS['zip'])){
	$zip = $HTTP_POST_VARS['zip'];
				
	}
	if (isset($HTTP_POST_VARS['phone'])){
	$phone = $HTTP_POST_VARS['phone'];
				
	}if (isset($HTTP_POST_VARS['fax'])){
	$email = $HTTP_POST_VARS['fax'];
				
	}if (isset($HTTP_POST_VARS['email'])){
	$email = $HTTP_POST_VARS['email'];
				
	}if (isset($HTTP_POST_VARS['webpage'])){
	$webpage = $HTTP_POST_VARS['webpage'];
				
	}
//put your key here
	$key = &amp;quot;&amp;quot;;
	$address = urlencode($address_physical . &amp;quot; &amp;quot; . $city . &amp;quot; &amp;quot; . $state . &amp;quot; &amp;quot; . $zip);
	//If you want an extended data set, change the output to &#8220;xml&#8221; instead of csv
	$url = &amp;quot;http://maps.google.com/maps/geo?q=&amp;quot;.$address.&amp;quot;&amp;amp;output=xml&amp;amp;key=&amp;quot;.$key;
	//Set up a CURL request, telling it not to spit back headers, and to throw out a user agent.
	$ch = curl_init();
	curl_setopt($ch, CURLOPT_URL, $url);
	curl_setopt($ch, CURLOPT_HEADER,0); //Change this to a 1 to return headers
	curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
	curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
	$data = curl_exec($ch);
	curl_close($ch);


	?&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;?php

	$xml = new SimpleXMLElement($data);

	$xml_data = explode(&amp;quot;,&amp;quot;,$xml-&amp;gt;Response-&amp;gt;Placemark-&amp;gt;Point-&amp;gt;coordinates);
	$latitude = $xml_data[1];
	$longitude = $xml_data[0];

require('includes/dbconnection.php');

  $sql = &amp;quot;INSERT INTO Addresses (name, address_physical, phone, fax, email, webpage,  latitude, longitude) VALUES ('$name', '$address_physical', '$address_mailing','$phone', '$fax', '$email', '$webpage',  '$latitude','$longitude')&amp;quot;;

  $result = mysql_query($sql);

  echo &amp;quot;Thank you! Information entered.&amp;lt;br /&amp;gt;&amp;quot;;
  echo &amp;quot;The Following information was inserted into the database &amp;lt;br /&amp;gt;&amp;quot;;
  echo &amp;quot;Name:&amp;quot; . $name . &amp;quot;&amp;lt;br /&amp;gt;&amp;quot;;
  echo &amp;quot;Physical Address:&amp;quot; . $address_physical . &amp;quot;&amp;lt;br /&amp;gt;&amp;quot;;
  echo &amp;quot;Mailing Address:&amp;quot; . $address_mailing . &amp;quot;&amp;lt;br /&amp;gt;&amp;quot;;
  echo &amp;quot;Phone:&amp;quot; . $phone . &amp;quot;&amp;lt;br /&amp;gt;&amp;quot;;
  echo &amp;quot;Fax:&amp;quot; . $fax . &amp;quot;&amp;lt;br /&amp;gt;&amp;quot;;
  echo &amp;quot;Email:&amp;quot; . $email . &amp;quot;&amp;lt;br /&amp;gt;&amp;quot;;
  echo &amp;quot;WebSite:&amp;quot; . $webpage . &amp;quot;&amp;lt;br /&amp;gt;&amp;quot;;
  echo &amp;quot;Latitude:&amp;quot; . $latitude . &amp;quot;&amp;lt;br /&amp;gt;&amp;quot;;
  echo &amp;quot;Longitude:&amp;quot; . $longitude . &amp;quot;&amp;lt;br /&amp;gt;&amp;quot;;
echo $data;
} else{



  // display form



  ?&amp;gt;



  &amp;lt;form method=&amp;quot;POST&amp;quot; action=&amp;quot;add.php&amp;quot;&amp;gt;



	Name&amp;lt;input type=&amp;quot;Text&amp;quot; size=&amp;quot;50px&amp;quot; name=&amp;quot;name&amp;quot;&amp;gt;&amp;lt;br&amp;gt;
	Physical Address&amp;lt;input type=&amp;quot;Text&amp;quot; size=&amp;quot;50px&amp;quot; name=&amp;quot;address_physical&amp;quot;&amp;gt;&amp;lt;br&amp;gt;
	City&amp;lt;input type=&amp;quot;Text&amp;quot; size=&amp;quot;50px&amp;quot; name=&amp;quot;city&amp;quot;&amp;gt;&amp;lt;br&amp;gt;
	State&amp;lt;input type=&amp;quot;Text&amp;quot; size=&amp;quot;50px&amp;quot; name=&amp;quot;state&amp;quot;&amp;gt;&amp;lt;br&amp;gt;
	Zip Code&amp;lt;input type=&amp;quot;Text&amp;quot; size=&amp;quot;50px&amp;quot; name=&amp;quot;zip&amp;quot;&amp;gt;&amp;lt;br&amp;gt;
	Mailing Address&amp;lt;input type=&amp;quot;Text&amp;quot; size=&amp;quot;50px&amp;quot; name=&amp;quot;address_mailing&amp;quot;&amp;gt;&amp;lt;br&amp;gt;
	Phone&amp;lt;input type=&amp;quot;Text&amp;quot; size=&amp;quot;50px&amp;quot; name=&amp;quot;phone&amp;quot;&amp;gt;&amp;lt;br&amp;gt;
	Fax&amp;lt;input type=&amp;quot;Text&amp;quot; size=&amp;quot;50px&amp;quot; name=&amp;quot;fax&amp;quot;&amp;gt;&amp;lt;br&amp;gt;
	Email&amp;lt;input type=&amp;quot;Text&amp;quot; size=&amp;quot;50px&amp;quot; name=&amp;quot;email&amp;quot;&amp;gt;&amp;lt;br&amp;gt;
	Web Site&amp;lt;input type=&amp;quot;Text&amp;quot; size=&amp;quot;50px&amp;quot; name=&amp;quot;webpage&amp;quot;&amp;gt;&amp;lt;br&amp;gt;
	




  &amp;lt;input type=&amp;quot;Submit&amp;quot; name=&amp;quot;submit&amp;quot; value=&amp;quot;Enter information&amp;quot;&amp;gt;

  &amp;lt;/form&amp;gt;



  &amp;lt;?php



} // end if



?&amp;gt;



&amp;lt;/body&amp;gt;



&amp;lt;/html&amp;gt;&lt;/notextile&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class="typocode"&gt;&lt;pre&gt;&lt;code class="typocode_php "&gt;&lt;notextile&gt;//delete.php

&amp;lt;?php


include('includes/dbconnection.php');
        $newsid = $_GET['id'];
        $sql = &amp;quot;DELETE FROM Addresses WHERE id='$id' &amp;quot;
        $result = mysql_query($sql);


                     echo &amp;quot;&amp;lt;b&amp;gt;Deleted!&amp;lt;br&amp;gt;You'll be redirected to Home Page after (3) Seconds&amp;quot;;
 
                     echo &amp;quot;&amp;lt;meta http-equiv=Refresh content=3;url=index.php&amp;gt;&amp;quot;;
?&amp;gt;&lt;/notextile&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
the final step is to create the frontend&lt;br /&gt;

I cannot assure anyone that this code will not need to be edited.&lt;br /&gt;
I changed some things around to make it less specific and I may have overlooked something&lt;br /&gt;
Just post a comment and I can help anyone that needs to get this working.&lt;br /&gt;
The following file is call address_search.php and can be downloaded &lt;a href="http://weblog.commandlinejunkie.com/files/address_search.php.zip"&gt;HERE&lt;/a&gt;&lt;br /&gt;
&lt;div class="typocode"&gt;&lt;pre&gt;&lt;code class="typocode_PHP "&gt;&lt;notextile&gt;&amp;lt;?php
require (&amp;quot;includes/distcal.php&amp;quot;);
?&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;title&amp;gt;Search&amp;lt;/title&amp;gt;
&amp;lt;meta http-equiv=&amp;quot;Content-Type&amp;quot; content=&amp;quot;text/html; charset=iso-8859-1&amp;quot;&amp;gt;

&amp;lt;/head&amp;gt;

&amp;lt;body bgcolor=&amp;quot;#FFFFFF&amp;quot; text=&amp;quot;#000000&amp;quot; leftmargin=&amp;quot;0&amp;quot; topmargin=&amp;quot;10&amp;quot; marginwidth=&amp;quot;0&amp;quot; marginheight=&amp;quot;10&amp;quot;&amp;gt;
&amp;lt;table width=&amp;quot;740&amp;quot; border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;
	&amp;lt;tr&amp;gt;
		&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;
	&amp;lt;/tr&amp;gt;

	&amp;lt;tr&amp;gt; 
		
	&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;740&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;
	&amp;lt;/tr&amp;gt;
	&amp;lt;tr&amp;gt; 
		&amp;lt;td valign=&amp;quot;top&amp;quot; align=&amp;quot;right&amp;quot;&amp;gt; 
		&amp;lt;table width=&amp;quot;740&amp;quot; border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot;&amp;gt;
			&amp;lt;tr&amp;gt; 
				&amp;lt;td width=&amp;quot;1&amp;quot; bgcolor=&amp;quot;#171717&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;
				
		  &amp;lt;td valign=&amp;quot;middle&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt; &amp;lt;br&amp;gt;
			&amp;lt;table border=&amp;quot;0&amp;quot; style=&amp;quot;{border:1px solid #474747;}&amp;quot; color=&amp;quot;#474747&amp;quot;&amp;gt;
				&amp;lt;tr&amp;gt;
					&amp;lt;td valign=&amp;quot;top&amp;quot; align=&amp;quot;center&amp;quot; class=&amp;quot;form-header&amp;quot;&amp;gt;
				&amp;lt;?php
				if (isset($_POST[&amp;quot;address&amp;quot;]))
				{
					$address_physical = $_POST[&amp;quot;address&amp;quot;];
					require('includes/dbconnection.php');
					if($conn)
					
					{	//Your Key Here
						$key = &amp;quot;&amp;quot;;
						$address = urlencode($address_physical);
						
						$url = &amp;quot;http://maps.google.com/maps/geo?q=&amp;quot;.$address.&amp;quot;&amp;amp;output=xml&amp;amp;key=&amp;quot;.$key;
						//Set up a CURL request, telling it not to spit back headers, and to throw out a user agent.
						$ch = curl_init();
						curl_setopt($ch, CURLOPT_URL, $url);
						curl_setopt($ch, CURLOPT_HEADER,0); //Change this to a 1 to return headers
						curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
						curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
						curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
						$data = curl_exec($ch);
						curl_close($ch);
						$xml = new SimpleXMLElement($data);

						$xml_data = explode(&amp;quot;,&amp;quot;,$xml-&amp;gt;Response-&amp;gt;Placemark-&amp;gt;Point-&amp;gt;coordinates);
						$latitude = $xml_data[1];
						$longitude = $xml_data[0];
						

							$sqlx=&amp;quot;select name,latitude,longitude, address_physical, phone, webpage, email from Addresses&amp;quot;;
							//echo $sqlx;
							$resultx=mysql_query($sqlx);
							$i = 0;
							while($rowx=mysql_fetch_row($resultx))
							{
							$name = $rowx[0];
							$latitude2 =$rowx[1];
							$longitude2 = $rowx[2];
							 $where = $rowx[3];
						        $phone = $rowx[4];
						        $webpage = $rowx[5];
						        $email = $rowx[6];
								$distance = distance($latitude2,$longitude2,$latitude,$longitude);
				
								if($distance&amp;lt;30)
								{
		                            $namearray = $name;
									$dis[$j]=$distance;
									$i++;
									$distance_rounded = round($distance);
								echo $namearray . &amp;quot;&amp;lt;br /&amp;gt;&amp;quot;;
								echo $phone . &amp;quot;&amp;lt;br /&amp;gt;&amp;quot;;
								echo $where . &amp;quot;&amp;lt;br /&amp;gt;&amp;quot;;
								echo &amp;quot;&amp;lt;a href=mailto:&amp;quot; . $email . &amp;quot;&amp;gt;&amp;quot; . $email . &amp;quot;&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&amp;quot; ;
								echo &amp;quot;&amp;lt;a href=&amp;quot; . $webpage. &amp;quot;&amp;gt;&amp;quot; . $webpage . &amp;quot;&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;&amp;quot;;
			                    echo (&amp;quot;$distance_rounded&amp;quot;.&amp;quot; MI. &amp;quot;);
								}?&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;
&amp;lt;?php
							}//end of while loop


						
							?&amp;gt;
							&amp;lt;/td&amp;gt;
							&amp;lt;/tr&amp;gt;
							&amp;lt;/table&amp;gt;
							&amp;lt;?php

						}
						else
						{
							?&amp;gt;
							
							
							&amp;lt;span style='{font-size:12px; color:#474747;}'&amp;gt;
							No Results Returned for your Address.
							&amp;lt;/span&amp;gt;
							&amp;lt;br&amp;gt;
							Please enter your Address to locate a whatever near you.
							&amp;lt;form method=&amp;quot;post&amp;quot; action=&amp;quot;address_search.php&amp;quot; id=&amp;quot;form1&amp;quot; name=&amp;quot;form1&amp;quot;&amp;gt;
							&amp;lt;font class=&amp;quot;form-header&amp;quot;&amp;gt;Street Address:&amp;lt;/font&amp;gt; 
							&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;address&amp;quot; size=&amp;quot;20&amp;quot;&amp;gt;
							&amp;amp;nbsp;&amp;amp;nbsp; 
							&amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;Find&amp;quot; id=&amp;quot;submit1&amp;quot; name=&amp;quot;submit1&amp;quot;&amp;gt;
							&amp;lt;/form&amp;gt;
							&amp;lt;/td&amp;gt;
							&amp;lt;/tr&amp;gt;
							&amp;lt;/table&amp;gt;
							&amp;lt;?php
						}
						mysql_close ($conn);
					} //end conn here
				
			
				else
				{
				?&amp;gt;
				Please enter your address to locate a whatever near you.
				&amp;lt;form method=&amp;quot;post&amp;quot; action=&amp;quot;address_search.php&amp;quot; id=&amp;quot;form1&amp;quot; name=&amp;quot;form1&amp;quot;&amp;gt;
				&amp;lt;font class=&amp;quot;form-header&amp;quot;&amp;gt;Street Address:&amp;lt;/font&amp;gt; 
				&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;address&amp;quot; size=&amp;quot;20&amp;quot;&amp;gt;
				&amp;amp;nbsp;&amp;amp;nbsp; 
				&amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;Find&amp;quot; id=&amp;quot;submit1&amp;quot; name=&amp;quot;submit1&amp;quot;&amp;gt;
				&amp;lt;/form&amp;gt;
				&amp;lt;/td&amp;gt;
			&amp;lt;/tr&amp;gt;
		&amp;lt;/table&amp;gt;
	&amp;lt;br&amp;gt;
	&amp;lt;?php
	}
	?&amp;gt;
				&amp;lt;/td&amp;gt;
				&amp;lt;td width=&amp;quot;1&amp;quot; bgcolor=&amp;quot;#171717&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;
			&amp;lt;/tr&amp;gt;
		&amp;lt;/table&amp;gt;
		&amp;lt;/td&amp;gt;
	&amp;lt;/tr&amp;gt;
	&amp;lt;tr&amp;gt;
		&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;
	&amp;lt;/tr&amp;gt;
&amp;lt;/table&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/notextile&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
I actually had to integrate this Into Joomla, but that is another story..&lt;br /&gt;
As always, hope this helps someone .. leave a comment if you need help or can offer suggestions&lt;br /&gt;
&lt;br /&gt;
One last note...&lt;br /&gt;
Please make sure you have PHP5 installed or else you will have to rethink the way&lt;br /&gt;
I am getting the xml output into lat and long&lt;br /&gt;
SimpleXMLElement is only in php5&lt;br /&gt;
If you have php4 installed it will return Fatal Error: can not instantiate non-existent class SimpleXMLElement&lt;br /&gt;
&lt;br /&gt;
For instruction on how to use php's dom function or incorporating maps with markers and a radius search&lt;br /&gt;
You can check out&lt;br /&gt;&lt;a href="http://code.google.com/support/bin/answer.py?answer=87134&amp;topic=11364"&gt;THIS&lt;/a&gt;&lt;br /&gt;




</description>
      <pubDate>Wed, 20 Feb 2008 14:32:00 -0800</pubDate>
      <guid isPermaLink="false">urn:uuid:d9967882-8e3b-4660-9392-08543b665d08</guid>
      <author>admin</author>
      <link>http://weblog.commandlinejunkie.com/articles/2008/02/20/store-locator-using-php-mysql-and-google-maps-geocoding</link>
      <category>PHP</category>
      <category>PHP</category>
      <category>Mysql</category>
      <category>Google</category>
      <category>Maps</category>
      <category>Geocoding</category>
      <category>Store</category>
      <category>Locator</category>
      <enclosure type="application/zip" length="7260" url="http://weblog.commandlinejunkie.com/files/form.zip"/>
    </item>
    <item>
      <title>Previous/Next Links with calendar_helper plugin</title>
      <description>You may have to hack this a little to get it to do exactly what you want ..&lt;br /&gt;
The following will go forward to future years but not will go back beyond the current year.&lt;br /&gt;
It is not the prettiest thing, but
this is what I was required to do and am just offering up the code as a help.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="typocode"&gt;&lt;pre&gt;&lt;code class="typocode_ruby "&gt;&lt;notextile&gt;&lt;span class="comment"&gt;##  put this in your controller&lt;/span&gt;

  &lt;span class="keyword"&gt;def &lt;/span&gt;&lt;span class="method"&gt;setvars&lt;/span&gt;
    &lt;span class="comment"&gt;# You could store this in a Time/Date object instead of two separate integers&lt;/span&gt;
    &lt;span class="ident"&gt;session&lt;/span&gt;&lt;span class="punct"&gt;[&lt;/span&gt;&lt;span class="symbol"&gt;:year&lt;/span&gt;&lt;span class="punct"&gt;]&lt;/span&gt; &lt;span class="punct"&gt;||=&lt;/span&gt; &lt;span class="constant"&gt;Time&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;now&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;year&lt;/span&gt;
    &lt;span class="ident"&gt;session&lt;/span&gt;&lt;span class="punct"&gt;[&lt;/span&gt;&lt;span class="symbol"&gt;:month&lt;/span&gt;&lt;span class="punct"&gt;]&lt;/span&gt; &lt;span class="punct"&gt;||=&lt;/span&gt; &lt;span class="constant"&gt;Time&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;now&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;month&lt;/span&gt;
    &lt;span class="global"&gt;$user&lt;/span&gt; &lt;span class="punct"&gt;=&lt;/span&gt; &lt;span class="constant"&gt;User&lt;/span&gt;
  &lt;span class="keyword"&gt;end&lt;/span&gt;

  &lt;span class="keyword"&gt;def &lt;/span&gt;&lt;span class="method"&gt;nnext&lt;/span&gt;

    &lt;span class="ident"&gt;session&lt;/span&gt;&lt;span class="punct"&gt;[&lt;/span&gt;&lt;span class="symbol"&gt;:month&lt;/span&gt;&lt;span class="punct"&gt;]&lt;/span&gt; &lt;span class="punct"&gt;+=&lt;/span&gt; &lt;span class="number"&gt;1&lt;/span&gt;
    &lt;span class="ident"&gt;render&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt;&lt;span class="symbol"&gt;:layout&lt;/span&gt; &lt;span class="punct"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="constant"&gt;false&lt;/span&gt;&lt;span class="punct"&gt;)&lt;/span&gt;

&lt;span class="keyword"&gt;end&lt;/span&gt;

  &lt;span class="keyword"&gt;def &lt;/span&gt;&lt;span class="method"&gt;nprev&lt;/span&gt;
    &lt;span class="ident"&gt;session&lt;/span&gt;&lt;span class="punct"&gt;[&lt;/span&gt;&lt;span class="symbol"&gt;:month&lt;/span&gt;&lt;span class="punct"&gt;]&lt;/span&gt; &lt;span class="punct"&gt;-=&lt;/span&gt; &lt;span class="number"&gt;1&lt;/span&gt;
    &lt;span class="ident"&gt;render&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt;&lt;span class="symbol"&gt;:layout&lt;/span&gt; &lt;span class="punct"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="constant"&gt;false&lt;/span&gt;&lt;span class="punct"&gt;)&lt;/span&gt;

 &lt;span class="keyword"&gt;end&lt;/span&gt;

&lt;span class="comment"&gt;#  I put the following in application.rb to use globally&lt;/span&gt;

&lt;span class="global"&gt;$year&lt;/span&gt; &lt;span class="punct"&gt;=&lt;/span&gt; &lt;span class="constant"&gt;Time&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;now&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;year&lt;/span&gt;
&lt;span class="global"&gt;$month&lt;/span&gt; &lt;span class="punct"&gt;=&lt;/span&gt; &lt;span class="constant"&gt;Time&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;now&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;month&lt;/span&gt;&lt;/notextile&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="typocode"&gt;&lt;pre&gt;&lt;code class="typocode_ruby "&gt;&lt;notextile&gt;
&lt;span class="comment"&gt;## this can go in your view ..&lt;/span&gt;

&lt;span class="punct"&gt;&amp;lt;&lt;/span&gt;&lt;span class="ident"&gt;div&lt;/span&gt; &lt;span class="ident"&gt;id&lt;/span&gt;&lt;span class="punct"&gt;=&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;mini-calendar&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;&amp;gt;&lt;/span&gt;


&lt;span class="punct"&gt;&amp;lt;%=&lt;/span&gt;&lt;span class="string"&gt; calendar(:year &lt;/span&gt;&lt;span class="punct"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="global"&gt;$year&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt; &lt;span class="symbol"&gt;:month&lt;/span&gt; &lt;span class="punct"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="global"&gt;$month&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt; &lt;span class="symbol"&gt;:table_class&lt;/span&gt; &lt;span class="punct"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="punct"&gt;&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;calendar_helper&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;)&lt;/span&gt; &lt;span class="keyword"&gt;do&lt;/span&gt; &lt;span class="punct"&gt;|&lt;/span&gt;&lt;span class="ident"&gt;d&lt;/span&gt;&lt;span class="punct"&gt;|&lt;/span&gt;
	&lt;span class="punct"&gt;&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;&amp;lt;a href='/calendars/&lt;span class="expr"&gt;#{d.year}&lt;/span&gt;/&lt;span class="expr"&gt;#{d.mon}&lt;/span&gt;/&lt;span class="expr"&gt;#{d.mday}&lt;/span&gt;'&amp;gt;&lt;span class="expr"&gt;#{d.mday}&lt;/span&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;&lt;/span&gt;
	&lt;span class="keyword"&gt;end&lt;/span&gt; 
   &lt;span class="punct"&gt;%&amp;gt;&lt;/span&gt;&lt;span class="string"&gt;

	&amp;lt;/div&lt;/span&gt;&lt;span class="punct"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="punct"&gt;&amp;lt;%=&lt;/span&gt;&lt;span class="string"&gt; link_to_remote(&amp;quot;Next&amp;quot;), :update &lt;/span&gt;&lt;span class="punct"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="punct"&gt;'&lt;/span&gt;&lt;span class="string"&gt;mini-calendar&lt;/span&gt;&lt;span class="punct"&gt;',&lt;/span&gt; &lt;span class="symbol"&gt;:url&lt;/span&gt; &lt;span class="punct"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="punct"&gt;{&lt;/span&gt; &lt;span class="symbol"&gt;:controller&lt;/span&gt; &lt;span class="punct"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="punct"&gt;&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;your_controller&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;,&lt;/span&gt; &lt;span class="symbol"&gt;:action&lt;/span&gt; &lt;span class="punct"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="symbol"&gt;:nprev&lt;/span&gt;&lt;span class="punct"&gt;})&lt;/span&gt; &lt;span class="punct"&gt;%&amp;gt;&lt;/span&gt;&lt;span class="string"&gt;
&amp;lt;%= link_to_remote(&amp;quot;Previous&amp;quot;), :update =&lt;/span&gt;&lt;span class="punct"&gt;&amp;gt;&lt;/span&gt; &lt;span class="punct"&gt;'&lt;/span&gt;&lt;span class="string"&gt;mini-calendar&lt;/span&gt;&lt;span class="punct"&gt;',&lt;/span&gt; &lt;span class="symbol"&gt;:url&lt;/span&gt; &lt;span class="punct"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="punct"&gt;{&lt;/span&gt; &lt;span class="symbol"&gt;:controller&lt;/span&gt; &lt;span class="punct"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="punct"&gt;&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;your_controller&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;,&lt;/span&gt; &lt;span class="symbol"&gt;:action&lt;/span&gt; &lt;span class="punct"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="symbol"&gt;:nnext&lt;/span&gt;&lt;span class="punct"&gt;})&lt;/span&gt; &lt;span class="punct"&gt;%&amp;gt;&lt;/span&gt;&lt;span class="string"&gt;&lt;/span&gt;&lt;/notextile&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="typocode"&gt;&lt;pre&gt;&lt;code class="typocode_ruby "&gt;&lt;notextile&gt;&lt;span class="comment"&gt;## you will then have to create two new views name nnext and nprev&lt;/span&gt;

&lt;span class="comment"&gt;#  nnext&lt;/span&gt;

&lt;span class="punct"&gt;&amp;lt;%&lt;/span&gt; &lt;span class="keyword"&gt;case&lt;/span&gt; &lt;span class="punct"&gt;-%&amp;gt;&lt;/span&gt;&lt;span class="string"&gt;
&amp;lt;% when session[:month] === 0 %&lt;/span&gt;&lt;span class="punct"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="punct"&gt;&amp;lt;%=&lt;/span&gt;&lt;span class="string"&gt; calendar(:year &lt;/span&gt;&lt;span class="punct"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="global"&gt;$year&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt; &lt;span class="symbol"&gt;:month&lt;/span&gt; &lt;span class="punct"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="ident"&gt;session&lt;/span&gt;&lt;span class="punct"&gt;[&lt;/span&gt;&lt;span class="symbol"&gt;:month&lt;/span&gt;&lt;span class="punct"&gt;]+&lt;/span&gt;&lt;span class="number"&gt;1&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt; &lt;span class="symbol"&gt;:table_class&lt;/span&gt; &lt;span class="punct"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="punct"&gt;&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;calendar_helper&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;)&lt;/span&gt; &lt;span class="keyword"&gt;do&lt;/span&gt; &lt;span class="punct"&gt;|&lt;/span&gt;&lt;span class="ident"&gt;d&lt;/span&gt;&lt;span class="punct"&gt;|&lt;/span&gt;
	&lt;span class="punct"&gt;&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;&amp;lt;a href='/calendars/&lt;span class="expr"&gt;#{d.year}&lt;/span&gt;/&lt;span class="expr"&gt;#{d.mon}&lt;/span&gt;/&lt;span class="expr"&gt;#{d.mday}&lt;/span&gt;'&amp;gt;&lt;span class="expr"&gt;#{d.mday}&lt;/span&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;&lt;/span&gt;
	&lt;span class="keyword"&gt;end&lt;/span&gt; 
&lt;span class="punct"&gt;%&amp;gt;&lt;/span&gt;&lt;span class="string"&gt;

&amp;lt;% when session[:month] &lt;/span&gt;&lt;span class="punct"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="number"&gt;13&lt;/span&gt; &lt;span class="punct"&gt;%&amp;gt;&lt;/span&gt;&lt;span class="string"&gt;

&amp;lt;%= calendar(:year =&lt;/span&gt;&lt;span class="punct"&gt;&amp;gt;&lt;/span&gt; &lt;span class="global"&gt;$year&lt;/span&gt;&lt;span class="punct"&gt;+&lt;/span&gt;&lt;span class="number"&gt;1&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt; &lt;span class="symbol"&gt;:month&lt;/span&gt; &lt;span class="punct"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="ident"&gt;session&lt;/span&gt;&lt;span class="punct"&gt;[&lt;/span&gt;&lt;span class="symbol"&gt;:month&lt;/span&gt;&lt;span class="punct"&gt;]-&lt;/span&gt;&lt;span class="number"&gt;12&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt; &lt;span class="symbol"&gt;:table_class&lt;/span&gt; &lt;span class="punct"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="punct"&gt;&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;calendar_helper&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;)&lt;/span&gt; &lt;span class="keyword"&gt;do&lt;/span&gt; &lt;span class="punct"&gt;|&lt;/span&gt;&lt;span class="ident"&gt;d&lt;/span&gt;&lt;span class="punct"&gt;|&lt;/span&gt;
	&lt;span class="punct"&gt;&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;&amp;lt;a href='/calendars/&lt;span class="expr"&gt;#{d.year}&lt;/span&gt;/&lt;span class="expr"&gt;#{d.mon}&lt;/span&gt;/&lt;span class="expr"&gt;#{d.mday}&lt;/span&gt;'&amp;gt;&lt;span class="expr"&gt;#{d.mday}&lt;/span&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;&lt;/span&gt;
	&lt;span class="keyword"&gt;end&lt;/span&gt; 
&lt;span class="punct"&gt;%&amp;gt;&lt;/span&gt;&lt;span class="string"&gt;


&amp;lt;% else -%&lt;/span&gt;&lt;span class="punct"&gt;&amp;gt;&lt;/span&gt;

&lt;span class="punct"&gt;&amp;lt;%=&lt;/span&gt;&lt;span class="string"&gt; calendar(:year &lt;/span&gt;&lt;span class="punct"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="global"&gt;$year&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt; &lt;span class="symbol"&gt;:month&lt;/span&gt; &lt;span class="punct"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="ident"&gt;session&lt;/span&gt;&lt;span class="punct"&gt;[&lt;/span&gt;&lt;span class="symbol"&gt;:month&lt;/span&gt;&lt;span class="punct"&gt;],&lt;/span&gt; &lt;span class="symbol"&gt;:table_class&lt;/span&gt; &lt;span class="punct"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="punct"&gt;&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;calendar_helper&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;)&lt;/span&gt; &lt;span class="keyword"&gt;do&lt;/span&gt; &lt;span class="punct"&gt;|&lt;/span&gt;&lt;span class="ident"&gt;d&lt;/span&gt;&lt;span class="punct"&gt;|&lt;/span&gt;
	&lt;span class="punct"&gt;&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;&amp;lt;a href='/calendars/&lt;span class="expr"&gt;#{d.year}&lt;/span&gt;/&lt;span class="expr"&gt;#{d.mon}&lt;/span&gt;/&lt;span class="expr"&gt;#{d.mday}&lt;/span&gt;'&amp;gt;&lt;span class="expr"&gt;#{d.mday}&lt;/span&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;&lt;/span&gt;
	&lt;span class="keyword"&gt;end&lt;/span&gt; 
&lt;span class="punct"&gt;%&amp;gt;&lt;/span&gt;&lt;span class="string"&gt;
&amp;lt;% end -%&lt;/span&gt;&lt;span class="punct"&gt;&amp;gt;&lt;/span&gt;&lt;/notextile&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="typocode"&gt;&lt;pre&gt;&lt;code class="typocode_ruby "&gt;&lt;notextile&gt;

&lt;span class="comment"&gt;#nprev&lt;/span&gt;


&lt;span class="punct"&gt;&amp;lt;%&lt;/span&gt; &lt;span class="keyword"&gt;case&lt;/span&gt; &lt;span class="punct"&gt;-%&amp;gt;&lt;/span&gt;&lt;span class="string"&gt;
&amp;lt;% when session[:month] === 0 %&lt;/span&gt;&lt;span class="punct"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="punct"&gt;&amp;lt;%=&lt;/span&gt;&lt;span class="string"&gt; calendar(:year &lt;/span&gt;&lt;span class="punct"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="global"&gt;$year&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt; &lt;span class="symbol"&gt;:month&lt;/span&gt; &lt;span class="punct"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="ident"&gt;session&lt;/span&gt;&lt;span class="punct"&gt;[&lt;/span&gt;&lt;span class="symbol"&gt;:month&lt;/span&gt;&lt;span class="punct"&gt;]+&lt;/span&gt;&lt;span class="number"&gt;1&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt; &lt;span class="symbol"&gt;:table_class&lt;/span&gt; &lt;span class="punct"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="punct"&gt;&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;calendar_helper&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;)&lt;/span&gt; &lt;span class="keyword"&gt;do&lt;/span&gt; &lt;span class="punct"&gt;|&lt;/span&gt;&lt;span class="ident"&gt;d&lt;/span&gt;&lt;span class="punct"&gt;|&lt;/span&gt;
	&lt;span class="punct"&gt;&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;&amp;lt;a href='/calendars/&lt;span class="expr"&gt;#{d.year}&lt;/span&gt;/&lt;span class="expr"&gt;#{d.mon}&lt;/span&gt;/&lt;span class="expr"&gt;#{d.mday}&lt;/span&gt;'&amp;gt;&lt;span class="expr"&gt;#{d.mday}&lt;/span&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;&lt;/span&gt;
	&lt;span class="keyword"&gt;end&lt;/span&gt; 
&lt;span class="punct"&gt;%&amp;gt;&lt;/span&gt;&lt;span class="string"&gt;

&amp;lt;% when session[:month] &lt;/span&gt;&lt;span class="punct"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="number"&gt;13&lt;/span&gt; &lt;span class="punct"&gt;%&amp;gt;&lt;/span&gt;&lt;span class="string"&gt;
&amp;lt;%= calendar(:year =&lt;/span&gt;&lt;span class="punct"&gt;&amp;gt;&lt;/span&gt; &lt;span class="global"&gt;$year&lt;/span&gt;&lt;span class="punct"&gt;+&lt;/span&gt;&lt;span class="number"&gt;1&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt; &lt;span class="symbol"&gt;:month&lt;/span&gt; &lt;span class="punct"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="ident"&gt;session&lt;/span&gt;&lt;span class="punct"&gt;[&lt;/span&gt;&lt;span class="symbol"&gt;:month&lt;/span&gt;&lt;span class="punct"&gt;]-&lt;/span&gt;&lt;span class="number"&gt;12&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt; &lt;span class="symbol"&gt;:table_class&lt;/span&gt; &lt;span class="punct"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="punct"&gt;&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;calendar_helper&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;)&lt;/span&gt; &lt;span class="keyword"&gt;do&lt;/span&gt; &lt;span class="punct"&gt;|&lt;/span&gt;&lt;span class="ident"&gt;d&lt;/span&gt;&lt;span class="punct"&gt;|&lt;/span&gt;
	&lt;span class="punct"&gt;&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;&amp;lt;a href='/calendars/&lt;span class="expr"&gt;#{d.year}&lt;/span&gt;/&lt;span class="expr"&gt;#{d.mon}&lt;/span&gt;/&lt;span class="expr"&gt;#{d.mday}&lt;/span&gt;'&amp;gt;&lt;span class="expr"&gt;#{d.mday}&lt;/span&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;&lt;/span&gt;
	&lt;span class="keyword"&gt;end&lt;/span&gt; 
&lt;span class="punct"&gt;%&amp;gt;&lt;/span&gt;&lt;span class="string"&gt;
&amp;lt;% else -%&lt;/span&gt;&lt;span class="punct"&gt;&amp;gt;&lt;/span&gt;


&lt;span class="punct"&gt;&amp;lt;%=&lt;/span&gt;&lt;span class="string"&gt; calendar(:year &lt;/span&gt;&lt;span class="punct"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="global"&gt;$year&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt; &lt;span class="symbol"&gt;:month&lt;/span&gt; &lt;span class="punct"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="ident"&gt;session&lt;/span&gt;&lt;span class="punct"&gt;[&lt;/span&gt;&lt;span class="symbol"&gt;:month&lt;/span&gt;&lt;span class="punct"&gt;],&lt;/span&gt; &lt;span class="symbol"&gt;:table_class&lt;/span&gt; &lt;span class="punct"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="punct"&gt;&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;calendar_helper&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;)&lt;/span&gt; &lt;span class="keyword"&gt;do&lt;/span&gt; &lt;span class="punct"&gt;|&lt;/span&gt;&lt;span class="ident"&gt;d&lt;/span&gt;&lt;span class="punct"&gt;|&lt;/span&gt;
	&lt;span class="punct"&gt;&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;&amp;lt;a href='/calendars/&lt;span class="expr"&gt;#{d.year}&lt;/span&gt;/&lt;span class="expr"&gt;#{d.mon}&lt;/span&gt;/&lt;span class="expr"&gt;#{d.mday}&lt;/span&gt;'&amp;gt;&lt;span class="expr"&gt;#{d.mday}&lt;/span&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;&lt;/span&gt;
	&lt;span class="keyword"&gt;end&lt;/span&gt; 
&lt;span class="punct"&gt;%&amp;gt;&lt;/span&gt;&lt;span class="string"&gt;

&amp;lt;% end -%&lt;/span&gt;&lt;span class="punct"&gt;&amp;gt;&lt;/span&gt;

&lt;/notextile&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;

&lt;br /&gt;
I would love to know how to do this without putting the logic inside the view like this.
&lt;br /&gt;
As always, if anyone can suggest a better way.. I am game.&lt;br /&gt;
Please leave a comment.

&lt;br /&gt;

</description>
      <pubDate>Sat, 09 Feb 2008 19:35:00 -0800</pubDate>
      <guid isPermaLink="false">urn:uuid:74d90d5e-983c-4b86-9fa2-e234ca54844a</guid>
      <author>admin</author>
      <link>http://weblog.commandlinejunkie.com/articles/2008/02/09/previous-next-links-with-calendar_helper-plugin</link>
      <category>Ruby on Rails</category>
      <category>calendar_helper</category>
      <category>Rails</category>
    </item>
    <item>
      <title>A to Z pagination in rails with classic_pagination</title>
      <description>&lt;div class="typocode"&gt;&lt;pre&gt;&lt;code class="typocode_ruby "&gt;&lt;notextile&gt;&lt;span class="comment"&gt;##//  first off add this to your controller and make sure &lt;/span&gt;
&lt;span class="comment"&gt;##//  you have the classic_pagination plugin installed if you are using rails 2.0.x&lt;/span&gt;
&lt;span class="comment"&gt;##//  this is assuming you are wanting to list your users &lt;/span&gt;
&lt;span class="comment"&gt;##//  and you have fields named name_last and name_first&lt;/span&gt;
  &lt;span class="keyword"&gt;def &lt;/span&gt;&lt;span class="method"&gt;index&lt;/span&gt;
    
    &lt;span class="ident"&gt;conditions&lt;/span&gt; &lt;span class="punct"&gt;=&lt;/span&gt; &lt;span class="ident"&gt;create_conditions&lt;/span&gt; &lt;span class="keyword"&gt;do&lt;/span&gt; &lt;span class="punct"&gt;|&lt;/span&gt; &lt;span class="ident"&gt;c&lt;/span&gt; &lt;span class="punct"&gt;|&lt;/span&gt;
      
      &lt;span class="comment"&gt;# Users&lt;/span&gt;
      &lt;span class="ident"&gt;c&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;and&lt;/span&gt; &lt;span class="punct"&gt;[&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;( name_last LIKE ?  )&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;,&lt;/span&gt;  &lt;span class="ident"&gt;params&lt;/span&gt;&lt;span class="punct"&gt;[&lt;/span&gt;&lt;span class="symbol"&gt;:q&lt;/span&gt;&lt;span class="punct"&gt;]&lt;/span&gt; &lt;span class="punct"&gt;+&lt;/span&gt; &lt;span class="punct"&gt;'&lt;/span&gt;&lt;span class="string"&gt;%&lt;/span&gt;&lt;span class="punct"&gt;']&lt;/span&gt; 
      &lt;span class="keyword"&gt;end&lt;/span&gt;
      
    &lt;span class="attribute"&gt;@pages&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt; &lt;span class="attribute"&gt;@users&lt;/span&gt; &lt;span class="punct"&gt;=&lt;/span&gt; &lt;span class="ident"&gt;paginate&lt;/span&gt; &lt;span class="symbol"&gt;:users&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt; &lt;span class="symbol"&gt;:per_page&lt;/span&gt; &lt;span class="punct"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="number"&gt;15&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt; &lt;span class="symbol"&gt;:conditions&lt;/span&gt; &lt;span class="punct"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="ident"&gt;conditions&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt; &lt;span class="symbol"&gt;:order&lt;/span&gt; &lt;span class="punct"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="punct"&gt;&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;name_last, name_first&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;&lt;/span&gt;

  &lt;span class="keyword"&gt;end&lt;/span&gt;&lt;/notextile&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;br /&gt;

&lt;div class="typocode"&gt;&lt;pre&gt;&lt;code class="typocode_ruby "&gt;&lt;notextile&gt;
&lt;span class="comment"&gt;#  add this to your view&lt;/span&gt;
&lt;span class="comment"&gt;#  I did this at the top of my list&lt;/span&gt;
&lt;span class="comment"&gt;#  To paginate your A-Z results by 15 users per page&lt;/span&gt;
&lt;span class="comment"&gt;#  you will need to add your pagination links at the bottom of your list&lt;/span&gt;

&lt;span class="punct"&gt;&amp;lt;&lt;/span&gt;&lt;span class="ident"&gt;div&lt;/span&gt; &lt;span class="keyword"&gt;class&lt;/span&gt;&lt;span class="punct"&gt;=&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;pagination-links&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span class="ident"&gt;a&lt;/span&gt; &lt;span class="ident"&gt;href&lt;/span&gt;&lt;span class="punct"&gt;=&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;users?q=A&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;&amp;gt;&lt;/span&gt;&lt;span class="constant"&gt;A&lt;/span&gt;&lt;span class="punct"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="regex"&gt;a&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;a href=&amp;quot;users?q=B&amp;quot;&amp;gt;B&amp;lt;&lt;/span&gt;&lt;span class="punct"&gt;/&lt;/span&gt;&lt;span class="ident"&gt;a&lt;/span&gt;&lt;span class="punct"&gt;&amp;gt;&amp;amp;&lt;/span&gt;&lt;span class="ident"&gt;nbsp&lt;/span&gt;&lt;span class="punct"&gt;;&amp;amp;&lt;/span&gt;&lt;span class="ident"&gt;nbsp&lt;/span&gt;&lt;span class="punct"&gt;;&amp;lt;&lt;/span&gt;&lt;span class="ident"&gt;a&lt;/span&gt; &lt;span class="ident"&gt;href&lt;/span&gt;&lt;span class="punct"&gt;=&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;users?q=C&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;&amp;gt;&lt;/span&gt;&lt;span class="constant"&gt;C&lt;/span&gt;&lt;span class="punct"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="regex"&gt;a&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;a href=&amp;quot;users?q=D&amp;quot;&amp;gt;D&amp;lt;&lt;/span&gt;&lt;span class="punct"&gt;/&lt;/span&gt;&lt;span class="ident"&gt;a&lt;/span&gt;&lt;span class="punct"&gt;&amp;gt;&amp;amp;&lt;/span&gt;&lt;span class="ident"&gt;nbsp&lt;/span&gt;&lt;span class="punct"&gt;;&amp;amp;&lt;/span&gt;&lt;span class="ident"&gt;nbsp&lt;/span&gt;&lt;span class="punct"&gt;;&amp;lt;&lt;/span&gt;&lt;span class="ident"&gt;a&lt;/span&gt; &lt;span class="ident"&gt;href&lt;/span&gt;&lt;span class="punct"&gt;=&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;users?q=E&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;&amp;gt;&lt;/span&gt;&lt;span class="constant"&gt;E&lt;/span&gt;&lt;span class="punct"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="regex"&gt;a&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;a href=&amp;quot;users?q=F&amp;quot;&amp;gt;F&amp;lt;&lt;/span&gt;&lt;span class="punct"&gt;/&lt;/span&gt;&lt;span class="ident"&gt;a&lt;/span&gt;&lt;span class="punct"&gt;&amp;gt;&amp;amp;&lt;/span&gt;&lt;span class="ident"&gt;nbsp&lt;/span&gt;&lt;span class="punct"&gt;;&amp;amp;&lt;/span&gt;&lt;span class="ident"&gt;nbsp&lt;/span&gt;&lt;span class="punct"&gt;;&amp;lt;&lt;/span&gt;&lt;span class="ident"&gt;a&lt;/span&gt; &lt;span class="ident"&gt;href&lt;/span&gt;&lt;span class="punct"&gt;=&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;users?q=G&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;&amp;gt;&lt;/span&gt;&lt;span class="constant"&gt;G&lt;/span&gt;&lt;span class="punct"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="regex"&gt;a&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;a href=&amp;quot;users?q=H&amp;quot;&amp;gt;H&amp;lt;&lt;/span&gt;&lt;span class="punct"&gt;/&lt;/span&gt;&lt;span class="ident"&gt;a&lt;/span&gt;&lt;span class="punct"&gt;&amp;gt;&amp;amp;&lt;/span&gt;&lt;span class="ident"&gt;nbsp&lt;/span&gt;&lt;span class="punct"&gt;;&amp;amp;&lt;/span&gt;&lt;span class="ident"&gt;nbsp&lt;/span&gt;&lt;span class="punct"&gt;;&amp;lt;&lt;/span&gt;&lt;span class="ident"&gt;a&lt;/span&gt; &lt;span class="ident"&gt;href&lt;/span&gt;&lt;span class="punct"&gt;=&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;users?q=I&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;&amp;gt;&lt;/span&gt;&lt;span class="constant"&gt;I&lt;/span&gt;&lt;span class="punct"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="regex"&gt;a&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;a href=&amp;quot;users?q=J&amp;quot;&amp;gt;J&amp;lt;&lt;/span&gt;&lt;span class="punct"&gt;/&lt;/span&gt;&lt;span class="ident"&gt;a&lt;/span&gt;&lt;span class="punct"&gt;&amp;gt;&amp;amp;&lt;/span&gt;&lt;span class="ident"&gt;nbsp&lt;/span&gt;&lt;span class="punct"&gt;;&amp;amp;&lt;/span&gt;&lt;span class="ident"&gt;nbsp&lt;/span&gt;&lt;span class="punct"&gt;;&amp;lt;&lt;/span&gt;&lt;span class="ident"&gt;a&lt;/span&gt; &lt;span class="ident"&gt;href&lt;/span&gt;&lt;span class="punct"&gt;=&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;users?q=K&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;&amp;gt;&lt;/span&gt;&lt;span class="constant"&gt;K&lt;/span&gt;&lt;span class="punct"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="regex"&gt;a&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;a href=&amp;quot;users?q=L&amp;quot;&amp;gt;L&amp;lt;&lt;/span&gt;&lt;span class="punct"&gt;/&lt;/span&gt;&lt;span class="ident"&gt;a&lt;/span&gt;&lt;span class="punct"&gt;&amp;gt;&amp;amp;&lt;/span&gt;&lt;span class="ident"&gt;nbsp&lt;/span&gt;&lt;span class="punct"&gt;;&amp;amp;&lt;/span&gt;&lt;span class="ident"&gt;nbsp&lt;/span&gt;&lt;span class="punct"&gt;;&amp;lt;&lt;/span&gt;&lt;span class="ident"&gt;a&lt;/span&gt; &lt;span class="ident"&gt;href&lt;/span&gt;&lt;span class="punct"&gt;=&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;users?q=M&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;&amp;gt;&lt;/span&gt;&lt;span class="constant"&gt;M&lt;/span&gt;&lt;span class="punct"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="regex"&gt;a&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;a href=&amp;quot;users?q=N&amp;quot;&amp;gt;N&amp;lt;&lt;/span&gt;&lt;span class="punct"&gt;/&lt;/span&gt;&lt;span class="ident"&gt;a&lt;/span&gt;&lt;span class="punct"&gt;&amp;gt;&amp;amp;&lt;/span&gt;&lt;span class="ident"&gt;nbsp&lt;/span&gt;&lt;span class="punct"&gt;;&amp;amp;&lt;/span&gt;&lt;span class="ident"&gt;nbsp&lt;/span&gt;&lt;span class="punct"&gt;;&amp;lt;&lt;/span&gt;&lt;span class="ident"&gt;a&lt;/span&gt; &lt;span class="ident"&gt;href&lt;/span&gt;&lt;span class="punct"&gt;=&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;users?q=O&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;&amp;gt;&lt;/span&gt;&lt;span class="constant"&gt;O&lt;/span&gt;&lt;span class="punct"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="regex"&gt;a&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;a href=&amp;quot;users?q=P&amp;quot;&amp;gt;P&amp;lt;&lt;/span&gt;&lt;span class="punct"&gt;/&lt;/span&gt;&lt;span class="ident"&gt;a&lt;/span&gt;&lt;span class="punct"&gt;&amp;gt;&amp;amp;&lt;/span&gt;&lt;span class="ident"&gt;nbsp&lt;/span&gt;&lt;span class="punct"&gt;;&amp;amp;&lt;/span&gt;&lt;span class="ident"&gt;nbsp&lt;/span&gt;&lt;span class="punct"&gt;;&amp;lt;&lt;/span&gt;&lt;span class="ident"&gt;a&lt;/span&gt; &lt;span class="ident"&gt;href&lt;/span&gt;&lt;span class="punct"&gt;=&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;users?q=Q&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;&amp;gt;&lt;/span&gt;&lt;span class="constant"&gt;Q&lt;/span&gt;&lt;span class="punct"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="regex"&gt;a&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;a href=&amp;quot;users?q=R&amp;quot;&amp;gt;R&amp;lt;&lt;/span&gt;&lt;span class="punct"&gt;/&lt;/span&gt;&lt;span class="ident"&gt;a&lt;/span&gt;&lt;span class="punct"&gt;&amp;gt;&amp;amp;&lt;/span&gt;&lt;span class="ident"&gt;nbsp&lt;/span&gt;&lt;span class="punct"&gt;;&amp;amp;&lt;/span&gt;&lt;span class="ident"&gt;nbsp&lt;/span&gt;&lt;span class="punct"&gt;;&amp;lt;&lt;/span&gt;&lt;span class="ident"&gt;a&lt;/span&gt; &lt;span class="ident"&gt;href&lt;/span&gt;&lt;span class="punct"&gt;=&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;users?q=S&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;&amp;gt;&lt;/span&gt;&lt;span class="constant"&gt;S&lt;/span&gt;&lt;span class="punct"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="regex"&gt;a&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;a href=&amp;quot;users?q=T&amp;quot;&amp;gt;T&amp;lt;&lt;/span&gt;&lt;span class="punct"&gt;/&lt;/span&gt;&lt;span class="ident"&gt;a&lt;/span&gt;&lt;span class="punct"&gt;&amp;gt;&amp;amp;&lt;/span&gt;&lt;span class="ident"&gt;nbsp&lt;/span&gt;&lt;span class="punct"&gt;;&amp;amp;&lt;/span&gt;&lt;span class="ident"&gt;nbsp&lt;/span&gt;&lt;span class="punct"&gt;;&amp;lt;&lt;/span&gt;&lt;span class="ident"&gt;a&lt;/span&gt; &lt;span class="ident"&gt;href&lt;/span&gt;&lt;span class="punct"&gt;=&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;users?q=U&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;&amp;gt;&lt;/span&gt;&lt;span class="constant"&gt;U&lt;/span&gt;&lt;span class="punct"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="regex"&gt;a&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;a href=&amp;quot;users?q=V&amp;quot;&amp;gt;V&amp;lt;&lt;/span&gt;&lt;span class="punct"&gt;/&lt;/span&gt;&lt;span class="ident"&gt;a&lt;/span&gt;&lt;span class="punct"&gt;&amp;gt;&amp;amp;&lt;/span&gt;&lt;span class="ident"&gt;nbsp&lt;/span&gt;&lt;span class="punct"&gt;;&amp;amp;&lt;/span&gt;&lt;span class="ident"&gt;nbsp&lt;/span&gt;&lt;span class="punct"&gt;;&amp;lt;&lt;/span&gt;&lt;span class="ident"&gt;a&lt;/span&gt; &lt;span class="ident"&gt;href&lt;/span&gt;&lt;span class="punct"&gt;=&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;users?q=W&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;&amp;gt;&lt;/span&gt;&lt;span class="constant"&gt;W&lt;/span&gt;&lt;span class="punct"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="regex"&gt;a&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;a href=&amp;quot;users?q=X&amp;quot;&amp;gt;X&amp;lt;&lt;/span&gt;&lt;span class="punct"&gt;/&lt;/span&gt;&lt;span class="ident"&gt;a&lt;/span&gt;&lt;span class="punct"&gt;&amp;gt;&amp;amp;&lt;/span&gt;&lt;span class="ident"&gt;nbsp&lt;/span&gt;&lt;span class="punct"&gt;;&amp;amp;&lt;/span&gt;&lt;span class="ident"&gt;nbsp&lt;/span&gt;&lt;span class="punct"&gt;;&amp;lt;&lt;/span&gt;&lt;span class="ident"&gt;a&lt;/span&gt; &lt;span class="ident"&gt;href&lt;/span&gt;&lt;span class="punct"&gt;=&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;users?q=Y&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;&amp;gt;&lt;/span&gt;&lt;span class="constant"&gt;Y&lt;/span&gt;&lt;span class="punct"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="regex"&gt;a&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;a href=&amp;quot;users?q=Z&amp;quot;&amp;gt;Z&amp;lt;&lt;/span&gt;&lt;span class="punct"&gt;/&lt;/span&gt;&lt;span class="ident"&gt;a&lt;/span&gt;&lt;span class="punct"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="regex"&gt;div&amp;gt;





&amp;lt;div class=&amp;quot;pagination-links&amp;quot;&amp;gt;&amp;lt;%= pagination_links(@pages, :params =&amp;gt; { :q =&amp;gt; params[:q], :always_show_anchors =&amp;gt; false}) %&amp;gt;&amp;lt;&lt;/span&gt;&lt;span class="punct"&gt;/&lt;/span&gt;&lt;span class="ident"&gt;div&lt;/span&gt;&lt;span class="punct"&gt;&amp;gt;&lt;/span&gt;
&lt;/notextile&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

That's how I did it ...&lt;br /&gt;
If anyone else can tell me a better way to do this please add a comment.&lt;br /&gt;
there's not much on google about this.



</description>
      <pubDate>Sat, 09 Feb 2008 19:28:00 -0800</pubDate>
      <guid isPermaLink="false">urn:uuid:8babb671-a2ab-4344-8915-a5b213656e7d</guid>
      <author>admin</author>
      <link>http://weblog.commandlinejunkie.com/articles/2008/02/09/a-to-z-pagination-in-rails-with-classic_pagination</link>
      <category>Ruby on Rails</category>
      <category>Ruby</category>
      <category>on</category>
      <category>Rails</category>
      <category>Pagination</category>
    </item>
    <item>
      <title>Using newcocoa gem to build apps on os x</title>
      <description>You will need to build &lt;a href="http://rubycocoa.sourceforge.net/GettingStarted"&gt;RubyCocoa&lt;/a&gt; from source&lt;br /&gt;
and install the newcocoa gem with the following command&lt;br /&gt;
&lt;code&gt;sudo gem install newcocoa&lt;/code&gt;&lt;br /&gt;
and of course have some familiarity with interface builder&lt;br /&gt;
this requires installing the developer tools&lt;br /&gt;
Here's a screencast of me building a basic hello world app in 4 minutes
&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;
&lt;a href="http://weblog.commandlinejunkie.com/files/newcocoa.swf" target="_blank"&gt;&lt;img src="http://weblog.commandlinejunkie.com/files/newcocoa.png" /&gt;&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;




</description>
      <pubDate>Tue, 01 Jan 2008 10:30:00 -0800</pubDate>
      <guid isPermaLink="false">urn:uuid:1094ddf1-1a5e-476a-a30f-0f1415d5243a</guid>
      <author>admin</author>
      <link>http://weblog.commandlinejunkie.com/articles/2008/01/01/using-newcocoa-gem-to-build-apps-on-os-x</link>
      <category>OS X</category>
      <category>Ruby on Rails</category>
      <category>OSX</category>
      <category>Ruby</category>
      <category>Cocoa</category>
      <category>newcocoa</category>
      <enclosure type="image/png" length="28283" url="http://weblog.commandlinejunkie.com/files/newcocoa.png"/>
    </item>
    <item>
      <title>Thanks Matz</title>
      <description>&lt;img src="http://weblog.commandlinejunkie.com/files/Picture_13.png" alt="Ruby Version" width="450" /&gt;
&lt;br /&gt;&lt;br /&gt;
and thank you PragDave for the idea of sandboxing 1.9 to play with.
&lt;br /&gt;&lt;br /&gt;
&lt;a href="http://pragdave.blogs.pragprog.com/pragdave/2007/12/ruby-19right-fo.html"&gt;Read Dave's Post&lt;/a&gt;
&lt;br /&gt;&lt;br /&gt;
and some more light reading....
&lt;br /&gt;&lt;br /&gt;
&lt;a href="http://eigenclass.org/hiki/Changes+in+Ruby+1.9"&gt;Changes in Ruby 1.9&lt;/a&gt;
&lt;br /&gt;&lt;br /&gt;
Thanks everyone for all of your hard work...
&lt;br /&gt;&lt;br /&gt;



</description>
      <pubDate>Thu, 27 Dec 2007 06:58:00 -0800</pubDate>
      <guid isPermaLink="false">urn:uuid:af922ebb-e5c8-43ab-aca9-5b3d7b393c72</guid>
      <author>admin</author>
      <link>http://weblog.commandlinejunkie.com/articles/2007/12/27/thanks-matz</link>
      <category>Ruby on Rails</category>
      <category>Ruby</category>
      <category>1.9</category>
      <enclosure type="image/png" length="18824" url="http://weblog.commandlinejunkie.com/files/Picture_13.png"/>
    </item>
    <item>
      <title>Installing R Magick on OSX</title>
      <description>Just copy and paste the following lines into your terminal.....&lt;br /&gt;
I have had luck doing it this way.&lt;br /&gt;

&lt;br /&gt;
mkdir src&lt;br /&gt;
cd src&lt;br /&gt;
curl -O http://download.savannah.gnu.org/releases/freetype/freetype-2.1.10.tar.gz&lt;br /&gt;
tar xzvf freetype-2.1.10.tar.gz&lt;br /&gt;
cd freetype-2.1.10&lt;br /&gt;
./configure --prefix=/usr/local&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
cd ..&lt;br /&gt;
&lt;br /&gt;
curl -O http://superb-west.dl.sourceforge.net/sourceforge/libpng/libpng-1.2.10.tar.bz2&lt;br /&gt;
bzip2 -dc libpng-1.2.10.tar.bz2 | tar xv&lt;br /&gt;
cd libpng-1.2.10&lt;br /&gt;
./configure --prefix=/usr/local&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
cd ..&lt;br /&gt;
&lt;br /&gt;
curl -O ftp://ftp.uu.net/graphics/jpeg/jpegsrc.v6b.tar.gz&lt;br /&gt;
tar xzvf jpegsrc.v6b.tar.gz&lt;br /&gt;
cd jpeg-6b&lt;br /&gt;
ln -s `which glibtool` ./libtool&lt;br /&gt;
export MACOSX_DEPLOYMENT_TARGET=10.4&lt;br /&gt;
./configure --enable-shared --prefix=/usr/local&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
cd ..&lt;br /&gt;
&lt;br /&gt;
curl -O ftp://ftp.remotesensing.org/libtiff/tiff-3.8.2.tar.gz&lt;br /&gt;
tar xzvf tiff-3.8.2.tar.gz&lt;br /&gt;
cd tiff-3.8.2&lt;br /&gt;
./configure --prefix=/usr/local&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
cd ..&lt;br /&gt;
&lt;br /&gt;
curl -O http://jaist.dl.sourceforge.net/sourceforge/wvware/libwmf-0.2.8.4.tar.gz&lt;br /&gt;
tar xzvf libwmf-0.2.8.4.tar.gz&lt;br /&gt;
cd libwmf-0.2.8.4&lt;br /&gt;
make clean&lt;br /&gt;
./configure&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
cd ..&lt;br /&gt;
&lt;br /&gt;
curl -O http://www.littlecms.com/lcms-1.15.tar.gz&lt;br /&gt;
tar xzvf lcms-1.15.tar.gz&lt;br /&gt;
cd lcms-1.15&lt;br /&gt;
make clean&lt;br /&gt;
./configure&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
cd ..&lt;br /&gt;
&lt;br /&gt;
curl -O ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick-6.3.2-9.tar.gz&lt;br /&gt;
tar xzvf ImageMagick-6.3.2-9.tar.gz&lt;br /&gt;
cd ImageMagick-6.2.9&lt;br /&gt;
export CPPFLAGS=-I/usr/local/include&lt;br /&gt;
export LDFLAGS=-L/usr/local/lib&lt;br /&gt;
./configure --prefix=/usr/local --disable-static --with-modules --without-perl --without-magick-plus-plus --with-quantum-depth=8 --with-gs-font-dir=/usr/local/share/ghostscript/fonts&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
cd ..&lt;br /&gt;

&lt;br /&gt;
curl -O http://rubyforge.rubyuser.de/rmagick/RMagick-1.15.8.tar.gz&lt;br /&gt;
tar xvzf RMagick-1.15.8.tar.gz&lt;br /&gt;
cd RMagick-1.14.0&lt;br /&gt;
make clean&lt;br /&gt;
./configure&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
cd ..&lt;br /&gt;
&lt;br /&gt;
just make sure /usr/local is at the beginning of your .bash_login&lt;br /&gt;
and you have removed thoroughly any previous attempts at this.&lt;br /&gt;
This was posted on 12/17/2007 some of the versions will need to be updated.&lt;br /&gt;
I used this to install about three days ago on an ibook g4.&lt;br /&gt;

</description>
      <pubDate>Mon, 17 Dec 2007 20:16:00 -0800</pubDate>
      <guid isPermaLink="false">urn:uuid:b266d01f-6d7e-48b3-8798-5678db9c44b9</guid>
      <author>admin</author>
      <link>http://weblog.commandlinejunkie.com/articles/2007/12/17/installing-r-magick-on-osx</link>
      <category>Ruby on Rails</category>
      <category>Command</category>
      <category>Line</category>
      <category>Stuff</category>
      <category>Compiling</category>
      <category>ImageMagick</category>
      <category>and</category>
      <category>RMagick</category>
    </item>
    <item>
      <title>Nginx Conf on OSX</title>
      <description>I am Using this configuration to run Nginx on my Mac Book with three mongrels running on ports 5001-5004
&lt;br /&gt;&lt;br /&gt;
&lt;font size="4px"&gt;
&lt;code&gt;

worker_processes  2;

error_log  logs/error.log notice;&lt;br /&gt;
pid        logs/nginx.pid;&lt;br /&gt;




events {&lt;br /&gt;
    worker_connections  1024;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;

http {&lt;br /&gt;
    include       conf/mime.types;&lt;br /&gt;
    default_type  application/octet-stream;&lt;br /&gt;


    tcp_nopush     on;&lt;br /&gt;


    keepalive_timeout  65;&lt;br /&gt;
    tcp_nodelay        on;&lt;br /&gt;

    upstream mongrel {&lt;br /&gt;
        server 127.0.0.1:5001;&lt;br /&gt;
        server 127.0.0.1:5002;&lt;br /&gt;
        server 127.0.0.1:5003;&lt;br /&gt;
    }&lt;br /&gt;

    gzip on;&lt;br /&gt;
    gzip_min_length  1100;&lt;br /&gt;
    gzip_buffers     4 8k;&lt;br /&gt;
    gzip_types       text/plain;&lt;br /&gt;

    server {&lt;br /&gt;
        listen       80;&lt;br /&gt;

        root /Path/to/Rails/App/public;&lt;br /&gt;

        access_log  off;&lt;br /&gt;
        rewrite_log on;&lt;br /&gt;

                location ~ ^/$ {&lt;br /&gt;
		          if (-f /index.html){&lt;br /&gt;
		            rewrite (.*) /index.html last;&lt;br /&gt;
		          }&lt;br /&gt;
		           proxy_pass  http://mongrel;&lt;br /&gt;
		        }&lt;br /&gt;

		        location / {&lt;br /&gt;
		          if (!-f $request_filename.html) {&lt;br /&gt;
		            proxy_pass  http://mongrel;&lt;br /&gt;
		          }&lt;br /&gt;
		          rewrite (.*) $1.html last;&lt;br /&gt;
		        }&lt;br /&gt;

		        location ~ .html {&lt;br /&gt;
		           root /Path/to/Rails/App/public;&lt;br /&gt;
		        }&lt;br /&gt;
&lt;br /&gt;
		           location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|&lt;br /&gt;
pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js|mov)$ {&lt;br /&gt;
		          root /Path/to/Rails/App/public;&lt;br /&gt;
		        }&lt;br /&gt;
&lt;br /&gt;
		        location / {&lt;br /&gt;
		            proxy_pass  http://mongrel;&lt;br /&gt;
		            proxy_redirect     off;&lt;br /&gt;
		            proxy_set_header   Host             $host;&lt;br /&gt;
		            proxy_set_header   X-Real-IP        $remote_addr;&lt;br /&gt;
		            proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;&lt;br /&gt;
		        }&lt;br /&gt;
&lt;br /&gt;
		    }&lt;br /&gt;
		}&lt;br /&gt;&lt;/code&gt;&lt;/font&gt;

</description>
      <pubDate>Mon, 10 Dec 2007 17:45:00 -0800</pubDate>
      <guid isPermaLink="false">urn:uuid:6eecff28-7ba6-48d7-9536-c416c6092542</guid>
      <author>admin</author>
      <link>http://weblog.commandlinejunkie.com/articles/2007/12/10/nginx-conf-on-osx</link>
      <category>Ruby on Rails</category>
      <category>OS</category>
      <category>X</category>
    </item>
    <item>
      <title>Rails 2.0</title>
      <description>&lt;img src="http://weblog.commandlinejunkie.com/files/Picture_11.png" width=490&gt;

</description>
      <pubDate>Mon, 10 Dec 2007 16:44:00 -0800</pubDate>
      <guid isPermaLink="false">urn:uuid:4be66aee-9c3d-44da-acf8-6af263e2bd1d</guid>
      <author>admin</author>
      <link>http://weblog.commandlinejunkie.com/articles/2007/12/10/rails-2-0</link>
      <category>Rails</category>
      <enclosure type="image/png" length="22618" url="http://weblog.commandlinejunkie.com/files/Picture_12.png"/>
    </item>
    <item>
      <title>DATABASE DISASTER!</title>
      <description>So it is really late..
About midnight on sunday evening...
and I was cleaning out some old databases..
to make room for a mailing list program and a database driven slideshow as a test.   Long story short..
I deleted the database that housed the data for this site.
OOps...  and of course this is the only one out of at least 50 that I manage that I never made a backup of..  Not really that big of a deal, though, since I have failed to do anything with this blog... It is so hard to find the time..  My life has been consumed with programming tasks and database management for the past year or so and other than the rapid advancement I have made with Ruby on Rails, I have had no time for anything.  Not that I REALLY NEED A WEB SITE, but I always feel like I need to maintain this.  Maybe this is a sign that I need to start posting some tutorials for some of the things I have figured out and researched on my own.  I know I need to give something back, because whenever I am learning anything I always am overwhelmed with a plethora of info on anything I need to know(save a few things).  I usually try to respond to questions posted on forums and mailing lists when I know the answers.  But, shortly, I will start posting some of the wisdom I have gained here.  and maybe some one will eventually find the answers they are looking for on this page...


</description>
      <pubDate>Sun, 09 Dec 2007 18:31:00 -0800</pubDate>
      <guid isPermaLink="false">urn:uuid:ec6b1906-2a6c-4ded-b7e0-ae60c98f6142</guid>
      <author>admin</author>
      <link>http://weblog.commandlinejunkie.com/articles/2007/12/09/database</link>
    </item>
  </channel>
</rss>
