<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/rss2full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0" xml:base="http://nearlyfree.org">
<channel>
 <title>love is all around blogs</title>
 <link>http://nearlyfree.org/blog</link>
 <description />
 <language>en</language>
<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/nearlyfree/blogs" type="application/rss+xml" /><feedburner:browserFriendly></feedburner:browserFriendly><item>
 <title>The Art of Cow Releasing</title>
 <link>http://nearlyfree.org/art-cow-releasing</link>
 <description>&lt;p&gt;Birthdays are a good opportunity for reflection - a natural time to look at from whence we came and where we are going.&lt;/p&gt;

&lt;p&gt;I have done several purges in the last few years, letting go of what no longer serves me, so that there is room for what I truly want in my life.&lt;/p&gt;

&lt;p&gt;This year I&amp;#8217;ve decided to take a break from the Internet.&lt;/p&gt;

&lt;p&gt;I love the Internet.  In some ways I feel like it&amp;#8217;s a part of me - maybe I&amp;#8217;m not sure what I would be like without it.  It&amp;#8217;s been the source of nearly all my employment.  My profession is not so much computer programming as Internet-building.  The Internet has obviously delivered many positive things, and is constantly shaking things up, challenging old ways of thinking, and connecting people in new and interesting ways.  However lately I&amp;#8217;ve been noticing that I&amp;#8217;ve allowed cyberspace to occupy too much of &lt;em&gt;my&lt;/em&gt; space, and questioning the quality of my time spent there.&lt;/p&gt;

&lt;p&gt;I&amp;#8217;ve begun studying my habits (thoughts and actions), looking for ways to curb the stress-inducing ones, and promote the ones that are less demanding and more fulfilling.  I&amp;#8217;ve identified some Internet habits I have that I would like to break - here they are:&lt;/p&gt;

&lt;h3&gt;Addiction to news&lt;/h3&gt;

&lt;p&gt;This one manifests as hours and hours and hours spent with my feed reader, scouring the headlines for drips of new and cool in a sea of noise.  This activity is driven partly by a natural and healthy curiosity but also an unhealthy desire for stimulation/distraction and fear of becoming obsolete or behind the times.&lt;/p&gt;

&lt;h3&gt;Addiction to downloading&lt;/h3&gt;

&lt;p&gt;This one is similar to my news addiction, but involves downloading music and movies.  There is a &amp;#8216;never enough&amp;#8217; feeling to this habit, as well as quantity over quality.  What would I do without a hard drive full of music?&lt;/p&gt;

&lt;h3&gt;Addiction to social activity&lt;/h3&gt;

&lt;p&gt;My blog and Facebook page are like alternate &amp;#8216;faces&amp;#8217; of mine - whose appearance I have a tendency to be overly concerned with.  How many people read my blog?  How many follow my feed?  Do I post often enough?  Do people like what I post?  Was that last post too technical, non-technical, trivial, flaky?  Maybe I need to work on my theme?  Update my blog software?  Argh, more comment spam!&lt;/p&gt;

&lt;p&gt;Yikes&amp;#8230; I worry way to much about a page of HTML.&lt;/p&gt;

&lt;h3&gt;Addiction to &amp;#8216;Braincrack&amp;#8217;&lt;/h3&gt;

&lt;p&gt;Braincrack (&lt;a href="http://www.zefrank.com/theshow/archives/2006/07/071106.html"&gt;coined hilariously here&lt;/a&gt;) consists of compulsive thoughts about cool creative potential projects, which build up in your head, lingering there unfulfilled, only to be replaced by new thoughts of cool creative projects.&lt;/p&gt;

&lt;p&gt;I am a victim of braincrack - at any given time I have 3 or 4 great web/tech/geek-related projects rolling around in my head that I never have time to work on.  A fair number of my geek friends suffer from this as well&amp;#8230; maybe it&amp;#8217;s braincrack that makes you a geek.  Anyway - it&amp;#8217;s time to put the pipe down, and get off the braincrack.&lt;/p&gt;

&lt;p&gt;The common theme here is wasted energy, wasted time, unnecessary worry and stress, and a turning away from the nuanced and infinite present moment.&lt;/p&gt;

&lt;p&gt;These things have become so part of my reality that I&amp;#8217;m not sure who I am without them.  I want to find out.&lt;/p&gt;

&lt;p&gt;I want more space in my life.  More silence.  Wider margins on the page.&lt;/p&gt;

&lt;p&gt;This story by Thich Nhat Hanh has been popping up in my mind lately:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;One day the Buddha was sitting in the wood with thirty or forty monks. They had an excellent lunch and they were enjoying the company of each other. There was a farmer passing by and the farmer was very unhappy. He asked the Buddha and the monks whether they had seen his cows passing by. The Buddha said they had not seen any cows passing by.

&lt;p&gt;The farmer said, &amp;#8220;Monks, I&amp;#8217;m so unhappy. I have twelve cows and I don&amp;#8217;t know why they all ran away. I have also a few acres of a sesame seed plantation and the insects have eaten up everything. I suffer so much I think I am going to kill myself.

&lt;p&gt;The Buddha said, &amp;#8220;My friend, we have not seen any cows passing by here. You might like to look for them in the other direction.&amp;#8221;&lt;/p&gt;

&lt;p&gt;So the farmer thanked him and ran away, and the Buddha turned to his monks and said, &amp;#8220;My dear friends, you are the happiest people in the world. You don&amp;#8217;t have any cows to lose. If you have too many cows to take care of, you will be very busy.&lt;/p&gt;

&lt;p&gt;&amp;#8220;That is why, in order to be happy, you have to learn the art of cow releasing. You release the cows one by one. In the beginning you thought that those cows were essential to your happiness, and you tried to get more and more cows. But now you realize that cows are not really conditions for your happiness; they constitute an obstacle for your happiness. That is why you are determined to release your cows.&amp;#8221;&lt;/p&gt;

&lt;p&gt;We have to ask what is really essential to our happiness. We believe that things are essential to our happiness, but we have to look again. Many of us have cows, many cows that prevent us from being happy. That is why we have to learn to release our cows. Also there are many cows inside, so many preoccupations! Many things to worry about, to be angry about, and there&amp;#8217;s no space at all inside.&lt;/p&gt;

&lt;p&gt;How can you be happy in such a state of being? That is why to release the cows around us and to let go of these preoccupations inside is a very essential condition for happiness. That is the space we are talking about when we practice. I am space; within and out. I feel free. Freedom is the real foundation of happiness.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It&amp;#8217;s time to release some cows!  Here&amp;#8217;s what I have in mind for my Internet diet:&lt;/p&gt;

&lt;h3&gt;No more surfing, no more feed-reading&lt;/h3&gt;

&lt;p&gt;If there&amp;#8217;s important information that I should know, I trust that the universe will find another way to give it to me.  And if it doesn&amp;#8217;t I guess that&amp;#8217;s OK too&amp;#8230; maybe it wasn&amp;#8217;t that important?&lt;/p&gt;

&lt;h3&gt;No more downloading&lt;/h3&gt;

&lt;p&gt;I have a few podcasts that I&amp;#8217;ll continue to watch - I find that these don&amp;#8217;t have that random, always-searching-for-the-next-thing aspect.  Maybe I&amp;#8217;ll listen to the radio instead.&lt;/p&gt;

&lt;h3&gt;No more blogging&lt;/h3&gt;

&lt;p&gt;I&amp;#8217;m closing down the blog - it&amp;#8217;s been great, but it&amp;#8217;s a big fat cow and needs to go.  I&amp;#8217;ll probably let go of the whole nearlyfree.org namespace entirely - time to move on.&lt;/p&gt;

&lt;h3&gt;Turn down the Facebook&lt;/h3&gt;

&lt;p&gt;I may still use it a bit for very specific things, like events, or for contacting people.&lt;/p&gt;

&lt;h3&gt;No more braincrack?&lt;/h3&gt;

&lt;p&gt;This one&amp;#8217;s a little tougher, and is more psychological.  The fact is, I have very little spare time these days, so the number of cool ideas I obsess over which actually manifest is close to zero.  I&amp;#8217;m also getting rid of all the domains I&amp;#8217;ve registered and never done anything with, and never will.  It&amp;#8217;s kinda funny when you find yourself of thinking of projects to fit the domains you own.  No more.  Who knows what I&amp;#8217;ll be able to do with all that freed up brain energy?&lt;/p&gt;

&lt;p&gt;My goal is to be on this diet for a year, and re-evaluate next November 23rd.&lt;/p&gt;

&lt;p&gt;Till then!&lt;/p&gt;

&lt;p&gt;Peace.&lt;/p&gt;

&lt;p&gt;Keith&lt;/p&gt;
</description>
 <comments>http://nearlyfree.org/art-cow-releasing#comments</comments>
 <pubDate>Fri, 23 Nov 2007 22:41:55 -0800</pubDate>
 <dc:creator>Keith</dc:creator>
 <guid isPermaLink="false">44 at http://nearlyfree.org</guid>
</item>
<item>
 <title>We are light</title>
 <link>http://nearlyfree.org/we-are-light</link>
 <description>&lt;p&gt;Over the past 8 years I have been studying intensively at Lightwork Spiritual Development.  A spiritual practice designed to create a safe space to heal oneself.  There has been immense change in my life over the past 8 years.  I have opened up new ways of being; more trust, love, self respect, determination and self responsibility.  I have been able to create things that I have wanted in my life for years, a job I love, a beautiful loving husband, a safe happy home and more!  This work is intense and takes courage.  I am proud of myself for sticking to it.  I am also proud of the students that I see at Lightwork healing themselves.  I have been teaching now for 5 years and it is a blessing to assist people in such a real and safe way.  This following piece is a focus on one aspect of healing.  I feel one of the reasons I am on the planet at this time is to shine a light on this subject to bring it out of the darkness, raise it up to the sun and watch as the light cracks it open:&lt;/p&gt;

&lt;p&gt;Sexual abuse is prevalent.&lt;br /&gt;
Some people want to avoid it, 
hide it away, 
tuck it in the back of the closet hidden under a mess of stuff in the dark.&lt;br /&gt;
Forget and deny.&lt;br /&gt;
When this happens sexual abuse stays there lingering, 
affecting every move that person makes.&lt;/p&gt;

&lt;p&gt;Sexual abuse can happen energetically - with a thought, a vision
either way conscious or unconscious, 
the person thinking that thought is responsible for the thought.&lt;br /&gt;
It can happen with a word or 
a physical act.&lt;/p&gt;

&lt;p&gt;Some people who are sexually abused hold disdain towards others who talked about their sexual abuse. 
I have seen people forget, forget their entire childhood.  Parts of their childhood.  Forget that the abuse ever took place,
like a blackout.&lt;/p&gt;

