<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:planet="http://planet.intertwingly.net/" xmlns:indexing="urn:atom-extension:indexing" indexing:index="no"><access:restriction xmlns:access="http://www.bloglines.com/about/specs/fac-1.0" relationship="deny"/>
  <title>Planet Bozo</title>
  <updated>2012-05-17T03:00:37Z</updated>
  <generator uri="http://intertwingly.net/code/venus/">Venus</generator>
  <author>
    <name>Russell Coker</name>
    <email>russell@coker.com.au</email>
  </author>
  <id>http://planet.coker.com.au/bozo/atom.xml</id>
  <link href="http://planet.coker.com.au/bozo/atom.xml" rel="self" type="application/atom+xml"/>
  <link href="http://planet.coker.com.au/bozo/" rel="alternate"/>

  <entry xml:lang="en">
    <id>http://xkcd.com/1056/</id>
    <link href="http://xkcd.com/1056/" rel="alternate" type="text/html"/>
    <title>Felidae</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><img alt="'Smilodon fatalis' narrowly edged out 'Tyrannosaurus rex' to win this year's Most Badass Latin Names competition, after edging out 'Dracorex hogwartsia' and 'Stygimoloch spinifer' (meaning 'horned dragon from the river of death') in the semifinals." src="http://imgs.xkcd.com/comics/felidae.png" title="'Smilodon fatalis' narrowly edged out 'Tyrannosaurus rex' to win this year's Most Badass Latin Names competition, after edging out 'Dracorex hogwartsia' and 'Stygimoloch spinifer' (meaning 'horned dragon from the river of death') in the semifinals."/></div>
    </summary>
    <updated>2012-05-16T04:00:00Z</updated>
    <source>
      <id>http://xkcd.com/</id>
      <author>
        <name>XKCD</name>
      </author>
      <link href="http://xkcd.com/" rel="alternate" type="text/html"/>
      <link href="http://www.xkcd.com/rss.xml" rel="self" type="application/rss+xml"/>
      <subtitle>xkcd.com: A webcomic of romance and math humor.</subtitle>
      <title>xkcd.com</title>
      <updated>2012-05-16T04:00:36Z</updated>
    </source>
  </entry>

  <entry>
    <id>http://syndication.thedailywtf.com/7316</id>
    <link href="http://thedailywtf.com/Articles/Long-Distance.aspx" rel="alternate" type="text/html"/>
    <title>Long Distance</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p><b>Lawrence</b>'s employer had heard that this newfangled "Desktop PC" could reduce their IT costs, and they wanted in on it. It was the mid 80s, and at the time, their plants scattered all over Alabama connected to a central mainframe via dumb terminals connected over very expensive leased lines. It was time to upgrade, and Lawrence wasn't in charge of it. He didn't get called in until things went wrong.
</p><p>
"This new PC system is <i>really slow</i>," he was told while on a plant tour. That didn't sound likely- the PCs were running blisteringly fast 4.77MHz, 8088 CPUs with 16Kb of RAM, and since someone had connected "arithmetic-heavy accounting usage" to "floating point processing", they all had 8087 co-processors. There was no way they were slow, especially since half the time they were just running a 3270 terminal emulator.
</p><p>
But sure enough, when they fired up the terminal emulator, it was slower than anything. Going from the login screen to the menu, and then from the menu to the order fulfillment screen took multiple minutes. Was the 300-baud smartmodem that slow? Lawrence fiddled connections, tested the line, and then eventually got around to cranking the volume on the modem's speaker. No, the modem wasn't that slow. 
</p><p>
Whoever had configured the deployment had tried to mirror their old system as closely as possible. In the old system, the terminal started a new connection every time the user pressed enter, and then disconnected from the mainframe until the user triggered the next command. So in the new system, they did the same thing- which meant each time the client finished loading a screen, the modem would hang up.
</p><p>
That particular problem was easy <span title="click me!">to fix</span>&lt;script src="http://www.cornify.com/js/cornify.js" type="text/javascript"&gt;&lt;/script&gt;, and simply involved making sure each PC had its own phone line, and that the terminal emulator made sure to keep the connection open. But one of their remote offices, someplace deep in the Alabama backwoods, proved intractable- they couldn't connect at all.
</p><p>
Lawrence tried diagnosing their problem remotely at first. The phone line seemed good- he could dial it; the plant users could dial out. He shipped them a fresh modem, and eventually a fresh PC, but nothing seemed to make a difference. They couldn't dial the mainframe. So he had to go out to the plant.
</p><p>
Having learned his lesson, the first thing Lawrence did was crank the volume on the modem speaker. When the computer attempted to dial out, he heard the sound of touchtone bleeps followed by a crackly voice saying, "Number please."
</p><p>
That particular plant was so back in the backwoods of Alabama that it didn't have direct-dial long distance. The users were so used to it that they didn't even think it could be the problem. The small town phone company had no firm plan when they would start doing it. Lawrence helped pack up the PCs and reinstall the dumb terminals. By the time he left that company, they were still using them. They might still be using them today.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/grzFKMyX3hUy_kzbf9x44LvnCbI/0/da"><img border="0" ismap="true" src="http://feedads.g.doubleclick.net/~a/grzFKMyX3hUy_kzbf9x44LvnCbI/0/di"/></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/grzFKMyX3hUy_kzbf9x44LvnCbI/1/da"><img border="0" ismap="true" src="http://feedads.g.doubleclick.net/~a/grzFKMyX3hUy_kzbf9x44LvnCbI/1/di"/></a></p><img height="1" src="http://feeds.feedburner.com/~r/TheDailyWtf/~4/fudv1RqQ4iY" width="1"/></div>
    </summary>
    <updated>2012-05-15T13:00:00Z</updated>
    <category term="Feature Articles"/>
    <author>
      <name>Remy Porter</name>
    </author>
    <source>
      <id>http://thedailywtf.com/</id>
      <link href="http://thedailywtf.com/" rel="alternate" type="text/html"/>
      <link href="http://syndication.thedailywtf.com/TheDailyWtf" rel="self" type="application/rss+xml"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <subtitle>Curious Perversions in Information Technology</subtitle>
      <title>The Daily WTF</title>
      <updated>2012-05-17T01:00:39Z</updated>
    </source>
  </entry>

  <entry>
    <id>http://syndication.thedailywtf.com/7318</id>
    <link href="http://thedailywtf.com/Articles/FAIL-FAIL,FAIL-FAIL,FAIL-FAIL-and-More.aspx" rel="alternate" type="text/html"/>
    <title>Coded Smorgasbord: FAIL FAIL,FAIL FAIL,FAIL FAIL and More</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>"We're had been using a manufacturer's web service, but started getting errors all of a sudden," wrote <b>Peter Lindgren</b>. "Something has really, really failed."</p>
<blockquote>
<pre>&lt;StatusCode&gt;InternalServerError&lt;/StatusCode&gt;
&lt;StatusDescription&gt;Internal Server Error&lt;/StatusDescription&gt;
&lt;WebHeaders&gt;
  &lt;X-Backside-Transport&gt;FAIL FAIL,FAIL FAIL,FAIL FAIL&lt;/X-Backside-Transport&gt;
&lt;/WebHeaders&gt;</pre>
</blockquote>
<p>"Fortunately, a short time later, it started working again with this message."</p>
<blockquote>
<pre>&lt;StatusCode&gt;OK&lt;/StatusCode&gt;
&lt;StatusDescription&gt;OK&lt;/StatusDescription&gt;
&lt;WebHeaders&gt;
  &lt;X-Backside-Transport&gt;OK OK,OK OK,OK OK&lt;/X-Backside-Transport&gt;
&lt;/WebHeaders&gt;</pre>
<blockquote>
<p>"I'm not sure of the purpose of this," <b>Jasmine</b> wrote via the <a href="http://inedo.com/downloads/submit-to-wtf">Submit to The Daily WTF visual studio extension</a>, "maybe the stack was just too small or something?"</p>
<blockquote>
<pre>Public Function Save() As Boolean
    Try
        SaveMeeting()
    Catch ex As Exception
        Throw ex
    End Try
