<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Geek 'N Me</title>
	<atom:link href="http://geeknme.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://geeknme.wordpress.com</link>
	<description>Jim Kass's Geekery, Randomness and Things Useful... or Not</description>
	<lastBuildDate>Thu, 06 Oct 2011 20:45:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='geeknme.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Geek 'N Me</title>
		<link>http://geeknme.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://geeknme.wordpress.com/osd.xml" title="Geek &#039;N Me" />
	<atom:link rel='hub' href='http://geeknme.wordpress.com/?pushpress=hub'/>
		<item>
		<title>4 out of 5 Burglars Prefer Facebook?</title>
		<link>http://geeknme.wordpress.com/2011/10/06/4-out-of-5-burglars-prefer-facebook/</link>
		<comments>http://geeknme.wordpress.com/2011/10/06/4-out-of-5-burglars-prefer-facebook/#comments</comments>
		<pubDate>Thu, 06 Oct 2011 20:45:31 +0000</pubDate>
		<dc:creator>Jim</dc:creator>
				<category><![CDATA[Randomness]]></category>
		<category><![CDATA[Useful or Not]]></category>

		<guid isPermaLink="false">http://geeknme.wordpress.com/?p=184</guid>
		<description><![CDATA[Yesterday my family distributed a news article about the role social networks play in burglaries.  I&#8217;ve provided the link here for any reader&#8217;s benefit.  I started to reply via email to this, but I realized it really was a bigger response than that, so I decided to write it here, for the benefit of anyone [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=geeknme.wordpress.com&amp;blog=7374854&amp;post=184&amp;subd=geeknme&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Yesterday my family distributed a news article about the role social networks play in burglaries.  I&#8217;ve provided the link here for any reader&#8217;s benefit.  I started to reply via email to this, but I realized it really was a bigger response than that, so I decided to write it here, for the benefit of anyone who happens to find it interesting.</p>
<p>The link: <a title="Social Burglars" href="http://www.mediabistro.com/alltwitter/social-burglars_b14237" target="_blank">http://www.mediabistro.com/alltwitter/social-burglars_b14237</a></p>
<p>&nbsp;</p>
<p><span style="text-decoration:underline;"><strong>DISCLAIMER</strong></span></p>
<p>To a degree, it could be said just by posting online, I&#8217;ve increased the likelyhood of a stranger stalking me, or burglarizing my home, or otherwise invading my privacy.  After all, my name is publicly noted and I&#8217;m sure anyone could &#8220;Google&#8221; me to find out more about me if they so desired.  But more on that, later.</p>
<p>Also, note that I&#8217;ve broken down my thoughts here into digestible bits.</p>
<p><span style="text-decoration:underline;"><strong>THE STUDY</strong></span></p>
<p>While I don&#8217;t refute the study, I think the findings of 50 admitted criminals asked their opinion about social networking risk doesn&#8217;t seem very reliable evidence of anything other than the ubiquitousness of social networking.</p>
<p>In fact, the real message I feel we should have taken away from the study itself is that burglaries are typically repeat incidences or otherwise performed by people who already know you.  Also a big part of the findings &#8211; that even a basic alarm system would be a deterrent.</p>
<p>So I will concede that if you &#8220;friend&#8221; everyone you meet, even when you hardly know them, you are definitely exposing yourself to risk.  I&#8217;ll also concede that social networks that are more &#8220;public&#8221; such as twitter, foursquare and others expore you more than those that have privacy controls such as Facebook, and the study provides no distinction &#8211; so it&#8217;s easily mis-read that people commonly use Facebook to burglarize homes.</p>
<p>If you read the study, it also states that Google Street View was a common tool used by criminals.  This makes sense, as you can &#8220;see&#8221; the home from the street without ever having to be on the street.  Considering the study was made in the UK, that&#8217;s not much surprise that Google Street View would be attacked as European governments have for some time been fighting Google Street View for anti-privacy reasons.  For years though, even before Street View, you could also see the home from a satellite, and I&#8217;m sure that also helped burglars who choose to use digital technology to &#8220;case the place&#8221;.</p>
<p><span style="text-decoration:underline;"><strong>THE POINT</strong></span></p>
<p>These new &#8220;social networking sites&#8221; are no more evil or dangerous than rock and roll was in the 50s, or drive-ins, or underage drinking.  Nefarious activity could be attributed to all of these things, as well as various levels of personal risk, depending on how you look at it.  Social network is just that new thing that scares people, because we&#8217;ve all become accustomed to locking our doors and hiding our identities because we live in such a dangerous world.  Being smart and savvy isn&#8217;t new, and neither is being ignorant or oblivious.  Should we ban automobiles because people drive drunk?  There can be no good without evil, and no evil without good &#8211; this is fundamental, so all we can do is make informed decisions and be smart.</p>
<p>My opinion is that what makes the world dangerous is lack of communication.  The less we talk to one another, the more dangerous our society becomes.  I&#8217;ve spoken online and anonymously in the past to someone who hated me and my kind, solely because that&#8217;s what they were taught, or otherwise picked up from their environment.  In a few minutes, I was able to communicate with this person at no risk to myself, a conversation such as that would have been impossible in person.  The result of the conversation was that I was able to see their point of view and they mine, and while I do not know whether the experience changed their life it enriched my own.</p>
<p><span style="text-decoration:underline;"><strong>THE REAL IMPACT ON SOCIETY</strong></span></p>
<p>I don&#8217;t think social networking sites are tearing apart the fabric of society.  Rather I&#8217;d argue that in nearly every way, it&#8217;s these social networking products that are rebuilding it, or otherwise holding it together.  Education is social now &#8211; Wikipedia being as popular as Google for finding out information, and often even more reliable, because Wikipedia does not advertise and thus is not motivated to create content that generates &#8220;keywords&#8221; for search discovery purposes.</p>
<p>Yesterday Steve Jobs passed away.  Hundreds of millions of people expressed their feelings about the man in a nearly simultaneous wave of social networking posts minutes after the news was heard.  Prior to twitter, and the other social networking tools, news such as this would have been spread by &#8220;authorities&#8221; of information, and the reaction of real people would have been &#8220;reported&#8221; by a reliable source.  News across the world would have spread over weeks and not minutes.  It was a major event &#8211; a man died who was a public figure, a business mogul of his day, akin to a Thomas Edison or John Rockefeller, and we all knew minutes after it occurred.</p>
<p>Try to comprehend for a moment hundreds of millions of people in a matter minutes sent their thoughts about the event into the digital ether and social networks captured that moment in history.</p>
<p>When I was in Europe recently, I tried to check-in wherever I could.  I wanted to share my photos, my experience, and my feelings about the places I was, and the things I was seeing.  There are many people, including close friends and family that will never experience these things for themselves, and just as I have been able to travel to lands far away or see events where I was not present from my own friends, I am eager to share these things with the world.</p>
<p><span style="text-decoration:underline;"><strong>THE IMPORTANCE OF SHARING</strong></span></p>
<p>If we didn&#8217;t share, there would be no books, and no blogs, and no photos, and no movies, and no stories&#8230; If we didn&#8217;t share, there would be no knowledge, no science, no insight and no inspiration.  Sharing is the basis for our entire existence, so there&#8217;s no reason to be afraid of it, simply because sharing your ideas, thoughts or opinions may expose you to others.  This is true of anyone who shares.  If you open a book, it gives you the author&#8217;s name.  It gives you where they live, sometimes even a photo of their home.  Google fills in the rest of the details.  You can choose to follow this person online, and if they so choose to share it, find out when they are out of town, and then rob them.  But is that reason for them to stop doing what they they do?</p>
<p><span style="text-decoration:underline;"><strong>FINAL THOUGHTS</strong></span></p>
<p>Because a few people decide to use technology for bad purposes, we shouldn&#8217;t stop using it.  There can be no good without bad, and no bad without good, but when it comes to the internet &#8211; and the moral choices it presents&#8230; the good inevitably outweighs the bad or put another way, the cream eventually rises the top.  As technology evolves and brings us closer together, there&#8217;s going to be more people wanting to use it for harm, so protect yourself by arming yourself with knowledge (such as not to click links in email without knowing what they are) and using an alarm or other deterrent (such as virus checkers, etc.), but don&#8217;t be afraid of what&#8217;s happening around you &#8211; embrace it, because it&#8217;s not going to stop evolving anytime soon.</p>
<p>&nbsp;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/geeknme.wordpress.com/184/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/geeknme.wordpress.com/184/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/geeknme.wordpress.com/184/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/geeknme.wordpress.com/184/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/geeknme.wordpress.com/184/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/geeknme.wordpress.com/184/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/geeknme.wordpress.com/184/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/geeknme.wordpress.com/184/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/geeknme.wordpress.com/184/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/geeknme.wordpress.com/184/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/geeknme.wordpress.com/184/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/geeknme.wordpress.com/184/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/geeknme.wordpress.com/184/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/geeknme.wordpress.com/184/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=geeknme.wordpress.com&amp;blog=7374854&amp;post=184&amp;subd=geeknme&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://geeknme.wordpress.com/2011/10/06/4-out-of-5-burglars-prefer-facebook/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0ee83e61db73434f1f91f8cf5da6b305?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Jim</media:title>
		</media:content>
	</item>
		<item>
		<title>My Opensource Radar</title>
		<link>http://geeknme.wordpress.com/2011/10/06/my-opensource-radar/</link>
		<comments>http://geeknme.wordpress.com/2011/10/06/my-opensource-radar/#comments</comments>
		<pubDate>Thu, 06 Oct 2011 19:27:23 +0000</pubDate>
		<dc:creator>Jim</dc:creator>
				<category><![CDATA[Geekery]]></category>
		<category><![CDATA[Randomness]]></category>

		<guid isPermaLink="false">http://geeknme.wordpress.com/?p=176</guid>
		<description><![CDATA[It seems like forever since I last posted a blog entry.  This is less that I haven&#8217;t written, just that I haven&#8217;t published.  It&#8217;s difficult for me to &#8220;stay focused&#8221; sometimes when there is simply so much happening so quickly in the open source community around me. It seems every week something new catches my [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=geeknme.wordpress.com&amp;blog=7374854&amp;post=176&amp;subd=geeknme&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>It seems like forever since I last posted a blog entry.  This is less that I haven&#8217;t written, just that I haven&#8217;t published.  It&#8217;s difficult for me to &#8220;stay focused&#8221; sometimes when there is simply so much happening so quickly in the open source community around me.</p>
<p>It seems every week something new catches my eye, but I barely have time to learn it, much less apply it to any real world problems.  This is truly an exciting time in the open source world.</p>
<p>I can recall the early days of the web when I used to go to the Yahoo homepage and look up &#8220;Programming Languages&#8221; in their index.  Now, there are so many programming languages, that it&#8217;s simply impossible to keep up.  But, there&#8217;s a few things that have been on my radar for a while, and I wanted to quickly document them because it seems to me that these new technologies have a long future ahead of them.</p>
<p>The first is NoSQL.  I&#8217;ve been following NoSQL and tinkering from time to time, but I haven&#8217;t yet built anything public with these tools.  I&#8217;ve heard from a close friend and colleague that they crack under heavy demand.  More on that later.</p>
<p>The second technology trend is &#8220;functional programming&#8221;.  First experienced with CouchDB, written in Erlang, then I&#8217;ve been seeing &#8220;Haskel&#8221; and other programming languages popup from time to time.  I find that I really need to study pre-calculus and/or calculus though to really appreciate these languages and their roots.</p>
<p>The third and perhaps the most compelling to me at the moment is &#8220;JVM&#8221; languages.  Quite ingeniously people realized that while Java has become a bit bloated, there was a simple elegance to having &#8220;virtual machines&#8221; that already ran on every platform.  So people started porting languages like Ruby and Python to JVM, and now with the introduction of Groovy and Scala, we&#8217;re starting to see Java completely redefined.  I have started to learn Scala, and it&#8217;s actually really intuitive.</p>
<p>Lastly, there&#8217;s &#8220;non-blocking&#8221; frameworks, most notably server side javascript and Nodejs. I did a little test with nodejs, just building a simple template driven site for my wedding, but I never really finished it &#8211; mostly because at the time I was building it, the main packaging framework was down due to a couchdb replication failure, so I had to resort to manually installing dependencies&#8230; by the time I went through that, I really didn&#8217;t have the energy to do much more than a basic templating system.  Of course I could have saved myself many hours of work if I had used something like the Express web framework (basically created by Sencha), but as npm was down, there just wasn&#8217;t an easy way to deploy it at the time.</p>
<p>Unfortunately, my day job provides me with no opportunity to play with these new technologies, so I am limited to a few hours a week or maybe a weekend day when my wife is busy with errands, but I&#8217;ll always do my best to stay on top of what is new, and fresh in the world of web applications.  Even did a little studying of iPhone application development a few months ago, but didn&#8217;t get much further than the basic tutorial app.</p>
<p>My big problem seems to be there&#8217;s so many great product ideas, but I only have a limited amount of time to build one, so I need to choose something that&#8217;s fast and easy to build, and provides immediate value.  Still working on that, but I&#8217;ll let you know.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/geeknme.wordpress.com/176/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/geeknme.wordpress.com/176/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/geeknme.wordpress.com/176/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/geeknme.wordpress.com/176/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/geeknme.wordpress.com/176/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/geeknme.wordpress.com/176/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/geeknme.wordpress.com/176/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/geeknme.wordpress.com/176/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/geeknme.wordpress.com/176/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/geeknme.wordpress.com/176/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/geeknme.wordpress.com/176/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/geeknme.wordpress.com/176/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/geeknme.wordpress.com/176/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/geeknme.wordpress.com/176/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=geeknme.wordpress.com&amp;blog=7374854&amp;post=176&amp;subd=geeknme&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://geeknme.wordpress.com/2011/10/06/my-opensource-radar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0ee83e61db73434f1f91f8cf5da6b305?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Jim</media:title>
		</media:content>
	</item>
		<item>
		<title>Finder Crash Recovery : 102</title>
		<link>http://geeknme.wordpress.com/2011/04/24/finder-crash-recovery-102/</link>
		<comments>http://geeknme.wordpress.com/2011/04/24/finder-crash-recovery-102/#comments</comments>
		<pubDate>Mon, 25 Apr 2011 04:47:26 +0000</pubDate>
		<dc:creator>Jim</dc:creator>
				<category><![CDATA[Geekery]]></category>
		<category><![CDATA[Useful or Not]]></category>
		<category><![CDATA[OSX]]></category>
		<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false">http://geeknme.wordpress.com/?p=174</guid>
		<description><![CDATA[Recently, I was working on my MacBook Pro, and I noticed that the familiar Cmd-Tab wasn&#8217;t swapping window/applications as I&#8217;d expected. At first I just worked around this, using my touchpad and the four fingers sideways gesture, but then I really started to find this frustrating so I decided might as well restart my computer. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=geeknme.wordpress.com&amp;blog=7374854&amp;post=174&amp;subd=geeknme&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Recently, I was working on my MacBook Pro, and I noticed that the familiar Cmd-Tab wasn&#8217;t swapping window/applications as I&#8217;d expected. At first I just worked around this, using my touchpad and the four fingers sideways gesture, but then I really started to find this frustrating so I decided might as well restart my computer. In retrospect, I probably should have checked the Finder and/or restarted that first.</p>
<p>So, I did a restart, and then closed all my applications, but the system didn&#8217;t appear to be shutting down. The dock was still active, and I could still open applications. I decided it was time to use Apple&#8217;s &#8220;Force Quit&#8221; (Opt-Cmd-Esc), but it didn&#8217;t work. After checking my key combination again, I realized the only application running was the dock, so there was nothing to quit.</p>
<p>I started terminal, and after a bit of hunting online, I discovered how to &#8220;start&#8221; the Finder.</p>
<p><code><br />
open /System/Library/CoreServices/Finder.app &amp;<br />
</code></p>
<p>The finder started up, and to my contentment, all my functionality was restored. I suppose I should have just tried restarting the Finder in the first place. From experience, this is usually a good remedy when my Mac is behaving badly.</p>
<p>In any case, I thought I would share this little tidbit as looking online all I saw was notes on how to &#8220;restart&#8221; the finder, along with a <code>kill -NOHUP</code> command that seems to be fairly well misunderstood by the people writing about it.</p>
<p>So, yes, if you kill the Finder process, launchd will automatically restart it. But in my case, it wasn&#8217;t running in the first place, so that wasn&#8217;t much help.</p>
<p>I also found someone who had posted on a board somewhere to run <code>open /Applications/Finder.app</code>. Yes, Apple users can be just as clueless and misinformed as Windows users, so for those who might encounter this same silly need to start the Finder manually via the terminal, I hope this is useful.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/geeknme.wordpress.com/174/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/geeknme.wordpress.com/174/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/geeknme.wordpress.com/174/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/geeknme.wordpress.com/174/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/geeknme.wordpress.com/174/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/geeknme.wordpress.com/174/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/geeknme.wordpress.com/174/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/geeknme.wordpress.com/174/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/geeknme.wordpress.com/174/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/geeknme.wordpress.com/174/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/geeknme.wordpress.com/174/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/geeknme.wordpress.com/174/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/geeknme.wordpress.com/174/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/geeknme.wordpress.com/174/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=geeknme.wordpress.com&amp;blog=7374854&amp;post=174&amp;subd=geeknme&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://geeknme.wordpress.com/2011/04/24/finder-crash-recovery-102/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0ee83e61db73434f1f91f8cf5da6b305?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Jim</media:title>
		</media:content>
	</item>
		<item>
		<title>RubyonRails&#8217; ActiveRecord vs. Django&#8217;s ORM</title>
		<link>http://geeknme.wordpress.com/2010/06/05/rubyonrails-activerecord-vs-djangos-orm/</link>
		<comments>http://geeknme.wordpress.com/2010/06/05/rubyonrails-activerecord-vs-djangos-orm/#comments</comments>
		<pubDate>Sat, 05 Jun 2010 18:27:43 +0000</pubDate>
		<dc:creator>Jim</dc:creator>
				<category><![CDATA[Geekery]]></category>
		<category><![CDATA[Useful or Not]]></category>

		<guid isPermaLink="false">http://geeknme.wordpress.com/?p=156</guid>
		<description><![CDATA[I&#8217;ve just recently started to explore Rails, Ruby and ActiveRecord.  There&#8217;s a lot to be said about the transparency of ActiveRecord, as it keeps your code relatively clean, and makes it very easy to quickly deploy database driven sites. ActiveRecord supports inheritence but it requires that your parent table have a special column named &#8220;Type&#8221;. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=geeknme.wordpress.com&amp;blog=7374854&amp;post=156&amp;subd=geeknme&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just recently started to explore Rails, Ruby and ActiveRecord.  There&#8217;s a lot to be said about the transparency of ActiveRecord, as it keeps your code relatively clean, and makes it very easy to quickly deploy database driven sites.</p>
<p>ActiveRecord supports inheritence but it requires that your parent table have a special column named &#8220;Type&#8221;.</p>
<p>Django&#8217;s ORM is deeply entangled with Django, which means it&#8217;s difficult to migrate, however it does NOT restrict you significantly on naming conventions &#8211; it simple builds tables according to classnames including their containing modules.</p>
<p>So if you django app is called &#8220;myapp&#8221; and you have a models.py with three different classes, &#8220;A&#8221;, &#8220;B&#8221;, and C&#8221;, your tables will be found as &#8220;myapp_a&#8221;, &#8220;myapp_b&#8221;, &#8220;myapp_c&#8221; respectively.</p>
<p>My recommendation is to use Rails to rapidly prototype your application, then migrate it to django.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/geeknme.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/geeknme.wordpress.com/156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/geeknme.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/geeknme.wordpress.com/156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/geeknme.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/geeknme.wordpress.com/156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/geeknme.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/geeknme.wordpress.com/156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/geeknme.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/geeknme.wordpress.com/156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/geeknme.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/geeknme.wordpress.com/156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/geeknme.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/geeknme.wordpress.com/156/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=geeknme.wordpress.com&amp;blog=7374854&amp;post=156&amp;subd=geeknme&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://geeknme.wordpress.com/2010/06/05/rubyonrails-activerecord-vs-djangos-orm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0ee83e61db73434f1f91f8cf5da6b305?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Jim</media:title>
		</media:content>
	</item>
		<item>
		<title>First Adventures in Ruby and the Rails</title>
		<link>http://geeknme.wordpress.com/2010/06/05/first-adventures-in-ruby-and-the-rails/</link>
		<comments>http://geeknme.wordpress.com/2010/06/05/first-adventures-in-ruby-and-the-rails/#comments</comments>
		<pubDate>Sat, 05 Jun 2010 18:26:43 +0000</pubDate>
		<dc:creator>Jim</dc:creator>
				<category><![CDATA[Geekery]]></category>
		<category><![CDATA[Useful or Not]]></category>
		<category><![CDATA[camping]]></category>
		<category><![CDATA[heroku]]></category>
		<category><![CDATA[merb]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[sinatra]]></category>

		<guid isPermaLink="false">http://geeknme.wordpress.com/?p=153</guid>
		<description><![CDATA[After learning Python and playing with Django, I really didn&#8217;t see any need to explore other languages, and certainly not RoR. I&#8217;d played with RoR around 2004 when it was in it&#8217;s infancy, and I was not impressed. I&#8217;d tried at that time to learn both Python and Ruby &#8211; looking for a graduation from [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=geeknme.wordpress.com&amp;blog=7374854&amp;post=153&amp;subd=geeknme&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>After learning Python and playing with Django, I really didn&#8217;t see any need to explore other languages, and certainly not RoR.  I&#8217;d played with RoR around 2004 when it was in it&#8217;s infancy, and I was not impressed.  I&#8217;d tried at that time to learn both Python and Ruby &#8211; looking for a graduation from Perl, but both were very complex.  In the end, around that same time I was starting to do a lot of my own personal PHP development, playing around with WordPress, etc.</p>
<p>Ruby on Rails came up again in 2006 when I was freelancing for an online survey business, and they brought in a lead developer/manager who was in love with REST and RoR.  I remember seeing the book &#8220;Agile Web Development with Rails&#8221; on his desk.  He&#8217;d tried then to explain to me what was so great about REST and Rails, and I didn&#8217;t really pay much attention, as what I was doing at that time was developing comprehensive application specifications, and wasn&#8217;t really concerning myself with code.</p>
<p>Back in August/September 2009, in the middle of developing a new application, after exploring multiple other options, and delving deep into CouchDB and schema-less databases I found myself finally revisiting Rails for the purpose it was always intended &#8211; quickly prototype an application, so you can focus on building it properly once funded.</p>
<p>That&#8217;s of course quite a ridiculous assumption, as everyone who built on rails stayed on rails, despite the overhead, and tremendous resource inefficiencies.  It seems once you drink the cool aid&#8230;</p>
<p>So I picked up a book and started reading.  Interestingly enough, my favorite online e-book destination ( Safari Books Online ) did not carry the definitive text on Rails &#8211; and nor did Amazon (for Kindle anyway).  Not surprising I suppose, as Rails has a somewhat elitist perspective.  Needless to say, there are other books, and I found a great one from my favorite publisher ( O&#8217;Reilly ).</p>
<p>They mentioned Heroku, which is a cloud-based rails deployment and hosting service, however it seems the book was a bit out of date, as the interface has changed drastically.  Digging a bit deeper however I found that Heroku supports a number of Ruby frameworks, and so I did a bit of research.</p>
<p>Frameworks if you aren&#8217;t already familiar are somewhat essential tools today for the modern web developer.  In most cases, you choose one, or the most popular &#8211; but if you are like me, you often want to learn as much as you can.</p>
<p>During the time I was waiting for the &#8220;gem&#8221; installation, I decided to review Rails.  As a language, Ruby was quite compelling, similar to Python, and thus somewhat familiar.  That said, there&#8217;s quite a lot of difference, and you can&#8217;t just &#8220;read&#8221; ruby code without understanding the syntax fully first. Special characters like &#8220;@&#8221; and &#8220;?&#8221; would be otherwise very misleading.</p>
<p>Below was my experience in September 2009.  As a result, I have not yet revisited Rails development, though I think once Rails3 is released, I will reconsider.  Stay tuned for a proper review of 3 when it arrives.</p>
<h2><span style="text-decoration:underline;">RAILS</span></h2>
<p>The pinacle of all web-development frameworks.  First things I noticed:</p>
<p>NOT easy to install on Linux.  Rails is pre-installed in Leopard, and there are Windows installers for it, but installing on Linux takes a few extra manual steps &#8211; something that doesn&#8217;t quite figure for me, because I can&#8217;t imagine developing on anything but Linux (the LAMP developer in me).</p>
<p>You need to modify your PATH manually, but be careful because if you don&#8217;t have access to the /usr/lib path, it will install in a .gem path instead (somewhat like how CPAN works for Perl), but instead of just using this as a build directory, everything will be placed there, including binaries, which makes finding them in the first place a pain.</p>
<p>Also, installing anything from gem &#8211; is SLOOOOW.  I&#8217;ve never used a package manager that provided such little information during it&#8217;s discovery of packages, and subsequent installation.  It seems at first that it&#8217;s simply not working.  Canceling it will only leave you with a mess of corrupted files/directories.  This is pretty frustrating &#8211; seems to be typical of what I&#8217;d already experienced with Rails in my past&#8230; great when it works (like if you have it pre-installed on OSX or you use apt-get to install it), sucks when it won&#8217;t.  Oh yes, and be prepared for a MESS of documentation to be generated&#8230; which takes forever.</p>
<p>So far I haven&#8217;t written a single piece of code and two hours have passed since I started this project!</p>
<p>Lots more issues with gems, and missing dependencies/libraries.  Bottom line &#8211; Ubuntu and Rails do not like each other.</p>
<p>During scaffolding, there is no way to generate anything but primary datatypes.  Fine for simple mindless apps, but for one that requires several joins, scaffolding isn&#8217;t much use.  Let&#8217;s go and edit the code.</p>
<p>If your application is a single table such as a blog, Rails is a great tool to get you started with little or no effort.  But if you want to create complex relationships between tables, you end up doing just as much work to create schemas for these services as you do anything else.</p>
<p>In the end, I abandoned Rails, and thus I never really completed this article.  Since that time, a lot has changed, I&#8217;m not running development for a PHP/Java/Flash team on a B2B web-based software product.  Working in PHP has been VERY limiting however, and I find myself missing the flexibility and robustness of languages like Python and even Ruby.  So, I figured I&#8217;d dredge up some old posts, and start re-exploring the different languages available.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/geeknme.wordpress.com/153/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/geeknme.wordpress.com/153/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/geeknme.wordpress.com/153/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/geeknme.wordpress.com/153/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/geeknme.wordpress.com/153/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/geeknme.wordpress.com/153/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/geeknme.wordpress.com/153/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/geeknme.wordpress.com/153/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/geeknme.wordpress.com/153/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/geeknme.wordpress.com/153/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/geeknme.wordpress.com/153/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/geeknme.wordpress.com/153/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/geeknme.wordpress.com/153/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/geeknme.wordpress.com/153/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=geeknme.wordpress.com&amp;blog=7374854&amp;post=153&amp;subd=geeknme&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://geeknme.wordpress.com/2010/06/05/first-adventures-in-ruby-and-the-rails/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0ee83e61db73434f1f91f8cf5da6b305?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Jim</media:title>
		</media:content>
	</item>
		<item>
		<title>Troubleshooting sshd</title>
		<link>http://geeknme.wordpress.com/2009/10/23/troubleshooting-sshd/</link>
		<comments>http://geeknme.wordpress.com/2009/10/23/troubleshooting-sshd/#comments</comments>
		<pubDate>Fri, 23 Oct 2009 21:28:14 +0000</pubDate>
		<dc:creator>Jim</dc:creator>
				<category><![CDATA[Geekery]]></category>
		<category><![CDATA[Systems Administration]]></category>
		<category><![CDATA[Useful or Not]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[permissions]]></category>
		<category><![CDATA[ssh]]></category>

		<guid isPermaLink="false">http://geeknme.wordpress.com/?p=158</guid>
		<description><![CDATA[As per an earlier article on tunneling, I had setup some tunnels to allow secure access to my database behind the firewall. I haven&#8217;t however done much development locally in awhile, so I hadn&#8217;t used this tunnel. Just recently, I discovered that it wasn&#8217;t working anymore. Digging deeper I found that my public-key authentication was [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=geeknme.wordpress.com&amp;blog=7374854&amp;post=158&amp;subd=geeknme&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>As per an <a title="http://geeknme.wordpress.com/2009/06/29/ssh-tunneling-and-mysql-remote-administration/" href="http://geeknme.wordpress.com/2009/06/29/ssh-tunneling-and-mysql-remote-administration/">earlier article</a> on tunneling, I had setup some tunnels to allow secure access to my database behind the firewall.  I haven&#8217;t however done much development locally in awhile, so I hadn&#8217;t used this tunnel.  Just recently, I discovered that it wasn&#8217;t working anymore.   Digging deeper I found that my public-key authentication was breaking somehow for a particular user.</p>
<p>Trying to debug things with &#8220;-v&#8221; wasn&#8217;t giving me useful information, so I thought I&#8217;m sure there must be something in the logs and luckily came across this post:</p>
<p><a title="http://beerpla.net/2008/08/15/debugging-weird-sshd-connection-problems-what-happens-when-you-stop-sshd/" href="http://beerpla.net/2008/08/15/debugging-weird-sshd-connection-problems-what-happens-when-you-stop-sshd/" target="_blank">http://beerpla.net/2008/08/15/debugging-weird-sshd-connection-problems-what-happens-when-you-stop-sshd/</a></p>
<p>The long and short of it, was just like Artem, my issue was permissions of the home directory of the authenticating user.  A quick fix to that and we were all set.</p>
<p>Thinking about it, now I remember I&#8217;d been having permissions issues within my virtual hosts, so I&#8217;d &#8220;chown -R&#8221;&#8216;d them to the apache user.  This ended up preventing me from being able to read the home directory(which happened to be the webroot) of the special user I&#8217;d created for tunneling and managing webfiles.  Silly me.</p>
<p>The big lesson here: like most things on Unix &#8211; permissions should always be the first thing to check.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/geeknme.wordpress.com/158/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/geeknme.wordpress.com/158/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/geeknme.wordpress.com/158/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/geeknme.wordpress.com/158/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/geeknme.wordpress.com/158/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/geeknme.wordpress.com/158/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/geeknme.wordpress.com/158/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/geeknme.wordpress.com/158/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/geeknme.wordpress.com/158/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/geeknme.wordpress.com/158/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/geeknme.wordpress.com/158/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/geeknme.wordpress.com/158/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/geeknme.wordpress.com/158/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/geeknme.wordpress.com/158/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=geeknme.wordpress.com&amp;blog=7374854&amp;post=158&amp;subd=geeknme&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://geeknme.wordpress.com/2009/10/23/troubleshooting-sshd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0ee83e61db73434f1f91f8cf5da6b305?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Jim</media:title>
		</media:content>
	</item>
		<item>
		<title>Getting Started with Upstart in Ubuntu</title>
		<link>http://geeknme.wordpress.com/2009/10/15/getting-started-with-upstart-in-ubuntu/</link>
		<comments>http://geeknme.wordpress.com/2009/10/15/getting-started-with-upstart-in-ubuntu/#comments</comments>
		<pubDate>Thu, 15 Oct 2009 23:29:03 +0000</pubDate>
		<dc:creator>Jim</dc:creator>
				<category><![CDATA[Geekery]]></category>
		<category><![CDATA[Systems Administration]]></category>
		<category><![CDATA[Useful or Not]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[upstart]]></category>

		<guid isPermaLink="false">http://geeknme.wordpress.com/?p=145</guid>
		<description><![CDATA[What&#8217;s Upstart Ubuntu has had upstart installed as a replacement for init scripts since as far back as 2006, but it hasn&#8217;t yet been really used until the latest beta release of Karmic (Ubuntu 9.10).  Upstart is a more robust services management daemon that allows for things like dependencies, custom events/triggers, pre/post initialiation and resource [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=geeknme.wordpress.com&amp;blog=7374854&amp;post=145&amp;subd=geeknme&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h3>What&#8217;s Upstart</h3>
<p>Ubuntu has had <a title="http://upstart.ubuntu.com" href="http://upstart.ubuntu.com/" target="_blank">upstart</a> installed as a replacement for init scripts since as far back as 2006, but it hasn&#8217;t yet been really used until the latest beta release of <a title="Ubuntu Karmic" href="http://www.ubuntu.com/testing/karmic/beta" target="_blank">Karmic (Ubuntu 9.10)</a>.  Upstart is a more robust services management daemon that allows for things like dependencies, custom events/triggers, pre/post initialiation and resource limitations, amongst other things. You can go check out their home page at <a title="Upstart Home" href="http://upstart.ubuntu.com/" target="_blank">http://upstart.ubuntu.com</a>.</p>
<p>I recently upgraded some servers to Karmic, and I decided to write a simple upstart script to start/stop my <a title="Django Site" href="http://www.djangoproject.com" target="_blank">Django </a>development server when I wanted.</p>
<p>The great thing about upstart is that it actually handles user configurable events, which is a super-powerful feature that I&#8217;m not really using yet, but it allows you to create chained initialization and shutdown processes.  Another great feature is the ability to run pre/post initialization tasks.  I&#8217;m using this in my example below to ensure the database is sync&#8217;d before starting up.</p>
<p>For my django server, I really just needed the bare minimum though of upstart&#8217;s features, and from my research into it so far, it looks like upstart is regularly changing, so putting too many directives in my config file might only cause problems later.  Karmic is still not yet out of beta, as it is.</p>
<p>So, consider this a super-brief tutorial on how to use upstart for your own tasks, as a replacement for init scripts, or in addition to them (upstart doesn&#8217;t interfere with init scripts).</p>
<h3>Installing/Using Upstart</h3>
<p>Incidentally, if you haven&#8217;t got upstart on your system (you&#8217;ll know if the command <code>initctl</code> is missing). then you can install it using <code>apt-get</code> or <code>yum</code> depending on what system you are using.  Upstart is supposedly defaulted in Fedora as well, but I&#8217;ve been Ubuntu-ized for a few years now so I haven&#8217;t played with my old friend Red Hat in a while.</p>
<p>Once you have upstart installed, one change you&#8217;ll notice right away is that upstart uses .conf files in the <em>/etc/init</em> directory as scripts instead of the ones in <em>/etc/init.d</em>.</p>
<p>You run these scripts by using the &#8220;<code>start/stop/status</code>&#8221; commands which are shortcuts to &#8220;<code>initctl start</code>&#8220;, &#8220;<code>initctl stop</code>&#8221; and &#8220;<code>initctl status</code>&#8221; accordingly.  You can even list all services with &#8220;<code>initctl list</code>&#8220;, which gives you something more like a Windows Services list with statuses and PIDs.</p>
<p>In my example, I&#8217;ll be starting my django server with the command:</p>
<p><code>$ start django<br />
</code><br />
and stopping it with:</p>
<p><code>$ stop django<br />
</code></p>
<p>The directives in your .conf files are called &#8220;stanzas&#8221;, and each type of stanza tells upstart what to do.  If upstart doesn&#8217;t understand a stanza, it will behave as if the service doesn&#8217;t exist.</p>
<p>Pretty easy.  So let&#8217;s take a look at the file.</p>
<h3>Sample Upstart Script</h3>
<p><code><br />
# my upstart django script<br />
# this script will start/stop my django development server<br />
# optional stuff<br />
description "start and stop the django development server"<br />
version "1.0"<br />
author "Jim Kass"</code></p>
<p><code><br />
# configuration variables.<br />
# You'll want to change thse as needed<br />
env DJANGO_HOME=/home/django/myproject<br />
env DJANGO_PORT=8000<br />
env DJANGO_HOST=0.0.0.0 # bind to all interfaces<br />
</code><code><br />
# tell upstart we're creating a daemon<br />
# upstart manages PID creation for you.<br />
expect fork<br />
</code><code><br />
pre-start script<br />
chdir $DJANGO_HOME<br />
exec /usr/bin/python manage.py syncdb<br />
emit django_starting</code><code><br />
end script</code><br />
<code><br />
script<br />
# My startup script, plain old shell scripting here.<br />
chdir $DJANGO_HOME<br />
exec /usr/bin/python manage.py runserver $DJANGO_HOST:$DJANGO_PORT &amp;<br />
</code><code># create a custom event in case we want to chain later<br />
emit django_running<br />
</code><code>end script<br />
</code></p>
<p>That&#8217;s it!  You can actually use the shortcut stanza &#8220;exec&#8221; on a single line.  chdir is actually also a stanza, but at this time it doesn&#8217;t support variable expansion, so I&#8217;ve instead used the script stanza.  If you wanted to hard-code all your values and not use variables, your script could be even shorter.</p>
<p>See the wiki/docs here.  These docs are for an older version of upstart, and there doesn&#8217;t appear to be an updated list, so I had to learn a few things from trial/error.  For instance, <code>console logged</code> is not a valid stanza, but <code>console output</code> still is.  Your mileage may of course vary.</p>
<p>For reference, the <a title="http://upstart.ubuntu.com/wiki/Stanzas" href="http://upstart.ubuntu.com/wiki/Stanzas" target="_blank">Upstart Stanza Wiki Page</a> has a description of all the stanzas I used, and a lot more.</p>
<p>Upstart can do a LOT more than just start/stop things, you can chain scripts using custom events &#8211; you can even fire events manually from initctl (useful for testing things).</p>
<p>As mentioned, if you have directives in your script that upstart doesn&#8217;t understand, it will tell you &#8220;unknown job:&#8221; when you try to run it.  As upstart is pretty new and changing frequently, not all &#8220;stanza&#8221; directives work on all versions.  Check docs for your version as needed.</p>
<p><strong>Hope that helps!</strong></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/geeknme.wordpress.com/145/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/geeknme.wordpress.com/145/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/geeknme.wordpress.com/145/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/geeknme.wordpress.com/145/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/geeknme.wordpress.com/145/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/geeknme.wordpress.com/145/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/geeknme.wordpress.com/145/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/geeknme.wordpress.com/145/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/geeknme.wordpress.com/145/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/geeknme.wordpress.com/145/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/geeknme.wordpress.com/145/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/geeknme.wordpress.com/145/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/geeknme.wordpress.com/145/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/geeknme.wordpress.com/145/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=geeknme.wordpress.com&amp;blog=7374854&amp;post=145&amp;subd=geeknme&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://geeknme.wordpress.com/2009/10/15/getting-started-with-upstart-in-ubuntu/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0ee83e61db73434f1f91f8cf5da6b305?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Jim</media:title>
		</media:content>
	</item>
		<item>
		<title>My Television Princess</title>
		<link>http://geeknme.wordpress.com/2009/09/29/my-television-princess/</link>
		<comments>http://geeknme.wordpress.com/2009/09/29/my-television-princess/#comments</comments>
		<pubDate>Tue, 29 Sep 2009 18:14:11 +0000</pubDate>
		<dc:creator>Jim</dc:creator>
				<category><![CDATA[Randomness]]></category>

		<guid isPermaLink="false">http://geeknme.wordpress.com/?p=135</guid>
		<description><![CDATA[I&#8217;m always being asked by Christal to &#8220;blog&#8221; about her &#8211; and as this is mostly a tech blog for me, partially to help me with my own memory issues, and partially to share some of my insights about the tech world with others&#8230; I don&#8217;t have much opportunity to do that in other places, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=geeknme.wordpress.com&amp;blog=7374854&amp;post=135&amp;subd=geeknme&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m always being asked by Christal to &#8220;blog&#8221; about her &#8211; and as this is mostly a tech blog for me, partially to help me with my own memory issues, and partially to share some of my insights about the tech world with others&#8230; I don&#8217;t have much opportunity to do that in other places, at least not without sounding too self-interested.</p>
<p>I essentially &#8220;left&#8221; the entertainment business some 5 or 6 times since I moved here in 1998.  That&#8217;s nearly once every other year.  More recently, I finally conceded that digital is more than just another great media format, but is finally at the point of being a viable means of distribution, and the convergence of entertainment and the internet is in process.  I jumped into the digital space, not as a content producer though as I thought I would have, but as a technologist, and a digital enabler&#8230; hoping to  leverage the new digital pipelines for distribution and production.</p>
<p>To that end, I owe my renewed love, appreciation and respect of entertainment (and particularly television which is guiding it&#8217;s current path) to my lovely Christal.  As a guest at many major television events, including the recent Emmy awards, I&#8217;ve become increasingly more comfortable amongst an ever growing pool of the most talented, funny and sexiest people in the world.  The difference between film and television might be the size of paychecks, or the public perception of fame, but in truth &#8211; entertainment truly begins and ends with broadcast.</p>
<p>I owe a great debt of gratitude to my television princess, who I continue to love and admire, and who provides me with so much inspiration to want to be a leader in this constantly evolving digital space.</p>
<p>Thank you again!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/geeknme.wordpress.com/135/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/geeknme.wordpress.com/135/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/geeknme.wordpress.com/135/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/geeknme.wordpress.com/135/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/geeknme.wordpress.com/135/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/geeknme.wordpress.com/135/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/geeknme.wordpress.com/135/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/geeknme.wordpress.com/135/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/geeknme.wordpress.com/135/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/geeknme.wordpress.com/135/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/geeknme.wordpress.com/135/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/geeknme.wordpress.com/135/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/geeknme.wordpress.com/135/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/geeknme.wordpress.com/135/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=geeknme.wordpress.com&amp;blog=7374854&amp;post=135&amp;subd=geeknme&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://geeknme.wordpress.com/2009/09/29/my-television-princess/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0ee83e61db73434f1f91f8cf5da6b305?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Jim</media:title>
		</media:content>
	</item>
		<item>
		<title>The New Analytics</title>
		<link>http://geeknme.wordpress.com/2009/09/29/the-new-analytics/</link>
		<comments>http://geeknme.wordpress.com/2009/09/29/the-new-analytics/#comments</comments>
		<pubDate>Tue, 29 Sep 2009 17:47:38 +0000</pubDate>
		<dc:creator>Jim</dc:creator>
				<category><![CDATA[Geekery]]></category>
		<category><![CDATA[Systems Administration]]></category>
		<category><![CDATA[analytics]]></category>
		<category><![CDATA[piwik]]></category>
		<category><![CDATA[splunk]]></category>

		<guid isPermaLink="false">http://geeknme.wordpress.com/?p=139</guid>
		<description><![CDATA[Since Google acquired Urchin eventually building Google Analytics, there has not been a really nice web-analytics product that was either free or extensible for web developers.  We may start out using something like Webalizer, but it&#8217;s lack of any actual data-store makes it an ugly resource. Recently, I came across two products that really excited [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=geeknme.wordpress.com&amp;blog=7374854&amp;post=139&amp;subd=geeknme&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Since Google acquired Urchin eventually building Google Analytics, there has not been a really nice web-analytics product that was either free or extensible for web developers.  We may start out using something like Webalizer, but it&#8217;s lack of any actual data-store makes it an ugly resource.</p>
<p>Recently, I came across two products that really excited me, as they both contained powerful solutions for analyzing data on your site, and in many cases they are cluster friendly, making it possible to deploy multiple &#8220;daemons&#8221; and then remotely download logs for analysis on a secondary server.</p>
<h3>Piwik</h3>
<p>First there is <a title="Piwik" href="http://piwik.org" target="_blank">Piwik</a>.  I came across this as it appears it is now an added value from sourceforge (along with a private Trac setup).  Piwik in their own words, &#8220;aims to be an open source alternative to <a href="http://google.com/analytics" target="_blank">Google Analytics</a>&#8220;.</p>
<p>A quick browse through their site and demo reveals that they have an API for writing your own custom reporting modules, and a relatively clean interface that uses ajax extensively.  Large queries seem to be slow, and I&#8217;m guessing this is because it&#8217;s all tied to MySQL.  I can only imagine if someone wanted to re-write this product to use CouchDB how amazingly fast and powerful it could be, but that&#8217;s just another topic for another day.</p>
<p>I haven&#8217;t yet installed this product, as I&#8217;m pretty satisfied with what I get from Ganalytics (aside from basically giving all my data to Google), and until I have a properly clustered and load-balanced environment, I really can&#8217;t afford to have any more processor intensive activity than necessary.</p>
<p>Nonetheless, it&#8217;s good to know that there&#8217;s something like this out there.  If it could be modified and/or if there is already a branch that allows multiple sites across mutiple IPs to write to a common database located elsewhere (or via an SSH Tunnel), it could be an ideal white-labelled/free tool to offer clients in lieu of Google Analytics.</p>
<h3>Splunk</h3>
<p>Not long ago, while using my favorite software and systems administration support service, <a title="StackOverflow" href="http://stackoverflow.com" target="_blank">StackOverflow</a> and <a title="ServerFault" href="http://serverfault.com" target="_blank">ServerFault</a>, I clicked on an ad for <a title="Splunk" href="http://splunk.com" target="_blank">Splunk</a>.  As it&#8217;s name implies, it&#8217;s a tool for doing deep dives into your log files.  Splunk is a LOT more than that, and it&#8217;s designed to be run on clustered systems, so multiple splunk instances can grab data from their respective servers then feed results to a central hub where more detailed analysis can take place.</p>
<p>Splunk is a powerful but memory intensive application that can do powerful searching across various documents and has an API that allows you to build completely custom applications with their own MVC architecture, that are then added to your dashboard.  The help and initial tutorial application is one of these &#8211; basically a series of informational pages and content.</p>
<p>There is also a sample web analytics application that provides a completely custom interface for analyzing the data.  It&#8217;s all very cool, though maybe a bit much until you have a fully clustered system and can afford the memory tradeoff.</p>
<p>There&#8217;s a free and a paid version, and clustering is only supported in the paid.  It&#8217;s definitely worth exploring, but expect to spend a few hours just trying to understand the paradigm before you can do anything useful.  The main feature to note is that all datasets are generated as a result of some kind of grep/search, and you can dive as deep as you want into those datasets.</p>
<h3>Summary</h3>
<p>It&#8217;s a really exciting time right now to be in the web-space.  With so much of computing power moving to the cloud, and open-source API driven solutions flooding the marketplace, even the smallest web projects are becoming more sophisticated and scalable.  Much like the early days of 1.0 web, it&#8217;s quite possible to build an entirely new business model out of your garage, and grow it.  Enterprise companies which have built multi-billion dollar franchises are competing against these small mom-and-pop shops, and it all makes for a very competitive and constantly evolving technology industry.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/geeknme.wordpress.com/139/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/geeknme.wordpress.com/139/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/geeknme.wordpress.com/139/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/geeknme.wordpress.com/139/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/geeknme.wordpress.com/139/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/geeknme.wordpress.com/139/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/geeknme.wordpress.com/139/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/geeknme.wordpress.com/139/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/geeknme.wordpress.com/139/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/geeknme.wordpress.com/139/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/geeknme.wordpress.com/139/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/geeknme.wordpress.com/139/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/geeknme.wordpress.com/139/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/geeknme.wordpress.com/139/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=geeknme.wordpress.com&amp;blog=7374854&amp;post=139&amp;subd=geeknme&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://geeknme.wordpress.com/2009/09/29/the-new-analytics/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0ee83e61db73434f1f91f8cf5da6b305?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Jim</media:title>
		</media:content>
	</item>
		<item>
		<title>YouTube Player Bug?</title>
		<link>http://geeknme.wordpress.com/2009/07/30/youtube-player-bug/</link>
		<comments>http://geeknme.wordpress.com/2009/07/30/youtube-player-bug/#comments</comments>
		<pubDate>Thu, 30 Jul 2009 08:35:06 +0000</pubDate>
		<dc:creator>Jim</dc:creator>
				<category><![CDATA[Useful or Not]]></category>
		<category><![CDATA[bugs]]></category>
		<category><![CDATA[youtube]]></category>

		<guid isPermaLink="false">http://geeknme.wordpress.com/2009/07/30/youtube-player-bug/</guid>
		<description><![CDATA[UPDATE: Confirmed that this is a site-wide bug.  There are very few reports, but I found a few on twitter and in the bug reports section on YouTube. Supposedly YouTube has been made aware of the problem. YouTube Bug Report UPDATE AGAIN: As if 2:45pm, this now appears to be fixed. &#8212;- I&#8217;ve noticed in [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=geeknme.wordpress.com&amp;blog=7374854&amp;post=108&amp;subd=geeknme&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div><span style="text-decoration:underline;"><strong>UPDATE:</strong></span></div>
<div><span style="text-decoration:underline;"><strong><br />
</strong></span></div>
<div>Confirmed that this is a site-wide bug.  There are very few reports, but I found a few on twitter and in the bug reports section on YouTube.</div>
<div>Supposedly YouTube has been made aware of the problem.</div>
<div><a title="a bug report on youtube." href="//www.google.com/support/forum/p/youtube/thread?tid=468d4f0ae75eb948&amp;hl=en">YouTube Bug Report</a></div>
<div></div>
<div><strong>UPDATE AGAIN:</strong></div>
<div>As if 2:45pm, this now appears to be fixed.</div>
<div>&#8212;-</div>
<p>I&#8217;ve noticed in a recent implementation of the YouTube player API, that sometime perhaps as recently as today, the poster frames stopped appearing in videos.  I&#8217;ve seen this happen in the YouTube embedded player as well, and after doing a short dig into the issue with Firebug, it seems the culprit is that the player is requesting an image at &#8220;yimg.com/VIDEOID/hqdefault.jpg/hqdefault.jpg&#8221;.  Of course that URL is wrong, &#8220;yimg.com/VIDEOID/hqdefault.jpg&#8221; is what is needed.</p>
<p>I&#8217;m wondering if I&#8217;m seeing this bug because there was a recent player update that went wrong, and I just need to clear my cache or what.  These things happened at Revver from time to time&#8230; changes to the player would sometimes break the existing functionality, and a simple clearing of the cache would fix (which happens most times when people restart their computers).</p>
<p>For now, I&#8217;m going to wait.  I did post a note on the YouTube API users group (UPDATE: which never appeared), so we&#8217;ll see what transpires.  Also, I don&#8217;t really use YouTube that much (until recently when I started developing using their API for a client), but perhaps it&#8217;s as simple as they are going to default all poster images to the HQDefault, and there&#8217;s a typo in the new code that got released somewhere.</p>
<p>Odd, cause I&#8217;d expect an issue as simple as this to not pass QA.  Anyway, could just be something weird on my end &#8211; I&#8217;ll restart and see what happens tomorrow.</p>
<p>Here&#8217;s my example video:</p>
<span style="text-align:center; display: block;"><a href="http://geeknme.wordpress.com/2009/07/30/youtube-player-bug/"><img src="http://img.youtube.com/vi/u1zgFlCw8Aw/2.jpg" alt="" /></a></span>
<p>Here&#8217;s what I see:</p>
<div id="attachment_118" class="wp-caption aligncenter" style="width: 310px"><a rel="attachment wp-att-118" href="http://geeknme.wordpress.com/2009/07/30/youtube-player-bug/youtube-player-bug-2/"><img class="size-medium wp-image-118" title="youtube-player-bug" src="http://geeknme.files.wordpress.com/2009/07/youtube-player-bug.jpg?w=300&#038;h=246" alt="YouTube player missing poster frame" width="300" height="246" /></a><p class="wp-caption-text">YouTube player missing poster frame</p></div>
<p>And here&#8217;s what I get when looking in Firebug at the requests:</p>
<div id="attachment_120" class="wp-caption aligncenter" style="width: 460px"><a rel="attachment wp-att-120" href="http://geeknme.wordpress.com/2009/07/30/youtube-player-bug/firebug-yt-player-bug/"><img class="size-full wp-image-120" title="firebug-yt-player-bug" src="http://geeknme.files.wordpress.com/2009/07/firebug-yt-player-bug.jpg?w=450&#038;h=122" alt="Firebug Net output" width="450" height="122" /></a><p class="wp-caption-text">Firebug Net output</p></div>
<div class="zemanta-pixie"><img class="zemanta-pixie-img" src="http://img.zemanta.com/pixy.gif?x-id=e6a961b5-15fd-8895-af17-d2e8d8063226" alt="" /></div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/geeknme.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/geeknme.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/geeknme.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/geeknme.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/geeknme.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/geeknme.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/geeknme.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/geeknme.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/geeknme.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/geeknme.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/geeknme.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/geeknme.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/geeknme.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/geeknme.wordpress.com/108/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=geeknme.wordpress.com&amp;blog=7374854&amp;post=108&amp;subd=geeknme&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://geeknme.wordpress.com/2009/07/30/youtube-player-bug/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0ee83e61db73434f1f91f8cf5da6b305?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Jim</media:title>
		</media:content>

		<media:content url="http://geeknme.files.wordpress.com/2009/07/youtube-player-bug.jpg?w=300" medium="image">
			<media:title type="html">youtube-player-bug</media:title>
		</media:content>

		<media:content url="http://geeknme.files.wordpress.com/2009/07/firebug-yt-player-bug.jpg" medium="image">
			<media:title type="html">firebug-yt-player-bug</media:title>
		</media:content>

		<media:content url="http://img.zemanta.com/pixy.gif?x-id=e6a961b5-15fd-8895-af17-d2e8d8063226" medium="image" />
	</item>
	</channel>
</rss>