&lt;p&gt;And I see people healing their sexual abuse.  Taking ownership of the situation.  Stepping out of the victim role with all of it&amp;#8217;s limitations and powerlessness.  Facing the fear of looking it straight on and seeing it clearly.&lt;br /&gt;
It doesn&amp;#8217;t stand a chance
it backs off 
cowering in the corner.  A shivering cold lie.  Disconnected from love, from light, from truth.
See it
Speak it
Heal it
The light is stronger.  We are stronger.  We are light. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Krista Love&lt;/li&gt;
&lt;/ul&gt;
</description>
 <comments>http://nearlyfree.org/we-are-light#comments</comments>
 <category domain="http://nearlyfree.org/tags/healing">healing</category>
 <category domain="http://nearlyfree.org/tags/sexual-abuse">sexual abuse</category>
 <pubDate>Fri, 19 Oct 2007 14:25:26 -0700</pubDate>
 <dc:creator>Krista</dc:creator>
 <guid isPermaLink="false">39 at http://nearlyfree.org</guid>
</item>
<item>
 <title>Sugar (doesn't) = Love</title>
 <link>http://nearlyfree.org/sugar-love</link>
 <description>&lt;p&gt;I have been on the candida diet for 6 weeks now.  Candida is a fungus that lives naturally in our bodies but can overgrow, some symptoms of candida are allergies, gastrointestinal issues, arthritis, sinus problems etc. I am only eating brown rice, veggies, beans and max. 2 pieces of fruit/day.  I knew I had to do this diet.  I have had allergies and other symptoms for years.  I did not want to though.  My body associates food with love, food with joy, food with entertainment, food with emotional support.  I noticed right away how much less I need to eat to actually feel full, it isn’t that much food at all.  I would usually eat another serving or have a fancy beverage or finish with dessert just because I could for all the reasons I stated above.  I have been working on my emotional attachment to food for years now.  One of my earliest happy memories was a regular and much anticipated event, walking to the bakery with my mom when I am 4 to buy a gingerbread man.  MMM, that cookie was good.  It was sunshine and love and my mom was there, it represented nurturing and simple pleasures, out of the house, away from my brothers and sisters and the stresses of learning how to live in our world.  It was a great cookie with pretty buttons and a happy face.  I have noticed how much my body wants to go unconscious with emotions, and during my time off.  Dating has been effected since so much of it revolved around food; go for a chai latte, dining, movie with popcorn, treats.  Now we drink green tea and both (Keith is on the diet too) are a bit tired.  In theatre school (11 years ago) I started to realize, when I would steal a double chocolate chip cookie from the cafeteria everyday during lunch hour (I had to steal it, I was a vegan, but if it was free, according to this moral code, it was forgiven) I would eat that cookie and it would raise my energy level so high.  I began to feel that this was life, high, strung out on sugar, wide eyed, this was joy.  I can feel my body on this day, day 42 of the diet not wanting to be joyful, feeling it can’t, there is no joy without sugar.  I am pretty sure there is but my body is grieving the death of an old friend, an old dysfunctional friend.  I am more sensitive to the aches and pains, the emotions, the stress and most of all the nervous tension my body holds onto.  The fear of being hurt that if I do something wrong I will be in trouble.  That is usually when I would eat a cookie.  But no more.  Now I get to face the fear and kick it out of my life for good.  I said to my naturopath the first time we met, I feel like candida is a monster and he said, “It is a monster.”  It is a monster that steals joy and love and perpetuates denial.  As my spiritual teacher says often, “That&amp;#8217;s just not a good time!”&lt;/p&gt;
</description>
 <comments>http://nearlyfree.org/sugar-love#comments</comments>
 <pubDate>Wed, 10 Oct 2007 22:29:50 -0700</pubDate>
 <dc:creator>Krista</dc:creator>
 <guid isPermaLink="false">38 at http://nearlyfree.org</guid>
</item>
<item>
 <title>Testing domains in /etc/hosts</title>
 <link>http://nearlyfree.org/testing-domains-etc-hosts</link>
 <description>&lt;p&gt;If you use /etc/hosts to create fake domains on a unix-like system, you&amp;#8217;ve probably noticed that these domains don&amp;#8217;t show up for the standard DNS debugging tools.  Commands like &amp;#8216;dig&amp;#8217;, &amp;#8216;host&amp;#8217; or &amp;#8216;nslookup&amp;#8217; all return &amp;#8216;Domain not found&amp;#8217; for your custom domains, because they all query your nameserver directly, rather than using a system call.&lt;/p&gt;

&lt;p&gt;These domains work for your browser, for instance, because your browser uses system calls to do name resolution, which are handled by the operating system and can looked-up in various different places, like /etc/hosts.  However sometimes I find it handy to have a simple shell command that works for my custom domain names.  Here&amp;#8217;s what I use:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;alias resolv='perl -MSocket -e '\''@a=gethostbyname(shift); print map({inet_ntoa($_)."\n"} splice(@a, 4));'\'''
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Example:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;nearlyfree:keith keith$ resolv keith.local
127.0.0.1
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;You could write this simple program in any language - I chose to write it in Perl.&lt;/p&gt;

&lt;p&gt;Here&amp;#8217;s another handy command.  If you are using Mac OS X, you may find that you need to send a signal to &amp;#8216;lookupd&amp;#8217;, the process that handles name lookups, to make sure your /etc/hosts changes &amp;#8216;took&amp;#8217;.  This alias does just that:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;alias lookhup="sudo kill -HUP \`ps -ax | awk '/lookupd/{print\$1}' | head -1\`"
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Have fun!&lt;/p&gt;
</description>
 <comments>http://nearlyfree.org/testing-domains-etc-hosts#comments</comments>
 <category domain="http://nearlyfree.org/tags/dns">dns</category>
 <category domain="http://nearlyfree.org/tags/mac-os-x">mac os x</category>
 <category domain="http://nearlyfree.org/tags/tip">tip</category>
 <category domain="http://nearlyfree.org/tags/unix">unix</category>
 <pubDate>Wed, 10 Oct 2007 15:40:23 -0700</pubDate>
 <dc:creator>Keith</dc:creator>
 <guid isPermaLink="false">37 at http://nearlyfree.org</guid>
</item>
<item>
 <title>Service-oriented Blogging</title>
 <link>http://nearlyfree.org/service-oriented-blogging</link>
 <description>&lt;p&gt;For some time now I&amp;#8217;ve had ideas banging around in my head about what a fully &lt;a href="http://en.wikipedia.org/wiki/Service-oriented_architecture" title="Service-oriented architecture - Wikipedia, the free encyclopedia"&gt;service-oriented&lt;/a&gt; blogging (SOB :) system would look like.  It feels good to get this out of my head, and onto (virtual) paper.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Content store&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The core of the blog system would be simply a store of blog posts with a blogging API in front of it.&lt;/p&gt;

&lt;p&gt;Existing technology: &lt;a href="http://en.wikipedia.org/wiki/Atom_&amp;#40;standard&amp;#41;" title="Atom - Wikipedia, the free encyclopedia"&gt;Atom Publishing Protocol&lt;/a&gt;  - Atom seems like the only blogging API with a future - I.e. the only one extensible enough to be used beyond the basic blogging use cases.&lt;/p&gt;

&lt;p&gt;Existing services: it may be possible to use an existing hosted blogging service, if it provides an Atom API to access the store.  However I doubt these systems are flexible enough to do what&amp;#8217;s needed here.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Indexing&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Your content store would be indexed by one or more indexing services.  Some would perhaps focus more on categorization (e.g. Technorati) others on keyword search (e.g. Google search).  The key is that the index services have an API that allows them to be easily plugged in to our blog UI.&lt;/p&gt;

&lt;p&gt;Existing technology: &lt;a href="http://lucene.apache.org/java/docs/" title="Apache Lucene - Overview"&gt;Lucene&lt;/a&gt; perhaps?&lt;/p&gt;

&lt;p&gt;Existing services: &lt;a href="http://www.google.com/" title="Google"&gt;Google search&lt;/a&gt;, &lt;a href="http://search.yahoo.com/" title="Yahoo! Search - Web Search"&gt;Yahoo! search&lt;/a&gt;, &lt;a href="http://technorati.com/" title="Technorati: Home"&gt;Technorati&lt;/a&gt;, many more&amp;#8230;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Comments/Annotation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This service would allow commenting, annotation, rating, tagging, review, etc. of your content by others.&lt;/p&gt;

&lt;p&gt;It would be cool to see a unification of pingback, trackback, and regular blog comments via smart schemas (Atom, hAtom, hReview) and smart indexers.  It shouldn&amp;#8217;t matter if my comment on your article resides in my blog system or yours (or on a third-party&amp;#8217;s), as long as the links between the content items are discoverable programmatically, and notification of all interested parties is possible.  In a sense this service doesn&amp;#8217;t store content so much as store the links between pieces of content.  To some extent this is the domain of an Indexing service - so maybe a seperate category of service is not necessary.&lt;/p&gt;

&lt;p&gt;Existing technology: Atom, &lt;a href="http://microformats.org/wiki/hatom" title="hatom - Microformats"&gt;hAtom&lt;/a&gt;, &lt;a href="http://microformats.org/wiki/hreview" title="hreview - Microformats"&gt;hReview&lt;/a&gt;, &lt;a href="http://www.w3.org/RDF/" title="Resource Description Framework"&gt;RDF&lt;/a&gt; maybe&lt;/p&gt;

&lt;p&gt;Existing services: There are several commenting services out there, but none are this flexible as far as I can tell.  There have also been some experiments with decentralized annotation, like &lt;a href="http://hoodwinkd.hobix.com/" title="It's the hoodwink.d information booth."&gt;hoodwink.d&lt;/a&gt; and &lt;a href="http://www.wikalong.org/" title="Wikalong Firefox Extension"&gt;wikialong&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Authentication&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://identity20.com/media/OSCON2005/" title="OSCON 2005 Keynote - Identity 2.0"&gt;Identity 2.0&lt;/a&gt; technologies are appropriate here, so that none of these services need yet-another-password, and so people can easily give indexing and annotation services access to their private data.&lt;/p&gt;

&lt;p&gt;Existing technology: &lt;a href="http://openid.net/" title="OpenID.net"&gt;OpenID&lt;/a&gt;, &lt;a href="http://oauth.net/" title="OAuth"&gt;OAuth&lt;/a&gt;, &lt;a href="http://msdn2.microsoft.com/winfx/Aa663320.aspx" title="Windows CardSpace"&gt;Infocards&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/SAML" title="SAML - Wikipedia, the free encyclopedia"&gt;SAML&lt;/a&gt;, &lt;a href="http://www.inames.net/" title="iNames.net"&gt;i-names&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Existing services: many, I use &lt;a href="http://www.sxipper.com/" title="Sxipper"&gt;Sxipper&lt;/a&gt; and &lt;a href="http://myopenid.com"&gt;MyOpenID.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;UI&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;At the end of the day, we need a front-end so that humans can see our wonderful content.&lt;/p&gt;

&lt;p&gt;Likely there would be many - feed readers and browser plugins on the client side, on the server side one could imagine a generic content store navigator service - something that aggregates not just your content but all the various indexes, ratings, categories, tags and reviews on your content into one UI.&lt;/p&gt;

&lt;p&gt;Existing technology: Many &lt;a href="http://en.wikipedia.org/wiki/Aggregator"&gt;feed readers&lt;/a&gt; exist.  Most modern &lt;a href="http://en.wikipedia.org/wiki/Content_management_system" title="Content management system - Wikipedia, the free encyclopedia"&gt;content management systems&lt;/a&gt; and &lt;a href="http://en.wikipedia.org/wiki/Web_application_framework" title="Web application framework - Wikipedia, the free encyclopedia"&gt;web frameworks&lt;/a&gt; are capable of assembling various feeds and querying various services to build a page.&lt;/p&gt;

&lt;p&gt;Existing services: I don&amp;#8217;t know of any services that do exactly what is needed here.&lt;/p&gt;
</description>
 <comments>http://nearlyfree.org/service-oriented-blogging#comments</comments>
 <category domain="http://nearlyfree.org/tags/blog">blog</category>
 <category domain="http://nearlyfree.org/tags/services">services</category>
 <category domain="http://nearlyfree.org/tags/soa">soa</category>
 <category domain="http://nearlyfree.org/tags/sob">sob</category>
 <category domain="http://nearlyfree.org/tags/web">web</category>
 <category domain="http://nearlyfree.org/tags/web2-0">web2.0</category>
 <pubDate>Mon, 08 Oct 2007 16:06:02 -0700</pubDate>
 <dc:creator>Keith</dc:creator>
 <guid isPermaLink="false">36 at http://nearlyfree.org</guid>
</item>
<item>
 <title>They sell themselves</title>
 <link>http://nearlyfree.org/they-sell-themselves</link>
 <description>&lt;p&gt;&lt;img src="http://farm3.static.flickr.com/2063/1511506785_d838fbd6d0.jpg?v=0" alt="Stolen Computers" title="" /&gt;&lt;/p&gt;

&lt;p&gt;Poster seen near SE Marine drive (right behind Lee Valley Tools actually).  Great marketing!&lt;/p&gt;
</description>
 <comments>http://nearlyfree.org/they-sell-themselves#comments</comments>
 <category domain="http://nearlyfree.org/tags/computers">computers</category>
 <category domain="http://nearlyfree.org/tags/photo">photo</category>
 <category domain="http://nearlyfree.org/tags/vancouver">vancouver</category>
 <pubDate>Sun, 07 Oct 2007 22:05:36 -0700</pubDate>
 <dc:creator>Keith</dc:creator>
 <guid isPermaLink="false">35 at http://nearlyfree.org</guid>
</item>
<item>
 <title>Email on my Phone</title>
 <link>http://nearlyfree.org/email-my-phone</link>
 <description>&lt;p&gt;I recently got myself a phone with a data plan (a &lt;a href="http://www.palm.com/us/products/smartphones/treo700p/" title="Palm - Products - Palm&amp;reg; Treo&amp;trade; 700p smartphone"&gt;Treo 700p&lt;/a&gt; to be exact), so that I can check my email when I am laptop-less and/or wifi-less.&lt;/p&gt;

&lt;p&gt;Living in Canada, I&amp;#8217;m subjected to &lt;a href="http://bmannconsulting.com/blog/bmann/the-travesty-of-canadian-mobile-data-rates" title="The Travesty of Canadian Mobile Data Rates | B. Mann Consulting"&gt;absurdly expensive mobile data rates&lt;/a&gt;, so every byte is precious.  My solution to this is to limit the amount of email data that goes to my phone as much as possible.&lt;/p&gt;

&lt;p&gt;Here&amp;#8217;s what I decided my email-to-phone system needed to do:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Filter out the &lt;a href="http://www.bacn2.com/"&gt;bacn&lt;/a&gt; and &lt;a href="http://en.wikipedia.org/wiki/E-mail_spam"&gt;spam&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I only want to receive important personal mail on my phone - no bulk mail, no low-signal-to-noise mailing lists.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Remove HTML, attachments, images&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Modern mail user agents make it possible to increase email size by a factor of 10 without adding any more relevant information.  I want to be able to slim my email down to just the facts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How it works&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;At the end of my &lt;a href="http://www.procmail.org/" title="Procmail Homepage"&gt;Procmail&lt;/a&gt; script, I have a recipe that forwards any mail that has gotten by all the filters to a different account from which my phone is set to get mail.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;:0c
| awk 'NR &amp;gt; 2' | ~/bin/plaintextforward.pl keith.grennan@example.com
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;That &lt;a href="http://en.wikipedia.org/wiki/AWK_%28programming_language%29"&gt;awk&lt;/a&gt; bit there strips out the extra header (From line) and sends the rest to my email-slimming script, &amp;#8216;plaintextforward.pl&amp;#8217;, which looks like this:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;#!/usr/bin/perl
use strict;
use warnings;
use Mail::Message;
use IO::File;

die "usage: $0 to-address &amp;lt; msg" unless @ARGV;
my $to = shift @ARGV;

# flatten, and create alternative text/plain parts for any HTML parts
my $msg = Mail::Message-&amp;gt;read(\*STDIN)-&amp;gt;rebuild(
  extra_rules =&amp;gt; ['flattenNesting', 'removeEmptyMultiparts','textAlternativeForHtml']);

# join all text/plain parts into one string, and discard the rest
my $body = join("\n", map($_-&amp;gt;decoded, 
  grep(lc $_-&amp;gt;get('Content-Type') eq 'text/plain', $msg-&amp;gt;parts('RECURSE'))));

# make this string the body of the message
$body  = Mail::Message::Body-&amp;gt;new(mime_type =&amp;gt; 'text/plain', data =&amp;gt; $body);
$msg-&amp;gt;body($body);

# forward the message
$msg-&amp;gt;head-&amp;gt;set(To =&amp;gt; $to);
my $out = IO::File-&amp;gt;new("$ENV{HOME}/last-msg", 'w');
my $bounce = $msg-&amp;gt;bounce(To =&amp;gt; $to);
$bounce-&amp;gt;print($out);
$bounce-&amp;gt;send;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;I use the &lt;a href="http://www.perl.org/"&gt;Perl&lt;/a&gt; module &lt;a href="http://search.cpan.org/perldoc?Mail::Message" title="Mail::Message - general message object"&gt;Mail::Message&lt;/a&gt; to do all the processing.  It creates plain text alternates to all HTML parts, if they don&amp;#8217;t already exist, and then I gather up all the plain text parts and join them together, discarding everything else - this becomes the new message.  Then it gets forwarded on to the phone account.&lt;/p&gt;

&lt;p&gt;So that works pretty well, but I still have a problem - the backlog of mail building up in the phone mailbox.  If I don&amp;#8217;t check my phone mail for a while, I don&amp;#8217;t want to get a flood of already-read messages.  And I don&amp;#8217;t want to have to log in to that other account and clean it up all the time.  Solution - make a mail box emptying script that uses the POP3 protocol, &amp;#8216;clearmail.pl&amp;#8217;:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;#!/usr/bin/perl
use strict;
use Mail::Box::POP3;
my $p = Mail::Box::POP3-&amp;gt;new(username=&amp;gt;"keith.grennan", password=&amp;gt;"XXXXX", server_name=&amp;gt;"pop.example.com"); 
$_-&amp;gt;delete for $p-&amp;gt;messages;
$p-&amp;gt;close(write =&amp;gt; 'MODIFIED', force =&amp;gt; 1);
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;I hook this script up to a shell script called &amp;#8216;m&amp;#8217; that i use to invoke my mail reader so it gets run in the background whenever I open my mail client:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;#!/bin/bash
clearmail.pl &amp;amp;
mutt
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;So I know that when I check my main mail account, I am clearing out my phone mail account.&lt;/p&gt;

&lt;p&gt;Hope this helps my fellow Canadians, until we see some actually competitive mobile data rates.&lt;/p&gt;
</description>
 <comments>http://nearlyfree.org/email-my-phone#comments</comments>
 <category domain="http://nearlyfree.org/tags/canada">canada</category>
 <category domain="http://nearlyfree.org/tags/email">email</category>
 <category domain="http://nearlyfree.org/tags/mobile">mobile</category>
 <category domain="http://nearlyfree.org/tags/perl">perl</category>
 <category domain="http://nearlyfree.org/tags/productivity">productivity</category>
 <category domain="http://nearlyfree.org/tags/treo">treo</category>
 <pubDate>Fri, 05 Oct 2007 09:52:04 -0700</pubDate>
 <dc:creator>Keith</dc:creator>
 <guid isPermaLink="false">34 at http://nearlyfree.org</guid>
</item>
<item>
 <title>How to be successful in software</title>
 <link>http://nearlyfree.org/how-be-successful-software</link>
 <description>&lt;p&gt;Observation - these two conditions must be met for a software company to be successful:&lt;/p&gt;

&lt;p&gt;&lt;strike&gt;1. Engineering trusts Product Management.&lt;/strike&gt;&lt;/p&gt;

&lt;p&gt;&lt;strike&gt;2. Engineering believes Product Management to be competent.&lt;/strike&gt;&lt;/p&gt;

&lt;p&gt;Engineering and Product Management trust each other, and each believes the other to be competent.&lt;/p&gt;

&lt;p&gt;Note:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The actual product managers aren&amp;#8217;t necessarily the people who have that title on their business card.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Revised (2007-10-05): On reflection, I think it&amp;#8217;s important to emphasize the reciprocal nature of the trust relationship.&lt;/p&gt;
</description>
 <comments>http://nearlyfree.org/how-be-successful-software#comments</comments>
 <category domain="http://nearlyfree.org/tags/business">business</category>
 <category domain="http://nearlyfree.org/tags/development">development</category>
 <category domain="http://nearlyfree.org/tags/software">software</category>
 <pubDate>Wed, 03 Oct 2007 20:09:22 -0700</pubDate>
 <dc:creator>Keith</dc:creator>
 <guid isPermaLink="false">33 at http://nearlyfree.org</guid>
</item>
<item>
 <title>Better Together</title>
 <link>http://nearlyfree.org/better-together</link>
 <description>&lt;p&gt;&lt;img src="/files/teapot.png" alt="Better Together" title="" /&gt;&lt;/p&gt;

&lt;p&gt;The Amazon product-pairing algorithm clearing fails this Turing test.&lt;/p&gt;

&lt;p&gt;Although, it could be there&amp;#8217;s something about combining cast-iron teapots and Metroid that I don&amp;#8217;t know about&amp;#8230;&lt;/p&gt;
</description>
 <comments>http://nearlyfree.org/better-together#comments</comments>
 <pubDate>Tue, 02 Oct 2007 22:35:30 -0700</pubDate>
 <dc:creator>Keith</dc:creator>
 <guid isPermaLink="false">32 at http://nearlyfree.org</guid>
</item>
<item>
 <title>OAuth for Perl</title>
 <link>http://nearlyfree.org/oauth-perl</link>
 <description>&lt;p&gt;&lt;strong&gt;Update (2007-10-02): Net::OAuth now supports the RSA-SHA1 signing method!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Update (2008-06-04): Net::OAuth 0.11 released, with many new fixes and features &lt;a href="http://search.cpan.org/src/KGRENNAN/Net-OAuth-0.11/Changes"&gt;Changelog&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Quick links:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="http://search.cpan.org/perldoc?Net::OAuth"&gt;Net::OAuth documentation and downloads&lt;/a&gt; on CPAN&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="http://oauth.kg23.com/"&gt;Live OAuth demo&lt;/a&gt; powered by Net::OAuth&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Today I noticed the link &amp;#8216;&lt;a href="http://oauth.net/documentation/spec" title="OAuth 1.0 Draft 1"&gt;OAuth 1.0 Draft&lt;/a&gt;&amp;#8217; appear in the &lt;a href="http://del.icio.us/popular/" title="Popular pages on del.icio.us"&gt;del.icio.us popular&lt;/a&gt; feed.  I followed it, and to my great delight found a spec for a protocol that is long overdue.&lt;/p&gt;

&lt;p&gt;OAuth is &lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;An open protocol to allow secure API authentication in a simple and standard method from desktop and web applications.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This abstract definition can be explained by a simple example: &lt;/p&gt;

&lt;p&gt;I keep my photos on a photo-sharing site.  I want to print some photos on a photo printing site, and have them shipped to me.  How does the photo printing site get access to my photos (say they are my private photos, only visible to me)?  One way would be to give the printing site (call this site the Consumer) my username and password at the sharing site where my photos are stored (call this the Service Provider).  Problem: Then the Consumer has my credentials - this gives them total access - they could, in effect &amp;#8216;be me&amp;#8217; on that other site.  This obviously isn&amp;#8217;t what I want.  What I want to do is just give them the right to use my private data at the Service Provider, without giving away my password.&lt;/p&gt;

&lt;p&gt;OAuth allows that to happen, in a simple standardized way.&lt;/p&gt;

&lt;p&gt;OAuth is &lt;a href="http://openid.net/" title="OpenID: an actually distributed identity system"&gt;OpenID&lt;/a&gt;-like (not in its purpose, but in the way it is architected), but simpler.  From reading the spec I can see that learnings from the OpenID process have been applied here - this spec has a clean, mature feel, despite being 1.0.  It was also nice seeing some familiar names listed as authors on the document, like &lt;a href="http://twitter.com/blaine"&gt;Blaine Cook&lt;/a&gt; and &lt;a href="http://term.ie/"&gt;Andy Smith&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;After all that I decided to help out with some Perl code. After a few hours of hacking, Net::OAuth was born!  You can learn more about it on the &lt;a href="http://search.cpan.org/perldoc?Net::OAuth"&gt;Net::OAuth page on CPAN&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;It&amp;#8217;ll be fun to watch this protocol as it spreads.  It is, like I said before, long overdue, and is immediately useful to many sites.&lt;/p&gt;
</description>
 <comments>http://nearlyfree.org/oauth-perl#comments</comments>
 <category domain="http://nearlyfree.org/tags/authn">authn</category>
 <category domain="http://nearlyfree.org/tags/authz">authz</category>
 <category domain="http://nearlyfree.org/tags/identity">identity</category>
 <category domain="http://nearlyfree.org/tags/oauth">oauth</category>
 <category domain="http://nearlyfree.org/tags/perl">perl</category>
 <category domain="http://nearlyfree.org/tags/web-2-0">web 2.0</category>
 <pubDate>Sun, 30 Sep 2007 08:03:27 -0700</pubDate>
 <dc:creator>Keith</dc:creator>
 <guid isPermaLink="false">31 at http://nearlyfree.org</guid>
</item>
<item>
 <title>Spirit am I</title>
 <link>http://nearlyfree.org/spirit-am-i</link>
 <description>&lt;p&gt;I wrote this poem while on retreat:&lt;/p&gt;

&lt;p&gt;Spirit am I&lt;br /&gt;
Ease breeze please&lt;br /&gt;
Love grows on trees&lt;br /&gt;
Tweet tweet&lt;br /&gt;
Bleep bleep&lt;br /&gt;
Soul grows and laughter speaks&lt;br /&gt;
My shoebox is nearly full&lt;br /&gt;
Empty empty&lt;br /&gt;
Turn it upside down&lt;/p&gt;
</description>
 <comments>http://nearlyfree.org/spirit-am-i#comments</comments>
 <pubDate>Tue, 07 Aug 2007 09:50:08 -0700</pubDate>
 <dc:creator>Keith</dc:creator>
 <guid isPermaLink="false">30 at http://nearlyfree.org</guid>
</item>
<item>
 <title>Firsts</title>
 <link>http://nearlyfree.org/firsts</link>
 <description>&lt;p&gt;Last weekend was the first real summer weekend for me.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;First day wearing my straw hat.&lt;/li&gt;
&lt;li&gt;First jump in the ocean.  So refreshing.&lt;/li&gt;
&lt;li&gt;First day with my new &lt;a href="http://www.canadianoutdoor.com/marine_supply/products/Solar/P.V._Panels/300/index.html"&gt;80W solar panel&lt;/a&gt; collecting sunlight - go panel go!&lt;/li&gt;
&lt;/ul&gt;
</description>
 <comments>http://nearlyfree.org/firsts#comments</comments>
 <pubDate>Wed, 11 Jul 2007 07:09:06 -0700</pubDate>
 <dc:creator>Keith</dc:creator>
 <guid isPermaLink="false">29 at http://nearlyfree.org</guid>
</item>
<item>
 <title>Hacking the Toshiba IK-WB21A Network Camera</title>
 <link>http://nearlyfree.org/hacking-toshiba-ik-wb21a-network-camera</link>
 <description>&lt;p&gt;I recently had to incorporate the &lt;a href="http://www.toshiba.com/taisisd/security/"&gt;Toshiba IK-WB21A&lt;/a&gt; camera into a website I was working on.  This is a $1000+ camera, very hi-fi and 360-degree remote-controllable over the web.  Only problem - it is only officially compatible with IE for Windows (requires an ActiveX control to run), a fact that was discovered after purchase.  After a bit of hacking and HTTP protocol analysis, I found that the cam actually employs some well known standards under the hood.  Most of the UI is Javascript and HTML - only the actual video picture rendering is done by the ActiveX control.&lt;/p&gt;

&lt;p&gt;The video itself is transported via &lt;a href="http://en.wikipedia.org/wiki/MJPEG"&gt;MJPEG&lt;/a&gt; / &lt;a href="http://en.wikipedia.org/wiki/Push_technology"&gt;HTTP server push&lt;/a&gt; (remember when server push was a buzzword?).  Basically this just involves opening an HTTP connection to the server, which serves an endless multipart-MIME stream of JPEG images, one after another.&lt;/p&gt;

&lt;p&gt;The HTTP analysis showed me that the ActiveX control was reading a stream from this URL:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;/user/cgi-bin/getstream.cgi?0S0009E97AB7445&amp;amp;000000009781655&amp;amp;cm9vdA&amp;amp;aWt3Yg&amp;amp;0&amp;amp;1&amp;amp;1&amp;amp;0&amp;amp;20
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Some heavy Googling revealed that Firefox and Safari natively support JPEG streams (I&amp;#8217;m surprised how obscure this fact is).  With that knowledge, the hack was easy.  Creating an image tag whose source is the URL of the JPEG stream, Firefox and Safari just do the right thing, showing the full frame-rate video.&lt;/p&gt;

&lt;p&gt;&amp;lt;img src=&amp;#8221;/user/cgi-bin/getstream.cgi?0S0009E97AB7445&amp;amp;000000009781655&amp;amp;cm9vdA&amp;amp;aWt3Yg&amp;amp;0&amp;amp;1&amp;amp;1&amp;amp;0&amp;amp;20&amp;#8221; /&amp;gt;&lt;/p&gt;

&lt;p&gt;I&amp;#8217;m also surprised that Toshiba didn&amp;#8217;t just build in support for these other browsers.  A little more effort spent in development would have opened up a bigger potential market (sure Firefox may only make up 15% of the browser market, but how many sites launch without Firefox compatibility?).  Granted this camera is more targeted towards security uses, but why limit yourself unnecessarily?&lt;/p&gt;

&lt;p&gt;Anyway, I&amp;#8217;m pretty happy to have turned a potential $1000 loss into a lovely working webcam.&lt;/p&gt;
</description>
 <comments>http://nearlyfree.org/hacking-toshiba-ik-wb21a-network-camera#comments</comments>
 <pubDate>Fri, 06 Jul 2007 15:23:21 -0700</pubDate>
 <dc:creator>Keith</dc:creator>
 <guid isPermaLink="false">28 at http://nearlyfree.org</guid>
</item>
<item>
 <title>Text::Microformat 0.04 released</title>
 <link>http://nearlyfree.org/text-microformat-0-04-released</link>
 <description>&lt;p&gt;The latest Text::Microformat is available on CPAN.  The biggest change is the addition of &lt;a href="http://microformats.org/wiki/hcalendar"&gt;hCalendar&lt;/a&gt; support, thanks to Franck Cuny.  Also there is changed handling (i.e. ignoring) of &lt;a href="http://microformats.org/wiki/namespaces-considered-harmful"&gt;namespaces&lt;/a&gt;.  The parser now strips off the namespace prefixes and matches on the local names.  This means that the tags &amp;lt;a&amp;gt; and &amp;lt;html:a&amp;gt; and  &amp;lt;monkey:a&amp;gt; would be treated the same way.  This may seem backwards to XML-heads, but with microformats &lt;a href="http://microformats.org/wiki/namespaces-considered-harmful"&gt;namespaces are considered harmful&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://search.cpan.org/perldoc?Text::Microformat"&gt;Text::Microformat on CPAN&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://code.google.com/p/ufperl/"&gt;Project Homepage&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Enjoy!&lt;/p&gt;
</description>
 <comments>http://nearlyfree.org/text-microformat-0-04-released#comments</comments>
 <category domain="http://nearlyfree.org/tags/microformats">microformats</category>
 <category domain="http://nearlyfree.org/tags/perl">perl</category>
 <category domain="http://nearlyfree.org/tags/uf">uf</category>
 <category domain="http://nearlyfree.org/tags/ufperl">ufperl</category>
 <pubDate>Fri, 06 Jul 2007 14:35:47 -0700</pubDate>
 <dc:creator>Keith</dc:creator>
 <guid isPermaLink="false">27 at http://nearlyfree.org</guid>
</item>
<item>
 <title>Boot Camp for the Soul</title>
 <link>http://nearlyfree.org/boot-camp-soul</link>
 <description>&lt;p&gt;In April I finished teacher training at my meditation school, Lightwork Spiritual Development, and started the apprenticeship program.  One of the requirements of this program is to sit in on all the classes and programs, which adds up to about 20 hours per week.&lt;/p&gt;

&lt;p&gt;I recently made a chart of what my weekly schedule looks like.  After blocking off time for work, Lightwork apprenticeship, and time spent at the Ecovillage, all that remains are thin slivers in the mornings and evenings.  This would have made me crazy a few years ago, and is only possible with the years of spiritual training I have undertaken.  What was previously felt like a burden, however, is now a blessing.  When I ask myself, &amp;#8220;How do I want to spend my time?&amp;#8221;, the clear answer is &amp;#8220;With people I love, in an environment that supports my spiritual growth and healing.&amp;#8221;  This answer makes it clear that I&amp;#8217;m on the right track.&lt;/p&gt;

&lt;p&gt;The Lightwork apprenticeship program is boot camp for the soul.  In the beginning I was very resistant to the new schedule, but now after a couple months it has become the new norm and the challenge has become tactical: how use my energy in such a way that I can sustain myself through the activities required in my day.&lt;/p&gt;

&lt;p&gt;I&amp;#8217;ve stopped doing the ten or twelve-hour work days, and I&amp;#8217;ve had to let go of a dependency on having lots of unconscious downtime.  Instead I am training my body to run at a clear, high vibration all day, and avoiding wasting energy on stress, anxiety and unconsciousness.&lt;/p&gt;

&lt;p&gt;I&amp;#8217;m also working on having clear boundaries, especially around work.  It&amp;#8217;s so easy to let your work take over your life.  Setting really strong boundaries and sticking to them has been challenging, but it&amp;#8217;s been paying off with a more balanced lifestyle, less stress, and more capacity to be in the moment (and higher productivity at work, of course).&lt;/p&gt;
</description>
 <comments>http://nearlyfree.org/boot-camp-soul#comments</comments>
 <pubDate>Fri, 06 Jul 2007 14:14:12 -0700</pubDate>
 <dc:creator>Keith</dc:creator>
 <guid isPermaLink="false">26 at http://nearlyfree.org</guid>
</item>
<item>
 <title>No more public wireless chez Keith</title>
 <link>http://nearlyfree.org/no-more-public-wireless-chez-keith</link>
 <description>&lt;p&gt;After many years of having my home wireless be public and open, I locked it down with a password today.  It makes me a bit sad because I really like the concept of open wireless access, and wish we lived in a world of open, free wireless access everywhere.&lt;/p&gt;

&lt;p&gt;But of course a few people abusing the system can ruin the dream for everyone else.  I provide my wireless for people to use respectfully, but often I&amp;#8217;ve had users abuse this by doing P2P file sharing and soaking up all my bandwidth.  In the past I&amp;#8217;ve tried reactively to block people who abuse my connection (the only people allowed to abuse my internet connection is me or my roomates, of course :), but lately I&amp;#8217;ve gotten tired of having to police it.  And its frustrating to jump online and find it slow because my neighbor is using it to download the entire series of Lost or whatever.&lt;/p&gt;

&lt;p&gt;I&amp;#8217;m thinking of installing an alternate router firmware like &lt;a href="http://www.dd-wrt.com/"&gt;dd-wrt&lt;/a&gt; or &lt;a href="http://x-wrt.org/"&gt;x-wrt&lt;/a&gt; which gives your router way more features, since this might give me the ability to throttle the public side of the wireless, and/or block the use of certain protocols.&lt;/p&gt;
</description>
 <comments>http://nearlyfree.org/no-more-public-wireless-chez-keith#comments</comments>
 <pubDate>Wed, 04 Jul 2007 15:15:55 -0700</pubDate>
 <dc:creator>Keith</dc:creator>
 <guid isPermaLink="false">25 at http://nearlyfree.org</guid>
</item>
<item>
 <title>Shopping spree</title>
 <link>http://nearlyfree.org/shopping-spree</link>
 <description>&lt;p&gt;Overheard at the spiritual centre: &amp;#8220;It&amp;#8217;s not a shopping spree, it&amp;#8217;s abundance berry-picking to the max!&amp;#8221;&lt;/p&gt;
</description>
 <comments>http://nearlyfree.org/shopping-spree#comments</comments>
 <pubDate>Thu, 28 Jun 2007 07:05:22 -0700</pubDate>
 <dc:creator>Keith</dc:creator>
 <guid isPermaLink="false">24 at http://nearlyfree.org</guid>
</item>
<item>
 <title>xargs -0 (null-padded input) broken on Mac OS X?</title>
 <link>http://nearlyfree.org/xargs-0-null-padded-input-broken-mac-os-x</link>
 <description>&lt;p&gt;&lt;a href="http://www.unixreview.com/documents/s=8274/sam0306g/"&gt;xargs&lt;/a&gt; is a useful &lt;a href="http://www.unix.org/"&gt;Unix&lt;/a&gt; command that lets you operate easily on many files.&lt;/p&gt;

&lt;p&gt;But it looks like the Mac OS X version has a bug&amp;#8230;&lt;/p&gt;

&lt;p&gt;On Linux (GNU xargs):&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;$ find /bin -name '*sh' -print0 | xargs -0 -I{} ls {}
/bin/ksh
/bin/csh
/bin/rbash
/bin/tcsh
/bin/bash
/bin/sh
/bin/zsh
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Same command on a Mac (Tiger, BSD xargs):&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;$ find /bin -name '*sh' -print0 | xargs -0 -I{} ls {}
ls: /bin/bash /bin/csh /bin/ksh /bin/sh /bin/tcsh /bin/zsh: No such file or directory
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Easily fixed by installing GNU xargs on my Mac with &lt;a href="http://finkproject.org/"&gt;fink&lt;/a&gt;:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;apt-get install findutils
&lt;/code&gt;&lt;/pre&gt;
</description>
 <comments>http://nearlyfree.org/xargs-0-null-padded-input-broken-mac-os-x#comments</comments>
 <pubDate>Fri, 15 Jun 2007 10:14:11 -0700</pubDate>
 <dc:creator>Keith</dc:creator>
 <guid isPermaLink="false">23 at http://nearlyfree.org</guid>
</item>
<item>
 <title>Fun with Jabber bots</title>
 <link>http://nearlyfree.org/fun-jabber-bots</link>
 <description>&lt;p&gt;I&amp;#8217;ve recently been playing with Jabber bots.  &lt;a href="http://www.jabber.org/"&gt;Jabber&lt;/a&gt; is an &lt;a href="http://en.wikipedia.org/wiki/Instant_messaging"&gt;instant messaging protocol&lt;/a&gt; (like &lt;a href="http://get.live.com/messenger/overview"&gt;MSN Instant Messenger&lt;/a&gt; or &lt;a href="http://www.aim.com/"&gt;AIM&lt;/a&gt;).  However, unlike those other protocols, Jabber is an &lt;a href="http://en.wikipedia.org/wiki/Open_standard"&gt;open standard&lt;/a&gt;. Jabber was adopted by Google as the basis for their instant messaging service &lt;a href="http://www.google.com/talk/"&gt;Google Talk&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;A powerful way to play with Jabber is to make a &lt;a href="http://en.wikipedia.org/wiki/Internet_bot"&gt;bot&lt;/a&gt;.  A bot acts like one of your chat buddies - you can have a conversation with it over IM - but it is actually a little program that follows your commands, or can notify you of things.&lt;/p&gt;

&lt;p&gt;I found &lt;a href="http://socket7.net/software/jabber-bot"&gt;a great bot by Brett Stimmerman written in Ruby&lt;/a&gt;.  It&amp;#8217;s very easy to customize.  I&amp;#8217;ve programmed this bot to tell me via my Google Talk account when I have new mail.  Since I use the &lt;a href="http://www.mutt.org/"&gt;mutt&lt;/a&gt; mail client on a remote server, normally I don&amp;#8217;t receive new mail notification popups - I have to go to my terminal window to check for mail.  Now with my bot and &lt;a href="http://growl.info/"&gt;Growl&lt;/a&gt;, I get a nice shiny popup telling me about the mail, and an IM message with the sender and subject of the email.&lt;/p&gt;

&lt;p&gt;There are &lt;a href="http://www.jabber.org/user/publicservers.shtml"&gt;many free, public Jabber servers&lt;/a&gt; you can use for your bot.  I created a bot called &amp;#8216;keith.grennan.notify@jabber.org&amp;#8217;.&lt;/p&gt;

&lt;p&gt;&lt;img src="/files/bot-reporting.png" alt="Bot reporting for duty" title="" /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src="/files/testing-the-bot.png" alt="Bot reporting for duty" title="" /&gt;&lt;/p&gt;

&lt;p&gt;This only uses half of the bot&amp;#8217;s capability however - I&amp;#8217;ve got the bot notifying me, but I can also have it follow commands I send it over IM.  For example, it would be cool use the bot to update my &lt;a href="http://www.facebook.com/"&gt;Facebook&lt;/a&gt; status (Facebook&amp;#8217;s API doesn&amp;#8217;t explicitly allow for this but it &lt;a href="http://www.hackszine.com/blog/archive/2007/06/update_facebook_status_with_ph.html"&gt;could probably be done with a little hacking&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;Here&amp;#8217;s my bot script:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;#!/usr/bin/env ruby
require 'rubygems'
require 'jabber/bot'
require 'fileutils'

home = File.join(ENV['HOME'], ".jbot")
FileUtils.mkdir_p(home)

# Save my PID
pid = File.new(File.join(home, 'pid'), "w")
pid.write($$)
pid.close

# Create a public Jabber::Bot
bot = Jabber::Bot.new(
  :jabber_id =&amp;gt; 'keith.grennan.notify@jabber.org', 
  :password  =&amp;gt; 'xxxxxxxxxxxx', 
  :master    =&amp;gt; 'keith.grennnan@gmail.com',
  :is_public =&amp;gt; true
)

# Wait for the USR1 signal and read a message from ~/.jbot/message
trap("USR1") {
  begin
    bot.deliver(bot.master,File.new(File.join(home, "message")).read) 
  rescue Exception =&amp;gt; e
    puts e
  end
}

# Bring the new bot to life
bot.connect
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Here&amp;#8217;s a little Perl script that parses an email message and signals the bot:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;#!/usr/bin/perl
use strict;
use warnings;
use Mail::Message;
use File::Slurp;

use constant JBOT_HOME =&amp;gt; $ENV{HOME} . "/.jbot";

# Parse an email message
my $email = Mail::Message-&amp;gt;read(\*STDIN);

# Put a message where the bot will look for it
write_file(JBOT_HOME . "/message", "Mail from " . $email-&amp;gt;sender-&amp;gt;format . ": " . $email-&amp;gt;subject);

# Signal the bot with USR1
if (my $pid = read_file(JBOT_HOME . "/pid")) {
    kill USR1 =&amp;gt; $pid;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;And I call the Perl script from this Procmail recipe:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;:0c
| ~/bin/jbot-mail-notify.pl
&lt;/code&gt;&lt;/pre&gt;
</description>
 <comments>http://nearlyfree.org/fun-jabber-bots#comments</comments>
 <category domain="http://nearlyfree.org/tags/jabber">jabber</category>
 <category domain="http://nearlyfree.org/tags/ruby">ruby</category>
 <enclosure url="http://nearlyfree.org/files/bot-reporting.png" length="13211" type="image/png" />
 <pubDate>Tue, 05 Jun 2007 13:50:55 -0700</pubDate>
 <dc:creator>Keith</dc:creator>
 <guid isPermaLink="false">22 at http://nearlyfree.org</guid>
</item>
<item>
 <title>ActiveState: Web developer wanted</title>
 <link>http://nearlyfree.org/activestate-web-developer-wanted</link>
 <description>&lt;p&gt;ActiveState &lt;a href="http://ascher.ca/blog/2007/06/04/looking-for-a-kick-ass-front-end-web-developer/"&gt;is looking for a kick-ass web developer&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;The ambition: To help create a product that a lot of people will love. (more details will be given if you get to the interview)&lt;/p&gt;
  
  &lt;p&gt;The role: To work with other engineers and designers, bringing your skills in making web-based user interactions that rival the best desktop applications in ease-of-use and fun-of-use.&lt;/p&gt;
  
  &lt;p&gt;The technologies: DHTML, Flash, Ajax, Comet, advanced javascript, other dynamic languages, secret sauce.&lt;/p&gt;
  
  &lt;p&gt;The location: Vancouver, BC. Life rocks here.&lt;/p&gt;
  
  &lt;p&gt;The environment: a small growing very collaborative team within a company that’s done some pretty neat things in the world of dynamic languages.&lt;/p&gt;
  
  &lt;p&gt;Experience needed: Having shipped a product. Cut code. Cut features. Argued against a feature for the sake of users. Argued against a feature in spite of users. Open &gt;source chops are great. Having touched web-based products is great.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This looks like a great opportunity - &lt;a href="http://www.activestate.com/"&gt;ActiveState&lt;/a&gt; is a great company.  I&amp;#8217;ll be keeping tabs on this project.&lt;/p&gt;

&lt;p&gt;Also I think this is an example of a well-written help-wanted ad. :)&lt;/p&gt;
</description>
 <comments>http://nearlyfree.org/activestate-web-developer-wanted#comments</comments>
 <pubDate>Mon, 04 Jun 2007 14:46:36 -0700</pubDate>
 <dc:creator>Keith</dc:creator>
 <guid isPermaLink="false">21 at http://nearlyfree.org</guid>
</item>
<item>
 <title>Ecovillage Wish List</title>
 <link>http://nearlyfree.org/ecovillage-wish-list</link>
 <description>&lt;p&gt;&lt;img src="http://lightwork.ca/images/stories/ecovillage/2007-04-23/DSC01176.jpg" alt="Sun and Tree at Lightwork Ecovillage" title="" /&gt;&lt;/p&gt;

&lt;p&gt;The &lt;a href="http://ecovillage.lightwork.ca/"&gt;Ecovillage&lt;/a&gt; wants your old stuff!  Check out our &lt;a href="http://ecovillage.lightwork.ca/content/view/wish-list/168/92/"&gt;wish list&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;Ecovillage life is as sweet as ever.  The new deck is mostly done.  I&amp;#8217;m staying over there 2-3 nights/week.  I&amp;#8217;m shopping for a 80W solar panel and deep-cycle battery.  If anyone can recommend a local source, I&amp;#8217;d appreciate it.&lt;/p&gt;
</description>
 <comments>http://nearlyfree.org/ecovillage-wish-list#comments</comments>
 <category domain="http://nearlyfree.org/tags/ecovillage">ecovillage</category>
 <category domain="http://nearlyfree.org/tags/lightwork">lightwork</category>
 <category domain="http://nearlyfree.org/tags/solar-power">solar power</category>
 <pubDate>Wed, 23 May 2007 14:04:10 -0700</pubDate>
 <dc:creator>Keith</dc:creator>
 <guid isPermaLink="false">20 at http://nearlyfree.org</guid>
</item>
<item>
 <title>I am offering a meditation class starting Weds, May 23</title>
 <link>http://nearlyfree.org/i-am-offering-meditation-class-starting-weds-may-23</link>
 <description>&lt;p&gt;I&amp;#8217;ve just completed a 2-year meditation teachers&amp;#8217; training program and I&amp;#8217;m offering a Level 1 meditation class.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Learn simple powerful meditation tools that work.  This meditation style is practical, easy to learn and extremely effective.  Designed for anyone interested in establishing a regular meditation practice; creating more peace, ease and clarity in one’s life.  If you have had trouble establishing a regular meditation practice or if this is your introduction to meditation this class series will set you on course.  We will not be sitting cross-legged on the floor, rather sitting in chairs, to create more ease as you learn the meditation techniques.  &lt;/p&gt;
  
  &lt;p&gt;Learn how to center, ground your body, and own your personal space, along with many other energy management tools.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;When:&lt;br /&gt;
May 23rd - July 11th (8 Wednesday Evenings)&lt;br /&gt;
7:30 pm - 9:00 pm &lt;/p&gt;

&lt;p&gt;Where:&lt;br /&gt;
3161 3rd Ave W at Trutch, Vancouver.&lt;br /&gt;
Taking the class over the phone or via podcast is also possible.&lt;/p&gt;

&lt;p&gt;Cost: 
$240 (plus GST)&lt;/p&gt;

&lt;p&gt;&lt;a href="http://lsd.lightwork.ca/content/view/level-1-meditation/9/17/"&gt;Click here for more details&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you or someone you know might be interested, please &lt;a href="/contact"&gt;contact me&lt;/a&gt;.&lt;/p&gt;
</description>
 <comments>http://nearlyfree.org/i-am-offering-meditation-class-starting-weds-may-23#comments</comments>
 <category domain="http://nearlyfree.org/tags/energy">energy</category>
 <category domain="http://nearlyfree.org/tags/healing">healing</category>
 <category domain="http://nearlyfree.org/tags/lightwork">lightwork</category>
 <category domain="http://nearlyfree.org/tags/meditation">meditation</category>
 <category domain="http://nearlyfree.org/tags/vancouver">vancouver</category>
 <pubDate>Sat, 19 May 2007 08:00:26 -0700</pubDate>
 <dc:creator>Keith</dc:creator>
 <guid isPermaLink="false">19 at http://nearlyfree.org</guid>
</item>
<item>
 <title>Bling up your favorite sites with Stylish</title>
 <link>http://nearlyfree.org/bling-your-favorite-sites-stylish</link>
 <description>&lt;p&gt;Do you have a website that you use regularly, but take issue with the designer&amp;#8217;s choice of colors?  Or maybe you find a site to be too busy - offering you way more information then you need day-to-day?  Or you just want to get rid of the ads?  &lt;/p&gt;

&lt;p&gt;A new &lt;a href="http://www.mozilla.com/en-US/firefox/"&gt;Firefox&lt;/a&gt; plugin called &lt;a href="https://addons.mozilla.org/firefox/addon/2108"&gt;Stylish&lt;/a&gt; lets you do just that.  Now you can restyle any website - overriding the original style.  Even changing images and fonts.  Better yet, you can share your created style with others on &lt;a href="http://userstyles.org/"&gt;userstyles.org&lt;/a&gt;.  If the site you&amp;#8217;re using is popular, someone else has probably already styled it.&lt;/p&gt;

&lt;p&gt;I just created a style, &lt;a href="http://userstyles.org/style/show/2384"&gt;Bloglines Efficient&lt;/a&gt;, for &lt;a href="http://www.bloglines.com/"&gt;Bloglines.com&lt;/a&gt; - the site I probably use more than any other.  Bloglines is fairly garish and high-contrast, and contains lots of stuff I never use.  Since screen real-estate is gold, I don&amp;#8217;t want anything I don&amp;#8217;t use taking up space.&lt;/p&gt;

&lt;p&gt;Here&amp;#8217;s the before picture.&lt;/p&gt;

&lt;p&gt;&lt;img src="/files/bloglines-before.png" alt="Bloglines before" title="" /&gt;&lt;/p&gt;

&lt;p&gt;My style does the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cleans things up
&lt;ul&gt;&lt;li&gt;Removes tons of unneeded links and images - makes the display much more compact and less busy and distracting.&lt;/li&gt;
&lt;li&gt;Makes the headline links a little smaller - means I can fit more on the page, and scroll less.&lt;/li&gt;
&lt;li&gt;Removes headline link underlining - I find the headlines easier to read without underlines.&lt;/li&gt;
&lt;li&gt;Remove the large feed icons - Some of the feed icons are pretty ugly, and they just take up space.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Lowers the contrast
&lt;ul&gt;&lt;li&gt;Swaps the blues for grays - I find the gray just easier to look at.&lt;/li&gt;
&lt;li&gt;Makes the tree links dark gray instead of black&lt;/li&gt;
&lt;li&gt;De-saturates the folder images&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here&amp;#8217;s what it looks like after.&lt;/p&gt;

&lt;p&gt;&lt;img src="/files/bloglines-after.png" alt="Bloglines before" title="" /&gt;&lt;/p&gt;
</description>
 <comments>http://nearlyfree.org/bling-your-favorite-sites-stylish#comments</comments>
 <category domain="http://nearlyfree.org/tags/bloglines">bloglines</category>
 <category domain="http://nearlyfree.org/tags/firefox">firefox</category>
 <category domain="http://nearlyfree.org/tags/stylish">stylish</category>
 <category domain="http://nearlyfree.org/tags/userstyles">userstyles</category>
 <category domain="http://nearlyfree.org/tags/web-2-0">web 2.0</category>
 <category domain="http://nearlyfree.org/tags/webdesign">webdesign</category>
 <enclosure url="http://nearlyfree.org/files/bloglines-before.png" length="38582" type="image/png" />
 <pubDate>Fri, 18 May 2007 10:58:00 -0700</pubDate>
 <dc:creator>Keith</dc:creator>
 <guid isPermaLink="false">18 at http://nearlyfree.org</guid>
</item>
<item>
 <title>Overreaction</title>
 <link>http://nearlyfree.org/overreaction</link>
 <description>&lt;p&gt;This &lt;a href="http://www.wired.com/politics/security/commentary/securitymatters/2007/05/securitymatters_0517"&gt;article&lt;/a&gt; by Bruce Shneier is an interesting comment on how humans perceive risk, specifically how we overreact to rare but spectacular events:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;The Virginia Tech massacre is precisely the sort of event we humans tend to overreact to. Our brains aren&amp;#8217;t very good at probability and risk analysis, especially when it comes to rare occurrences. We tend to exaggerate spectacular, strange and rare events, and downplay ordinary, familiar and common ones. There&amp;#8217;s a lot of research in the psychological community about how the brain responds to risk &amp;#8212; some of it I have already written about &amp;#8212; but the gist is this: Our brains are much better at processing the simple risks we&amp;#8217;ve had to deal with throughout most of our species&amp;#8217; existence, and much poorer at evaluating the complex risks society forces us face today.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I found this bit funny: &lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;I tell people that if it&amp;#8217;s in the news, don&amp;#8217;t worry about it. The very definition of &amp;#8220;news&amp;#8221; is &amp;#8220;something that hardly ever happens.&amp;#8221; It&amp;#8217;s when something isn&amp;#8217;t in the news, when it&amp;#8217;s so common that it&amp;#8217;s no longer news &amp;#8212; car crashes, domestic violence &amp;#8212; that you should start worrying.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This article is full of great observations.  I think Schneier might be my favorite cultural commentator these days.  He is a very astute observer, extremely readable,  and is a voice of calm reason in a culture embroiled in fear and spectacle.&lt;/p&gt;
</description>
 <comments>http://nearlyfree.org/overreaction#comments</comments>
 <pubDate>Thu, 17 May 2007 13:38:32 -0700</pubDate>
 <dc:creator>Keith</dc:creator>
 <guid isPermaLink="false">17 at http://nearlyfree.org</guid>
</item>
<item>
 <title>Two great photo feeds (and feed-reading in general)</title>
 <link>http://nearlyfree.org/two-great-photo-feeds-and-feed-reading-general</link>
 <description>&lt;p&gt;Lately I&amp;#8217;ve really been enjoying two &lt;a href="http://www.flickr.com/"&gt;Flickr&lt;/a&gt; feeds - &lt;a href="http://www.flickr.com/photos/keeth/friends/"&gt;photos from my friends&lt;/a&gt; and &lt;a href="http://www.flickr.com/groups/beyondrobson/pool/"&gt;photos from around Vancouver&lt;/a&gt; (where I live).&lt;/p&gt;

&lt;p&gt;Following someone&amp;#8217;s photos is a cool way to see what they are up to.  It&amp;#8217;s often more intimate then following their blog.  &lt;/p&gt;

&lt;p&gt;Also following a photo pool dedicated to a your hometown is a great way to see the area you live in through often hundreds of different eyes.  I am regularly impressed by the high quality of photos.&lt;/p&gt;

&lt;p&gt;An aside: I&amp;#8217;m constantly surprised how many of my non-technical or semi-technical friends do not use a &lt;a href="http://en.wikipedia.org/wiki/News_aggregator"&gt;news aggregator&lt;/a&gt; (aka feed reader aka RSS reader).  &lt;em&gt;If you have interests, and use the Web, you can benefit from a news aggregator&lt;/em&gt;.  If you are a &lt;a href="http://en.wikipedia.org/wiki/Knowledge_worker"&gt;knowledge worker&lt;/a&gt; of any kind, you&amp;#8217;ll benefit immensely.  I use &lt;a href="http://www.bloglines.com/"&gt;Bloglines&lt;/a&gt;.  I&amp;#8217;ve heard good things about &lt;a href="http://www.google.com/reader"&gt;Google Reader&lt;/a&gt; and &lt;a href="http://www.netvibes.com/"&gt;Netvibes&lt;/a&gt; too.  These are web-based readers, and are free.  There are also some great desktop-based readers out there, but I like the web-based ones better.  They will increase the productivity and richness of your Web experience by a factor of 10.  Guaranteed!  Go get one! :)&lt;/p&gt;
</description>
 <comments>http://nearlyfree.org/two-great-photo-feeds-and-feed-reading-general#comments</comments>
 <category domain="http://nearlyfree.org/tags/aggregator">aggregator</category>
 <category domain="http://nearlyfree.org/tags/feed">feed</category>
 <category domain="http://nearlyfree.org/tags/flickr">flickr</category>
 <category domain="http://nearlyfree.org/tags/photos">photos</category>
 <category domain="http://nearlyfree.org/tags/rss">rss</category>
 <category domain="http://nearlyfree.org/tags/vancouver">vancouver</category>
 <pubDate>Thu, 17 May 2007 12:01:01 -0700</pubDate>
 <dc:creator>Keith</dc:creator>
 <guid isPermaLink="false">16 at http://nearlyfree.org</guid>
</item>
<item>
 <title>Diversity</title>
 <link>http://nearlyfree.org/diversity</link>
 <description>&lt;p&gt;&lt;img src="/files/diversity.png" alt="Diversity vs Monoculture" title="" /&gt;&lt;/p&gt;

&lt;p&gt;I just read an excellent article by a fellow named Daniel Geer called &lt;a href="http://geer.tinho.net/acm.geer.0704.pdf"&gt;The Evolution of Security: What can nature tell us about 
how best to manage our risks?&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Some key points:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Security is a set of tradeoffs. &lt;/li&gt;
&lt;li&gt;The existence of tradeoffs is why security equals risk management. &lt;/li&gt;
&lt;li&gt;In the real world, tradeoffs are measured in cost. &lt;/li&gt;
&lt;li&gt;Cleanup and prevention are both necessary but neither is sufficient. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This one is logical but not always obvious:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The optimal number of failures is nonzero - meaning that when you look at the big picture of the costs of mitigating the risk of an event happening, you get diminishing returns after a certain amount is spent protecting against that event.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Geer looks to nature for insight:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Social insects are evolution’s most fantastic success. In the perspective-of-scale department, there are approximately 2&lt;sup&gt;60&lt;/sup&gt; individual insects on this planet, of which 2&lt;sup&gt;50&lt;/sup&gt; are ants. Ants plus termites make up perhaps one-third of the biomass of all terrestrial animals.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;He postulates that the most successful species are tuned by evolution to have behaviours that achieve an optimal balance of diversity.  Diversity is seen here as a risk-mitigation strategy, where the costs of greater diversity are weighed against the risk of cascade failure across the entire population.&lt;/p&gt;

&lt;p&gt;I experienced this today first-hand.  &lt;a href="http://www.mac.com"&gt;.Mac&lt;/a&gt;, a service that I pay for to backup my contacts and calendar, had a glitch that nuked my Address Book.  However for the last couple months I&amp;#8217;ve also been making backups of my documents and settings using &lt;a href="http://en.wikipedia.org/wiki/Rsync"&gt;rsync&lt;/a&gt;.  This saved me as I was able to rescue my contacts from the rsync backup.  So here a slight increase in diversity (with the associated cost of having to make backups in two different places) saved me.&lt;/p&gt;
</description>
 <comments>http://nearlyfree.org/diversity#comments</comments>
 <category domain="http://nearlyfree.org/tags/diversity">diversity</category>
 <category domain="http://nearlyfree.org/tags/evolution">evolution</category>
 <category domain="http://nearlyfree.org/tags/monoculture">monoculture</category>
 <category domain="http://nearlyfree.org/tags/security">security</category>
 <enclosure url="http://nearlyfree.org/files/diversity.png" length="19104" type="image/png" />
 <pubDate>Thu, 17 May 2007 10:24:17 -0700</pubDate>
 <dc:creator>Keith</dc:creator>
 <guid isPermaLink="false">15 at http://nearlyfree.org</guid>
</item>
<item>
 <title>Langley Boys Bring Back The Mullet</title>
 <link>http://nearlyfree.org/langley-boys-bring-back-mullet</link>
 <description>&lt;p&gt;The Globe and Mail &lt;a href="http://www.theglobeandmail.com/servlet/story/LAC.20070514.LMULLET14/TPStory/?query=mullet"&gt;reports&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Friends Ben Besler and Caleb Weitzel, both 29, have declared May &amp;#8220;mullet month&amp;#8221; in Vancouver. They&amp;#8217;ve teamed up with 26-year-old hairstylist Vanessa Greenidge of Knotty Boy salon in East Vancouver. She is offering a $25 special on mullet haircuts all month and challenging other hairstylists to do the same.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I went to elementary and high school with these guys, once upon a time in &lt;a href="http://city.langley.bc.ca/"&gt;the place to be&lt;/a&gt;.  Good to see some local boys making good.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Versatile and low-maintenance, the mullet channels the vigour of the biblical Samson and his full-bodied hair.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Sounds pretty good.  On the other hand, sporting a mullet might make people hate you, according to &lt;a href="http://www.lyricstime.com/wesley-willis-cut-the-mullet-lyrics.html"&gt;Wesley Willis&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;The mullet is the reason why people hate you&lt;/p&gt;
  
  &lt;p&gt;They are sick of looking at your nappy weed-sack&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;We now know who Wesley was talking about: &lt;a href="http://edition.cnn.com/2007/WORLD/meast/04/29/iranian.haricuts.reut/index.html"&gt;Iranian police&lt;/a&gt;.&lt;/p&gt;
</description>
 <comments>http://nearlyfree.org/langley-boys-bring-back-mullet#comments</comments>
 <category domain="http://nearlyfree.org/tags/bc">bc</category>
 <category domain="http://nearlyfree.org/tags/globeandmail">globeandmail</category>
 <category domain="http://nearlyfree.org/tags/langley">langley</category>
 <category domain="http://nearlyfree.org/tags/mullet">mullet</category>
 <category domain="http://nearlyfree.org/tags/vancouver">vancouver</category>
 <pubDate>Tue, 15 May 2007 15:49:14 -0700</pubDate>
 <dc:creator>Keith</dc:creator>
 <guid isPermaLink="false">14 at http://nearlyfree.org</guid>
</item>
<item>
 <title>hBelief - semantic markup for political / spritual / philosophical beliefs and affiliations</title>
 <link>http://nearlyfree.org/hbelief-semantic-markup-political-spritual-philosophical-beliefs-and-affiliations</link>
 <description>&lt;p&gt;Proposal: A way to express your political / spritual / philosophical beliefs and affiliations via &lt;a href="http://www.digital-web.com/articles/writing_semantic_markup/"&gt;semantic markup&lt;/a&gt; (aka &lt;a href="http://microformats.org/"&gt;microformats&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;Why do this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;People might be more inclined to think about and share what they actually believe.&lt;/li&gt;
&lt;li&gt;Establish relationships with others based on shared belief.&lt;/li&gt;
&lt;li&gt;Helps people who are seeking spiritual and political practices and affiliations find out what&amp;#8217;s out there.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Three &lt;em&gt;modes&lt;/em&gt;: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;belief&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;practice&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;affiliation&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And three &lt;em&gt;axes&lt;/em&gt;: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;political&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;spiritual&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;philosophical&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Make for nine possible association-types.  Some make more sense than others, and some may overlap.  I&amp;#8217;ve included some examples.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;spiritual-belief&lt;/strong&gt; (&lt;a href="http://microformats.org/wiki/rel-tag"&gt;rel-tag&lt;/a&gt;)
&lt;ul&gt;&lt;li&gt;Therivadan Buddhist&lt;/li&gt;
&lt;li&gt;Seventh day adventist&lt;/li&gt;
&lt;li&gt;Hindu&lt;/li&gt;
&lt;li&gt;Lightworker (shameless plug)&lt;/li&gt;
&lt;li&gt;Agnostic&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;spiritual-practice&lt;/strong&gt; (&lt;a href="http://microformats.org/wiki/rel-tag"&gt;rel-tag&lt;/a&gt;)
&lt;ul&gt;&lt;li&gt;Meditation&lt;/li&gt;
&lt;li&gt;Yoga&lt;/li&gt;
&lt;li&gt;Prayer&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;spiritual-affiliation&lt;/strong&gt; (&lt;a href="http://microformats.org/wiki/hcard"&gt;hCard&lt;/a&gt;)
&lt;ul&gt;&lt;li&gt;Vancouver Chinese Pentecostal Church, 215 18th Avenue East Vancouver, BC&lt;/li&gt;
&lt;li&gt;Birken Forest Monastery, P.O. Box #5 Knutsford, BC V0E 2A0 Canada&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;political-belief&lt;/strong&gt; (&lt;a href="http://microformats.org/wiki/rel-tag"&gt;rel-tag&lt;/a&gt;)
&lt;ul&gt;&lt;li&gt;Anarchist&lt;/li&gt;
&lt;li&gt;Libertarian&lt;/li&gt;
&lt;li&gt;Conservative&lt;/li&gt;
&lt;li&gt;Socialist&lt;/li&gt;
&lt;li&gt;Capitalist&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;political-practice&lt;/strong&gt; (&lt;a href="http://microformats.org/wiki/rel-tag"&gt;rel-tag&lt;/a&gt; - not so sure about this one)
&lt;ul&gt;&lt;li&gt;Soup kitchen volunteer&lt;/li&gt;
&lt;li&gt;Microloans&lt;/li&gt;
&lt;li&gt;Direct action&lt;/li&gt;
&lt;li&gt;Voting&lt;/li&gt;
&lt;li&gt;Attend townhall meetings&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;political-affiliation&lt;/strong&gt; (&lt;a href="http://microformats.org/wiki/hcard"&gt;hCard&lt;/a&gt;)
&lt;ul&gt;&lt;li&gt;Republican National Committee&lt;/li&gt;
&lt;li&gt;Green Party of Canada&lt;/li&gt;
&lt;li&gt;Communist Party of China&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;philosophical-belief&lt;/strong&gt; (&lt;a href="http://microformats.org/wiki/rel-tag"&gt;rel-tag&lt;/a&gt;)
&lt;ul&gt;&lt;li&gt;Materialist&lt;/li&gt;
&lt;li&gt;Existentialist&lt;/li&gt;
&lt;li&gt;Capitalist&lt;/li&gt;
&lt;li&gt;Rationalist&lt;/li&gt;
&lt;li&gt;Empiricist&lt;/li&gt;
&lt;li&gt;Stoic&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;philosophical-practice&lt;/strong&gt; (&lt;a href="http://microformats.org/wiki/rel-tag"&gt;rel-tag&lt;/a&gt; - not so sure about this one)
&lt;ul&gt;&lt;li&gt;Examples?&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;philosophical-affiliation&lt;/strong&gt; (&lt;a href="http://microformats.org/wiki/rel-tag"&gt;rel-tag&lt;/a&gt; - not so sure about this one, hard to differentiate from political)
&lt;ul&gt;&lt;li&gt;Skeptics Society&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Also hBelief could perhaps add some affiliation (person-to-person) types to &lt;a href="http://gmpg.org/xfn/"&gt;XFN&lt;/a&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;spiritual-teacher&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;spiritual-leader&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;spiritual-colleague&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;philosophical-teacher&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;philosophical-leader (not so sure about this one)&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;philisophical-colleague&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;political-leader / political-candidate&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;political-teacher&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;political-colleague&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Thoughts?&lt;/p&gt;
</description>
 <comments>http://nearlyfree.org/hbelief-semantic-markup-political-spritual-philosophical-beliefs-and-affiliations#comments</comments>
 <category domain="http://nearlyfree.org/tags/hbelief">hbelief</category>
 <category domain="http://nearlyfree.org/tags/microformats">microformats</category>
 <category domain="http://nearlyfree.org/tags/philosophy">philosophy</category>
 <category domain="http://nearlyfree.org/tags/politics">politics</category>
 <category domain="http://nearlyfree.org/tags/posh">posh</category>
 <category domain="http://nearlyfree.org/tags/semantic-markup">semantic markup</category>
 <category domain="http://nearlyfree.org/tags/spirituality">spirituality</category>
 <pubDate>Mon, 14 May 2007 12:42:07 -0700</pubDate>
 <dc:creator>Keith</dc:creator>
 <guid isPermaLink="false">13 at http://nearlyfree.org</guid>
</item>
<item>
 <title>Vancouver Hack-a-thon</title>
 <link>http://nearlyfree.org/vancouver-hack-thon</link>
 <description>&lt;p&gt;&lt;a href="http://www.flickr.com/photos/keeth/494550635/in/photostream/"&gt;&lt;img src="http://farm1.static.flickr.com/217/494550635_aaed03dafd.jpg" alt="Not so serious productivity" title="" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Just got back from &lt;a href="http://www.socialtext.net/open/index.cgi?super_happy_grow_op_dev_house"&gt;SuperHappyGropOpDevHouse&lt;/a&gt;, the Vancouverized version of &lt;a href="http://superhappydevhouse.org/"&gt;SuperHappyDevHouse&lt;/a&gt;, a 12-hour hack-a-thon event that began in San Francisco, birthplace of many things geeky and freaky.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;SuperHappyDevHouse is a hackathon event that combines serious and not-so-serious productivity with a fun and exciting party atmosphere. Come to the DevHouse to have fun and get things done. Not a marketing event. It&amp;#8217;s a non-exclusive event intended for passionate and creative technical people that want to have some fun, learn new things, and meet new people.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Yay!  Met up with some new friends and some old-skool friends (hi Brendan!).  Wasn&amp;#8217;t very productive as I was too busy catching up with people and sharing ideas.  The event was an overwhelming success, as far as I could tell.  Vancouver needs more of this!  Our little tech community needs to be nurtured, and regularly infused with beer and pizza and coffee and hallway conversations.&lt;/p&gt;

&lt;p&gt;It was nice to see so many &amp;#8216;Geeks for Good&amp;#8217; - people working on cool projects to help make the world better.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.flickr.com/photos/keeth/494517182/in/photostream/"&gt;&lt;img src="http://farm1.static.flickr.com/206/494517182_d50d2a50e5.jpg" alt="Not so serious productivity" title="" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Notable conversations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://freegeekvancouver.org/"&gt;Free Geek Vancouver&lt;/a&gt; - who are doing great work and are looking for a Ruby on Rails hacker&lt;/li&gt;
&lt;li&gt;Starting a &amp;#8220;Work From Home&amp;#8221; club&lt;/li&gt;
&lt;li&gt;Talking with DavidA about Gambier Island&lt;/li&gt;
&lt;li&gt;&lt;a href="http://drupal.org/"&gt;Drupal&lt;/a&gt; - my recent conversion, and how someone should write a &lt;a href="http://en.wikipedia.org/wiki/Pingback"&gt;Pingback&lt;/a&gt; module&lt;/li&gt;
&lt;/ul&gt;
</description>
 <comments>http://nearlyfree.org/vancouver-hack-thon#comments</comments>
 <category domain="http://nearlyfree.org/tags/free-geek">free geek</category>
 <category domain="http://nearlyfree.org/tags/geek">geek</category>
 <category domain="http://nearlyfree.org/tags/hackathon">hackathon</category>
 <category domain="http://nearlyfree.org/tags/shdh">shdh</category>
 <category domain="http://nearlyfree.org/tags/shgodh">shgodh</category>
 <category domain="http://nearlyfree.org/tags/unconference">unconference</category>
 <pubDate>Sat, 12 May 2007 01:50:54 -0700</pubDate>
 <dc:creator>Keith</dc:creator>
 <guid isPermaLink="false">12 at http://nearlyfree.org</guid>
</item>
<item>
 <title>Finally a CSS foundation library - my prayers have been answered</title>
 <link>http://nearlyfree.org/finally-css-foundation-library-my-prayers-have-been-answered</link>
 <description>&lt;p&gt;I&amp;#8217;ve been doing web design for several years now, and have learned the following hard lessons:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;em&gt;&lt;abbr title="Cascading Style Sheets"&gt;CSS&lt;/abbr&gt; sucks for layout&lt;/em&gt; - floats are great for floating an image in a block of text, but are profoundly unintuitive for doing page layout.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;This sucking has been compounded about 1000 times by broken layout models in popular browsers&lt;/em&gt; - Microsoft is mostly to blame here.  I can&amp;#8217;t imagine how many cumulative hours have been spent on this planet just solving cross-browser CSS issues.  I&amp;#8217;ve spent my share.  It&amp;#8217;s utter hair-pulling madness and a dreary waste of time.  I am so grateful for IE7 finally getting it right, for the most part, and for &lt;a href="http://dean.edwards.name/IE7/"&gt;JS-based libraries that automatically fix issues in IE5 and IE6&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I think another reason I find CSS so frustrating is that there are no libraries.  When I&amp;#8217;m coding in Perl, say, all the heavy lifting is done by (hopefully) time-tested, heavily regression-checked libraries which I cobble together to make cool stuff.  I work best when I&amp;#8217;m a code DJ (mixing and remixing code written by others) rather than a code composer.  But in the layout realm, it always feels like a huge step back - I&amp;#8217;m having to debug all these stupid layout problems that other people have had to solve as well, thousands of times over.  Solutions to CSS problems are piecemeal and scattered all over the web, with &lt;a href="http://www.communitymx.com/abstract.cfm?cid=47F29"&gt;some people charging you to read them&lt;/a&gt;.  It&amp;#8217;s hugely frustrating and a big waste of time.&lt;/p&gt;

&lt;p&gt;When I&amp;#8217;m building a new site design, I usually start from scratch with the standard CSS &amp;#8216;reset&amp;#8217;:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;* {border: 0; margin: 0}&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;to fix several box-layout compatibility issues.  Then I add a rule to set the default font, and on it goes.  This is crazy-making for a developer used to high-level languages and huge open-source module repositories.&lt;/p&gt;

&lt;p&gt;However, it appears that help is on the way - &lt;a href="http://www.yahoo.com"&gt;Yahoo!&lt;/a&gt; has built a CSS foundation layer as part of a &lt;a href="http://developer.yahoo.com/yui/"&gt;larger UI toolkit&lt;/a&gt;.  This foundation has three components:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://developer.yahoo.com/yui/reset/"&gt;Reset CSS&lt;/a&gt; - This module levels the playing field between browsers by normalizing the default rendering of all HTML elements.  It allows you to be more confident that things will look the same between browsers.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://developer.yahoo.com/yui/fonts/"&gt;Fonts CSS&lt;/a&gt; - This module offers cross-browser typographical normalization and control.  Provides font degradation paths that work across operating systems, and allows for user-initiated font resizing.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://developer.yahoo.com/yui/grids/"&gt;Grids CSS&lt;/a&gt; - This module provides templates for fluid and fixed-width layouts that are easy to customize.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And you can get all three conveniently packed into a single compressed file to drop into your next layout.&lt;/p&gt;

&lt;p&gt;So much for having to reinvent the CSS wheel for every new website.&lt;/p&gt;
</description>
 <comments>http://nearlyfree.org/finally-css-foundation-library-my-prayers-have-been-answered#comments</comments>
 <category domain="http://nearlyfree.org/tags/css">css</category>
 <category domain="http://nearlyfree.org/tags/web-2-0">web 2.0</category>
 <category domain="http://nearlyfree.org/tags/webdesign">webdesign</category>
 <category domain="http://nearlyfree.org/tags/yahoo">yahoo</category>
 <pubDate>Fri, 11 May 2007 16:57:46 -0700</pubDate>
 <dc:creator>Keith</dc:creator>
 <guid isPermaLink="false">11 at http://nearlyfree.org</guid>
</item>
</channel>
</rss>