End Function</pre>
</blockquote>
<p> </p>
<p>"I was asked to modify some simple web page used to generate an online store," <b>Mihai Todor</b> wrote, "here's a Javascript function that I found in it, which is used to validate the required fields."</p>
<blockquote>
<pre>function checkdata() {
    dataok = true;
    t1 = document.forms.signup.firstName.value;
    t2 = document.forms.signup.lastName.value;
    t3 = document.forms.signup.userName.value;
    t4 = document.forms.signup.password.value;
    t5 = document.forms.signup.passwordConfirm.value;
    t6 = document.forms.signup.email.value;
    t7 = document.forms.signup.url.value;
    t8 = document.forms.signup.adminFrontname.value;
    t9 = document.forms.signup.locale.options.selectedIndex;
    t10 = document.forms.signup.currency.options.selectedIndex;
    t11 = document.forms.signup.timezone.options.selectedIndex;
    t12 = document.forms.signup.packetType.options.selectedIndex;
    t13 = document.forms.signup.captcha_code.value;
    if(t1 == '' || t2 == '' || t3 == '' || t4 == '' || t5 == '' || t6 == '' || t7 == '' || t8 == ''){
        alert("Please fill-up all the fields");
        dataok = false; return(dataok);}
    if(t4 != t5){
        alert("Please enter the password again");
        dataok = false; return(dataok);}
    if(t9 == 0){
        alert("Please select a locale");
        dataok = false; return(dataok);}
    if(t10 == 0){
        alert("Please select a currency");
        dataok = false; return(dataok);}
    if(t11 == 0){
        alert("Please select a time zone");
        dataok = false; return(dataok);}
    if(t12 == 0){
        alert("Please select a packet type");
        dataok = false; return(dataok);}
    if(t13 == ''){
        alert("Please fill-up the code field");
        dataok = false; return(dataok);}
    return(dataok);
}</pre>
</blockquote>
<p> </p>
<p>"I've seen these types of constants on <em>The Daily WTF</em> before and always questioned if they were real," wrote <b>Sterge</b>, "and then I saw these."</p>
<blockquote>
<pre>public static final String SLASH = "/";
public static final String PERCENT = "%";</pre>
</blockquote>
<p> </p>
<p>"I'm on a team that maintains a pretty 'serious' banking application," <b>Giga B</b> wrote, "it's pretty serious about the number of parameters in functions."</p>
<blockquote>
<pre>public void WriteStep1Data(int LoanRequestID,
                           string InsertDate,
                           string OperatorID,
                           string FirstName,
                           string LastName,
                           string BirthDay,
                           int DocuemntTypeID,
                           int MaritialStatusID,
                           string DocumentIssueDate,
                           string DocumentExpireDate,
                           string DocumentIssuer,
                           string DocumentNo,
                           string PersonalNo,
                           int UniversityDegreeID,
                           string Address,
                           string Address2,
                           int RealAddressLivingPeriod,
                           int ChildrenCount,
                           int FamilyMembersCount,
                           decimal MonthlyIncome,
                           decimal MonthlyFamilyExpanses,
                           string HomePhoneNumber,
                           string MobilePhoneNumber,
                           string WorkPhoneNumber,
                           string EmailAddress,
                           string JobOrganizationName,
                           string JobOrganizationAddress,
                           string JobOrganizationActivity,
                           string JobOrganizationPhoneNumber,
                           string JobPosition,
                           string JobWorkingYears,
                           string JobBossName,
                           string JobBossPhoneNumber,
                           byte ClientSex,
                           decimal FinTotalProductsAmount,
                           decimal FinCommissionAmount,
                           int FinLoanPeriod,
                           decimal FinFirstPaymentAmount,
                           decimal FinLoanAmount,
                           decimal FinMonthlyPaymentAmount,
                           string GuarantorName,
                           string GuarantorLastName,
                           string GuarantorBirthDate,
                           string GuarantorPersonalNo,
                           int? GuarantorDocType,
                           string GuarantorDocumentNo,
                           string GuarantorDocIssuer,
                           string GuarantorDocIssueDate,
                           string GuarantorDocExpireDate,
                           string GuarantorTelHome,
                           string GuarantorTelMobile,
                           string GuarantorAddress,
                           string GuarantorAddressReal,
                           string GuarantorJobName,
                           decimal GuarantorIncome,
                           byte? GuarantorSex,
                           decimal HistoryPlaticAnnualTurnOver,
                           string HistoryDescription,
                           string MarketingQ1,
                           string MarketingQ2,
                           int StatusID,
                           string DateViewed,
                           string DateAnswered,
                           string BackOfficeUserID,
                           string RepaymentDate,
                           string ShopID,
                           string CalculationGroupID,
                           decimal RegFeeAmount,
                           int clientDeptNo,
                           int guarantorDeptNo,
                           int guarantorMaritialStatusID,
                           string AccountCodeWord,
                           string ClientFatherName,
                           string ClientBirthPlace,
                           string ClientCityAttendingToReg,
                           string GuarantorFatherName,
                           string GuarantorBirthPlace,
                           string GuarantorCityAttendingToReg,
                           string GuarantorJobActivity,
                           string GuarantorJobPosition,
                           string GuarantorJobContactPhone,
                           string GuarantorJobCodeWord,
                           string GuarantorEmailAddress
    )
{
   ... snip a few hundred lines ...
}
</pre>
</blockquote>
<p> </p>
<p>"I learned a neat trick from our enterprise framework," <b>Eli</b> noted, "if you want to convert an int to a double, just do this!"</p>
<blockquote>
<pre>double d = Double.valueOf(new Integer(i).toString()).doubleValue();</pre>
</blockquote>
<p> </p>
<p>"I had to look over some C# code written by a colleague of mine," notes <b>John D</b>, "the following lines represent just the tip of the iceberg of the pain that I had to go through while understanding the code."</p>
<blockquote>
<pre>bool true1 =true;
bool true12 = true;
.... snip ....
true1 = false;
true1 = false;</pre>
</blockquote>
<p> </p>
<p>"I found this pattern in source code I have been working on," wrote <b>Nas Nubian</b>, "this is how some developer decided to open a new window for when users click on a links."</p>
<blockquote>
<pre>&lt;a href="/the/path/to/the/url" 
  onclick="window.open(this.getAttribute('href'),'_blank');return false;"&gt;
  link text
&lt;/a&gt;</pre>
</blockquote>
<p> </p>
<p>"So," wonders <b>Johnny B</b>, "I guess GUID from our production db servers are better than local GUID?"</p>
<blockquote>
<pre>Function GetNewGuid()
    Dim cnGuid, rsGuid
    
    Set cnGuid = CreateObject("ADODB.Connection")
    Set rsGuid = CreateObject("ADODB.Recordset")

    cnGuid.Open = _
        "Provider=SQLOLEDB.1;" + 
        "Data Source=&lt;production server&gt;; " + 
        "Initial Catalog=&lt;production DB&gt; " +
        "user id = '********';" + 
        "password='*********'""

    rsGuid.Open "SELECT newid() as Guid", cnGuid

    If Not rsGuid.EOF Then
        GetNewGuid = rsGuid("Guid").Value
    End If
End Function</pre>
</blockquote>
<p> </p>
<p>"The comment says it all," wrote <b>Michael</b>.</p>
<blockquote>
<pre>/**
 * Defines the value for none. Default is "none".
 */
