<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">

  <title><![CDATA[My Geekdom]]></title>
  <link href="http://neil-smithline.github.com/atom.xml" rel="self"/>
  <link href="http://neil-smithline.github.com/"/>
  <updated>2012-05-20T00:45:54-04:00</updated>
  <id>http://neil-smithline.github.com/</id>
  <author>
    <name><![CDATA[Neil Smithline]]></name>
    
  </author>
  <generator uri="http://octopress.org/">Octopress</generator>

  
  <entry>
    <title type="html"><![CDATA[YANBT: Yet Another New Blogging Technology]]></title>
    <link href="http://neil-smithline.github.com/blog/2012/05/14/new-blog-tech/"/>
    <updated>2012-05-14T12:36:00-04:00</updated>
    <id>http://neil-smithline.github.com/blog/2012/05/14/new-blog-tech</id>
    <content type="html"><![CDATA[<div id="outline-container-1" class="outline-2">
<h2 id="sec-1">NanoBlogger Was Killing Me</h2>
<div class="outline-text-2" id="text-1">

<p><a href="http://bit.ly/wq2Ien">NanoBlogger</a> really looked cool to me 
(<a href="http://neil-smithline.github.com/blog/categories/blogging-tech">my postings about why I liked it</a>):
</p><ul>
<li>Small
</li>
<li>Most functionality provided via plugins
</li>
<li><a href="http://bit.ly/xOIkfJ">CLI</a> only
</li>
<li>It is <a href="http://bit.ly/Mlkg9X">FOSS</a>.
</li>
<li>Produced a static site (ie: only serves static pages)
</li>
<li>It was built on <a href="http://bit.ly/JbQmzE">Bash</a> &ndash; I thought this was the coolest
</li>
</ul>


<p>
I liked it so much that I wrote a CLI for it that was better suited to my personal workflow. I also spent some time integrating it with Emacs. But it had endless problems.
</p>
<p>
It was slow, it did not do anything automatically, frequently required rebuilding of the entire blog, was hard to view on my local machine, isn&#8217;t really being maintained, doesn&#8217;t have a real templating system, breaks the RSS feed on special characters such as etc&hellip;
</p>
</div>

</div>

<div id="outline-container-2" class="outline-2">
<h2 id="sec-2">Where Next</h2>
<div class="outline-text-2" id="text-2">

<p>Over the past few weeks I&#8217;ve been looking around for a new blogging system. The only real contender seemed to be <a href="http://bit.ly/Jm1bmc">Jekyll</a>. It is written in <a href="http://bit.ly/KAfYv0">Ruby</a> and used by Github to power Github Pages. It has so many contributors to it that its <a href="http://bit.ly/JetyoE">Github repository</a> has, at the moment, 50+ pull requests.
</p>
<p>
I had nearly chosen Jekyll when I moved to NanoBlogger. I found that the discussion about moving to Jekyll on the <a href="http://bit.ly/JH7cIy">0xdecafbad.com</a> blog really aligned with my thoughts.
</p>
<p>
But, after playing with it a bit, I found that Jekyll was difficult to configure. And I just so liked the Bash thing that NanoBlogger had that I decided to go with NanoBlogger. But now I&#8217;m wasting too much of my time fighting with Nanoblogger and I should reconsider Jekyll.
<!-- more -->

This time, when I was researching Jekyll, I found <a href="http://bit.ly/KT1aFT">Octopress</a>. Octopress is Jekyll on steroids. It provides an automated configuration and maintenance system that takes the pain out of using Jekyll.
</p>
<p>
So now I&#8217;m giving Octopress/Jekyll a try. I&#8217;ll see how it goes. Configuring a site with a <i>hello world</i> blog entry only took a couple of hours. Most of that was just downloading Octopress and reading the docs to figure out what to do. It turned out that configuration was running three <a href="http://bit.ly/KT2jxn">rake</a> commands. 
</p>
</div>

</div>

<div id="outline-container-3" class="outline-2">
<h2 id="sec-3">Converting From Nanoblogger To Jekyll</h2>
<div class="outline-text-2" id="text-3">

<p>Because NanoBlogger blog entries are plain text with markup, converting my entire old blog to Octopress was fairly easy as Octopress also uses plain text with markup for blog entries. I ran into two snags. The first one was in Emacs&#8217; <a href="http://bit.ly/zhYdcB">Org Mode</a>, my authoring tool. It broke when you had a &#8220;+&#8221; in the path name of your input files (in my case, in the path of my blog). It took me several hours to find the bug. Once I found it, it was easy to patch and I sent my fix to be included in subsequent Org Mode releases.
</p>
<p>
The second problem was a bit trickier. Octopress was breaking on some of my blog&#8217;s generated HTML files. The error message gave me the line number and the character number in that line that was causing the error but it omitted to give me the file name. I believe the technical term for that is &#8220;Oops!&#8221;.
</p>
<p>
To find the file that was casing the problem I started to remove blog files using a <a href="http://bit.ly/KT3gpo">binary search</a>-ish style to track the problem file down. This proved more difficult than I thought it should. After much frustration, it occurred to me that the problem was in many blog entries so the binary search wasn&#8217;t so helpful. So I wiped my blog and started adding one posting at a time. 
</p>
<p>
Even after I found the first posting that caused Octopress, actually Jekyll, to crash, I couldn&#8217;t figure out what was wrong with the file. The error message said something about non-ASCII characters but I only had ASCII, or so I thought. It turned out that I had copied and pasted some text from my browser and it had inserted a hyphen (-) that was not the ASCII hyphen. To me, they looked identical. 
</p>
<p>
Despite knowing what the problem was, I couldn&#8217;t automate Emacs or grep to find the offensive hyphens. In Emacs, the search treated ASCII and non-ASCII hyphens the same. I forget the problems I had with grep but I couldn&#8217;t get it to work either. This meant I was going to have to add one entry at a time to my blog to track down the other problems. Thank you &ndash; NOT!
</p>
<p>
But Jekyll is written in Ruby and Ruby is a scripting language so I have the source code for Jekyll. Being that the error message included a full stack trace, I figured I could update the error message. In the end I just ended up making Jekyll a bit more verbose: it announces which file it is about to process with the message:
:Processing file <i>myfile</i>.
</p>
<p>
Then I added all my blog entries, ran Jekyll, got the same error message with only the line and character position, but now had the name of the file it was processing when it had a problem.
</p>
</div>

</div>

<div id="outline-container-4" class="outline-2">
<h2 id="sec-4">Plain Text Blogs Rock!</h2>
<div class="outline-text-2" id="text-4">

<p> After correcting a couple of entries I noticed that the problem only occurred on hyphens (-) and single quotes (&#8216;). Being that both NanoBlogger and Octopress/Jekyll use plain text files for their input, I had a whole bunch of tools to help me fix the problem. 
</p>
<p>
 In the end I ended up turning Emacs failure to distinguish between the ASCII and non-ASCII versions of these characters to my advantage. I did a search-and-replace on all my blog entries replacing hyphens with hyphens and single quotes with single quotes. While Emacs&#8217; search found both ASCII and non-ASCII characters, it always replaced them with what I typed as the replacement, ASCII.
</p>
<p>
Then, <i>voila</i>, there was my blog. And my blog looked way better in Octopress than NanoBlogger. Check out a NanoBlogger <a href="http://bit.ly/wq2Ien">sample blog</a> and an Octopress <a href="http://bit.ly/KT1aFT">sample blog</a>. Huge difference. Also, excluding the weak error message from Jekyll (I&#8217;ll file a bug report on that and I suspect someone will fixed it as Jekyll is so heavily used), I didn&#8217;t need to do a thing to build and publish the blog. Octopress even pushes the blog to Github automatically. I had written a script to do this automatically for NanoBlogger, but I&#8217;d much rather use someone else&#8217;s perfectly good solution rather than writing my own.
</p>
<p>
I think I&#8217;m going to be very happy with Octopress.
</p>
</div>
</div>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[SparkleShare Doesn't Sparkle]]></title>
    <link href="http://neil-smithline.github.com/blog/2012/05/09/sparkleshare-bomb/"/>
    <updated>2012-05-09T23:12:00-04:00</updated>
    <id>http://neil-smithline.github.com/blog/2012/05/09/sparkleshare-bomb</id>
    <content type="html"><![CDATA[<p>
Based on a LifeHacker posting, I previously blogged about giving SparkleShare a try.. It was cool. A free Dropbox with private hosting. So I installed, configured, and started using SparkleShare. While I was quite excited when I embarked upon my journey using SparkleShare, things didn&#8217;t work out as well as I had hoped.
</p>
<p>
I quickly found out that SparkleShare doesn&#8217;t handle symbolic links. Not at all. There&#8217;s no workaround. The problem is that SparkleShare relies on Git for synchronization and Git doesn&#8217;t support symbolic links. At least for me, this rendered SparkleShare useless. 
</p>
<p>
When I moved to Dropbox directory, what I had been using for synchronization before SparkleShare, had no files in it, just a bunch of symbolic links. But with SparkleShare, you have to move all your directories into your SparkleShare directory and then scatter symbolic links around your system where the you want the directories to be. This caused a variety of minor but really annoying problems.
</p>
<p>
But SparkleShare totally fails if you want to synchronize a directory that has symbolic links in it. SparkleShare&#8217;s forum was covered with complaints about the symbolic link problem.
</p>
<p>
I am currently using the following scheme for file distribution/backups:
</p><ul>
<li>I&#8217;m using rsync to keep my media, bin directory, dot-files, and the like in sync on all my computers.
</li>
<li>For actual backups, I&#8217;ve been using Crashplan for years and couldn&#8217;t be happier.
</li>
<li>And, in the past week or two, I&#8217;ve put Dropbox synchronization back into the mix to manage synchronization between Org Mode files on my computers and MobileOrg files on my Android. Despite the strong cult following that Dropbox has, synching with my mobile seems to be the only effective use I can find for it. 
</li>
</ul>

]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Blackberry's Manufacturer RIM Nearly RIP]]></title>
    <link href="http://neil-smithline.github.com/blog/2012/03/31/rim-rip/"/>
    <updated>2012-03-31T20:35:00-04:00</updated>
    <id>http://neil-smithline.github.com/blog/2012/03/31/rim-rip</id>
    <content type="html"><![CDATA[<p>
<b>RIM No Longer A Viable Company</b>
</p>
<p>
<a href="http://bit.ly/HAtKtt">RIM</a>, arguably the manufacturer of the first successful smartphone, the <a href="http://bit.ly/HAub73">Blackberry</a>, has not only lost its market lead, but is facing a rather unpredictable future. RIM&#8217;s new CEO, <a href="http://bit.ly/HAuOO6">Thorsten Heins</a>, <a href="http://www.washingtonpost.com/business/rim-charts-risky-survival-plan-while-opening-door-to-sale/2012/03/31/gIQAJYZRnS_story.html?tid=pm_business_pop">has stated</a> that RIM is open to acquisition. At least for the short-term, his statements have led to a one-day, 5% bounce back of the stock price which was down 70% in the 12 months.
</p>
<p>
<b>RIM&#8217;s History</b>
</p>
<p>
For those of you that are unaware of RIM&#8217;s history, it got its start in <a href="http://en.wikipedia.org/wiki/Canada">Canada</a> as a <a href="http://bit.ly/H9vfx5">2-way pager</a> provider. In 1999, RIM moved into the smartphone market with its first Blackberry and immediately achieved market dominance. 
</p>


<!-- more -->

<p>
Factors that led to their dominance included:
</p><ul>
<li>Intelligent Marketing: One example was a giving away pre-1.0 Blackberries to attendees of the 1999 <a href="http://en.wikipedia.org/wiki/JavaOne">JavaOne</a> conference. I imagine that there wasn&#8217;t a better set of <a href="http://en.wikipedia.org/wiki/Software_release_life_cycle#Beta">beta testers</a> than the gadget geeks that attended JavaOne (myself include). 
</li>
<li>Sales Channels: RIM was selling its 2-way pagers to professionals who had a need to be in constant communication such as doctors, attorneys, business executives, and law enforcement. With the introduction of the Blackberry, RIM just added a better product to offer those same professionals. Sure it was more expensive, but 2-way pagers were already fairly costly. They were the perfect audience to market smartphones to.
</li>
<li>First To Market: In 1999, most mobile providers were focused on upgrading their networks from analog to digital. Once the digital networks were in place, new functionality such as internet access would be easy to providing. But upgrading networks takes time. It involves men climbing towers, FCC regulations, local zoning laws, etc. But RIM didn&#8217;t have to do this.
</li>
</ul>


<p>
<b>RIM&#8217;s Brilliance</b>
</p>
<p>
In what I consider a spectacular marketing and technological move, RIM started providing internet service over their existing 2-way pager network. While only a short-term solution as the 2-way pager network was designed for low-bandwidth usage, it was instantaneous. The first Blackberry was basically a 2-way pager with a good sized screen and full QWERTY keyboard. 
</p>
<p>
<b>What Went Wrong</b>
</p>
<p>
RIM&#8217;s mistake was that they didn&#8217;t learn from prior boom-to-bust technology companies. RIM seems to have perfectly followed the (mis)steps of Digital Electronics. While IBM has survived, it lost its market dominance in a sector, twice. The first time as a manufacture of mainframes in the 1970&#8217;s and then again as a PC manufacturer in the 1980&#8217;s. Apollo Computers, SGI, Xerox, all leaders at one time, are either gone or no longer of interest. 
</p>
<p>
All of these companies suffered from a similar set of mistakes including:
</p><ul>
<li>Overconfidence: Each company thought that they were invulnerable. IBM is perhaps the best example. In the 1970&#8217;s, when an IT manager had to make a decision about what gigantic computer to buy, they often said &#8220;Nobody ever got fired for choosing IBM.&#8221;. 
</li>
<li>Lack of Foresight: Technology and markets change and so too must your company. Clearly RIM, along with its arch-rival Palm, both missed the boat. Phones went from being personal communication devices to be tiny, fit-in-your-pocket, computers. 
</li>
<li>Unwillingness to Self-Cannibalize: In order to stay ahead of the technology market, you must be willing to come out with products that are better and cheaper than your existing products. HP and Goodyear are two companies that get this. Within a product line, HP routinely comes out with a better and cheaper printer than the one they currently have on the market. They know that it is going to kill sales of their existing printer. But HP also knows that when their customers need a new printer, it will be an HP printer. I know that Goodyear isn&#8217;t considered a technology company, but their product, tires, involve high-tech materials and manufacturing processes. The CEO of Goodyear once asked how do you keep a company in business when you know that your next product is going to be cheaper, better, and last longer than your current product? While I think that HP and Goodyear would both prefer to keep selling their old products, they know better. It seems RIM didn&#8217;t.
</li>
</ul>


<p>
<b>The Final Outcome</b>
</p>
<p>
In the end, RIM, the makers of the Blackberry that was a status symbol for business executives in the 1990&#8217;s, has all but been put out of business by Apple, a waning computer company in 1990, and Google, a non-existent company in 1990. 
</p>
<p>
The trick to surviving in the high-tech marketplace is simple. All you need to do is realize that your market share is never safe, that there is always another company working on something that is better than what you have, and that you must act if you are fighting for your life, all-day, everyday. 
</p>


]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Automated Gvoice And Gmail To Gcal]]></title>
    <link href="http://neil-smithline.github.com/blog/2012/03/31/gmail2gcal/"/>
    <updated>2012-03-31T16:14:00-04:00</updated>
    <id>http://neil-smithline.github.com/blog/2012/03/31/gmail2gcal</id>
    <content type="html"><![CDATA[<p>
I seem able to hold incredibly large amounts of technical details in my head. In contrast to this, I&#8217;m excited when I can remember what year my kids were born in. From my viewpoint, this is just the way I have always been. From the viewpoint of people in my personal life, it can be frustrating.
</p>
<p>
Being the technophile that I am, I&#8217;ve incorporated many electronic assistive technologies into my life. In 1989 I got my first <a href="http://en.wikipedia.org/wiki/Personal_digital_assistant">PDA</a>. It was about the size and weight of a half-brick. But I could carry it wherever I went and it would ring to remind me to do things. What a deal!
</p>
<p>
My newest electronic assistive technology is a rather complete phone and SMS management system. Its features are:
</p><ul>
<li>I have a permanent record of every incoming or outgoing call or SMS.
</li>
<li>My mobile phone rings whenever I get an incoming call or SMS.
</li>
<li>My home phone rings whenever I get a call.
</li>
<li>My mobile rings and gives me a notification whenever I get a call or SMS.
</li>
<li>My computer rings and gives me a pop-up whenever I get a call or SMS.
</li>
</ul>


<p>
<i>This blog entry is unfinished. It will be updated or followed up with a second blog entry shortly.</i>
</p>]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Cloud Computing: How Expensive Is A Rainy Day?]]></title>
    <link href="http://neil-smithline.github.com/blog/2012/02/29/azure-sunny-day/"/>
    <updated>2012-02-29T11:42:35-05:00</updated>
    <id>http://neil-smithline.github.com/blog/2012/02/29/azure-sunny-day</id>
    <content type="html"><![CDATA[<p>
According to <a href="http://bit.ly/zc1OOr">The Register</a> (via <a href="http://bit.ly/wzufGC">Slashdot</a>), Microsoft&#8217;s cloud computing platform, Azure, has been down, and I mean <a href="http://dictionary.reference.com/browse/kaput">kaput</a>, for 8+ hours. Worse yet, Azure&#8217;s status page that tells its customers about outages and expected repair times, to which I won&#8217;t provide a link, has now been <a href="http://en.wikipedia.org/wiki/Slashdotted">Slashdotted</a> and is down.
</p>
<p>
Less than a year ago, <a href="http://bit.ly/Ay7loE">AWS</a> suffered a significant, though less serious, <a href="http://bit.ly/yNzqJy">outage</a>.
</p>
<p>
While highly-distributed, cloud-based computing is clearly the future of IT, how can an organization understand the costs and prepare for the unavoidable outages? With the relative newness of 3<sup>rd</sup> party cloud services, what statistics are useful.
<!-- more -->

For example, let&#8217;s consider a fictitious service cloud service Neil&#8217;s Cloud Computing or NCC. NCC is a more established cloud computing service. Its detailed records shows that it has been open for 1,701 days (approximately 4.7 years). In that time it has steadily grown to here it now runs tens of millions of instances of virtual computers, services tens of billions requests each day, and has never had a serious outage. 
</p>
<p>
To be generous, let&#8217;s define a <i>serious outage</i> as any outage that renders key parts of the site unusable to a significant portion of the site&#8217;s users and lasts a minimum of five minutes. We&#8217;ll consider any outage less than that a <i>tolerable outage</i>. 
</p>
<p>
Even with all of this information, how can you calculate the cost of moving your enterprise to a cloud computing platform in general or NCC&#8217;s in specific (let&#8217;s assume that NCC is the best service you can find - after all, it is named after me). Even if your is willing to ignore all costs associated with the generously named <i>tolerable outages</i>, how can you know NCC&#8217;s 1,701 days of uptime mean that it will have another 4.7 years of uptime? How can you know it will be up tomorrow?
</p>
<p>
The answer is simple: You can&#8217;t! Just as it says on the bottom of financial documents, past performance is no guarantee of future results.
</p>
<p>
But, when it comes to managing an enterprise, &#8220;can&#8217;t&#8221; means things like &#8220;can&#8217;t go faster than the speed of light&#8221;. Everything else is just &#8220;How much?&#8221;. How much does our current IT solution cost? How much would a cloud computing solution cost? How much do our current outages cost us? What are the odds of having a <i>serious outage</i> if we moved to the cloud and how much would that cost us? Etc&hellip;
</p>]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Smartphones Everywhere]]></title>
    <link href="http://neil-smithline.github.com/blog/2012/02/22/smartphones/"/>
    <updated>2012-02-22T13:38:14-05:00</updated>
    <id>http://neil-smithline.github.com/blog/2012/02/22/smartphones</id>
    <content type="html"><![CDATA[<p>
Interpreting this chart from <a href="http://blog.nielsen.com/nielsenwire/online_mobile/survey-new-u-s-smartphone-growth-by-age-and-income/">Nielsen</a> (via <a href="http://www.wired.com/epicenter/2012/02/smartphone-buying-machine/?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed:+wired/index+(Wired:+Index+3+(Top+Stories+2))">Wired</a>) does not require any great amount of effort.
</p>
<div style="text-align: center">
<p><img src="http://www.wired.com/images_blogs/epicenter/2012/02/Smartphone-Income-and-Age.jpg"  alt="http://www.wired.com/images_blogs/epicenter/2012/02/Smartphone-Income-and-Age.jpg" />
</p>
</div>

<p>
It can be summarized by any of the following sentences:
</p><ul>
<li>The greater your income the more likely you are to have a smartphone.
</li>
<li>Young adults are more likely to have smartphones than older adults.
</li>
<li>Smartphones are only for the young and get outgrown by the old. (Nah! But it is a valid interpretation of the chart.)
</li>
</ul>


<p>
But I think the graph can best be summarized by:
</p>
<div style="text-align: center">
<p><b>Smartphones are where it is at today; and tomorrow, even more so.</b>
</p>
</div>



<!-- more -->
<p>
Perhaps not the best grammar but I think it gets the point across. It becomes even more dramatic when you look at the number of people who have acquired smartphones in the past three months:
</p>
<div style="text-align: center">
<p><img src="http://blog.nielsen.com/nielsenwire/wp-content/uploads/2012/02/SmartPhone_Recent-acquirers-age1.png"  alt="http://blog.nielsen.com/nielsenwire/wp-content/uploads/2012/02/SmartPhone_Recent-acquirers-age1.png" />
</p>
</div>

<p>
As <a href="http://www.imdb.com/title/tt0059968/quotes">Robin</a> would <a href="http://en.wikipedia.org/wiki/Batman_(TV_series)#.22Holy_.......2C_Batman.21.22">say</a>: Holy <a href="http://dictionary.reference.com/browse/ubiquitous+computing?qsrc=2446">ubiquitous computing</a>, Batman!
</p>
<p>
It seems clear that this is where the money is. This means that some subset of technologies such as <a href="http://en.wikipedia.org/wiki/Html5">HTML5</a>, <a href="http://en.wikipedia.org/wiki/Virtuality_(computing)">virtual computing</a>, <a href="http://en.wikipedia.org/wiki/Scala_(programming_language)">Scala</a>, <a href="http://en.wikipedia.org/wiki/Hadoop">Hadoop</a>, <a href="http://en.wikipedia.org/wiki/Amazon_Web_Services">AWS</a>, and <a href="http://en.wikipedia.org/wiki/Couchdb">CouchDB</a>, to name just a few, are going to be the technologies of tomorrow.
</p>
<p>
In my lifetime, I have seen computers revolutionize society in several different ways.
</p><dl>
<dt><a href="#Http-en.wikipedia.org-wiki-Back_office">Back office</a></dt><dd>Back office computerization led to the popularization of <a href="http://en.wikipedia.org/wiki/Automated_teller_machine">ATMs</a>, <a href="http://en.wikipedia.org/wiki/Credit_card">credit cards</a>, <a href="http://en.wikipedia.org/wiki/Fed_Ex">Fed Ex</a> and its overnight delivery service, and set the stage for the online marketplace we are familiar with today.
</dd>
<dt><a href="http://en.wikipedia.org/wiki/Personal_computer">Personal computers</a></dt><dd>Personal computers introduced computing to the public. When I was in school, I would get bonus points for typing my homework assignments. Today, homework assignments must be printed from a <a href="http://en.wikipedia.org/wiki/Word_processor">word processor</a> if not submitted electronically.
</dd>
<dt><a href="http://en.wikipedia.org/wiki/World_wide_web">The web</a></dt><dd>The web, for the first time ever, connected the back office directly to consumers in the comfort of their own home. ATMs allowed you to get 24x7 access to your bank account, but you needed to be at an ATM. PCs gave you access to many digital technologies, but having multiple computers interact was difficult, slow, and frequently expensive. But throw in the web and suddenly: <b>BOOM!</b> You have the <a href="http://en.wikipedia.org/wiki/Online_shopping">online shopping</a>, <a href="http://en.wikipedia.org/wiki/Video_gaming">video gaming</a>, and <a href="http://en.wikipedia.org/wiki/Video_on_demand">video on demand</a> that we live in today.
</dd>
</dl>


<p>
As a diehard nerd, I&#8217;m thrilled to have lived through these technical revolutions. Not only have I lived through them, but I&#8217;ve had the honor of having been an early consumer and even helped develop some of them. So, with great joy, and without trying to sound too greedy, I am joyous that the next revolutionary wave is coming to shore. And it is called <i>ubiquitous computing</i>.
</p>
<p>
I don&#8217;t claim to be the <a href="http://article.wn.com/view/2012/02/02/Did_the_Groundhog_see_his_shadow_2012_Punxsutawney_Phil_twee/">prognosticator of prognosticators</a>. <a href="http://www.wikipedia.com">Wikipedia</a>&#8217;s page on ubiquitous computing was created <a href="http://en.wikipedia.org/w/index.php?title=Ubiquitous_computing&amp;action=history">two years ago</a>. I&#8217;m just happy to be around to be part of it and hope that I get a chance to <a href="http://bit.ly/zN6qBU">surf the wave</a>.
</p>]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Blog In A Box (actually, a repo)]]></title>
    <link href="http://neil-smithline.github.com/blog/2012/02/15/nogit-blog-in-a-box/"/>
    <updated>2012-02-15T22:54:25-05:00</updated>
    <id>http://neil-smithline.github.com/blog/2012/02/15/nogit-blog-in-a-box</id>
    <content type="html"><![CDATA[<p>
As I have been developing my blog&#8217;s technology, I have been surprised at the lack of a pre-packaged <a href="http://en.wikipedia.org/wiki/Blog">blogging</a> solution for <a href="http://www.gnu.org/software/emacs/">Emacs</a>&#8217; <a href="http://orgmode.org/">Org Mode</a>. Org Mode is simply a wonderful tool for organizing thoughts, ideas, text, links, etc&hellip; While Org Mode has a rather difficult learning curve, its motto, <i>Your life in plain text.</i>, seems to be accurate.
</p>
<p>
Spurred by ideas from <a href="http://decafbad.com">0xDECAFBAD.com</a> and code from <a href="http://nanoblogger.sourceforge.net/">NanoBlogger</a> (NB), I&#8217;ve gone about creating an Org Mode-based blogging system. And, if you are reading this, it is actually working. While NB and Org Mode do all the heavy lifting, I&#8217;ve simply added some glue to hook them together. What I have s far from a perfect solution, but it seems to work pretty well. 
</p>
<p>
There is a bit of a UI problem in that the Org Mode editing has a general look-and-feel like that seems like a typical Org Mode editor with a NanoBlogger posting jammed in. That&#8217;s not surprising as, to save development time, I&#8217;ve basically just jammed a NanoBlogger posting into an Org Mode buffer.
</p>
<p>
The other problem that I have with the system is that there is no way to automatically detect the difference between postings that have been published and those that have not published (ie: drafts). Unless you take extra care when publishing your blog, all postings, whether or not they are drafts, will be posted.
</p>
<p>
Once I&#8217;ve fixed these two problems I will have a simple but reasonably functional blog system. By &#8220;simple&#8221; I mean that it is based off of NanoBlogger, a minimal blogging platform. That being said, the <a href="http://nanoblogger.sourceforge.net/">goals</a> of NB are simple goals compared to most blogging systems. If you want a richer blogging system then NB isn&#8217;t for you.
</p>
<p>
The <i>glue</i> that I&#8217;ve written to connect NB with Org Mode is a shell script and some <a href="http://en.wikipedia.org/wiki/Elisp">elisp</a> code. Combined they are only a few hundred lines of extensively-commented code. The entire NanoBlogger installation, living up to its name, is only 844K. 
</p>
<p>
Being that NB is so very compact, my shell scripts and elisp code are small, everything is in plain text files, and that <a href="http://github.com">Github</a> provides simple and free hosting of both the blogging system and the blog, I&#8217;m going to merge my entire blogging system, minus Emacs, with my blog and put it into a single Github repository. 
</p>
<p>
Once that is done, anyone who wants to try my blogging technology should only have to do a few simple steps:
  # Fork my blog to their own Github repository.
  # Clone their copy of my blog to their computer.
  # Delete my blog postings (I&#8217;m assuming people will want to create their own postings and not republish mine).
  # Run emacs and load the single elisp glue file I&#8217;ve created.
  # Start blogging.
</p>
<p>
I believe that it will take less than 10 minutes to get a blog up-and-running. That is longer than it takes to get a hosted blog on <a href="http://www.blogger.com">Blogger</a> but much, much faster than most self-hosted mechanisms such as <a href="http://www.movabletype.com/">MovableType</a>. The only prerequisites for this blogging system are
</p><ul>
<li>Bash and the other common shell script utilities that are required by NanoBlogger such as sed and awk.
</li>
<li>A reasonably modern GNU Emacs. It comes with Org Mode pre-installed.
</li>
<li>The <i>git</i> command-line program.
</li>
</ul>


<p>
Being that this blogging system is only aimed at Emacs users, it is certain that they&#8217;ll have Emacs already installed on their machine. It is also very likely that they&#8217;ll have bash and the shell script utilities. Maybe they&#8217;ll have git or maybe they&#8217;ll need to install it. It is a simple installation.
</p>
<p>
There is no need to install a local web server for staging. Provided you have versions from this decade, there is no need to ensure you have the right version of any of this software. Managing versions of installed software can be a major pain for many systems (eg: Python based-apps). You also have full access to your blog&#8217;s data without having to export anything (everything is already in plain text files) or provide a credit card (Github is free).
</p>]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[New NanoBlogger Command-Line]]></title>
    <link href="http://neil-smithline.github.com/blog/2012/02/14/nbc/"/>
    <updated>2012-02-14T13:13:34-05:00</updated>
    <id>http://neil-smithline.github.com/blog/2012/02/14/nbc</id>
    <content type="html"><![CDATA[<p>
As I&#8217;ve discussed in previous <a href="http://www.neilsmithline.com/archives/blog">postings about this blog&#8217;s technology</a>, this is a static blog written with NanoBlogger. NanoBlogger is a <a href="http://en.wikipedia.org/wiki/Command-line_interface">CLI</a> driven blogging system. Alas, I have found the <a href="http://nanoblogger.sourceforge.net/docs/nanoblogger.html">NanoBlogger manual</a> to be difficult to follow and the syntax of the CLI to be non-intuitive. (See the footnote <a href="https://github.com/Neil-Smithline/nbc">here</a> regarding the existing CLI.) On the upside, NanoBlogger is a CLI system which makes it easy to modify. 
</p>
<p>
I started out with a few small helper scripts, eventually merging them into a single helper script. As I was using that script and learning more about NanoBlogger, I found myself writing smaller helper scripts for my big helper script. Eventually, I was never calling my original, large helper script directly.
</p>
<p>
At this point it became clear that some refactoring was needed. So I refactored. I came up with a single shell script call <i>nbc.sh</i> that does all the work and a series of shell scripts that simply call nbc.sh.
</p>
<p>
The key idea behind nbc.sh, or simply <i>nbc</i>, is that the scripts that call it are trivial. By &#8220;trivial&#8221; I mean that each script is only a few lines long, all the side scripts have identical content, and, if not for the semantics of <a href="http://en.wikipedia.org/wiki/Git_(software)">Git</a>, would simply be multiple symbolic links to the same program.
</p>
<p>
As you can see below, the code for the side scripts simply stores the command name, <i>$0</i>, of the side script that was called and then calls the <i>nbc.sh</i> script that is in the same directory as the side script. 
</p>


<pre class="example">#!/bin/sh

# Code to load include file.
ORIG_ARG_0="$0"
NBDIR=${0%/*}
. ${NBDIR}/nbc.sh
</pre>

<p>
This means that as I continue to add functionality to nbc, all I need to do is copy one of the side scripts to the filename of the new command I added. 
</p>
<p>
While I won&#8217;t discuss the exact naming scheme used for these side scripts in detail in this posting, I will say that I have tried to systematic in how the scripts are named. Once you learn a few abbreviations (eg: &#8220;e&#8221; for &#8220;Entry&#8221; or &#8220;Entries&#8221;, &#8220;u&#8221; for &#8220;Update&#8221;) and the rules for combining those abbreviations (standard <a href="http://en.wikipedia.org/wiki/Reverse_Polish_Notation">RPN</a>), you will know the names of all the commands, what each command does, and the type and order of arguments each command takes.
</p>
<p>
I still need to write richer documentation for nbc and its side scripts, but I can finish this posting off with some concrete examples.
</p>
<p>
NB supports an &#8220;update&#8221; command that essentially tells NB to rebuild the blog from scratch. The syntax of this command is:
</p>


<pre class="example">nb update
</pre>

<p>
My nbc version of this command is:
</p>


<pre class="example">nbu
</pre>

<p>
All of the commands for nbc start with the letters &#8220;nb&#8221;. The letter &#8220;U&#8221; is the abbreviation for &#8220;Update&#8221;. So &#8220;nbu&#8221; tells nb to run the update command. As I said, the code for nbu and the other side scripts are trivial and given above. As far as examples go, nbu is not very exciting. But the nbc&#8217;s CLI for creating tags is a bit more exciting.
</p>
<p>
NB&#8217;s syntax for creating tags, as documented in its manual, is:
</p>


<pre class="example">nb --title &lt;tag-name&gt; add tag
</pre>

<p>
Gosh! That&#8217;s both tough to remember and tough to type. In nbc, the command for adding a tag is <i>nbga</i>. All commands start with &#8220;nb&#8221;. After that, the &#8220;g&#8221; means that we are talking about &#8220;taGs&#8221;. The &#8220;a&#8221; stands for &#8220;Add&#8221;. The syntax for the command is 
</p>


<pre class="example">nbga &lt;tag list&gt;
</pre>


<p>
Besides being much easier to type and remember, it allows a tag list as compared to a single tag name. That is, you can create multiple tags in a single command rather than needing to call nb once for each new tag.
</p>
<p>
In NBC, a tag list is a comma-separated list of one or more tag names. So &#8220;tag1&#8221; is a tag list and &#8220;tag1,tag2,tag3&#8221; is also a tag list. If you prefer you can space-separate the tag list but you need to ensure that you pass the entire tag list as the first argument to nbga. 
</p>
<p>
As the operations become more complex, NBC&#8217;s simplifications become greater and more obvious. My next posting about NBC will discuss some of these simplifications.
</p>
<p>
If you wish to use NBC, look at the source code, or tell me why NBC sucks, you can get the scripts at <a href="https://github.com/Neil-Smithline/nbc">https://github.com/Neil-Smithline/nbc</a>.
</p>]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[This Blog Is Now Hosted For Free (and it's slashdot proof too)]]></title>
    <link href="http://neil-smithline.github.com/blog/2012/02/03/github/"/>
    <updated>2012-02-03T21:49:09-05:00</updated>
    <id>http://neil-smithline.github.com/blog/2012/02/03/github</id>
    <content type="html"><![CDATA[<p>
While there are many free or nearly free blog hosting sites available, most of them come with a long list of restrictions. Either they restrict you to using their blogging software, throw ads on your pages, give you the &#8220;unlimited bandwidth&#8221; plan that they&#8217;ll cut off if your site gets too much traffic, limit you to only the ugly themes, etc.
</p>
<p>
But <a href="http://www.neilsmithline.com">www.neilsmithline.com</a> is now hosted on a site that charges me nothing, doesn&#8217;t put ads on my pages, couldn&#8217;t care less about the theme I use, and, should I ever be lucky enough, survive <a href="http://en.wikipedia.org/wiki/Slashdotting">slashdotting</a>. The only restriction is that my blog has to be static. Being that I already had a static blog (see <a href="#about-this-blogs-tech.org">previous posting</a>), this was no problem for me at all. I&#8217;ve used lots of dynamic blogs (<a href="http://en.wikipedia.org/wiki/Drupal">Drupal</a>, <a href="http://en.wikipedia.org/wiki/Wordpress">WordPress</a>, <a href="http://en.wikipedia.org/wiki/Joomla">Joomla</a>, <a href="http://en.wikipedia.org/wiki/Blogger_(service)">Blogger</a>, <a href="http://en.wikipedia.org/wiki/Movable_Type">Movable Type</a>, etc.) and just found that &#8220;dynamic&#8221; is a short way of saying that the blogging system is going to do what it wants and not what I want.
</p>
<p>
Along with the free hosting I get automatic version control, well-managed collaboration (not that I have any collaborators), data redundancy, eternal archiving (I probably won&#8217;t need it that long but it&#8217;s nice to know that nothing will get lost), and the ability to get a copy of my data onto my local machine whenever I want it.
</p>
<p>
My choice of blogging technology was largely influenced by these two blog postings, <a href="http://decafbad.com/blog/2011/06/08/further-jekyll-notes">1</a> and <a href="http://decafbad.com/blog/2011/06/08/moved-to-jekyll">2</a>, and email conversations I had with their author, <a href="https://plus.google.com/114487965928288927815/about">Les Orchard</a>. While Les went with <a href="https://github.com/mojombo/jekyll">Jekyll</a>, I preferred the simpler <a href="http://nanoblogger.sourceforge.net/">NanoBlogger</a>. Les uses <a href="http://github.com">Github.com</a> for versioning his blog but hosts his blog on his own site as he wants full control of what is published. I simply couldn&#8217;t agree with him more. 
</p>
<p>
When I moved to my new blogging framework, I quickly got my blog up and running using NanoBlogger for site generation and sftp to publish it to my VPS. Today I investigated replacing sftp with Github and its notification framework. This would essentially mirror Les&#8217;s blog system except that I am running NanoBlogger locally while he runs Jekyll. 
</p>
<p>
As I was investigating using Github for transportation and archiving of my blog, I decided to take another look at <a href="http://pages.github.com/">Github Pages</a>. And then, like a lightning bolt, it occurred to me. When I publish my blog by pushing it to Github, if the repository has the magic name of <i>neil-smithline.github.com</i>, then Github would publish my blog at <a href="http://neil-smithline.github.com/">http://neil-smithline.github.com/</a> automatically. There simply was no benefit to serve my blog from my VPS as Github would do it far better than I could on my VPS.
</p>
<p>
The only problem I foresee is that I run more than just my blog on <a href="http://www.nelismithline.com">www.neilsmithline.com</a>. But the other applications I run are only for my private use so I can just map them to another sub-domain such as <i>whatever.neilsmithline.com</i>. For example, I&#8217;ve been playing with a cloud-based bookmarking system, <a href="http://www.phoboslab.org/projects/asaph">Asaph</a>, that allows you to run your own cloud bookmark server. But I can access it at and, if you have an interest, can view it at: <a href="http://www2.neilsmithline.com/asaph/">http://www2.neilsmithline.com/asaph/</a>.
</p>
<p>
All-in-all, it&#8217;s like a nerd&#8217;s dream come true :-D
</p>
<p>
<b>UPDATED: Sat Feb 11 13:12:02 EST 2012</b>
</p>
<p>
There seems to be another problem with hosting my blog on Github. While practically all of Github requires SSL, there appears to be no way to get a Github hosted website to use SSL. Thinking about it, the task seems inherently difficult. Github makes all of its sources file public but you must protect your site&#8217;s SSL private key. Currently, all site information is stored in the Github repository. A private SSL key could only be added if Github updated their configuration to allow the key to be stored out-of-band (ie: not in the repository).
</p>]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Nastiest Hack I've Seen In Awhile]]></title>
    <link href="http://neil-smithline.github.com/blog/2012/02/01/nasty-su-hack/"/>
    <updated>2012-02-01T20:40:51-05:00</updated>
    <id>http://neil-smithline.github.com/blog/2012/02/01/nasty-su-hack</id>
    <content type="html"><![CDATA[<p>
I was reading about <a href="http://code.google.com/p/android-scripting">SL4A</a>, also known as <a href="http://android.com">Android</a> <a href="http://en.wikipedia.org/wiki/Scripting_language">Scripting Languages</a>. They are a set of <a href="http://en.wikipedia.org/wiki/Quick_and_dirty">quick-and-dirty</a> ports of programming languages to the Android that interact with the Android <a href="http://en.wikipedia.org/wiki/Operating_system">OS</a>. I just stumbled upon this &#8221;<a href="http://code.google.com/p/android-scripting/issues/detail?id=184">issue page</a>&#8221; (it&#8217;s more like a <a href="http://en.wikipedia.org/wiki/Internet_forum">forum</a> than a bug report). 
</p>
<p>
The developer is trying to run something on his Android, which is basically <a href="http://en.wikipedia.org/wiki/Linux">Linux</a>, that requires <a href="http://en.wikipedia.org/wiki/Superuser">superuser</a> permissions. As the responses started to build upon each other, one user suggested starting his shell script with the following lines (the actual posting was in Android&#8217;s flavor of <a href="http://en.wikipedia.org/wiki/Python_(programming_language)">Python</a> but I&#8217;ve converted it to <a href="http://linux.die.net/man/1/su">bash(1)</a> to make it more accessible):
</p>



<pre class="example">#!/bin/sh
if [ "$USER" != "root" ]; then
    exec sudo $SHELL -c "`cat /proc/$$/cmdline | tr '\000' ' '`" root
fi
</pre>


<p>
I simply couldn&#8217;t help being entertained at how revolting but equally brilliant that code is. But, I started thinking (always something dangerous) about how much I hate having to deal with stupid commands. For example, this is the output of running <a href="http://linux.die.net/man/8/apt-get">apt-get(8)</a> without proper permission:
</p>



<pre class="example">$ apt-get install foobar
E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?
</pre>


<p>
Being as I often write shell scripts with calls to <a href="http://linux.die.net/man/8/sudo">sudo(8)</a> in the script, I decided that imitation is the best response to being revolted (I know my mom said something like that :-).
</p>
<p>
So I expanded upon the existing code, making it a full shell script utility. You can look the code or grab a copy at my <a href="https://github.com">GitHub</a> <a href="https://github.com/Neil-Smithline">page</a> in the <a href="https://github.com/Neil-Smithline/rerunasroot">rerunasroot</a> repository. I&#8217;ll be using it in the future.
</p>]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[SOPA DOA? Not Quite But Getting There]]></title>
    <link href="http://neil-smithline.github.com/blog/2012/01/14/SOPA-DOA/"/>
    <updated>2012-01-14T00:18:39-05:00</updated>
    <id>http://neil-smithline.github.com/blog/2012/01/14/SOPA-DOA</id>
    <content type="html"><![CDATA[<p>
While not dead, SOPA is losing its teeth. Despite having had its major backer remove one of the more totalitarian portions from the bill (the ability to block non-US DNS addresses), SOPA appears unable to make progress in Congress. 
</p>
<p>
In a <a href="http://cnet.co/ArcHPH">CNET</a> article (via <a href="http://bit.ly/zMTg3h">Slashdot</a>), the <a href="#wiki-RIAA">RIAA</a> whines:
</p><blockquote>

<p>Instead of helping to come up with mechanisms to deny access to
the U.S. market by foreign criminals,&#8221; the RIAA wrote, &#8220;the
opposition just keeps saying no. It is incumbent upon them to help
develop language that will ensure that criminals can&#8217;t access our
market, while at the same time protecting our need for national
cybersecurity.
</p>
</blockquote>


<p>
As <a href="#SOPA-the-end-of-free-speech.org">discussed previously</a>, SOPA claims to support American businesses while it really supports the very large media companies and stifles smaller companies and individuals rights to publish.
</p>
<p>
As I&#8217;ve stated in my previous <a href="#SOPA-the-end-of-free-speech.org">posting about SOPA</a>, I am strongly opposed to <a href="#wiki-Piracy-of-software">piracy</a> as I am a software engineer (ie: software pays my rent). But I also believe that piracy can be dealt with without destroying <a href="#wiki-Freedom_of_speech">free speech</a>. My viewpoints are similar to those of the <a href="#wiki-Electronic_Frontier_Foundation">EFF</a> and differ from the <a href="#wiki-Free_Software_Foundation">FSF</a>&#8217;s viewpoint which opposes proprietary software altogether.
</p>]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Florida Appeals Court More Liberal Than SOPA!]]></title>
    <link href="http://neil-smithline.github.com/blog/2011/12/30/florida-beats-sopa/"/>
    <updated>2011-12-30T12:26:33-05:00</updated>
    <id>http://neil-smithline.github.com/blog/2011/12/30/florida-beats-sopa</id>
    <content type="html"><![CDATA[<p>
Earlier this week, the Florida appeals court made a ruling that even the poster of a defamatory posting on a public website could not force a website to remove the posting. While most sites allow you to remove your own postings, <a href="http://www.ripoffreport.com/">RipoffReport.com</a>, the site involved in this ruling, states that as an advocate of free speech, it never removes reports. This is clearly stated at the top of their home page and documented extensively on their <a href="http://en.wikipedia.org/wiki/Ripoff_Report#Non-removal_Policy">Wikipedia page</a>. 
<!-- more -->
</p>
<p> 
While not allowing the poster to remove or have removed a posting seems extreme, the site claims that it wishes to remain unbiased. As such, it makes no judgment calls about its content. Everything that is appropriate for the site will stay on the site, forever. RipoffReport.com is afraid that posters may be pressured by 3<sup>rd</sup>-parties to remove articles. As such, They are simply not allowed to.
</p>
<p>
While postings are never removed, the site allows anyone to post a <a href="http://en.wikipedia.org/wiki/Rebuttal">rebuttal</a> to any posting. A poster can use this mechanism to retract their initial statement. 
</p>
<p>
The court ruled that RipoffReport.com could neither be held liable for the defamatory posting nor be forced to remove it. The bottom line of all of this is that
</p>

<div style="text-align: center">
<p>The supreme court of Florida, a <a href="http://www.gallup.com/poll/125066/State-States.aspx">middle-of-the-road state</a>, was willing to make a controversial ruling favored many aspects of freedom of speech. If SOPA is passed, cases like this won&#8217;t even make it to courts as SOPA make it clear that if a ruling is defamatory, it is illegal.
</p>
</div>

<p>
While Congress has delayed voting on SOPA for another month, it is still on the docket. It is unclear what the fate of SOPA will be. 
</p>
<p>
One can hope that Congress pays attention to protests such as the statement]] consumers sent to <a href="http://www.godaddy.com">GoDaddy</a> after it announced its support of SOPA. GoDaddy announced that on a Saturday (see <a href="http://news.slashdot.org/story/11/12/29/2053252/wikipedia-to-dump-godaddy-over-sopa">more complete chronology</a>) and then lost <a href="http://tech.slashdot.org/story/11/12/25/1452251/go-daddy-loses-over-21000-domains-in-one-daylosing">21K domains</a> on the next day. More recently, the <a href="http://news.slashdot.org/story/11/12/29/2053252/wikipedia-to-dump-godaddy-over-sopa">Wikipedia announced it would discontinue all use of GoDaddy</a>. 
</p>
<p>
Let&#8217;s continue to hope that advocates of free speech, including you (see <a href="#id-06BB29E4-D6B3-430E-B5A3-FDC6716A0ED3">SOPA: The End Of Free Speech</a> for instructions as to how to help), continue to pressure our government into sane activit
</p>
<p>
Copied directly from the <a href="http://www.slashdot.org">Slashdot</a> <a href="http://bit.ly/vVVDLC">article</a>:
</p><blockquote>

<p><a href="http://www.ripoffreport.com/">RipoffReport.com</a> contained an admittedly defamatory posting, by one of its users, about a person who operated a Florida corporation providing addiction treatment services. Although the site was asked by the poster herself to remove the post, it refused. A Florida appeals court has ruled that the site is absolutely immune from suit (<a href="http://recordingindustryvspeople.blogspot.com/2011/12/florida-appeals-court-rules.html">pdf</a>), and cannot even be directed to remove the offending post, since under the [[http://www.law.cornell.edu/uscode/html/uscode47/usc<sub>sec</sub><sub>47</sub><sub>00000230</sub>-&mdash;000-.html][Communications Decency Act (47 USC 230)] &#8216;no cause of action may be brought&#8217; against a provider of an &#8220;interactive computer service&#8221; based upon information provided by a 3rd party.
</p>
</blockquote>

]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[The Litigious Trio]]></title>
    <link href="http://neil-smithline.github.com/blog/2011/12/28/the-litigious-trio/"/>
    <updated>2011-12-28T12:04:20-05:00</updated>
    <id>http://neil-smithline.github.com/blog/2011/12/28/the-litigious-trio</id>
    <content type="html"><![CDATA[<p>          
This posting is best viewed as part of the series of postings about <a href="http://neilsmithline.com/archives/litigious-trio/index.html">The Litigious Trio</a> and, in a larger context, <a href="http://neilsmithline.com/archives/online-freedom/index.html">Online Freedom</a>.
</p>
<p>
To be clear, <i>The Litigious Trio</i> are, in alphabetical order, <a href="http://apple.com">Apple</a>, <a href="http://google.com">Google</a> and <a href="http://microsoft.com">Microsoft</a>. While they are three wonderful technology companies, over time, each has turned to an increasingly large amount of litigation to enforce their current market status.
</p>
<p>
While I do not believe that the three companies actively collaborate with each other to hinder the success of smaller companies, I believe that selfish<sup><a class="footref" name="fnr.1" href="#fn.1">1</a></sup> business practices by the trio have had the affect of having created a three company monopoly<sup><a class="footref" name="fnr.2" href="#fn.2">2</a></sup>. While the three companies are locked in a near-endless stream of litigation against each other, this is rather typical amongst large corporate competitors. I can&#8217;t say that I&#8217;m in favor of such litigation but I the three companies can spend their money that way if they want to. They have more than enough of it.
</p>
<p>
But when <i>The Litigious Trio</i>, behaving in a pseudo-monopolistic manner, use litigation to block competition from smaller companies, they end up stifling innovation. 
<!-- more -->

Furthermore, <i>The Litigious Trio</i> are not necessarily the most user-friendly companies. They, along with <a href="http://en.wikipedia.org/wiki/Facebook">Facebook</a>, are some of the leaders in gathering information about its users. Consider the following:
</p><ul>
<li>Nearly all of Google&#8217;s revenue comes from advertising. Their advertising is so valuable, and profitable, because they are able to sell well targeted ads. That is, they know so much about each user that they can sell ad space for that specific user for more than other advertising vendors. The article, <a href="http://www.globalreports.com/?article=12">We Are Google&#8217;s Products</a>, provides a good summary of this concept. 
</li>
<li>Google has a near-monopoly on internet advertising. The US Senate <a href="http://tech.slashdot.org/story/11/12/21/1356246/senators-recommend-ftc-perform-antitrust-investigation-of-google">has recently requested</a> the <a href="http://en.wikipedia.org/wiki/Federal_Trade_Commission">FTC</a> to investigate this.
</li>
<li>Microsoft&#8217;s <a href="https://www.google.com/search?q=microsoft+antitrust&amp;ie=utf-8&amp;oe=utf-8&amp;aq=t&amp;rls=org.mozilla:en-US:unofficial&amp;client=firefox-a">monopolistic practices</a> have been discussed and challenged by courts around the world for years.
</li>
<li>Apple is currently under investigation for <a href="http://www.huffingtonpost.com/2011/12/07/us-justice-department-apple-ebooks_n_1134983.html">price fixing on its eBooks</a>, has just been fined for <a href="http://www.pluggedin.co.uk/article/apple-fined-over-misleading-customers-italy">charging customers in Italy</a> for providing federally mandated, free support, and has tried to <a href="http://apple.slashdot.org/story/11/08/09/1832254/sale-of-samsung-galaxy-tab-blocked-in-the-eu">destroy Samsung&#8217;s mobile market</a> by presenting <a href="http://yro.slashdot.org/story/11/08/15/1758224/flawed-evidence-in-eu-apple-vs-samsung-case">falsified evidence</a> to courts around the world. While this last claim seems hard to believe, an <a href="http://www.pcworld.com/article/238047/apple_offers_flawed_evidence_in_lawsuit_against_samsung.html">easily accessible description and images</a> demonstrate that Apple is either incompetent or dishonest.
</li>
</ul>



<p>
The only question seems to be whether the public is motivated to address this problem and what the public can do to address it. The reason monopolies are illegal is because fighting them is difficult.
</p>

<div id="outline-container-1" class="outline-3">
<h3 id="sec-1">Footnotes</h3>
<div class="outline-text-3" id="text-1">


<div id='footnotes'>
<h4 class='footnotes'>Footnotes: </h4>
<div id='text-footnotes'>
<p class="footnote"><sup><a class="footnum" name="fn.1" href="#fnr.1">1</a></sup> I use <i>selfish</i> as defined in the book <a href="http://www.amazon.com/gp/product/0199291152/ref=as_li_ss_tl?ie=UTF8&amp;tag=mygee-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0199291152">The Selfish Gene</a>. If you&#8217;ve not have the pleasure, I strongly recommend the book. You can also see a brief <a href="http://en.wikipedia.org/wiki/The_Selfish_Gene#.22Selfish.22_genes">definition</a> from the <a href="http://en.wikipedia.org/wiki/">Wikipedia</a>.
</p>

<p class="footnote"><sup><a class="footnum" name="fn.2" href="#fnr.2">2</a></sup> I&#8217;m not an expert in <a href="http://en.wikipedia.org/wiki/History_of_competition_law">competitive law</a> (eg: I just learned that term) and I have used the term <i>monopoly</i> or <i>pseudo-monopoly</i> rather loosely. I believe that what <i>The Litigious Trio</i> are partaking in is more similar to <a href="http://en.wikipedia.org/wiki/Tacit_collusion">tacit collusion</a>, <a href="http://en.wikipedia.org/wiki/Conscious_parallelism">conscious parallelism</a>, and <a href="http://en.wikipedia.org/wiki/Patent_misuse">patent misuse</a>. It is perhaps best described as an <a href="http://en.wikipedia.org/wiki/Oligopoly">oligopoly</a> or a <a href="http://en.wikipedia.org/wiki/Natural_monopoly">natural monopoly</a> that involves three companies rather than one.
</p></div>
</div>

</div>
</div>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Corporate Censorship In The Digital Age]]></title>
    <link href="http://neil-smithline.github.com/blog/2011/12/27/pravda/"/>
    <updated>2011-12-27T08:58:30-05:00</updated>
    <id>http://neil-smithline.github.com/blog/2011/12/27/pravda</id>
    <content type="html"><![CDATA[<div id="outline-container-1" class="outline-3">
<h3 id="sec-1">Measuring Freedom</h3>
<div class="outline-text-3" id="text-1">

<p>While I&#8217;ll leave it to historians and politicians to debate the validity of this statement, IMO, a country&#8217;s freedom can be understood by <a href="http://en.wikipedia.org/wiki/Guesstimation">guestimating</a> the answers two simple questions:
</p><ol>
<li>How freely the citizens are allowed to travel &ndash; both within their country as well as in-and-out of their country.
</li>
<li>How freely the government allows information to be dispersed.
</li>
</ol>


<p>
While this posting only focuses on freedom of information, I mention the above because I feel that it is important to keep in mind how critical freedom of information is. 
</p>
<p>
When free information flow is impacted, it does not matter whether it is censored by a totalitarian government to control the thoughts of its people or a search provider to stay out of trouble legal troubles (see <a href="http://en.wikipedia.org/">Wikipedia</a>&#8217;s article on <a href="http://en.wikipedia.org/wiki/Criticism_of_Google#Censorship">Google Censorship</a> and <a href="http://technorati.com/technology/article/google-censorship-rising-faster-than-ever/">recent statistics</a> about Google&#8217;s censoring)<sup><a class="footref" name="fnr.1" href="#fn.1">1</a></sup>.
<!-- more -->

</p></div>

</div>

<div id="outline-container-2" class="outline-3">
<h3 id="sec-2">Recent Attempts At Total Information Control</h3>
<div class="outline-text-3" id="text-2">

<p>During the heat of the <a href="http://en.wikipedia.org/wiki/Cold_War">cold war</a>, <a href="http://en.wikipedia.org/wiki/Pravda#The_Soviet_period">Pravda</a>, <i>The</i> official newspaper of the <a href="http://en.wikipedia.org/wiki/Soviet_Union">Soviet Union</a>&#8217;s <a href="http://en.wikipedia.org/wiki/Communist_Party_of_the_Soviet_Union">Communist Party</a>, was well-known for distributing <a href="http://en.wikipedia.org/wiki/Propaganda">propaganda</a> while, at the same time, the Soviet Union also restricted all non-official forms of information distribution. Today, China&#8217;s <a href="http://en.wikipedia.org/wiki/Great_firewall">Great Firewall</a> and its government-managed <a href="http://tech.slashdot.org/story/11/12/26/2217215/chinas-parallel-online-universe">substitution of popular web sites</a> are attempts at total information control.
</p>
<p>
While not directly relevant to this article, the Soviet Union used to inhibit and China currently inhibits the free movement of their citizens. That is, they score poorly on both of the <a href="#Measuring-Freedomns">above questions</a>.
</p>
</div>

</div>

<div id="outline-container-3" class="outline-3">
<h3 id="sec-3">America&#8217;s Current Loss Of Freedom<sup><a class="footref" name="fnr.2" href="#fn.2">2</a></sup></h3>
<div class="outline-text-3" id="text-3">

<p>Whatever its benefits may be, any honest review of laws such as <a href="http://neilsmithline.com/archives/2011/12/11/sopa_the_end_of_free_speech/index.htmlSOPA">SOPA</a> must state that they will lead to a reduction in information dispersal. Opinions about the exact quantity and quality of information dispersal reduction varies greatly. The protractors state that the intent of the law is to reduce illegal content dispersal (ie: <a href="http://en.wikipedia.org/wiki/Software_piracy">piracy</a>).
</p>
<p>
But it is more difficult to understand how <a href="http://google.com">Google</a> and <a href="http://apple.com">Apple</a> have, I suspect unintentionally, teamed up with <a href="http://microsoft.com">Microsoft</a> to seriously threaten the dispersal of information. Restricting information dispersal isn&#8217;t their goal Their goal is corporate success. But when it comes to basic human rights such as information dispersal, motivation doesn&#8217;t really seem important.
</p>
</div>

</div>

<div id="outline-container-4" class="outline-3">
<h3 id="sec-4">Brief History Lesson (especially for people who don&#8217;t remember life before the web)</h3>
<div class="outline-text-3" id="text-4">

<p>In America, information dispersal used to rely on America&#8217;s famous <a href="http://en.wikipedia.org/wiki/Freedom_of_the_press">Freedom Of The Press</a>. Public awareness as to the degree of control <a href="http://en.wikipedia.org/wiki/Big_business">big business</a> plays in the <i>free</i> press has been growing for a century or more. Besides the growth in public awareness, the press has been increasingly controlled by big business (think pre- and post-<a href="http://en.wikipedia.org/wiki/William_Randolph_Hearst#Yellow_journalism">Hearst</a>). But when things were looking the bleakest, out of nowhere, the internet came to the rescue.
</p>
<p>
In perhaps the only prediction of the internet&#8217;s future that has come true, the web allowed average people to become publishers. <a href="http://en.wikipedia.org/wiki/Blog">Blogs</a>, <a href="http://en.wikipedia.org/wiki/Podcasts">podcasts</a> (popularized by and named for Apple&#8217;s <a href="http://en.wikipedia.org/wiki/iPod">iPod</a>), and <a href="http://en.wikipedia.org/wiki/YouTube">YouTube</a> (now owned by Google) have truly enabled any person with access to a computer to publish their opinion, however inaccurate, insane, or just plain stupid that might be. The growth of the web led to an ensuing INFORMATION OVERLOAD. While this had a negative impact on people&#8217;s access to the information they desire, people and technology seem to have managed it.
</p>
</div>

</div>

<div id="outline-container-5" class="outline-3">
<h3 id="sec-5">The Current Problem</h3>
<div class="outline-text-3" id="text-5">

<p>The basic problem is that today, information storage, editing and dispersal occurs in just a few ways:
</p><ol>
<li>Traditional media such as newspaper, cable TV, and <i>&lt;yawn&gt;</i> broadcast TV.
</li>
<li>Desktop <a href="http://en.wikipedia.org/wiki/Operating_system">operating systems</a>: This includes Windows and Mac OS X.
</li>
<li>Mobile operating systems: This includes <a href="http://en.wikipedia.org/wiki/Ios">iOS</a> on Apple&#8217;s iPhones and iPads, Google&#8217;s <a href="http://en.wikipedia.org/wiki/Android_(operating_system)">Android</a> on mobile phones and tablets as well as their <a href="http://en.wikipedia.org/wiki/ChromeOS">ChromeOS</a> <a href="http://en.wikipedia.org/wiki/netbook">netbooks</a>, Microsoft&#8217;s <a href="http://en.wikipedia.org/wiki/Windows_Phone">Windows Phone</a>, etc&hellip;
</li>
<li>Internet-based <a href="http://en.wikipedia.org/wiki/Cloud_storage">Cloud Storage</a>: Of the nine <a href="http://en.wikipedia.org/wiki/Cloud_storage#Examples_of_cloud_storage">examples</a> of cloud storage on the <a href="http:wikipedia.com">Wikipedia</a> at the time of writing this article, four of them belong to Google, Microsoft, or Apple. 
</li>
<li>Other online storage: Microsoft&#8217;s <a href="http://hotmail.com">Hotmail</a> and Google&#8217;s <a href="http://en.wikipedia.org/wiki/Gmail">Gmail</a>, <a href="http://en.wikipedia.org/wiki/Google_docs">Docs</a>, YouTube, <a href="http://en.wikipedia.org/wiki/Blogger">Blogger</a>, and numerous other services run by these three companies provide many other forms of cloud storage.
</li>
<li>SOCIAL WEB SITES: specifically FACEBOOK and TWITTER. While not yet a seriously contender, Google is trying to muscle its way into this market with GOOGLE+ and previously GOOGLE BUZZ.
</li>
<li>SEARCH ENGINES: Search engines are the digital compasses that point people to information.
</li>
<li>ONLINE REFERENCES: While I don&#8217;t have any statistics, I imagine that the Wikipedia is the largest online reference. Other sites such as IMDB and DICTIONARY.com are also significant players. To a lesser extent, sites such as GOOGLE SCHOLARS and EXPEDIA cannot be discounted.
</li>
</ol>


<p>
While this is an incomplete list of a collection of different types of data-related companies, it is clear that Microsoft, Apple, and Google are dominant in this arena.
</p>
<p>
In addition to the above, the actual means of information delivery is via <a href="http://en.wikipedia.org/wiki/Web_browsers">web browsers</a> and a collection of less-important applications such as <a href="http://en.wikipedia.org/wiki/iTunes">iTunes</a> and the seemingly infinite collection of TWITTER CLIENTS.
</p>
</div>

</div>

<div id="outline-container-6" class="outline-3">
<h3 id="sec-6">The Freedom Crisis</h3>
<div class="outline-text-3" id="text-6">

<p>   Of the major players discussed in the <a href="#sec-5">previous section</a>, only two of them meet any reasonable definition of INDEPENDENT: The Wikipedia<sup><a class="footref" name="fnr.3" href="#fn.3">3</a></sup> and the Firefox browser. Every other major player is a for-profit company. While companies such as Facebook and Twitter attempt allow uncensored content to be published by users, they are still for-profit companies.
</p>
<p>
Out of the for-profit companies, Google, Apple, and Microsoft are dominant in numerous categories. They are certainly happy to throw their weight around. 
</p><ul>
<li>Apple has been trying to <a href="http://apple.slashdot.org/story/11/08/09/1832254/sale-of-samsung-galaxy-tab-blocked-in-the-eu">destroy Samsung&#8217;s mobile market</a> by presenting <a href="http://yro.slashdot.org/story/11/08/15/1758224/flawed-evidence-in-eu-apple-vs-samsung-case">falsified evidence</a> to courts.
</li>
<li>A question about <a href="http://apple.slashdot.org/story/11/12/27/0216217/techrights-recommends-an-apple-boycott">boycotting Apple</a> has made the front page of <a href="http://slashdot.org">Slashdot</a>. If you are unfamiliar with the great influence of Slashdot, reading about the <a href="http://en.wikipedia.org/wiki/Slashdot_effect">Slashdot Effect</a> should give you some perspective.
</li>
<li>Google tried to shut down <a href="http://en.wikipedia.org/wiki/CyanogenMod">Cyanogen(mod)</a>, a replacement for Google&#8217;s <a href="http://en.wikipedia.org/wiki/Android_(operating_system)">Android</a> mobile operating system.
</li>
<li>This <a href="http://www.google.com/search?q=microsoft+lawsuit&amp;ie=utf-8&amp;oe=utf-8&amp;aq=t&amp;rls=org.mozilla:en-US:unofficial&amp;client=firefox-a&amp;tbs=qdr:y">Google search</a> for <i>Microsoft lawsuits</i> returns 24 million hits for the past year.
</li>
<li>While only indirectly related, <a href="http://www.godaddy.com">GoDaddy.com</a>, the <a href="http://support.google.com/a/bin/answer.py?hl=en&amp;answer=47610">preferred</a> <a href="http://en.wikipedia.org/wiki/Domain_registrar">domain registrar</a> for <a href="http://en.wikipedia.org/wiki/Google_Sites">Google Sites</a>, has <a href="http://yro.slashdot.org/index2.pl?fhfilter=godaddy">hit Slashdot&#8217;s home page</a> five times in the past three days.
</li>
</ul>



</div>

</div>

<div id="outline-container-7" class="outline-3">
<h3 id="sec-7">Footnotes</h3>
<div class="outline-text-3" id="text-7">


<p>
But the same site has seemingly super-human, volunteer moderators that monitor and remove links to PROPRIETARY SOFTWARE. This <a href="http://forum.xda-developers.com/showthread.php?t=935185">example</a> is just the first hit I found from a quick Google search. In addition to the site&#8217;s speedy moderators, the very active user community also helps to regulate postings on the site (see the <a href="http://forum.xda-developers.com/showpost.php?p=11020601&amp;postcount=7">seventh posting</a> on the above page). 
</p>
<p>
The XDA-Developers&#8217; community clearly appreciates the freedom the site provides while respecting the legal rights of software owners and the difficulties challenging those rights can cause the site.
</p>


<a title="Just Give: Wikipedia" href="http://wikimediafoundation.org/w/index.php?title=WMFJA085/en/US&amp;utm_source=JustGive&amp;utm_medium=sidebar&amp;utm_campaign=20110130SB003&amp;language=en&amp;uselang=en&amp;country=US&amp;referrer=http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FUser:NeilSmithline"><img width="305" height="117" src="http://neil-smithline.github.com//upload.wikimedia.org/wikipedia/commons/1/1d/Wikipedia-world-info-229x88.png" alt="Click to vote for free information"/></a>

<div id='footnotes'>
<h4 class='footnotes'>Footnotes: </h4>
<div id='text-footnotes'>
<p class="footnote"><sup><a class="footnum" name="fn.1" href="#fnr.1">1</a></sup> Please note that I am a believer of <i>reasonable</i> restrictions on intellectual property. For example, I consider <a href="http://www.xda-developers.com/">XDA-Developers</a> to be one of the most liberal content distributors. Their site is full of ways to hack, modify, and replace the software that comes on mobile phones. They have successfully battled legal challenges from both Microsoft and Google.
</p>

<p class="footnote"><sup><a class="footnum" name="fn.2" href="#fnr.2">2</a></sup> I have limited this article to freedom in America. While I feel the issues I raise are universal, I do not feel I have enough knowledge to speak confidently about other countries so I have omitted them.
</p>

<p class="footnote"><sup><a class="footnum" name="fn.3" href="#fnr.3">3</a></sup> Have you donated your $5 to the Wikipedia? Have you ever edited the Wikipedia? <i>Free</i> speech isn&#8217;t free. The next time you find a typo in the Wikipedia, either correct it or add a note to the <a href="http://en.wikipedia.org/wiki/Talk_page#Talk_page">Talk</a> page. The Talk page is a great place to point out a problem when you are lacking the time, knowledge, or motivation to correct the page. While I am far from a major contributor to the Wikipedia, my <a href="http://en.wikipedia.org/wiki/Special:Contributions/Neil_Smithline">contribution page</a> shows that I have edited pages across a wide range of topics &ndash; many that I really know nothing about.  <a href="http://en.wikipedia.org/wiki/User:Neil_Smithline">user page</a> or just give&hellip;
</p></div>
</div>

</div>
</div>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Vote With Your Money: Blackball GoDaddy For Propagandizing SOPA]]></title>
    <link href="http://neil-smithline.github.com/blog/2011/12/23/blackball-godaddy/"/>
    <updated>2011-12-23T07:58:22-05:00</updated>
    <id>http://neil-smithline.github.com/blog/2011/12/23/blackball-godaddy</id>
    <content type="html"><![CDATA[<p>
<a href="http://godaddy.com">GoDaddy</a> has just released its <a href="http://support.godaddy.com/godaddy/go-daddys-position-on-sopa/?isc=smtwsup">official statement</a> (via <a href="http://yro.slashdot.org/story/11/12/23/0253207/godaddy-backs-sopa">Slashdot</a> via <a href="http://www.ibtimes.com/articles/271730/20111222/sopa-bill-2012-godaddy-reveals-support.htm">ibtimes.com</a>) on SOPA. You can read my opinions on SOPA in my recent blog posting <a href="#id-06BB29E4-D6B3-430E-B5A3-FDC6716A0ED3">SOPA: The End Of Free Speech</a>. While I can&#8217;t imagine the business logic that motivated GoDaddy, I respect the free publication of opinions contrary to my own. In fact, my objections to <a href="https://wfc2.wiredforchange.com/o/9042/p/dia/action/public/?action_KEY=8173">SOPA</a> are that it allows corporations to prohibit contrary opinions. Should SOPA pass, GoDaddy, if they chose to worry about lil&#8217; ol&#8217; me, could, with the effort of a single letter, have my blog shut down for posting about this article.
<!-- more -->

While SOPA provides real teeth for corporations to control any use of their name, it will continue to allow companies to state, or misstate, legal facts. As such, GoDaddy has published its &#8221;<a href="http://support.godaddy.com/godaddy/go-daddys-position-on-sopa/?isc=smtwsup">official statement</a>&#8221; about SOPA that is simply loaded with &lt;insert your favorite term for BS here&gt;.
</p>

<div id="outline-container-1" class="outline-3">
<h3 id="sec-1">Good Intentions</h3>
<div class="outline-text-3" id="text-1">


<p>    
    In our view, Internet policy should strive to balance the sometimes competing goals of the global free flow of information (which is clearly critical to U.S. businesses), with enforcement of the rule of law. We don&#8217;t see those competing goals as mutually exclusive, but rather, complimentary. In fact, that balance is essential to a flourishing, yet safe, Internet.
</p>
<p>
Why some members of the Internet ecosystem do not believe it is their responsibility to participate in finding that balance is unclear to us. We&#8217;ve found that balance in the past in the child protection and counterfeit pharmaceuticals contexts, for example, where we voluntarily take action against customers whose websites or domain names violate the law. So far, none of our voluntary action has stifled legitimate capitalism online. And neither will robust intellectual property enforcement.
</p>
<p>
The question should be how, not whether, we develop a notice and takedown regime in a responsible and responsive way. At Go Daddy, we are proud of our best practices and believe that they exemplify a model for the rest of the ecosystem. In 2010, we voluntarily took action and shut down more than 30,000 illegal online pharmacies. And, I spend a great deal of my working (and non-working) hours each day working to keep the Internet a better and safer place, especially for children.
</p>
<p>
And we are responsive to intellectual property holders, even absent a clear mandate by Congress to take action.
</p></div>
</div>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Sparkleshare: Maybe An Open, Privately Hosted, Dropbox Alternative]]></title>
    <link href="http://neil-smithline.github.com/blog/2011/12/15/sparkleshare/"/>
    <updated>2011-12-15T10:04:43-05:00</updated>
    <id>http://neil-smithline.github.com/blog/2011/12/15/sparkleshare</id>
    <content type="html"><![CDATA[<p> 
<a href="http://dropbox.com">Dropbox</a> took the internet by storm with its free storage and ease of
access. But Dropbox comes with a limited amount of data, a level of
secureness that is hard-to-understand, and rather proprietary.
</p>
<p>
<a href="http://sparkleshare.org">Sparkleshare</a> is an <a href="http://en.wikipedia.org/wiki/Free_and_Open_Source_Software">open source</a> alternative to Dropbox that hit my
radar screen about 6 months ago. I played with it a bit back then but
it didn&#8217;t seem to be quite there. I think I was using an early-alpha,
pre-release version so I this was to be expected.
<!-- more -->

I gave it another try earlier this week and seem to be pretty happy
with it. Some of the things I like about it include:
</p><ol>
<li>I get to host it on my own server. This means the data is
     private. I own it. Nobody else has a copy of it. Etc.
</li>
<li>I have been renting a Linux <a href="http://en.wikipedia.org/wiki/Virtual_private_server">VPS</a> from <a href="http://rosehosting.com">RoseHosting.com</a> ($20/month)
     for many years so they provide me with a convenient, managed, and
     relatively secure place to host Sparkleshare.
</li>
<li>It only took me about 5 minutes to install and configure
     sparkleshare on my Linux VPS. Not because I&#8217;m brilliant but
     because Linux doesn&#8217;t suck and Sparkleshare requires no special
     server software. Just a few standard packages such as <a href="http://en.wikipedia.org/wiki/Git_(software)">Git</a> and a
     copy-and-paste of one command line. The client install (Mac OS X)
     was equally simple.
</li>
<li>Being that it is <a href="http://en.wikipedia.org/wiki/Free_and_Open_Source_Software">FOSS</a>, there is continual scrutiny of the source
     code to maintain quality and security.
</li>
</ol>


<p>
The only real objection I have with it is that Dropbox allows <a href="http://en.wikipedia.org/wiki/Symbolic_link">symbolic links</a> in the Dropbox folder so I don&#8217;t need to have all of my files in
one directory. I haven&#8217;t yet gotten this to work on Sparkleshare.
Either I just haven&#8217;t figured it out, someone else will add it
shortly, or, being it is <a href="http://www.wikipedia.com/Foss">FOSS</a>, I&#8217;ll add it if I get motivated enough
(BTW: I&#8217;m voting for someone else implementing it).
</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[SOPA: The End Of Free Speech]]></title>
    <link href="http://neil-smithline.github.com/blog/2011/12/11/SOPA-the-end-of-free-speech/"/>
    <updated>2011-12-11T00:31:05-05:00</updated>
    <id>http://neil-smithline.github.com/blog/2011/12/11/SOPA-the-end-of-free-speech</id>
    <content type="html"><![CDATA[<p> 
<a href="https://wfc2.wiredforchange.com/o/9042/p/dia/action/public/?action_KEY=8173">SOPA</a>, and its sister bill PROTECT-IP, are currently making their way
through congress. I have pointers to some of the excellent sources of
information on the bills at the end of this article.
</p>
<p>
While the magnitude of these bills is staggering, this posting focuses
on how the passage of these bills will dramatically remove the ability
of individuals to produce and share content on the internet.
</p>
<p>
While I favor reasonable enforcement and punishment of internet-based
crimes, these bills introduce the concepts of:
</p><ul>
<li><b>Guilty until proven innocent</b> 
</li>
<li><b>Guilty by association</b> 
</li>
<li><b>Whoopsy daisy legal recourse</b> that restricts damages (eg: going bankrupt) due to abuse of SOPA to
  &#8220;s&mdash; happens&#8221; response.
</li>
</ul>


<p>
into American law. At least to me, those concepts don&#8217;t seem very
&#8220;American&#8221;.
<!-- more -->

The problems with this bill can best be demonstrated by a simple
example. Let us use the consider a fictitious, non-profit website run
by a couple of friends that is focused on internet freedom. The
website is called <i>Big Brother, Back-off and Stop-It!</i> with the URL
BBBandS.org.
</p>
<p>
If this bill is passed, <i>Big Brothers Big Sisters</i> (<a href="http://bbbs.org">http://bbbs.org</a>)
could simply write a letter to search engines such as Google, content
distributors such as Facebook, and payment companies such as Paypal,
claiming that they feel BBBandS.org is infringing on their <i>domain name</i>. Once this is done, <i>each</i> search, content, and payment provider
must contact BBBandS.org (remember that BBBandS.org is a couple of
friends working out of their garage).
</p>
<p>
BBBandS.org must reply to each and every provider explaining why they
do not feel that BBBandS.org is infringing on BBBS.org&#8217;s <i>domain name</i>. It seems clear that BBBandS.org could not accomplish this task
in a timely fashion.
</p>
<p>
For each company that BBBandS.org does not manage to provide a
credible counterclaim to (where <i>credible</i> is determined by the
search, content, and payment provider companies), a fairly mechanical
process will begin where federal courts will execute a <i>cease and desist</i> to each search, content, or payment service provider
informing them that they must stop servicing BBBandS.org.
</p>
<p>
<b>Guilty until proven innocent:</b> Note that the
simple lack of a timely response to sufficient to, by means of a
judicial <i>cease and desist</i> order, force search, and payment providers to
become legally and financially liable if they continue to do business
with BBBandS.org. 
</p>
<p>
<b>Guilty by association:</b> Whether a service provider agrees or disagrees
with the order, they can be held accountable if they do not &#8220;block
access to or end financial affiliation&#8221; with BBBandS.org.
</p>
<p>
To add insult to injury, the bill goes on to provide &#8220;immunity from
liability for service providers&#8221; that follow a <i>cease and desist</i>
order, causing clear economic harm to BBBandS.org, <b>even</b> if it is
eventually determined that there was no infringement.
</p>
<p>
<b>Whoopsy daisy legal recourse</b>: Should the <i>cease and desist</i> order
be determined to be incorrect via a legal process that may take years
and cost more money than most people will ever have, this bill
restricts BBBandS.org&#8217;s legal recourse to accepting the apologies of
the US judicial system.
</p>
<p>
While I am in favor of what the bill claims to be protecting, this
bill proposes far too high a price to pay for that protection.
</p>
<p>
If you care about the rights of small organizations (eg: people like you), please:
</p><ul>
<li>Read an excellent summary of SOPA in this <a href="https://wfc2.wiredforchange.com/o/9042/p/dia/action/public/?action_KEY=8173">article</a>. Keep in mind
    that the reason that the article seems ludicrous, insane, and
    unbelievable is because it is accurately reflecting the proposed
    legislation.
</li>
<li>Google <i>SOPA</i> or <i>PROTECT-IP</i>.
</li>
<li>Take action via Mozilla&#8217;s page <a href="http://bit.ly/tvIpE3">focused on this issue</a>.
</li>
<li>Take action via the <a href="https://wfc2.wiredforchange.com/o/9042/p/dia/action/public/?action_KEY=8173">EFF</a>.
</li>
<li>Contact your legislator using <a href="http://bit.ly/s0I5me">this</a> <a href="#OpenCongress.org">OpenCongress.org</a> page (takes
    only a minute or so).
</li>
<li>Discuss this issue with everyone you know.
</li>
<li>Discuss this issue with people you don&#8217;t know. I recommend &#8220;So what do you think
    about SOPA?&#8221; as a pick-up line though I encourage creativity and
    individualism as to the exact wording.
</li>
<li>Post a copy or a link to one or more articles on SOPA everywhere
    you can.
</li>
</ul>

]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Got Tags Working Manually]]></title>
    <link href="http://neil-smithline.github.com/blog/2011/12/10/got-tags-working-manually/"/>
    <updated>2011-12-10T20:09:57-05:00</updated>
    <id>http://neil-smithline.github.com/blog/2011/12/10/got-tags-working-manually</id>
    <content type="html"><![CDATA[<p> 
<a href="http://nanoblogger.sourceforge.net">NanoBlogger</a> supports <a href="http://en.wikipedia.org/wiki/Tag_(metadata)">tags</a>. While they came working out of the box,
their UI is a bit awkward. I now have it so that I can easily tag
entries with just a single command line. For example, I&#8217;ll tag this
posting by typing: 
nbeta about-this-blogs-tech 1
<code>nbeta</code> is my shell script to add tags to an entry. It seems a bit
hard to remember but:
</p><table style='border: 2px solid black !important; border-collapse: separate;' cellspacing="0" cellpadding="6" rules="all" frame="2">
<caption></caption>
<colgroup><col class="left" /><col class="left" /><col class="left" />
</colgroup>
<thead>
<tr><th scope="col" class="left">Letters</th><th scope="col" class="left">Word</th><th scope="col" class="left">Meaning</th></tr>
</thead>
<tbody>
<tr><td class="left">nb</td><td class="left">NanoBlogger</td><td class="left">This is a NanoBlogger command</td></tr>
<tr><td class="left">e</td><td class="left">Entry</td><td class="left">This command will affect one or more entries</td></tr>
<tr><td class="left">t</td><td class="left">Tags</td><td class="left">Affects the tags, in this case, of entries</td></tr>
<tr><td class="left">a</td><td class="left">Add</td><td class="left">We&#8217;ll be adding tags</td></tr>
</tbody>
</table>


<p>
<code>about-this-blogs-tech</code> is the tag name. <code>1</code> is the entry ID number.
I&#8217;d like it to be the entry name but that isn&#8217;t done yet and seems of
lower priority as the newest entry is always entry #1.
</p>]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Seems It Really Works]]></title>
    <link href="http://neil-smithline.github.com/blog/2011/12/10/new-tech-really/"/>
    <updated>2011-12-10T01:27:23-05:00</updated>
    <id>http://neil-smithline.github.com/blog/2011/12/10/new-tech-really</id>
    <content type="html"><![CDATA[<p> 
Well, it appears this actually does work. I seem to be having a few
issues integrating with <a href="http://nanoblogger.sourceforge.net">NanoBlogger</a> but I&#8217;m sure I&#8217;ll work those out.
The problems that I&#8217;ve seen are:
</p><ol>
<li>It seems that adding or even updating a new entry is as costly
       as rebuilding the entire blog from scratch. Right now, that&#8217;s
       OK. But what am I going to do when I have 10, or 100 postings?
       I hope NanoBlogger can handle this.
</li>
<li>NB seems to assume that its input files are hand-written in
       some legacy text editor called <a href="http://www.vim.org">Vim</a> or something :-). While my
       strategy of using <a href="http://www.gnu.org/s/emacs/">GNU Emacs</a>&#8217; <a href="http://orgmode.org">Org Mode</a> keeps the flavor of NB in
       that it is written in a simple markup language, it doesn&#8217;t seem
       to fit the NB model perfectly. There is nothing wrong with NB&#8217;s
       markup, it is just that Org Mode&#8217;s markup can easily be
       exported to virtually every other markup on the planet. So I
       just need to learn Org Mode markup, write my content in Org
       Mode, and then publish that data into whatever format I choose.
       Seems a better solution but NB isn&#8217;t quite prepared for it.
</li>
<li>I would still like better integration with Org Mode and NB. The
       steps I&#8217;ve used to produce this entry are:
<ul>
<li>Ran a little shell script I wrote to create a new NB
             entry. All I do is give the shell script the title of the
             Org Mode file I want to store the new entry in and it
             does its magic, leaving me with an Org Mode skeleton for
             NB.
</li>
<li>Edit the Org Mode file just created.
</li>
<li>Use Org Mode to publish the entry. This just stores it in
            my local NB folder.
</li>
<li>Run <code>nb update</code> to have my changes put into the local
            copy of the blog.
</li>
<li>Run <code>nb preview</code> to view the changes before publishing.
</li>
<li>Run <code>nb publish</code> to update my blog.
</li>
</ul>

</li>
</ol>


<p>
So, while they&#8217;re are still some problems,  I have to say I love it.
The advantages of using Org Mode and the simple NB blogging engine on
both my local and production server is way cool.
</p>
<p>
<a href="http://orgmode.org">Org Mode</a> is actually way cool. I&#8217;ve only started using it in the past
year and will likely spend years learning it as it supports so many
features. But, like all well-designed pieces of software, you don&#8217;t
need to learn it all at once. I&#8217;ll yabber about Org Mode another day.
In any case, I&#8217;m real happy with my blog and the ease with which I can
add postings to it.
</p>]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[My New Blogging Technology]]></title>
    <link href="http://neil-smithline.github.com/blog/2011/12/07/new-blog-tech/"/>
    <updated>2011-12-07T00:00:00-05:00</updated>
    <id>http://neil-smithline.github.com/blog/2011/12/07/new-blog-tech</id>
    <content type="html"><![CDATA[<p> 
My hope is that I can write this entry in <a href="http://www.gnu.org/s/emacs/">GNU Emacs</a>&#8217; <a href="http://orgmode.org">Org Mode</a> and have it auto-published into this <a href="http://www.neilsmithline.com">blog</a>. If you are reading this, then I have succeeded.
</p>
<p>
This is a <a href="http://en.wikipedia.org/wiki/Website#Static_website">static blog</a>. That is, the server side is all <a href="http://en.wikipedia.org/wiki/HTML">HTML</a>. It can be served by virtually any web server. This makes it incredibly convenient for testing and deploying. When I am writing blog entries, I&#8217;m just typing in Emacs. I then save the entries and use Org Mode plus some personalized tweaks to <a href="http://orgmode.org/org.html#Publishing">publish</a> them to a local directory as something close to HTML.
</p>
<p>
These HTMLish files are then fed into <a href="http://nanoblogger.sourceforge.net">NanoBlogger</a>. NanoBlogger is the magic tool that turns a few HTMLish files into a fully functional website. NanoBlogger accepts HTML for the text af entries but wants some simply formatted <a href="http://en.wikipedia.org/wiki/Metadata">metadata</a> added to the file.
</p>
<p>
The Metadata is needed to help NanoBlogger out because, as its name implies, is a teeny-tiny blog engine. As a comparison, my installation of NanoBlogger is 768K (yes, that&#8217;s &#8220;K&#8221;). I also have installations of Drupal at (14M) and Joomla (107M). 
</p>
<p>
The <a href="http://en.wikipedia.org/wiki/.txt">.txt</a> source for each NanoBlogger posting is a file with the body of the entry in HTML embedded but all the cruft that tends to come before and after the body of a web page is simply not there. The easiest way to get an understanding of it is to view the <a href="http://nanoblogger.sourceforge.net/articles/example.txt">metadata source</a> for this <a href="http://nanoblogger.sourceforge.net/articles/example/">sample posting</a>.
</p>
<p>
So you&#8217;re saying &#8220;Big deal.&#8221; or &#8220;Who needs yet another file format?&#8221; But it is a big deal. What most <a href="http://en.wikipedia.org/wiki/Younglings#Ranks_of_Jedi">younglings</a> have never learned is that <a href="http://en.wikipedia.org/wiki/WYSIWYG">WYSIWYG</a> is a distraction from actual content production. Content production is not the same as formatting and editing and, at least in my experience, uses very different parts of the brain. So the less formatting you do while producing content, the better your content will be (at least if you have my brain :-).
</p>
<p>
While it has largely been lost with the popularization of the <a href="http://wikipedia.org">Wikipedia</a>, initially, <a href="http://en.wikipedia.org/wiki/Wikipedia:Cheatsheet">Wiki markup</a> was intended to simplify editing but also served to separate the content production from formatting. While NanoBlogger expects these HTMLish files as input, it is designed to generate them from any number of simpler input formats.
</p>
<p>
These simpler input formats are quite unlike HTML as they are, well they&#8217;re simpler. The default input format is the rather famous <a href="http://daringfireball.net/projects/markdown/">Markdown</a> though many other formats are supported by NanoBlogger or the community. This <a href="http://www.lifehack.org/articles/productivity/use-markdown-for-easy-web-writing.html">article</a> seems to do a good job explaining the benefits of simple languages such as Markdown.
</p>
<p>
It took me but a few hours to create a converter for <a href="http://www.gnu.org/s/emacs/">GNU Emacs</a>&#8217; <a href="http://orgmode.org">Org Mode</a> to NanoBlogger.
</p>
<p>
While not nearly as <a href="http://en.wikipedia.org/wiki/Cool_(aesthetic)">cool</a> as what I&#8217;ve discussed above NanoBlogger has yet another advantage: it produces a static site. On my local machine (<a href="http://support.apple.com/kb/SP546">17&#8221; MacBook Pro</a>), I can view the entire site without running a <a href="http://en.wikipedia.org/wiki/Web_server">web server</a>. I simply go to <a href="http://en.wikipedia.org/wiki/Web_server">Firefox</a> (actually <a href="http://www.mozilla.org/en-US/firefox/aurora/">Firefox Aurora</a>) and visit the <a href="http://en.wikipedia.org/wiki/URL">URL</a>, specifically, the <a href="http://en.wikipedia.org/wiki/File_url">file URL</a> of my blog. For me, I visit <code>file://Users/neil/www-nb</code>, and then I can see my entire blog through the magic of a static websites, <a href="http://en.wikipedia.org/wiki/File_url">file URLs</a>, and <a href="http://en.wikipedia.org/wiki/Relative_URL#Absolute_and_relative_URLs">relative URLs</a>. 
</p>
]]></content>
  </entry>
  
</feed>