public static String NONE = "none";</pre>
</blockquote>
<p> </p>
<p>"This is snippet of code I found in a large program I maintain," wrote <b>Brian</b>. "The original developers have long since moved on. Funnily enough, this particular code was properly mutexed, but I guess the paranoid programmer doesn't trust mutexes. I only wish the original developers were so 'paranoid' when it came to avoiding things like buffer overflows, memory leaks, and sql injection."</p>
<blockquote>
<pre>if ( resData.state() == RESOURCE_STATE_ACTIVE )
{
    elapsedTime.setBase( resData.startTime() );
    if ( elapsedTime.diff() &gt;= maxDuration )
    {
        // Do one more validity check, the paranoid programmer knows
        // the state may have changed since the last check.
        if ( resData.state() == RESOURCE_STATE_ACTIVE )
        {
            resourceActiveTooLong( resData );
        }
    }
}</pre>
</blockquote>
<p> </p>
</blockquote></blockquote>
<p><a href="http://feedads.g.doubleclick.net/~a/HBZc6_Cj5XIqGL2A-v9v8vRi0FU/0/da"><img border="0" ismap="true" src="http://feedads.g.doubleclick.net/~a/HBZc6_Cj5XIqGL2A-v9v8vRi0FU/0/di"/></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/HBZc6_Cj5XIqGL2A-v9v8vRi0FU/1/da"><img border="0" ismap="true" src="http://feedads.g.doubleclick.net/~a/HBZc6_Cj5XIqGL2A-v9v8vRi0FU/1/di"/></a></p><img height="1" src="http://feeds.feedburner.com/~r/TheDailyWtf/~4/_jSBPsPVWHM" width="1"/></div>
    </summary>
    <updated>2012-05-14T13:00:00Z</updated>
    <category term="Coded Smorgasbord"/>
    <author>
      <name>Alex Papadimoulis</name>
    </author>
    <source>
      <id>http://thedailywtf.com/</id>
      <link href="http://thedailywtf.com/" rel="alternate" type="text/html"/>
      <link href="http://syndication.thedailywtf.com/TheDailyWtf" rel="self" type="application/rss+xml"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <subtitle>Curious Perversions in Information Technology</subtitle>
      <title>The Daily WTF</title>
      <updated>2012-05-17T01:00:39Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://xkcd.com/1055/</id>
    <link href="http://xkcd.com/1055/" rel="alternate" type="text/html"/>
    <title>Kickstarter</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><img alt="If you pledge more than $50 you'll get on the VIP list and have first dibs on a slot on ANY of the pledge levels in the actual campaign." src="http://imgs.xkcd.com/comics/kickstarter.png" title="If you pledge more than $50 you'll get on the VIP list and have first dibs on a slot on ANY of the pledge levels in the actual campaign."/></div>
    </summary>
    <updated>2012-05-14T04:00:00Z</updated>
    <source>
      <id>http://xkcd.com/</id>
      <author>
        <name>XKCD</name>
      </author>
      <link href="http://xkcd.com/" rel="alternate" type="text/html"/>
      <link href="http://www.xkcd.com/rss.xml" rel="self" type="application/rss+xml"/>
      <subtitle>xkcd.com: A webcomic of romance and math humor.</subtitle>
      <title>xkcd.com</title>
      <updated>2012-05-16T04:00:36Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://etbe.coker.com.au/?p=3304</id>
    <link href="http://etbe.coker.com.au/2012/05/13/really-want-from-nbn/" rel="alternate" type="text/html"/>
    <title>What I REALLY Want from the NBN</title>
    <summary>Generally I haven’t had a positive attitude towards the NBN. It doesn’t seem likely to fulfill the claims of commercial success and would be a really bad thing to privatise anyway. Also it hasn’t seemed to offer any great benefits either. The claim that it will enable lots of new technical developments which we can’t [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Generally I haven’t had a positive attitude towards the NBN. It doesn’t seem likely to fulfill the claims of commercial success and would be a really bad thing to privatise anyway. Also it hasn’t seemed to offer any great benefits either. The claim that it will enable lots of new technical developments which we can’t even imagine yet that aren’t possible with 25Mb/s ADSL but which also don’t require more than the 100Mb/s speed of the NBN never convinced me.</p>
<p>But one thing it could really do well is to give better Internet access in remote areas. Ideally with static or near-static IPv6 addresses (because we have already run out of IPv4 addresses). Currently 3G networks do all sorts of nasty NAT things to deal with the lack of IPv4 addresses which causes a lot of needless pain if you have a server connected via 3G. One of the NBN plans is for wireless net access to remote homes, with some sanity among the people designing the network such NBN connections would all have static IPv6 subnets as long as they don’t move.</p>
<p>I’m currently working on a project that involves servers on 3G links. I don’t have a lot of options on implementation due to hardware and software constraints. So if the ISPs using the NBN and the NBN itself (for the wireless part) could just give us all IPv6 static ranges then lots of problems would be solved.</p>
<p>Of course I don’t have high hopes for this. One of the many ways that the NBN has been messed up is in allowing the provision of lower speed connections. As having an ADSL2+ speed NBN connection is the cheapest option a lot of people will choose it. Therefore the organisations providing services will have to do so with the expectation that most NBN customers have ADSL2+ speed and thus they won’t provide services to take advantage of higher speeds.</p>
<p>Related posts:</p><ol>
<li><a href="http://etbe.coker.com.au/2008/10/07/rpc-and-se-linux/" rel="bookmark" title="RPC and SE Linux">RPC and SE Linux</a> <small>One ongoing problem with TCP networking is the combination of...</small></li>
<li><a href="http://etbe.coker.com.au/2008/08/05/new-strategy-xen-mac-allocation/" rel="bookmark" title="A New Strategy for Xen MAC Allocation">A New Strategy for Xen MAC Allocation</a> <small>When installing Xen servers one issue that arises is how...</small></li>
<li><a href="http://etbe.coker.com.au/2008/07/28/new-net-connections/" rel="bookmark" title="New Net Connections">New Net Connections</a> <small>On Thursday my new InterNode ADSL2+ service was connected [1]....</small></li>
</ol></div>
    </content>
    <updated>2012-05-13T08:13:22Z</updated>
    <category term="Networking"/>
    <author>
      <name>etbe</name>
    </author>
    <source>
      <id>http://etbe.coker.com.au</id>
      <link href="http://etbe.coker.com.au/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://etbe.coker.com.au" rel="alternate" type="text/html"/>
      <subtitle>Linux, politics, and other interesting things</subtitle>
      <title>etbe - Russell Cokeretbe - Russell Coker</title>
      <updated>2012-05-13T09:00:38Z</updated>
    </source>
  </entry>

  <entry>
    <id>http://syndication.thedailywtf.com/7317</id>
    <link href="http://thedailywtf.com/Articles/Squared-Interior-Design.aspx" rel="alternate" type="text/html"/>
    <title>Error'd: Squared Interior Design</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p><a name="Pic4"/>"I found this ad for an interior design company," wrote <b>Wouter</b>, "they probably do a lot of rectangular designs."</p>
<blockquote>
<p><a href="http://syndication.thedailywtf.com/TheDailyWtf#Pic4"><img alt="" border="0" src="http://img.thedailywtf.com/images/12/q3/e12/IMAG0158.jpg"/></a></p>
<p> </p>
</blockquote>
<p><a name="Pic1"/>"How am I supposed to troubleshoot this?" wonders <b>Jeff Mitchell</b>.</p>
<blockquote>
<p><a href="http://syndication.thedailywtf.com/TheDailyWtf#Pic1"><img alt="" border="0" src="http://img.thedailywtf.com/images/12/q3/e12/backupexec.png"/></a></p>
<p> </p>
</blockquote>
<p><a name="Pic2"/> "I'm not really sure what happened here, but I had to use Chrome's developer tools to hack my birthdate into the form so I could submit it," writes <b>Dave</b>.</p>
<blockquote>
<p><a href="http://syndication.thedailywtf.com/TheDailyWtf#Pic2"><img alt="" border="0" src="http://img.thedailywtf.com/images/12/q3/e12/birthdate2.png"/></a></p>
<p> </p>
</blockquote>
<p><a name="Pic3"/>"I need this form to renew my immigration documents," writes <b>Jack Nathan</b>, "what do i do now?!?"</p>
<blockquote>
<p><a href="http://syndication.thedailywtf.com/TheDailyWtf#Pic3"><img alt="" border="0" src="http://img.thedailywtf.com/images/12/q3/e12/Canada%20Government%20Forms%20Online.JPG"/></a></p>
<p> </p>
</blockquote>
<p><a name="Pic4"/>"I found this ad for an interior design company," wrote <b>Wouter</b>, "they probably do a lot of rectangular designs."</p>
<blockquote>
<p><a href="http://syndication.thedailywtf.com/TheDailyWtf#Pic4"><img alt="" border="0" src="http://img.thedailywtf.com/images/12/q3/e12/IMAG0158.jpg"/></a></p>
<p> </p>
</blockquote>
<p><a name="Pic5"/> "My mother's middle name has 3 characters." wrote <b>Julie Crowner</b>. "I only have a middle initial. Fortunately, we're the only ones impacted by this. Well, except Ada. And Aja. And Ala, Ali, Ama, Ami, Amy, Ana, Ann, Ara, Ava, Bea, Bee, Bev, Deb, Dee, Dot, Eda, Ela, Ema, Ena, Era, Eva, Eve, Exa, Fae, Fay, Flo, Gay, Gia, Ica, Icy, Ida, Ila, Ilo, Ima, Imo, Ina, Ira, Isa, Iva, Ivy, Iza, Jan, Joe, Joi, Joy, Kai, Kay, Kia, Kim, Kya, Lea, Lee, Leo, Lia, Liz, Lou, Lue, Luz, Lyn, Mae, Mai, May, Meg, Mia, Mya, Nan, Nia, Nya, Oda, Ola, Oma, Ona, Ora, Osa, Ota, Ova, Pam, Pat, Rae, Ray, Roy, Sky, Sue, Tai, Tea, Tia, Tom, Ula, Una, Ura, Val, Zoa, Zoe, Abb, Abe, Ace, Acy, Ada, Add, Alf, Ali, Amy, Ann, Ari, Art, Asa, Bee, Ben, Bob, Bud, Cal, Cam, Cap, Cas, Che, Con, Coy, Dan, Dax, Dee, Del, Doc, Don, Dow, Ean, Ebb, Edd, Edw, Eli, Ell, Ely, Eva, Fay, Fed, Foy, Gay, Gee, Geo, Gil, Gus, Guy, Hal, Ham, Hoy, Huy, Ian, Ida, Ike, Ira, Irl, Iva, Ivy, Jan, Jax, Jay, Jeb, Jed, Jep, Jim, Job, Joe, Jon, Joy, Kai, Kay, Kem, Ken, Kim, Kip, Kit, Lea, Lee, Lem, Len, Leo, Les, Lew, Lex, Lim, Lon, Lou, Loy, Luc, Lue, Lum, Lyn, Mac, Mae, Mal, Mat, Max, May, Mel, Moe, Nat, Ned, Nim, Noe, Obe, Oda, Ola, Ole, Ora, Ott, Ova, Pat, Rae, Ras, Ray, Red, Rex, Rey, Rob, Rod, Roe, Ron, Roy, Sal, Sam, Sid, Sie, Sim, Sol, Son, Tab, Tad, Taj, Tal, Ted, Tex, Tim, Tod, Tom, Toy, Tre, Tye, Val, Van, Vic, Von, Wes, Yee, Zeb, and Zed."  What will people with all these middle names do?</p>
<blockquote>
<p><a href="http://syndication.thedailywtf.com/TheDailyWtf#Pic5"><img alt="" border="0" src="http://img.thedailywtf.com/images/12/q3/e12/Middle_name.png"/></a></p>
<p> </p>
</blockquote>
<p><a name="PPic1"/>"My company recently partnered with a developer who had a custom applicatio written in Microsoft Access that we are now forced to train/support/install," writes <b>Ben Reisner</b>. "The following error message is just one of many that has an interesting definition of Equal."</p>
<blockquote>
<p><a href="http://syndication.thedailywtf.com/TheDailyWtf#PPic1"><img alt="" border="0" src="http://img.thedailywtf.com/images/12/q3/e12/notequal.PNG"/></a></p>
<p> </p>
</blockquote>
<p><a name="PPic2"/><b>Kira Russell</b> snapped this when it was a bit cold in North Wales.</p>
<blockquote>
<p><a href="http://syndication.thedailywtf.com/TheDailyWtf#PPic2"><img alt="" border="0" src="http://img.thedailywtf.com/images/12/q3/e12/verycold.jpg"/></a></p>
<p> </p>
</blockquote>
<p><a name="PPic3"/> "I'm still getting used to my new keyboard, and occasionally hit the '\' and ENTER keys at the same time," writes <b>Michael Dowden</b>.  "I was pretty sure I had done this one morning when I logged in to Windows for the first time, however I got in okay and figured all was well...until I got back from a morning meeting, having locked my workstation.  I was greeted with the usual login prompt (screenshot attached), but with '\' appended to my username.  I was forced to hard boot my machine since Windows doesn't allow you to edit your username on the locked-login screen."</p>
<blockquote>
<p><a href="http://syndication.thedailywtf.com/TheDailyWtf#PPic3"><img alt="" border="0" src="http://img.thedailywtf.com/images/12/q3/e12/win-login-wtf.jpg"/></a></p>
<p> </p>
</blockquote>
<p><a href="http://feedads.g.doubleclick.net/~a/RWWbqIlIxScUHbIDyWekzplfJPU/0/da"><img border="0" ismap="true" src="http://feedads.g.doubleclick.net/~a/RWWbqIlIxScUHbIDyWekzplfJPU/0/di"/></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/RWWbqIlIxScUHbIDyWekzplfJPU/1/da"><img border="0" ismap="true" src="http://feedads.g.doubleclick.net/~a/RWWbqIlIxScUHbIDyWekzplfJPU/1/di"/></a></p><img height="1" src="http://feeds.feedburner.com/~r/TheDailyWtf/~4/zgw3b-OLa1Q" width="1"/></div>
    </summary>
    <updated>2012-05-11T13:00:00Z</updated>
    <category term="Error'd"/>
    <author>
      <name>Alex Papadimoulis</name>
    </author>
    <source>
      <id>http://thedailywtf.com/</id>
      <link href="http://thedailywtf.com/" rel="alternate" type="text/html"/>
      <link href="http://syndication.thedailywtf.com/TheDailyWtf" rel="self" type="application/rss+xml"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <subtitle>Curious Perversions in Information Technology</subtitle>
      <title>The Daily WTF</title>
      <updated>2012-05-17T01:00:39Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://xkcd.com/1054/</id>
    <link href="http://xkcd.com/1054/" rel="alternate" type="text/html"/>
    <title>The bacon</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><img alt="Normally pronounced 'THEH-buh-kon', I assume." src="http://imgs.xkcd.com/comics/thebacon.png" title="Normally pronounced 'THEH-buh-kon', I assume."/></div>
    </summary>
    <updated>2012-05-11T04:00:00Z</updated>
    <source>
      <id>http://xkcd.com/</id>
      <author>
        <name>XKCD</name>
      </author>
      <link href="http://xkcd.com/" rel="alternate" type="text/html"/>
      <link href="http://www.xkcd.com/rss.xml" rel="self" type="application/rss+xml"/>
      <subtitle>xkcd.com: A webcomic of romance and math humor.</subtitle>
      <title>xkcd.com</title>
      <updated>2012-05-16T04:00:36Z</updated>
    </source>
  </entry>

  <entry>
    <id>http://syndication.thedailywtf.com/7314</id>
    <link href="http://thedailywtf.com/Articles/Epoch-Billing-System.aspx" rel="alternate" type="text/html"/>
    <title>CodeSOD: Epoch Billing System</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Everybody in the IT department was quite happy -- even a little surprised -- with how well the outsourced project to replace the legacy billing system was progressing.</p>
<p>Well, actually, the project managers weren't all that surprised. Over the past four months, they'd pumped out reams of specs and design documents, often boasting that their level of planning hadn't been seen since the Apollo missions. So, for them, the fact that everything was turning out as designed spoke volumes about the success of their planning and processes.</p>
<h3 style="margin-bottom: 0px;">New Billing Code</h3>
<p style="margin-top: 0px;">Jeff and the other developers who were stuck supporting the existing billing system until the big cutover (still a few months away) wanted to see what this super system looked like under the hood. After all, because they were expected to support the new system once it came online, shouldn't they at least have an understanding of how the underlying code worked?</p>
<p>The developers made their case for months before the project managers gave up on their "it's not done yet" rhetoric and reluctantly handed over a few modules that they'd deemed bug-free.</p>
<p>When Jeff got his hands on the code, one line in particular caught his eye:</p>
<blockquote>
<pre>int strElapsedDays = ( 
 convertDate(intDay1, intMonth1, intYr1) - 
 convertDate(intDay2, intMonth2, intYr2)) / DAY;</pre>
</blockquote>
<h3 style="margin-bottom: 0px;">Unusual Process</h3>
<p style="margin-top: 0px;">Knowing that C# had built-in functions to easily determine the span of days between two dates, Jeff thought the approach was a little strange. Once he tracked down convertDate, things got even weirder:</p>
<blockquote>
<pre>public const int DAY = 86400;
public const int WEEK = 604800;
public const int YEAR = 31449600;
        
private static int convertDate(int day, int month, int year)
{
 
  int[] months = new int[] 
     { 0,31,59,90,120,151, 
       181,212,243,273,304,334 };

  return ( ((year - 1970) * DAY * 365) + 
           (((year - 1970)/4) * DAY) + 
           (months[month - 1] * DAY) + ((day-1) * DAY) );
}</pre>
</blockquote>
<p>Caught off guard, Jeff just stared at the function for a good 10 minutes, trying to figure it out. When he did, it hit him like a ton of bricks. Rather than using the built-in C# date functions, the developer had opted to convert a date into its Unix Epoch -- the number of seconds elapsed since Jan. 1, 1970 -- and work from there.</p>
<p>Jeff had to admit, the solution was a little bit genius. Unfortunately, it wasn't a fit because the new system was running on a Windows server. So Jeff did his duty and raised the matter with the project management team so it could be added to the bug-fix queue for the offshore team.</p>
<p>Weeks later, Jeff followed up with one of the members of the project management team, just out of curiosity, to see if the fix had been made. To his surprise, it hadn't been addressed -- nor would it be any time soon. Apparently the "bug" was downgraded to a feature request because -- in the eyes of the project managers -- if an application functioned as it was designed, there wasn't a need to go back in and change it. &lt;fck:hr&gt; &lt;/fck:hr&gt;</p>
<p><em>Epoch Billing System was <a href="http://visualstudiomagazine.com/articles/2011/03/01/epoch-billing-system.aspx">originally published</a> in the March 2011 edition of <a href="http://visualstudiomagazine.com/">Visual Studio Magazine</a>. VSM is the leading site for enterprise .NET developers, and offers a <a href="http://1105-sub.halldata.com/site/ONE001215VOnew/init.do?&amp;PK=WSPVSM">free magazine subscription</a> for influential readers.</em></p>
<p><a href="http://feedads.g.doubleclick.net/~a/B9DulcotIfqczz2OPZSG3cfP0gQ/0/da"><img border="0" ismap="true" src="http://feedads.g.doubleclick.net/~a/B9DulcotIfqczz2OPZSG3cfP0gQ/0/di"/></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/B9DulcotIfqczz2OPZSG3cfP0gQ/1/da"><img border="0" ismap="true" src="http://feedads.g.doubleclick.net/~a/B9DulcotIfqczz2OPZSG3cfP0gQ/1/di"/></a></p><img height="1" src="http://feeds.feedburner.com/~r/TheDailyWtf/~4/gWqm51pWzEE" width="1"/></div>
    </summary>
    <updated>2012-05-10T13:00:00Z</updated>
    <category term="CodeSOD"/>
    <author>
      <name>Mark Bowytz</name>
    </author>
    <source>
      <id>http://thedailywtf.com/</id>
      <link href="http://thedailywtf.com/" rel="alternate" type="text/html"/>
      <link href="http://syndication.thedailywtf.com/TheDailyWtf" rel="self" type="application/rss+xml"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <subtitle>Curious Perversions in Information Technology</subtitle>
      <title>The Daily WTF</title>
      <updated>2012-05-17T01:00:39Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://xkcd.com/1053/</id>
    <link href="http://xkcd.com/1053/" rel="alternate" type="text/html"/>
    <title>Ten Thousand</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><img alt="Saying 'what kind of an idiot doesn't know about the Yellowstone supervolcano' is so much more boring than telling someone about the Yellowstone supervolcano for the first time." src="http://imgs.xkcd.com/comics/ten_thousand.png" title="Saying 'what kind of an idiot doesn't know about the Yellowstone supervolcano' is so much more boring than telling someone about the Yellowstone supervolcano for the first time."/></div>
    </summary>
    <updated>2012-05-09T04:00:00Z</updated>
    <source>
      <id>http://xkcd.com/</id>
      <author>
        <name>XKCD</name>
      </author>
      <link href="http://xkcd.com/" rel="alternate" type="text/html"/>
      <link href="http://www.xkcd.com/rss.xml" rel="self" type="application/rss+xml"/>
      <subtitle>xkcd.com: A webcomic of romance and math humor.</subtitle>
      <title>xkcd.com</title>
      <updated>2012-05-16T04:00:36Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://etbe.coker.com.au/?p=3268</id>
    <link href="http://etbe.coker.com.au/2012/05/07/mac-mini-osx-lion/" rel="alternate" type="text/html"/>
    <title>A Quick Review of the Mac Mini with OS/X Lion compared to Linux</title>
    <summary>A client just lent me a new Mac Mini with OS/X Lion to play with. I think it’s interesting to compare it with regular PCs running Linux. Hardware The Mac Mini is tiny. It’s volume can be compared to that of a laptop. The entire outside apart from the base is made from aluminium which [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>A client just lent me a new Mac Mini with OS/X Lion to play with. I think it’s interesting to compare it with regular PCs running Linux.</p>
<h3>Hardware</h3>
<p>The Mac Mini is tiny. It’s volume can be compared to that of a laptop. The entire outside apart from the base is made from aluminium which helps dissipate heat, it’s not as effective as copper but a lot better than plastic. The ports on the system are sound input/output, 4*USB, Ethernet, Firewire, <a href="http://en.wikipedia.org/wiki/Thunderbolt_(interface)">Thunderbolt (replacement for Firewire)</a>, <a href="http://en.wikipedia.org/wiki/SDXC">SDXC</a>, and HDMI. It ships with a HDMI to DVI-D adapter which is convenient if you have an older monitor (or if you have a recent monitor but no HDMI cable as I do).</p>
<p>To open the case you unscrew the bottom, this is much like opening a watch. Also like opening a watch it’s not particularly easy to screw it back on tightly, I will probably return the Mac Mini without managing to completely screw the base in.</p>
<p>The hardware is very stylish and intricately designed, what we expect from Apple. It’s also quiet. In every way it’s a much better system than the workstation I’m using to write this blog post. The difference of course is that this workstation was free and the Mac Mini cost just over $1000 including the RAM upgrade. A Mac Mini could be a decent Linux workstation and if I see one about to be recycled I’ll be sure to grab it!</p>
<h3>Installation</h3>
<p>The Mac OS comes pre-installed so I didn’t get to do a full installation. When I first booted it up it asked me if I wanted to migrate the configuration from an existing server, I don’t know how well this works as I don’t have a second Mac system but the concept is a good one. Maybe having full support for such a migration process would be a good release goal for a Linux distribution.</p>
<p>After determining that the installation is a fresh one I was asked for a mac.com email address or other form of registration. I skipped this step as I don’t have such an email address, but it could be useful. Red Hat has “Kickstart” to allow configuration of an OS install based on a file from a server (via NFS or HTTP). <a href="http://wiki.debian.org/DebianInstaller/Preseed">Debian supports “preseeding” to take OS configuration options from a file at install time [1]</a> and the same option can be used for later stages of OS autoconfiguration.</p>
<p>One thing that would be really useful is to allow the user to enter a URL for configuration data for an individual account or for all accounts, so someone with an account on one workstation could upload the configuration (which would be either encrypted or sanitised to not have secret data) and then download it when first logging in to a new system. I can easily take a tar archive of my home directory to a new system, but people like my parents don’t have the skill to do that.</p>
<p>One of the final stages of system configuration was to identify the keyboard. The system asked me to press the key to the right of the left shift key and then the key to the left of the right shift key and then offered me three choices of keyboard. That was an interesting way of reducing the list of possible keyboards offered to the user and thus preventing the user from selecting one that is grossly incorrect.</p>
<h3>Cloud Storage</h3>
<p>When first logging in I was asked for an <a href="http://en.wikipedia.org/wiki/Icloud">iCloud [2]</a> login. iCloud doesn’t seem like a service that should be trusted, it’s based in the US and has been designed to facilitate access by government agencies. <a href="http://en.wikipedia.org/wiki/Ubuntu_One">Ubuntu One [3]</a> is a similar service that is run by a more reputable organisation, but the data is still stored by Amazon (a US corporation) which seems like a security risk. Ubuntu One isn’t in Debian (which is strange as Ubuntu is based on Debian) so it was too much effort for me to determine whether it encrypts data in a way that protects the users against US surveillance.</p>
<p>The cost of Ubuntu One storage is $4 per month with music streaming. A better option is to use <a href="https://owncloud.com/">a self-hosted OwnCloud installation for a private or semi-private cloud [4]</a>. A cheap server from someone like <a href="http://www.hetzner.de/en/hosting/produktmatrix/rootserver-produktmatrix-ex">Hetzner (E49 per month for 3TB of RAID-1 storage) [5]</a> is a good option for OwnCloud hosting. A cheap Hetzner server is about $US64 per month (at current conversion rates) which is equivalent to about 16 users of Ubuntu One for music streaming. So if 20 people shared a Hetzner server they could save money when compared to Ubuntu One while also getting a lot more storage. I’ve got about 300G of unused disk space on the Hetzner server that hosts my blog and when the system is migrated to a newer Hetzner server with 3TB disks it will have 2.5TB of unused space, I could store a lot of cloud data in that!</p>
<p>The main features of iCloud and Ubuntu One seem to be distribution of random data files (anything you wish), streaming music to various playing systems, and copying pictures from phones as soon as they are taken. These are all great features but it’s a pity that they don’t appear to support distributed document storage. Apple Pages apparently allows documents to be immediately saved to the cloud. I’d like to be able to save a file with Libre Office at home and then access it from my netbook using the cloud, of course that would require encryption for secret files but that’s not so hard to do. One advantage with such distributed storage is that when combined with offline-IMAP for email it would almost entirely remove the need for backups of the desktop systems I maintain for my relatives. I could have all their pictures and documents go to the cloud and all their email stay on the server so if their desktop PC dies I could just give them a new PC and get it all back from the cloud! OwnCloud supports replication, so if I got two servers I would be covered against a server failure. But I think that for a small server with less than a dozen users it’s probably better to just take some down-time when things go wrong and do regular backups to an array of cheap SATA disks.</p>
<h3>App Store</h3>
<p>Apple has an “App Store” in the OS. The use of such a store on a desktop OS is a new thing for me. It’s basically the same as the Android Market (Google Play) but on the desktop. I think that there is a real scope for an organisation such as Canonical to provide such a market service for Linux. I think that there is a lot of potential for apps to be sold for less than $10 to a reasonable number of Linux users. A small payment would be inconvenient for the seller if they have to interact with the customer in any way and also inconvenient for the buyer if they are entering all their credit card details into a web site for the sale. But for repeat sales with one company being an intermediary it would be convenient for everyone. A market program for a desktop Linux system could provide a friendly interface to selecting free apps from repositories (for Debian, Ubuntu, Fedora, or other distributions) and also have the same interface used for selecting paid applications.</p>
<h3>Conclusion</h3>
<p>This isn’t much of a review of Apple OS/X or the Mac Mini. Thinking about ways of implementing the best features of Lion on Linux is a lot more interesting. I admire Apple in the same way that I admire sharks, they are really good at what they do but they don’t care about my best interests any more than a hungry shark cares about me.</p>
<h3>Update</h3>
<p>I got the currency conversion wrong in the first version of this article. It seems that to save money via a shared Hetzner server instead of Ubuntu One about 20 users would be needed instead of 10. But that’s still not too many and would still give a lot more storage. It would be a little more difficult to arrange though, probably anyone who is seriously into computers knows 10 people who would want to share such a service (including people like their parents who want things to just work and don’t understand what’s happening). But getting 20 people would be more difficult.</p>
<ul>
<li>[1]<a href="http://wiki.debian.org/DebianInstaller/Preseed"> http://wiki.debian.org/DebianInstaller/Preseed</a></li>
<li>[2]<a href="http://en.wikipedia.org/wiki/Icloud"> http://en.wikipedia.org/wiki/Icloud</a></li>
<li>[3]<a href="http://en.wikipedia.org/wiki/Ubuntu_One"> http://en.wikipedia.org/wiki/Ubuntu_One</a></li>
<li>[4]<a href="https://owncloud.com/"> https://owncloud.com/</a></li>
<li>[5]<a href="http://www.hetzner.de/en/hosting/produktmatrix/rootserver-produktmatrix-ex"> http://www.hetzner.de/en/hosting/produktmatrix/rootserver-produktmatrix-ex</a></li>
</ul>
<p>Related posts:</p><ol>
<li><a href="http://etbe.coker.com.au/2007/04/11/xen-and-se-linux-eweek-review-of-rhel5/" rel="bookmark" title="Xen and SE Linux &#x2013; EWeek review of RHEL5">Xen and SE Linux – EWeek review of RHEL5</a> <small>The online magazine EWeek has done a review of RHEL5....</small></li>
<li><a href="http://etbe.coker.com.au/2011/10/18/servers-vs-phones/" rel="bookmark" title="Servers vs Phones">Servers vs Phones</a> <small>Hetzner have recently updated their offerings to include servers with...</small></li>
<li><a href="http://etbe.coker.com.au/2011/09/09/modern-laptops-suck/" rel="bookmark" title="Modern Laptops Suck">Modern Laptops Suck</a> <small>One of the reasons why I’m moving from a laptop...</small></li>
</ol></div>
    </content>
    <updated>2012-05-06T15:50:50Z</updated>
    <category term="Review"/>
    <author>
      <name>etbe</name>
    </author>
    <source>
      <id>http://etbe.coker.com.au</id>
      <link href="http://etbe.coker.com.au/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://etbe.coker.com.au" rel="alternate" type="text/html"/>
      <subtitle>Linux, politics, and other interesting things</subtitle>
      <title>etbe - Russell Cokeretbe - Russell Coker</title>
      <updated>2012-05-13T09:00:38Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://etbe.coker.com.au/?p=3291</id>
    <link href="http://etbe.coker.com.au/2012/05/06/liberty-mobile-phones/" rel="alternate" type="text/html"/>
    <title>Liberty and Mobile Phones</title>
    <summary>I own two mobile phones at the moment, I use a Samsung Galaxy S running Cyanogenmod [1] (Android 2.3.7) for most things, and I have a Sony Ericsson Xperia X10 running Android 2.1 that I use for taking photos, some occasional Wifi web browsing, and using some applications. Comparing Android Hardware The hardware for the [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>I own two mobile phones at the moment, I use a <a href="http://en.wikipedia.org/wiki/Galaxy_S">Samsung Galaxy S</a> running <a href="http://www.cyanogenmod.com/">Cyanogenmod [1]</a> (Android 2.3.7) for most things, and I have a <a href="http://en.wikipedia.org/wiki/Xperia_X10">Sony Ericsson Xperia X10</a> running Android 2.1 that I use for taking photos, some occasional Wifi web browsing, and using some applications.</p>
<h3>Comparing Android Hardware</h3>
<p>The hardware for the Xperia X10 is better than that of the Galaxy S in many ways. It has a slightly higher resolution (480*854 vs 480*800), a significantly better camera (8.1MP with a “flash” vs 5MP without), and a status LED which I find really handy (although some people don’t care about it).</p>
<p>The only benefit of the Galaxy S hardware is that it has 16G of internal storage (of which about 2G can be used for applications) and 512M of RAM while the Xperia X10 has 1G of internal storage and 384M of RAM. These are significant issues, I have had applications run out of RAM on the Xperia X10 and I have been forced to uninstall applications to make space.</p>
<p>Overall I consider the Xperia X10 to be a significantly better piece of hardware as I am willing to trade off some RAM and internal storage to get a better resolution screen and a better camera. The problem is that Sony Ericsson have locked down their phones as much as possible and they don’t even give users the option of making a useful backup – they inspired <a href="http://etbe.coker.com.au/2012/02/07/5-principles-backup/">my post about 5 principles of backups [2]</a>.</p>
<p>The fact that the Galaxy S allows installing CyanogenMod which then gives me the liberty to do whatever I want with my phone is a massive feature. It outweighs the hardware benefits of the Sony Ericsson phones over Samsung phones prior to the Galaxy Nexus and Galaxy Note.</p>
<p>For an individual user the ability to control their own hardware is a feature. Such an ability wouldn’t be much use if there wasn’t a community of software developers, so if you buy an Android phone that isn’t supported by CyanogenMod or another free Android distribution then whether it is locked probably won’t matter to you. But for any popular Android phone that’s sold on the mass market it seems that if it’s not locked then it will get a binary distribution of Android in a reasonable amount of time.</p>
<h3>Comparing with Apple</h3>
<p>It seems that Apple is the benchmark for non-free computing at the moment. The iPhone is locked down and Apple takes steps to re-lock phones that can be rooted – as opposed to the Android vendors who ship phones and then don’t bother to update the firmware for any reason. The Apple app market is more expensive and difficult to enter and if an app isn’t in the market then you have to pay if you want to install it on a small number of development/test phones. This compares to Android where the Google market is cheaper and easier to enter and anyone can distribute an app outside the market and have people use it.</p>
<p>But for an individual this doesn’t necessarily cause any problems. I have friends and clients who use iPhones and are very happy with them. In terms of software development it’s a real benefit to have a large number of systems running the same software. As Apple seems to have higher margins and larger volume than any other phone vendor as well as shipping only one phone at any time (compared to every other phone vendor which seems to ship at least 3 different products for different use cases) they are in a much better economic position to get the software development right. As far as I can tell the hardware and software of the iPhone is of very high quality. The iPad (which has a similar market position) is also a quality product. The fact that the Apple app market is more difficult to enter (both in terms of Apple liking the application and the cost of entry) also has it’s advantages, I get the impression that the general quality of iPhone apps is quite high as opposed to Android where there are a lot of low quality apps and many more fraudulent apps than there should be.</p>
<p>The lack of choice in Apple hardware (one phone and one tablet) is a disadvantage for the user. There is no option for a phone with a slide-out keyboard, a large screen (for the elderly and people with fat fingers), or any of the other features that some Android phones have. The lack of a range of sizes for the iPad is also a disadvantage. But it seems that Apple has produced hardware that is good enough for most users so there aren’t many complaints about a lack of choice.</p>
<p>It seems to me that the biggest disadvantage of the closed Apple ecosystem is for society in general. Anyone who wants to write a mobile app to do something which might be considered controversial would probably think twice about whether to develop for the iPhone/iPad as Apple could remove the app at a whim which would waste all the software development work that was invested in writing the app. Google seem to have much less interest in removing apps from their store and if they do remove an app then with some inconvenience it can be distributed on the web without involving them – so the work won’t be wasted.</p>
<h3>How Much Freedom Should a Vendor Provide?</h3>
<p>The Apple approach of locking everything down is clearly working for them at the moment. The Samsung approach of taking the Google prescribed code and allowing users to replace it is good for the users and works well. The Sony Ericsson approach of taking the Google code, adding some proprietary code, and then locking the phone down is bad for the users and I think it will be bad for Sony Ericsson. People are more likely to tell others about negative experiences and negative reviews are more likely to be noticed than positive reviews. So while many people are reasonably happy with Sony Ericsson products (until they find themselves unable to restore from a backup) it’s still not a good situation for Sony Ericsson marketing.</p>
<p>It seems that there are benefits to hardware vendors for being really open and for locking their users in properly. But being somewhat open isn’t a good choice, particularly for a vendor that ships poor quality proprietary apps such as the Sony Ericsson ones.</p>
<p>In terms of application distribution Google isn’t as nice as they appear. <a href="http://www.theverge.com/2011/05/12/google-android-skyhook-lawsuit-motorola-samsung/">The Skyhook case revealed that Google will do whatever it takes to prevent apps that compete with Google apps from being installed by default [3]</a>. <a href="http://arstechnica.com/gadgets/news/2011/05/google-blocks-android-movie-rentals-from-rooted-devices.ars">Google is also trying to make money from DRM sales via Youtube which it denies to rooted phones [4]</a>. Again it seems to me that the best options here are being more open than Google is and being as closed as Apple. Google might gain some useful benefits from applying DRM (even though everyone with technical knowledge knows that it doesn’t work) but the Skyhook shenanigans have got to be costing Google more than it’s worth.</p>
<h3>How to make Android devices more Free</h3>
<p><a href="http://f-droid.org/">The F-droid market is an alternative to the Google App market which only has free software [5]</a>. On it’s web site there are links to download the source for the applications, including the source and binaries for old versions. In the Google App market if an upgrade breaks your system then you just lose, with F-droid you can revert to the old version.</p>
<p><a href="https://owncloud.com/">A self-hosted OwnCloud installation for a private or semi-private cloud [6]</a> can be used as an alternative to the Google Music store as well as for hosting any other data that you want to store online.</p>
<p><a href="http://osmand.net/">The Open Street Map for Android (Osmand) project provides an alternative to the Google Map service [7]</a>. Osmand allows you to download all the vector data for the regions you will ever visit so it can run without Internet access. But it doesn’t have the ability to search for businesses and the search for an address functionality is clunky and doesn’t accept plain text, which among other things precludes pasting data that’s copied from email or SMS. While Osmand provides some important features that Google Maps will probably never provide, it doesn’t provide some of the most used features of Google Maps so uninstalling Google Maps isn’t a good option at the moment.</p>
<p><a href="http://code.google.com/p/k9mail/">The K9mail project provides a nice IMAP client for Android [8]</a>. Use K9 with a mail server that you run and you won’t need to use Gmail.</p>
<p>There are alternatives to all the Google applications. It seems that apart from the lack of commercial data and search ability in Osmand an Android device that is used for many serious purposes wouldn’t lack much if it had no Google apps.</p>
<p>Google seems to be going too far in controlling Android. Escaping from their control and helping others to do the same seems to be good for society and good for the users who don’t need apps which are only available in proprietary form.</p>
<ul>
<li>[1]<a href="http://www.cyanogenmod.com/"> http://www.cyanogenmod.com/</a></li>
<li>[2]<a href="http://etbe.coker.com.au/2012/02/07/5-principles-backup/"> http://etbe.coker.com.au/2012/02/07/5-principles-backup/</a></li>
<li>[3]<a href="http://www.theverge.com/2011/05/12/google-android-skyhook-lawsuit-motorola-samsung/"> http://www.theverge.com/2011/05/12/google-android-skyhook-lawsuit-motorola-samsung/</a></li>
<li>[4]<a href="http://arstechnica.com/gadgets/news/2011/05/google-blocks-android-movie-rentals-from-rooted-devices.ars"> http://arstechnica.com/gadgets/news/2011/05/google-blocks-android-movie-rentals-from-rooted-devices.ars</a></li>
<li>[5]<a href="http://f-droid.org/"> http://f-droid.org/</a></li>
<li>[6]<a href="https://owncloud.com/"> https://owncloud.com/</a></li>
<li>[7]<a href="http://osmand.net/"> http://osmand.net/</a></li>
<li>[8]<a href="http://code.google.com/p/k9mail/"> http://code.google.com/p/k9mail/</a></li>
</ul>
<p>Related posts:</p><ol>
<li><a href="http://etbe.coker.com.au/2011/10/27/dual-sim-amaysim-contract/" rel="bookmark" title="Dual SIM Phones vs Amaysim vs Contract for Mobile Phones">Dual SIM Phones vs Amaysim vs Contract for Mobile Phones</a> <small>Currently Dick Smith is offering two dual-SIM mobile phones for...</small></li>
<li><a href="http://etbe.coker.com.au/2010/01/31/my-ideal-mobile-phone/" rel="bookmark" title="My Ideal Mobile Phone">My Ideal Mobile Phone</a> <small>Based on my experience testing the IBM Seer software on...</small></li>
<li><a href="http://etbe.coker.com.au/2010/01/25/mobile-phones-toys/" rel="bookmark" title="Old Mobile Phones as Toys">Old Mobile Phones as Toys</a> <small>In the past I have had parents ask for advice...</small></li>
</ol></div>
    </content>
    <updated>2012-05-05T14:31:09Z</updated>
    <category term="Politics"/>
    <category term="android"/>
    <author>
      <name>etbe</name>
    </author>
    <source>
      <id>http://etbe.coker.com.au</id>
      <link href="http://etbe.coker.com.au/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://etbe.coker.com.au" rel="alternate" type="text/html"/>
      <subtitle>Linux, politics, and other interesting things</subtitle>
      <title>etbe - Russell Cokeretbe - Russell Coker</title>
      <updated>2012-05-13T09:00:38Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://etbe.coker.com.au/?p=3289</id>
    <link href="http://etbe.coker.com.au/2012/05/03/acoustiblok-thermablok/" rel="alternate" type="text/html"/>
    <title>Acoustiblok/Thermablok</title>
    <summary>Acoustiblok is an interesting product for blocking sound, it works by dissipating sound energy through friction within the sound barrier materiel [1]. They sell it in varieties that are designed for use within walls and for use as fences. As it isn’t solid it won’t reflect sound so it can be used to line the [...]</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p><a href="http://www.acoustiblok.com/">Acoustiblok is an interesting product for blocking sound, it works by dissipating sound energy through friction within the sound barrier materiel [1]</a>. They sell it in varieties that are designed for use within walls and for use as fences. As it isn’t solid it won’t reflect sound so it can be used to line the walls to stop sound being reflected back at you. It’s design is based on NASA research.</p>
<p>The web site claims that a 3mm sheet of Acoustiblok gives a greater noise reduction than 12 inches (30.7cm) of poured concrete. I am a little dubious about that claim as I’ve read a report of someone using three layers of Acoustiblok to make a quiet room for recording music (and to be used as a play-room for an Autistic child). I find it difficult to imagine someone needing a meter of concrete to stop any sort of noise that they might encounter in a residential area so the fact that someone needed three layers of Acoustiblok is an indication that it might not be quite as good as they claim (although there is the possibility that Acoustiblok was badly installed). I wonder whether the claims about concrete concern particular frequencies. The <a href="http://www.acoustiblok.com/products.php">technical specifications and product comparisons page [2]</a> shows that Acoustiblok is least effective at 130Hz where it only reduces noise by 12dB and that it’s effectiveness increases to 38dB at 5KHz. So perhaps a concrete wall to stop low frequencies and Acoustiblok to stop high frequencies would be the best solution.</p>
<p><a href="http://acoustiblokau.com.au/">The Australian distributor for Acoustiblok is based in Brisbane [3]</a>.</p>
<p>The same company also sells <a href="http://www.thermablok.com/">Thermablok [4]</a> which is the first <a href="http://en.wikipedia.org/wiki/Aerogel">aerogel</a> based insulation that I’ve seen being advertised for commercial sale. I guess that it must be rather expensive as they are mostly advertising it for use as thin strips to cover stud faces (steel studs conduct heat well and can cause a lot of heat loss). A note in their FAQ says that it’s available in rolls for insulating entire walls or floors. The FAQ also indicates that they sell samples suitable for science classes. They are also apparently looking for retailers, it would be nice if someone wanted to sell this in Australia.</p>
<ul>
<li>[1]<a href="http://www.acoustiblok.com/"> http://www.acoustiblok.com/</a></li>
<li>[2]<a href="http://www.acoustiblok.com/products.php"> http://www.acoustiblok.com/products.php</a></li>
<li>[3]<a href="http://acoustiblokau.com.au/"> http://acoustiblokau.com.au/</a></li>
<li>[4]<a href="http://www.thermablok.com/"> http://www.thermablok.com/</a></li>
</ul>
<p>Related posts:</p><ol>
<li><a href="http://etbe.coker.com.au/2009/12/03/noise-canceling-headphones/" rel="bookmark" title="Noise Canceling Headphones">Noise Canceling Headphones</a> <small>My patience with the noise of airlines has run out,...</small></li>
<li><a href="http://etbe.coker.com.au/2009/12/04/testing-noise-canceling-headphones/" rel="bookmark" title="Testing Noise Canceling Headphones">Testing Noise Canceling Headphones</a> <small>This evening I tested some Noise Canceling Headphones (as described...</small></li>
<li><a href="http://etbe.coker.com.au/2009/12/20/bought-the-qc-15/" rel="bookmark" title="I Bought the Bose QC-15">I Bought the Bose QC-15</a> <small>I bought the Bose QC15 noise canceling headphones for my...</small></li>
</ol></div>
    </content>
    <updated>2012-05-03T05:44:23Z</updated>
    <category term="Review"/>
    <author>
      <name>etbe</name>
    </author>
    <source>
      <id>http://etbe.coker.com.au</id>
      <link href="http://etbe.coker.com.au/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://etbe.coker.com.au" rel="alternate" type="text/html"/>
      <subtitle>Linux, politics, and other interesting things</subtitle>
      <title>etbe - Russell Cokeretbe - Russell Coker</title>
      <updated>2012-05-13T09:00:38Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://davehall.com.au/155 at http://davehall.com.au</id>
    <link href="http://davehall.com.au/blog/dave/2011/11/11/drupal-enterprise-aka-vote-my-drupalcon-session" rel="alternate" type="text/html"/>
    <title>Drupal in the Enterprise (aka Vote for my DrupalCon Session)</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>TL; DR: [spam]Please vote for my <a href="http://denver2012.drupal.org/program/sessions/drupal-workflows-enterprise" rel="nofollow">DrupalCon Denver proposal on Drupal workflows in the enterprise</a>.[/spam]</p>
<p>For the last few months I've been working for <a href="http://technocrat.com.au" rel="nofollow">Technocrat</a> on a new Drupal based site for the <a href="http://iag.com.au" rel="nofollow">Insurance Australia Group's</a> Direct Insurance brands.  The current sites are using Autonomy Teamsite.</p>
<p>The basics of the build are relatively straight forward, around 1000 nodes, a bunch of views and a bit of glue to hold it all together.  Where things get complicated is the workflow.  The Financial services sector in Australia is subject to strict control of representations being made about products.  The workflow system needs to ensure IAG complies with these requirements.</p>
<p>During the evaluation we found that generally Drupal workflows are based around publishing a single piece of content on the production site.  In the IAG case a collection of nodes need to be published as a piece of work, along with a new block.  These changes need to be reviewed by stakeholders and then deployed.  This led us to build a job based workflow system.</p>
<p>We are using the Features module to handle all configuration, deploy for entities and some additional tools, including Symfony, Jenkins and drush to hold it all together.</p>
<p>I've proposed the session for <a href="http://drupaldownunder.org" rel="nofollow">Drupal Downunder</a> in January and will refine the session based on feedback from there in preparation for Denver.  If you want to learn more about <a href="http://denver2012.drupal.org/program/sessions/drupal-workflows-enterprise" rel="nofollow">Drupal Workflows in the Enterprise</a>, please vote for my session.</p></div>
    </summary>
    <updated>2011-11-11T12:22:58Z</updated>
    <category scheme="http://davehall.com.au/tags/drupal" term="drupal"/>
    <category scheme="http://davehall.com.au/tags/drupalcon" term="drupalcon"/>
    <category scheme="http://davehall.com.au/tags/workflow" term="workflow"/>
    <author>
      <name>Dave</name>
    </author>
    <source>
      <id>http://davehall.com.au/blog</id>
      <link href="http://davehall.com.au/blog" rel="alternate" type="text/html"/>
      <link href="http://feeds.feedburner.com/DaveHallConsultingBlogs" rel="self" type="application/rss+xml"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <title>Dave Hall Consulting blogs</title>
      <updated>2012-02-06T14:00:40Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://davehall.com.au/154 at http://davehall.com.au</id>
    <link href="http://davehall.com.au/blog/dave/2011/05/17/drush-make-and-module-dependencies" rel="alternate" type="text/html"/>
    <title>Drush Make and Module Dependencies</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p><a href="http://drupal.org/project/drush_make">Drush make</a> is a wonderful tool for constructing Drupal platforms.  A lot of Drupal developers are  used to adding a list of modules, a few libraries and theme or 2 then running drush make to build their platform.  It all seems pretty easy.  What if I told you module developers could make things even easier for site builders?</p>
<p>Some contrib modules depend on third party libraries, and due to various reasons they can't always be stored in git repositories on drupal.org and included in the module release.  To solve this problem module developers can include a .make file for their module.  Drush recursively processes make files, so the module make file would be processed once found by drush make.</p>
<p>A good example of where this could be useful is the <a href="http://drupal.org/project/smtp">SMTP module</a>, which depends on the LGPL licensed <a href="http://phpmailer.worxware.com/">PHPMailer</a> library.  The module also requires a patch to be applied to the library, which drush make can apply for us.   The following .make file could be included in the SMTP module as smtp.make:</p>
<div class="file">
<pre>core = 6.x
api = 2

libraries[phpmailer][download][type] = "get"
libraries[phpmailer][download][url] = "http://downloads.sourceforge.net/project/phpmailer/phpmailer%20for%20php5_6/Previous%20Versions/2.2.1/phpMailer_v2.2.1_.tar.gz"
libraries[phpmailer][download][md5] = "0bf75c1bcef8bde6adbebcdc69f1a02d"
libraries[phpmailer][directory_name] = "phpmailer"
libraries[phpmailer][destination] = "modules/contrib/smtp"

libraries[phpmailer][patch][drupal-compatibility][url] = "http://drupalcode.org/project/smtp.git/blob_plain/2acaba97adcad7304c22624ceeb009d358b596e3:/class.phpmailer.php.2.2.1.patch"
libraries[phpmailer][patch][drupal-compatibility][md5] = "2d82de03b1a4b60f3b69cc20fae61b76"
</pre>
</div>
<p>Now when the SMTP module is included a normal drush make file it will be downloaded, the PHPMailer library will be downloaded and patched ready for use.</p>
<p>Unfortunately there are some limitations to this approach.  Firstly it assumes that the SMTP module will be installed under the modules/contrib directory, which is accepted best practice, but may not suit everyone's needs.  When I tested this with the current stable version of drush make (6.x-2.2) it failed, and drush make 6.x-3.x from git needed to be <a href="http://drupal.org/node/1091510#comment-4470800">patched</a>.  Hopefully a fix for this can be backported to the 6.x-2.x branch and included in a future release.</p>
<p><strong>Update:</strong> I have posted the make file for the SMTP module as patch in <a href="http://drupal.org/node/1159080">issue #1159080</a>.</p></div>
    </summary>
    <updated>2011-05-16T14:38:47Z</updated>
    <category scheme="http://davehall.com.au/tags/config-management" term="config-management"/>
    <category scheme="http://davehall.com.au/tags/drupal" term="drupal"/>
    <category scheme="http://davehall.com.au/tags/drush" term="drush"/>
    <author>
      <name>Dave</name>
    </author>
    <source>
      <id>http://davehall.com.au/blog</id>
      <link href="http://davehall.com.au/blog" rel="alternate" type="text/html"/>
      <link href="http://feeds.feedburner.com/DaveHallConsultingBlogs" rel="self" type="application/rss+xml"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <title>Dave Hall Consulting blogs</title>
      <updated>2012-02-06T14:00:40Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://davehall.com.au/153 at http://davehall.com.au</id>
    <link href="http://davehall.com.au/blog/dave/2011/04/02/fixing-zimbras-broken-debs" rel="alternate" type="text/html"/>
    <title>Fixing Zimbra's Broken debs</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>As much as I love <a href="http://zimbra.com" rel="nofollow">Zimbra</a>, I find their Debian packaging frustrating.  Why do they insist on shipping half broken debs?  I can excuse vmware for being too lazy to provide proper descriptions for their packages, although the generic "Best email money can buy" text seems a little lame.  Failing to populate the "Provides" field is brain dead.  This makes it possible to install mailx on a server running Zimbra without installing another MTA.</p>
<p>I've created a simple workaround deb which provides mail-transport-agent and depends on zimbra-mta.  The deb also symlinks the zimbra sendmail binary to /usr/sbin/sendmail - where it belongs.  Now mailx and other tools which depend on mail-transport-agent can be installed.  The package should work with both Debian and Ubuntu.</p>
<p>The <a href="https://github.com/skwashd/zimbra-dummy-mta" rel="nofollow">source available on github</a>, or you can <a href="https://github.com/skwashd/zimbra-dummy-mta/archives/master" rel="nofollow">download a prebuilt platform independent deb from github's download manager</a>.  The package is released under the terms of the <a href="http://sam.zoy.org/wtfpl/" rel="nofollow">WTFPLv2</a>.</p>
<p>I hope that Zimbra builds better debs and makes this package obsolete.</p></div>
    </summary>
    <updated>2011-04-02T04:55:48Z</updated>
    <category scheme="http://davehall.com.au/tags/debian" term="debian"/>
    <category scheme="http://davehall.com.au/tags/packaging" term="packaging"/>
    <category scheme="http://davehall.com.au/tags/ubuntu" term="ubuntu"/>
    <category scheme="http://davehall.com.au/tags/zimbra" term="zimbra"/>
    <author>
      <name>Dave</name>
    </author>
    <source>
      <id>http://davehall.com.au/blog</id>
      <link href="http://davehall.com.au/blog" rel="alternate" type="text/html"/>
      <link href="http://feeds.feedburner.com/DaveHallConsultingBlogs" rel="self" type="application/rss+xml"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <title>Dave Hall Consulting blogs</title>
      <updated>2012-02-06T14:00:40Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://davehall.com.au/152 at http://davehall.com.au</id>
    <link href="http://davehall.com.au/blog/dave/2011/02/05/help-drupal-geek-earn-his-way-drupalcon-chicago" rel="alternate" type="text/html"/>
    <title>Help a Drupal Geek Earn his Way to DrupalCon Chicago</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>I really want to attend <a href="http://chicago2011.drupal.org" rel="nofollow">DrupalCon Chicago</a>, which kicks off in just over 4 weeks.  The problem is that since <a href="http://cph2010.drupal.org" rel="nofollow">DrupalCon Copenhagen</a> business has been pretty quiet and so I find that I can't really afford to fund it myself.  After deciding I had to be in Chicago I got creative about how to make it happen.  The <a href="http://buyaline.drupalgardens.com" rel="nofollow">buy a line project</a> was born.</p>
<p>Instead of just asking people to kick in some cash to get me to Chicago, I felt it was only right to earn my keep.  People can buy a line of code, or sentence of documentation for Drupal.  All code and docs created will be contributed to drupal.org.  Buyers are free to specify where the lines are to be contributed, or leave me to decide.  I'm looking forward to writing some of the lines on the <a href="http://groups.drupal.org/node/120989" rel="nofollow">Drupal Bus</a>.</p>
<p>Recently I have been working on <a href="http://drupal.org/node/1005138" rel="nofollow">porting the UUID module to Drupal 7</a>.  I hope to get this module into  Drupal 8 core.  To make this happen I have to be in Chicago!  Improvements to UUID will mean that content can be packaged up and moved around like configuration can be using the <a href="http://drupal.org/project/features" rel="nofollow">Features module</a>.</p>
<p>All buy a line issues will be <a href="http://drupal.org/search/issues?issue_tags=buyaline" rel="nofollow">tagged</a> so people can watch my progress.  The <a href="http://drupal.org/node/937864" rel="nofollow">first lines of code have been contributed</a> to the getID3() module, so Drupal Commons can be installed by Aegir.</p>
<p>Thanks to <a href="http://buyaline.drupalgardens.com/supporters" rel="nofollow">everyone who has contributed</a> so far.  I have almost covered the DrupalCon ticket I bought from the <a href="http://gizra.com" rel="nofollow">Gizra</a> team.</p>
<p>Please consider <a href="http://buyaline.drupalgardens.com/contribute" rel="nofollow">buying a line (or more)</a> to help get this Drupal geek to Chicago. This is a great way of getting a module ported to Drupal 7, better documentation or even just a bug fixed.  I have a decent <a href="http://drupal.org/user/116305/track" rel="nofollow">track record</a> of contributing to the project.</p>
<p>When deciding how <a href="http://buyaline.drupalgardens.com/contribute" rel="nofollow">many lines to buy</a>, think about this - if I don't make it to Chicago, <a href="https://twitter.com/skwashd/status/22094928684" rel="nofollow">who will lock themselves out of their hotel room at 4am - naked</a>!</p></div>
    </summary>
    <updated>2011-02-05T11:25:37Z</updated>
    <category scheme="http://davehall.com.au/tags/buyaline" term="buyaline"/>
    <category scheme="http://davehall.com.au/tags/drupal" term="drupal"/>
    <category scheme="http://davehall.com.au/tags/drupalbus" term="drupalbus"/>
    <category scheme="http://davehall.com.au/tags/drupalcon" term="drupalcon"/>
    <author>
      <name>Dave</name>
    </author>
    <source>
      <id>http://davehall.com.au/blog</id>
      <link href="http://davehall.com.au/blog" rel="alternate" type="text/html"/>
      <link href="http://feeds.feedburner.com/DaveHallConsultingBlogs" rel="self" type="application/rss+xml"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <title>Dave Hall Consulting blogs</title>
      <updated>2012-02-06T14:00:40Z</updated>
    </source>
  </entry>

  <entry>
    <id>tag:blogger.com,1999:blog-7062240605660163230.post-1143750247792790268</id>
    <link href="http://mahafuz.blogspot.com/feeds/1143750247792790268/comments/default" rel="replies" type="application/atom+xml"/>
    <link href="http://www.blogger.com/comment.g?blogID=7062240605660163230&amp;postID=1143750247792790268" rel="replies" type="text/html"/>
    <link href="http://www.blogger.com/feeds/7062240605660163230/posts/default/1143750247792790268" rel="edit" type="application/atom+xml"/>
    <link href="http://www.blogger.com/feeds/7062240605660163230/posts/default/1143750247792790268" rel="self" type="application/atom+xml"/>
    <link href="http://mahafuz.blogspot.com/2007/10/i-am-currently-maintaining-my-blog-here.html" rel="alternate" type="text/html"/>
    <title/>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">I am currently maintaining my blog <a href="http://nuxser.wordpress.com/">here</a>.<div class="blogger-post-footer"><img alt="" height="1" src="https://blogger.googleusercontent.com/tracker/7062240605660163230-1143750247792790268?l=mahafuz.blogspot.com" width="1"/></div></div>
    </content>
    <updated>2007-10-24T09:38:37Z</updated>
    <published>2007-10-24T09:37:00Z</published>
    <author>
      <name>Soyuz</name>
      <email>noreply@blogger.com</email>
      <uri>http://www.blogger.com/profile/03423393398716499751</uri>
    </author>
    <source>
      <id>tag:blogger.com,1999:blog-7062240605660163230</id>
      <author>
        <name>Soyuz</name>
        <email>noreply@blogger.com</email>
        <uri>http://www.blogger.com/profile/03423393398716499751</uri>
      </author>
      <link href="http://mahafuz.blogspot.com/feeds/posts/default" rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml"/>
      <link href="http://www.blogger.com/feeds/7062240605660163230/posts/default" rel="self" type="application/atom+xml"/>
      <link href="http://mahafuz.blogspot.com/" rel="alternate" type="text/html"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <title>Random Bits</title>
      <updated>2012-04-15T23:58:37Z</updated>
    </source>
  </entry>
</feed>

