<?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>come on down to clug park and meet some geeks online</title>
  <updated>2012-05-18T00:05:44Z</updated>
  <generator uri="http://intertwingly.net/code/venus/">Venus</generator>
  <author>
    <name>CLUG Webmasters</name>
    <email>webmaster@clug.org.za</email>
  </author>
  <id>http://park.clug.org.za/atom.xml</id>
  <link href="http://park.clug.org.za/atom.xml" rel="self" type="application/atom+xml"/>
  <link href="http://park.clug.org.za/" rel="alternate"/>

  <entry xml:lang="en">
    <id>http://jonathancarter.org/?p=7158</id>
    <link href="http://jonathancarter.org/2012/05/16/launchpad-net-bug-1-000-000/" rel="alternate" type="text/html"/>
    <link href="http://jonathancarter.org/2012/05/16/launchpad-net-bug-1-000-000/#comments" rel="replies" type="text/html"/>
    <link href="http://jonathancarter.org/2012/05/16/launchpad-net-bug-1-000-000/feed/atom/" rel="replies" type="application/atom+xml"/>
    <title xml:lang="en">Jonathan Carter (highvoltage): Launchpad.net: bug 1 000 000</title>
    <summary type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><br/>Congratulations First off, congratulations to the Launchpad.net team for reaching bug #1000000. They’ve managed to build a huge platform that scales very well. Very few bug trackers live to that milestone and it’s amazing how they have managed to keep it snappy and also keep downtime so low by doing continuous roll-out. 1 000 000 [...]</div>
    </summary>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><br/><h3>Congratulations</h3>
<p style="text-align: left;"><span style="text-align: left;">First off, congratulations to the </span><a href="http://en.wikipedia.org/wiki/Launchpad_(website)" style="text-align: left;">Launchpad.net</a><span style="text-align: left;"> team for reaching bug <a href="https://bugs.launchpad.net/ubuntu/+bug/1000000">#1000000</a>. They’ve managed to build a huge platform that scales very well. Very few bug trackers live to that milestone and it’s amazing how they have managed to keep it snappy and also keep downtime so low by doing </span><a href="http://blog.launchpad.net/general/continuous-deployment-in-launchpad" style="text-align: left;">continuous roll-out</a><span style="text-align: left;">.</span></p>
<h3>1 000 000 x 67</h3>
<p style="text-align: center;"><img alt="" class="aligncenter size-full wp-image-7160" height="197" src="http://jonathancarter.org/files/images/mindblowing.gif" title="At least I took out the Dr Evil pinky picture that was originally in the section above ;)" width="250"/></p>
<p>A million bugs are a lot, but even more mind-blowing: for every bug filed in Launchpad.net, 67 <a href="http://en.wikipedia.org/wiki/IPad">iPads</a> have been sold. Educational institutions everywhere are jumping on the iPad bandwagon, and in the <a href="http://edubuntu.org">Edubuntu</a> project, we believe that the tools are quickly coming together that allows us to deliver a product that can be truly competitive with the iPad in educational environments.</p>
<p>We’re currently re-designing the Edubuntu website and will soon have a dedicated section to this project, but in the meantime, please join us on the <a href="https://lists.ubuntu.com/archives/edubuntu-devel/">edubuntu-devel</a> mailing list and introduce yourself, or on the <a href="http://edubuntu.org/community">#edubuntu</a> IRC channel on Freenode.</p></div>
    </content>
    <updated>2012-05-16T00:32:43Z</updated>
    <published>2012-05-16T00:31:44Z</published>
    <category scheme="http://jonathancarter.org" term="Education"/>
    <category scheme="http://jonathancarter.org" term="Free Software"/>
    <category scheme="http://jonathancarter.org" term="BHAG"/>
    <category scheme="http://jonathancarter.org" term="Edubuntu"/>
    <category scheme="http://jonathancarter.org" term="ipad"/>
    <category scheme="http://jonathancarter.org" term="Launchpad.net"/>
    <author>
      <name>jonathan</name>
      <uri>http://www.jonathancarter.co.za</uri>
    </author>
    <source>
      <id>http://jonathancarter.org/feed/atom/</id>
      <link href="http://jonathancarter.org" rel="alternate" type="text/html"/>
      <link href="http://jonathancarter.org/feed/atom/" rel="self" type="application/atom+xml"/>
      <subtitle xml:lang="en">rebel without a pause</subtitle>
      <title xml:lang="en">jonathan carter</title>
      <updated>2012-05-16T00:32:43Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://jonathancarter.org/?p=7141</id>
    <link href="http://jonathancarter.org/2012/05/15/the-software-packages-meta-track-at-uds/" rel="alternate" type="text/html"/>
    <link href="http://jonathancarter.org/2012/05/15/the-software-packages-meta-track-at-uds/#comments" rel="replies" type="text/html"/>
    <link href="http://jonathancarter.org/2012/05/15/the-software-packages-meta-track-at-uds/feed/atom/" rel="replies" type="application/atom+xml"/>
    <title xml:lang="en">Jonathan Carter (highvoltage): The “Software Packages” Meta-Track at UDS</title>
    <summary type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><br/>Meta Track? I’m glad you asked! At the Ubuntu Developer Summit, sessions are arranged by track. There are some topics that don’t have official tracks, but you end up seeing the same people in the same kind of sessions and it ends up being a track for all practical intents and purposes. One of these [...]</div>
    </summary>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><br/><h3>Meta Track?</h3>
<p>I’m glad you asked! At the Ubuntu Developer Summit, sessions are arranged by track. There are some topics that don’t have official tracks, but you end up seeing the same people in the same kind of sessions and it ends up being a track for all practical intents and purposes. One of these “meta-tracks” that emerged at this UDS was about software packages in Ubuntu. These were discussions related to how packages are organised in Ubuntu, how they’re maintained and synced with Debian, how to get upstream software developers excited about Ubuntu and more.</p>
<p>These were the sessions where I could walk in and be sure to find some combination of Stefano Rivera, Allison Randal, Asheesh Laroia, Evan Broder, Iain Lane, Andrew Starr-Bochiccio, Daniel Holbach, Andrew Mitchell, Micah Gersten, Bhavani Shankar and more in there <img alt=":)" class="wp-smiley" src="http://jonathancarter.org/wp-includes/images/smilies/icon_smile.gif"/> </p>
<p>These sessions included:</p>
<ul>
<li><a href="http://summit.ubuntu.com/uds-q/meeting/20369/servercloud-q-apt-improvements/">APT Improvements</a></li>
<li><a href="http://summit.ubuntu.com/uds-q/meeting/20408/community-q-upstream-appdev-docs/">Upstream App Developer Documentation</a></li>
<li><em><a href="http://summit.ubuntu.com/uds-q/meeting/20545/community-p-appdevelopers-events/">App Developer events</a></em></li>
<li><em><a href="http://summit.ubuntu.com/uds-q/meeting/20586/software-center-q-client/">software-center-q-client</a></em></li>
<li><a href="http://summit.ubuntu.com/uds-q/meeting/20719/other-q-backports-bof/">Backports BoF</a></li>
<li><a href="http://summit.ubuntu.com/uds-q/meeting/20682/community-q-packaging-guide/">Continuing Packaging Guide Improvements</a></li>
<li><a href="http://summit.ubuntu.com/uds-q/meeting/20626/foundations-q-more-agile-sru-process/">Refine our SRU process to be more agile while avoiding too many pitfalls</a></li>
<li><a href="http://summit.ubuntu.com/uds-q/meeting/20546/community-p-appdevelopers-external-outreach/">App Developer external outreach</a></li>
<li><em><a href="http://summit.ubuntu.com/uds-q/meeting/20587/software-center-q-server/">software-center-q-server</a></em></li>
<li><em><a href="http://summit.ubuntu.com/uds-q/meeting/20415/community-q-upstream-evangelism/">Promote and encourage upstream delivery in Ubuntu</a></em></li>
<li><a href="http://summit.ubuntu.com/uds-q/meeting/20551/community-q-app-packaging-requirements/">Packaging requirements for Apps in Ubuntu</a></li>
<li><em><a href="http://summit.ubuntu.com/uds-q/meeting/20743/lts-backport-testing-in-1204/">LTS backport testing in 12.04</a></em></li>
<li><em><a href="http://summit.ubuntu.com/uds-q/meeting/20496/foundations-q-phased-updates/">Phased updates of software packages</a></em></li>
<li><em><a href="http://summit.ubuntu.com/uds-q/meeting/20296/foundations-q-usr-merge/">Merging / onto /usr</a></em></li>
<li><a href="http://summit.ubuntu.com/uds-q/meeting/20290/other-q-freeze-use-of-proposed/">Discussions of what should get uploaded to -proposed and when</a></li>
<li><a href="http://summit.ubuntu.com/uds-q/meeting/20560/community-q-myapps-review/">Review of the ARB process using MyApps</a></li>
<li><a href="http://summit.ubuntu.com/uds-q/meeting/20552/community-q-app-review-board/">Application Review Board</a></li>
<li><a href="http://summit.ubuntu.com/uds-q/meeting/20767/community-q-debian/">Debian Health Check</a></li>
<li><a href="http://summit.ubuntu.com/uds-q/meeting/20476/other-q-dmb-discussion/">Developer Membership Board Discussion</a></li>
<li><a href="http://summit.ubuntu.com/uds-q/meeting/20676/other-q-motu-bof/">MOTU BOF Session</a></li>
<li><em><a href="http://summit.ubuntu.com/uds-q/meeting/20495/foundations-q-java7/">Transition the archive to Java 7</a></em></li>
<li><a href="http://summit.ubuntu.com/uds-q/meeting/20294/foundations-q-finish-archive-reorg/">Finish the archive reorg</a></li>
<li><em><a href="http://summit.ubuntu.com/uds-q/meeting/20417/community-q-app-promotion/">Advertise new apps in the Software Center</a></em></li>
<li><a href="http://summit.ubuntu.com/uds-q/meeting/20760/servercloud-q-apt-improvements-working-session/">working session result of apt-improvements</a></li>
<li><a href="http://summit.ubuntu.com/uds-q/meeting/20412/community-q-upstream-myapps/">MyApps submission experience and expectations for upstreams</a></li>
<li><em><a href="http://summit.ubuntu.com/uds-q/meeting/20729/community-p-appdevelopers-site-incremental-improvements/">Ubuntu App Developer Site incremental improvements</a></em></li>
<li><a href="http://summit.ubuntu.com/uds-q/meeting/20555/community-q-dev-outreach/">Reaching out to future Ubuntu developers</a></li>
<li><em><a href="http://summit.ubuntu.com/uds-q/meeting/20329/foundations-q-updates-from-crash-reports/">If a crash is already fixed by an update, prompt to install it</a></em></li>
</ul>
<div>I couldn’t attend all of them, many sessions were in the same slot or I were required in another session at the time. I marked the ones I couldn’t attend in <em>italics.</em></div>
<h3>Archive Re-organisation</h3>
<p>I’ll jump in with the big and controversial topic. When Ubuntu was founded, Canonical and the Ubuntu community was small and could only support a subset of the Debian archives. This supported subset became known as main. Initially it was less than 1GB large, the rest of what you’d usually find in the Debian main archive became known as Universe, and a group of people, named in jest after a he-man series, became known as the Masters of the Universe (MOTU) team.</p>
<p>Main was maintained mostly by Canonical staff and the universe archive was maintained by Canonical staff and community members. Over time, more and more community members started to maintain packages in main. Flavours such as Edubuntu, Kubuntu and Xubuntu were later allowed to install from universe and it was later enabled by default. In the initial LTS release, only main packages were supported long-term. These days, there are many packages in universe that are supported for the full 5 years on LTS releases. Previously, only packages in main had translations shipped for them. This is also no longer true. The lines between main and universe have become so blurred that having the separation no longer made any sense. Around the last LTS release (10.04), the topic of an archive re-organisation emerged. It was a big discussion, and when the Developer Membership Board was formed the MOTU Council was disbanded (which in my opinion was a bad idea) in part of that and also in anticipation for the archive re-organisation. Some people took that as meaning that MOTU is dead or that it would stop to exist. That is certainly not the case.</p>
<p>Unfortunately, the archive re-organisation became very complicated very quickly. There still needs to be a way for Canonical to identify packages that they officially support if someone wants to throw money at them for supporting it. We can’t have <em>everything</em> translated because the language packs would just grow too big. How would we deal with managing build-dependencies and make sure that people depend on high-quality tools and libraries? Soon after the initial archive re-organisation was started, it stalled. In my opinion this caused lots of confusion and did damage to the Ubuntu project.</p>
<p>Having said that, I’m glad to report that the discussion at this UDS was extremely positive and it seems like the archive re-organisation might actually be completed over the next two releases. Other benefits will include how support meta-data is stored. The tools that currently use the support fields (update-manager, ubuntu-support-status, software-center, etc) will now get the support metadata from an external file, which means that packages in Ubuntu wouldn’t need a diff with Debian’s packages anymore for support meta-data. Also, the archive layout will be simpler and easier to understand. MOTU would probably change from “Masters of the Universe” to “Masters of the Unseeded”. Packages that are seeded are packages that are provided on standard Ubuntu flavours (Ubuntu Core, Ubuntu Desktop, Ubuntu Server, Edubuntu, Kubuntu, Xubuntu, Lubuntu, etc). The rest of the archive that are unseeded would then still be maintained by a newly defined MOTU group.</p>
<p>It’s a big hairy issue and I’ve just touched on some of the areas, but what’s great is that progress is being made again and that people are serious about making it happen. Colin Watson has a work item to take the discussion further on the Ubuntu development mailing list. I’m positive that things will be moving forward on that front for this cycle, even if it ends up taking another cycle to iron out some of the smaller kinks.</p>
<h3>Application Review Board</h3>
<p>In a previous cycle, Canonical put together a process by which application developers could get their non-free, commercial applications in to the Software Center via authenticated PPA. It seemed unfair to have a process where non-free software could make it into the Ubuntu software center but free software couldn’t, so a process was formed to let apps in the software center via an extras repository. This process is overseen by the Application Review Board. I joined this board right about 6 months ago. We’ve had the usual problems that Ubuntu teams have (because, in reality the ARB is more of a team than a board, the name is a misnomer, I wish less Ubuntu teams had this issue), like lack of time, getting sporadically distracted by other work, but on top of that, we didn’t have our process quite smoothed out yet. The web interface that we used to manage apps had some huge issues (like making apps completely disappear from the interface when requesting feedback from the developer).</p>
<p>For the last weeks, quite a few people have worked hard to help fix the issues in the process and in the web app. There were *many* sessions at this UDS regarding upstream developers, the ARB, the MyApps web interface, etc. At times I thought that there were too many, but it was just right. A lot of issues were discussed, problems were solved, and while I felt like the ARB process was in an alpha stage during the last cycle, I think it’s more like a beta-state process now. I think we’re very close to having a process that’s smooth and easy for both the people that submit these apps, and the people who review them.</p>
<p>Currently the ARB has some backlog that we need to sort through, we’ll probably use that to help improve the process further and make Ubuntu a fun and welcoming platform to develop for.</p>
<p>We also absolutely want people to contribute their software to the right place. If a package belongs in Debian, Ubuntu, a PPA or any other archive instead, we’d like to advise the user properly. I took a work item to put together a flowchart to help people decide where to submit their app, because there’s way to many guides and howtos and someone could read the entire <a href="http://www.debian.org/doc/manuals/maint-guide/">New Maintainers Guide</a> and still won’t know where to submit their app <img alt=":)" class="wp-smiley" src="http://jonathancarter.org/wp-includes/images/smilies/icon_smile.gif"/> </p>
<p>I know I’m a bit thin on the details on the sessions here, but I’ll do more blog posts on that. I just wanted to provide some background and explain that good progress is made, and that things are greatly improving with the ARB process. In the ARB, many of us are aspiring to becoming Debian Developers so that we can help sponsor packages there when it’s appropriate.</p>
<h3>Debian Health Check</h3>
<p>The Debian Health Check session as become a regular session at UDS. We had a bunch of DD’s in the room that could comment on the Debian-Ubuntu relationship, but we didn’t have someone who specifically represented Debian. Some of the issues I’ve mentioned previously (like the ARB) were discussed. Also the Ayatana patches from Ubuntu that are hard to get into Debian (which includes Unity).</p>
<p>What is nice is that we have quite a few people who started out with Ubuntu that became Debian Developers. The relationship between Debian and Ubuntu seems quite healthy and it seems that both projects gain great benefit from each other.</p>
<h3>MOTU Birds of a Feather</h3>
<p>The archive-reorg was discussed, and MOTUs future role was discussed in anticipation of it. There was some discussion about things that have worked well in the last few cycles that should be revitalised. MOTU needs some more announcements of what it’s doing to cause some buzz around its activities. Too few people know what MOTU does and how it does it. Evan Broder and I plan to try some experiments with Facebook ads to see what kind of people/interest they bring in MOTU <img alt=":)" class="wp-smiley" src="http://jonathancarter.org/wp-includes/images/smilies/icon_smile.gif"/> </p>
<p>The MOTU team is also very eager to get long-term ARB apps into the archive. Having apps in universe would mean less work and restrictions than having them in extras.</p>
<p>As MOTU we’re very committed to it and its goals, but there needs to be some restructuring/updating of the current documentation. It might also need a new vision/mission-statement, etc. This cycle is going to be a revitalisation cycle for MOTU in whatever form it will continue to exist. We hope that many people will get excited about packaging and quality in the Ubuntu archive and help contribute to that <img alt=":)" class="wp-smiley" src="http://jonathancarter.org/wp-includes/images/smilies/icon_smile.gif"/> </p>
<h3>Getting it all down is impossible</h3>
<p>I wish I could do a better job at this blog post, but I’m still somewhat suffering from information overload from last week, and if I try to get it perfect and get everything in there then this post will never get finished. If you have questions, feel free to give a poke on #ubuntu-motu on freenode, there’s bound to be someone who could answer questions on any of these topics if you’re willing to hang around a bit. I still haven’t even touched on Backports, APT improvements, SRU streamlining, etc, but you should be able to find most of the information from those sessions in their blueprints. If you’ve made it this far, thanks for reading!</p></div>
    </content>
    <updated>2012-05-15T03:31:31Z</updated>
    <published>2012-05-15T03:31:31Z</published>
    <category scheme="http://jonathancarter.org" term="Free Software"/>
    <category scheme="http://jonathancarter.org" term="Allison Randal"/>
    <category scheme="http://jonathancarter.org" term="Andrew Mitchell"/>
    <category scheme="http://jonathancarter.org" term="Andrew Starr-Bochiccio"/>
    <category scheme="http://jonathancarter.org" term="Application Review Board"/>
    <category scheme="http://jonathancarter.org" term="APT"/>
    <category scheme="http://jonathancarter.org" term="ARB"/>
    <category scheme="http://jonathancarter.org" term="Asheesh Laroia"/>
    <category scheme="http://jonathancarter.org" term="Ayatana"/>
    <category scheme="http://jonathancarter.org" term="Backports"/>
    <category scheme="http://jonathancarter.org" term="Bhavani Shankar"/>
    <category scheme="http://jonathancarter.org" term="Daniel Holbach"/>
    <category scheme="http://jonathancarter.org" term="Debian"/>
    <category scheme="http://jonathancarter.org" term="Evan Broder"/>
    <category scheme="http://jonathancarter.org" term="Facebook"/>
    <category scheme="http://jonathancarter.org" term="Iain Lane"/>
    <category scheme="http://jonathancarter.org" term="Micah Gersten"/>
    <category scheme="http://jonathancarter.org" term="MOTU"/>
    <category scheme="http://jonathancarter.org" term="Software Center"/>
    <category scheme="http://jonathancarter.org" term="Stefano Rivera"/>
    <category scheme="http://jonathancarter.org" term="Ubuntu"/>
    <category scheme="http://jonathancarter.org" term="Unity"/>
    <author>
      <name>jonathan</name>
      <uri>http://www.jonathancarter.co.za</uri>
    </author>
    <source>
      <id>http://jonathancarter.org/feed/atom/</id>
      <link href="http://jonathancarter.org" rel="alternate" type="text/html"/>
      <link href="http://jonathancarter.org/feed/atom/" rel="self" type="application/atom+xml"/>
      <subtitle xml:lang="en">rebel without a pause</subtitle>
      <title xml:lang="en">jonathan carter</title>
      <updated>2012-05-16T00:32:43Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.swimgeek.com/blog/?p=3664</id>
    <link href="http://www.swimgeek.com/blog/2012/05/14/quick-update-210/" rel="alternate" type="text/html"/>
    <link href="http://www.swimgeek.com/blog/2012/05/14/quick-update-210/#comments" rel="replies" type="text/html"/>
    <link href="http://www.swimgeek.com/blog/2012/05/14/quick-update-210/feed/atom/" rel="replies" type="application/atom+xml"/>
    <title xml:lang="en">Johann Botha (joe): Quick Update</title>
    <summary type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml">Media week.. Monday, woke up at Andrew’s house, events meeting, press release writing. We moved around the office again at the end of last week.. ended up closer to the creative team. “Mxit musical chairs.. grab a seat when the … <a href="http://www.swimgeek.com/blog/2012/05/14/quick-update-210/">Continue reading <span class="meta-nav">→</span></a></div>
    </summary>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>Media week..</p>
<ul>
<li>Monday, woke up at Andrew’s house, events meeting, press release writing.</li>
<li>We moved around the office again at the end of last week.. ended up closer to the creative team.</li>
<li>
<blockquote>“Mxit musical chairs.. grab a seat when the music stops.” — Dirk about office moves.<p/></blockquote>
</li>
<li>Tuesday, woke up with a stiff neck, Chinese back massage, did not make it to Netprophet this year, more press release writing, sunset podcast walk, Mia visit.</li>
<li>Wednesday, Gusted a smoothie, had my ADSL line at home installed, beer with Parri and Alex, Mia’s school cheese and wine.</li>
<li>GUST the news this week: <a href="http://www.bandwidthblog.com/2012/05/08/gust-geo-fenced-mobile-payments-mxit/">BandwidthBlog</a>, <a href="http://memeburn.com/2012/05/mxit-launches-its-own-geo-fenced-payment-system/">Memeburn</a>, <a href="http://www.techcentral.co.za/mxit-involved-in-new-payment-platform/31669/">TechCentral</a>, <a href="http://www.bizcommunity.com/Article/196/78/74867.html">BizCommunity</a>, <a href="http://memeburn.com/2012/05/who-will-win-the-mobile-payment-wars/">Memeburn</a>, <a href="http://www.itweb.co.za/index.php?option=com_content&amp;view=article&amp;id=54325:mxit-trials-wifi-payments">ITWeb</a>, <a href="http://www.timeslive.co.za/scitech/2012/05/10/banking-on-mobile-cash">Times Live</a>.
</li>
<li>GUST mentioned on Podcasts this week: <a href="http://zatech.co.za/podcasts/rant/">ZA Tech Show</a> (at 54:37 and 1:10:50), <a href="http://www.techcentral.co.za/talkcentral-episode-64-bank-on-it/31698/">Talk Central</a> (at 7:40).</li>
<li>TrustFabric in the news this week: <a href="http://www.itweb.co.za/index.php?option=com_content&amp;view=article&amp;id=54279:optout-list-tops-200-000">ITWeb</a>.</li>
<li>Pro tip: Form first.</li>
<li>Thursday, Gusted a smoothie, Gust meeting, Gino’s #hackstb planning meeting, dinner at Paul’s house and a blind wine tasting.</li>
<li>Friday, Mxit Formal Friday, beer with Werner at De Akker, braai at Dirk’s house.</li>
<li>Saturday, tea, Mia and I watched Star Wars Episode 2, botanical gardens with the family, Wakaberry frozen yoghurt, Star Wars Episode 3.</li>
<li>Mia’s new party trick: making heart shapes out of cable ties.</li>
<li>Sunday, woke up at 7:00 after having been migrated to three different beds during the night, Star Wars Episode 4, braai at Al’s house with Paul and Henk.</li>
<li>I’m speaking at the <a href="http://www.itweb.co.za/index.php?option=com_content&amp;view=article&amp;id=51895&amp;Itemid=2506">ITWeb Securuty Summit 2012</a> on Wednesday.</li>
</ul>
<p>Have a fun week, crazy kids.</p></div>
    </content>
    <updated>2012-05-14T15:30:45Z</updated>
    <published>2012-05-14T15:30:27Z</published>
    <category scheme="http://www.swimgeek.com/blog" term="Rants"/>
    <author>
      <name>joe</name>
      <uri>http://www.swimgeek.com/</uri>
    </author>
    <source>
      <id>http://www.swimgeek.com/blog/feed/atom/</id>
      <link href="http://www.swimgeek.com/blog" rel="alternate" type="text/html"/>
      <link href="http://www.swimgeek.com/blog/feed/atom/" rel="self" type="application/atom+xml"/>
      <subtitle xml:lang="en">Ideas are bulletproof..</subtitle>
      <title xml:lang="en">SwimGeek</title>
      <updated>2012-05-14T15:30:45Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://jonathancarter.org/?p=7103</id>
    <link href="http://jonathancarter.org/2012/05/10/edubuntu-preliminary-plans-for-12-10/" rel="alternate" type="text/html"/>
    <link href="http://jonathancarter.org/2012/05/10/edubuntu-preliminary-plans-for-12-10/#comments" rel="replies" type="text/html"/>
    <link href="http://jonathancarter.org/2012/05/10/edubuntu-preliminary-plans-for-12-10/feed/atom/" rel="replies" type="application/atom+xml"/>
    <title xml:lang="en">Jonathan Carter (highvoltage): Edubuntu Preliminary Plans for 12.10</title>
    <summary type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><br/>2. Edubuntu Tablet</div>
    </summary>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><br/><h3>Edubuntu 12.10 Plans</h3>
<p>Today at the <a href="http://uds.ubuntu.com">Ubuntu Developer Summit</a> we <a href="http://summit.ubuntu.com/uds-q/meeting/20517/community-q-edubuntu/">had a session to plan out</a> the next release of <a href="http://edubuntu.org">Edubuntu</a>.</p>
<p><img alt="" class="aligncenter size-full wp-image-7106" height="415" src="http://jonathancarter.org/files/images/2tagclowd.png" title="Edubuntu 12.10 Tagcloud" width="555"/></p>
<p>For the Edubuntu 12.10 core product, we’re doing some typical Edubuntu updates and features, which include:</p>
<ul>
<li>Authentication step in the installer for AD/Samba4/LDAP</li>
<li>We’ll be reviewing the installed apps, add gnote, refresh the kde-edu apps selection</li>
<li>Dynamic installer slideshow, based on options selected</li>
<li>Juju charms for educational web apps (Moodle, WordPress Multisite, etc)</li>
<li>Remote Live Installer (booting an Edubuntu/Ubuntu livecd over the network</li>
<li>Education-specific software highlights in Software Center</li>
<li>Speed-up installation by optimising the way we ship language packs</li>
<li>A variety of Desktop/Artwork tweaks and fixes</li>
</ul>
<h3>Edubuntu Labs: Get Excited and Make Things</h3>
<p>On Tuesday I had 2.5 minutes to speak about Edubuntu during a plenary session where I presented some of our more ambitious plans in Edubuntu. We want to make it easier for people to work on their ideas and projects that might be good for Edubuntu, but that doesn’t necessarilly fit into our main product yet or in a 6 month release cycle. For that, we’re starting Edubuntu Labs (subject to namechange). A playground for experimental and exciting features that might one day make it as a supported Edubuntu product. Internally, we’re starting two of these projects to kick it off.</p>
<p><img alt="" class="aligncenter size-full wp-image-7107" height="415" src="http://jonathancarter.org/files/images/1getexcited.png" title="Get Excited and Make Things with Edubuntu" width="555"/></p>
<p><strong>1. Edubuntu Server</strong></p>
<p>Edubuntu Server is a product we discontinued a few years back. Due to popular demand, we’re considering reviving it as a product. Aspects we’re currently investigating:</p>
<ul>
<li><a href="http://www.zentyal.com/">Zentyal</a> Small Business Server</li>
<li>A built-in disk-cloning tool using LTSP</li>
<li>A remote installer for Ubuntu based installer media</li>
<li>Schooltool</li>
<li>Schooltool integration into Zentyal</li>
<li>Samba4</li>
</ul>
<div>If we have Zentyal/Schooltool integration by Alpha1 we’ll create a “task”  for this in Ubuntu. We’re not shipping any installation media for this for 12.10, but we have some very clever installer ideas that might be available by 13.04.</div>
<p> </p>
<p><strong>2. Edubuntu Tablet</strong></p>
<div>Schools are <a href="http://jonathancarter.org/2012/04/16/ipads-in-education-and-the-road-ahead-for-edubuntu/">spending too much money on iPads</a>, and working with the Edubuntu project, I’m going to do what I can to try and fix that.</div>
<div>
<ul>
<li>The first device we’re targeting for Edubuntu tablet support is the Zatab: <a href="http://zareason.com/shop/zatab.html">http://zareason.com/shop/zatab.html</a></li>
<li>For 12.10 we want to release an unofficial, technology preview version of Edubuntu for Tablets. We want to show software developers what a completely awesome platform Edubuntu can be for schools and encourage them to get their software through the <a href="http://developer.ubuntu.com/">proper channels so that it’s available via the Ubuntu Software Centre</a> by 13.04.</li>
<li>We’ll be using Unity 3D as the default desktop, it’s great for touch devices</li>
<li>The Kubuntu team is also planning to support this device with the KDE Plasma Active Desktop, we’ll be doing some collaboration maintaining this device’s kernel and hardware enablement.</li>
</ul>
</div>
<p>All of this is still early work, but I wanted to get it out there as early as possible. Over the next 2 weeks there’ll be more official announcements on the Edubuntu website. We’re looking for more contributors to help us out with this, please join us on <a href="http://edubuntu.org/community">#edubuntu</a> and add it to your autojoin and introduce yourself on the <a href="https://lists.ubuntu.com/mailman/listinfo/edubuntu-devel">edubuntu-devel</a> mailing list <img alt=";)" class="wp-smiley" src="http://jonathancarter.org/wp-includes/images/smilies/icon_wink.gif"/> </p></div>
    </content>
    <updated>2012-05-10T22:26:35Z</updated>
    <published>2012-05-10T22:26:35Z</published>
    <category scheme="http://jonathancarter.org" term="Education"/>
    <category scheme="http://jonathancarter.org" term="Free Software"/>
    <category scheme="http://jonathancarter.org" term="Epoptes"/>
    <category scheme="http://jonathancarter.org" term="Juju"/>
    <category scheme="http://jonathancarter.org" term="KDE"/>
    <category scheme="http://jonathancarter.org" term="LDAP"/>
    <category scheme="http://jonathancarter.org" term="LDM"/>
    <category scheme="http://jonathancarter.org" term="LTSP"/>
    <category scheme="http://jonathancarter.org" term="Samba"/>
    <category scheme="http://jonathancarter.org" term="Schooltool"/>
    <category scheme="http://jonathancarter.org" term="Ubiquity"/>
    <category scheme="http://jonathancarter.org" term="Unity"/>
    <category scheme="http://jonathancarter.org" term="zatab"/>
    <category scheme="http://jonathancarter.org" term="Zentyal"/>
    <author>
      <name>jonathan</name>
      <uri>http://www.jonathancarter.co.za</uri>
    </author>
    <source>
      <id>http://jonathancarter.org/feed/atom/</id>
      <link href="http://jonathancarter.org" rel="alternate" type="text/html"/>
      <link href="http://jonathancarter.org/feed/atom/" rel="self" type="application/atom+xml"/>
      <subtitle xml:lang="en">rebel without a pause</subtitle>
      <title xml:lang="en">jonathan carter</title>
      <updated>2012-05-16T00:32:43Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.swimgeek.com/blog/?p=3631</id>
    <link href="http://www.swimgeek.com/blog/2012/05/07/gust-free-lunch-innovation/" rel="alternate" type="text/html"/>
    <link href="http://www.swimgeek.com/blog/2012/05/07/gust-free-lunch-innovation/#comments" rel="replies" type="text/html"/>
    <link href="http://www.swimgeek.com/blog/2012/05/07/gust-free-lunch-innovation/feed/atom/" rel="replies" type="application/atom+xml"/>
    <title xml:lang="en">Johann Botha (joe): GUST – Free lunch innovation</title>
    <summary type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml">If you’ve been for a walk around Stellenbosch with Alan Knott-Craig in the last few weeks you would probably have seen a demo of a new geo-fenced mobile payment system. These walks usually end on the top floor of Mxit‘s … <a href="http://www.swimgeek.com/blog/2012/05/07/gust-free-lunch-innovation/">Continue reading <span class="meta-nav">→</span></a></div>
    </summary>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>If you’ve been for a walk around Stellenbosch with Alan Knott-Craig in the last few weeks you would probably have seen a demo of a new geo-fenced mobile payment system. These walks usually end on the top floor of <a href="http://www.mxit.com/">Mxit</a>‘s office where the barista is busy making coffee.</p>
<p>The idea with the <a href="http://www.gustpay.com/">Gust</a> project was to design a really quick mobile payment experience (without NFC).</p>
<p>Mxit staff can buy lunch at about 15 places around Stellenbosch using their mobile phones. One restaurant had poor GSM signal which made the payment process a bit unpredictable and slow. While walking back to the office, ideas for a better payment experience were discussed. Six weeks later the Gust payment system was launched at a Mxit party.</p>
<p/><center><img alt="" class="aligncenter size-medium wp-image-3636" height="300" src="http://www.swimgeek.com/blog/wp-content/2012/05/IMG_0071-200x300.jpg" title="IMG_0071" width="200"/></center><p/>
<p>Gust runs on an iPhone. The merchant side runs on an iPad. When two devices are close to each other the merchant can request a payment from the mobile phone. Unlike other payment systems which use geo-fencing logic, Gust does not need a GPS device or even a GSM connection. It will happily run on an entry level iPod Touch.</p>
<p>Gust devices on the same wifi network will discover each other. All communication happens over the wifi network which makes the payment process really fast. That’s where the name Gust comes from… rapid burst of wind.</p>
<p>Gust simply uses wifi, your name and our photo to make a payment. When a user’s phone joins a payment location the merchant’s iPad shows a list of names and photos of Gust users connected to that payment location. After a user places an order the merchant sends a payment request. The user sees a payment request and approves it.</p>
<p>The Alpha version video (quick hack):</p>
<p/><center/><p/>
<p>Mxit staff have been using an Alpha version of Gust around Stellenbosch since early April. The first public demo was at a recent <a href="http://twitter.com/hackstb">#hackstb</a> meetup.</p>
<p>The Beta is in development and should be out in June. Stellenbosch only for now.</p>
<p>Follow <a href="http://twitter.com/gustpay">@GustPay</a></p></div>
    </content>
    <updated>2012-05-07T20:19:01Z</updated>
    <published>2012-05-07T20:09:23Z</published>
    <category scheme="http://www.swimgeek.com/blog" term="Rants"/>
    <author>
      <name>joe</name>
      <uri>http://www.swimgeek.com/</uri>
    </author>
    <source>
      <id>http://www.swimgeek.com/blog/feed/atom/</id>
      <link href="http://www.swimgeek.com/blog" rel="alternate" type="text/html"/>
      <link href="http://www.swimgeek.com/blog/feed/atom/" rel="self" type="application/atom+xml"/>
      <subtitle xml:lang="en">Ideas are bulletproof..</subtitle>
      <title xml:lang="en">SwimGeek</title>
      <updated>2012-05-14T15:30:45Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.swimgeek.com/blog/?p=3628</id>
    <link href="http://www.swimgeek.com/blog/2012/05/07/quick-update-209/" rel="alternate" type="text/html"/>
    <link href="http://www.swimgeek.com/blog/2012/05/07/quick-update-209/#comments" rel="replies" type="text/html"/>
    <link href="http://www.swimgeek.com/blog/2012/05/07/quick-update-209/feed/atom/" rel="replies" type="application/atom+xml"/>
    <title xml:lang="en">Johann Botha (joe): Quick Update</title>
    <summary type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml">Star Wars and playing single dad.. Monday, family lunch at Glen Carlou, watched UP with Mia. Tuesday, public holiday, Mia watched UP while I sorted out some camping equipment, family outing to Cape Town, gym, swim, Deer Park, Jimmy the … <a href="http://www.swimgeek.com/blog/2012/05/07/quick-update-209/">Continue reading <span class="meta-nav">→</span></a></div>
    </summary>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>Star Wars and playing single dad..</p>
<ul>
<li>Monday, family lunch at Glen Carlou, watched UP with Mia.</li>
<li>Tuesday, public holiday, Mia watched UP while I sorted out some camping equipment, family outing to Cape Town, gym, swim, Deer Park, Jimmy the Fish with Mia, UP.</li>
<li>Winter. Drinking lots of tea. For some reason Mia still wants her rooibos tea in a bottle.</li>
<li>Wednesday, dropped Mia at school, gym, fetched Mia, got some duct tape and fixed my tent, we watched Eight Below.. and we both had a bit of a cry, walked to Wijnhuis for pasta.. the food and service was not great but I enjoyed dining with Mia.</li>
<li>Thursday, dropped Mia at school, gym, Gust meeting, fetched Mia, pizza at Gino’s.</li>
<li>The next round of Gust dev has officially started.. expect a Beta around mid June.</li>
<li>Friday, Mia was not feeling well so we skipped school, worked at home, Mia watched UP, office, calamari, red velvet cupcake at Nook, found a new home for my offsite backup disk, lemon meringue with Petr, Piet and Parri, Mia made an artwork with duct tape and cable ties, we watched Star Wars episode 4 – May the 4th is a good day to watch the first episode for the first time.</li>
<li>Seems I need about 3500 Vitality points to get to Diamond status.</li>
<li>After watching UP a few times Mia made me a Book of Adventures with 14 countries I’ve visited (13 actually, she added a page for AfrikaBurn).</li>
<li>Saturday, tea, Star Wars episode 4, Cape Town, gym, swim, Deer Park with Sarah, a beer at Carlyle’s with Georg while Mia played at Sarah’s house, we watched Star Wars episode 5.</li>
<li>Sunday, tea, we watched Star Wars episode 6, Blaauklippen market, a Guinness at Erinvale, Naulene fetched Mia, Andrew visit.</li>
</ul>
<p>Have a fun week, crazy kids.</p></div>
    </content>
    <updated>2012-05-07T15:08:38Z</updated>
    <published>2012-05-07T15:08:38Z</published>
    <category scheme="http://www.swimgeek.com/blog" term="Rants"/>
    <author>
      <name>joe</name>
      <uri>http://www.swimgeek.com/</uri>
    </author>
    <source>
      <id>http://www.swimgeek.com/blog/feed/atom/</id>
      <link href="http://www.swimgeek.com/blog" rel="alternate" type="text/html"/>
      <link href="http://www.swimgeek.com/blog/feed/atom/" rel="self" type="application/atom+xml"/>
      <subtitle xml:lang="en">Ideas are bulletproof..</subtitle>
      <title xml:lang="en">SwimGeek</title>
      <updated>2012-05-14T15:30:45Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://trusoft.co.za/64 at http://trusoft.co.za</id>
    <link href="http://trusoft.co.za/node/64" rel="alternate" type="text/html"/>
    <title>Andre Truter (Cacofonix): Apple:  OSX Lion - Buy once, get the rest free</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><!-- google_ad_section_start --><p>This is probably old news for most serious Apple users, but I just discovered it yesterday. As a Geek I feel disappointed in myself.  I should have read the documentation and known from the start, but alas, I just installed OSX Lion and did not read much about it before I installed.  I just read the normal stuff Apple had on thier website.<br/>
But then, Apple did not advertise the information too, I stumbled onto it yesterday in the Apple Support forum.</p>
<!-- google_ad_section_end --><p><a href="http://trusoft.co.za/node/64" target="_blank">read more</a></p></div>
    </summary>
    <updated>2012-04-24T03:54:34Z</updated>
    <author>
      <name>andre</name>
    </author>
    <source>
      <id>http://trusoft.co.za/blog</id>
      <link href="http://trusoft.co.za/blog" rel="alternate" type="text/html"/>
      <link href="http://trusoft.co.za/blog/feed" rel="self" type="application/rss+xml"/>
      <title>trusoft.co.za blogs</title>
      <updated>2012-04-25T14:05:04Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://localloop.co.za/?p=801</id>
    <link href="http://localloop.co.za/2012/04/dear-cell-c-you-suck/" rel="alternate" type="text/html"/>
    <link href="http://localloop.co.za/2012/04/dear-cell-c-you-suck/#comments" rel="replies" type="text/html"/>
    <link href="http://localloop.co.za/2012/04/dear-cell-c-you-suck/feed/atom/" rel="replies" type="application/atom+xml"/>
    <title xml:lang="en">Simeon Miteff (simeon): Dear Cell C, you suck</title>
    <summary xml:lang="en">You charged me a R114 connection fee, but it’s been six days since I signed a contract with you, and my cellphone number still has not been ported from Virgin Mobile. I paid, but you didn’t do the work. This morning the Virgin SIM stopped working, so now my friends and co-workers cannot reach me. [...]</summary>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>You charged me a R114 connection fee, but it’s been six days since I signed a contract with you, and my cellphone number still has not been ported from Virgin Mobile. I paid, but you didn’t do the work.</p>
<p>This morning the Virgin SIM stopped working, so now my friends and co-workers cannot reach me. Having been stranded between Cell C and Virgin Mobile’s incompetence, I’m now using a pre-paid 8ta SIM, on the phone you sold me with the contract… that is how lame you are.</p>
<p>I wouldn’t have bitched about this on this blog, but I don’t know how else to get the message to you:</p>
<ul>
<li>Your normal support call center number does not work from either my (Telkom) office line, or from my Virgin mobile SIM (before it stopped working completely). If I call the Cell C general reception, they are able to put me through to support, who then put me through to your porting center, who consistently shift the blame to Virgin Mobile, and tell me to wait another day for the port to be completed.</li>
<li>The “contact us” form on your web site is broken, but also sadistic in two ways: The CAPCHA images themselves are unusually difficult to decode (as a human), and after about the 10th attempt that you’re fairly convinced you decoded correctly, you realize that it <strong>always rejects</strong> your inputs, correct or not.</li>
</ul>
<p>Since Virgin Mobile is an MVNO customer of yours, I won’t buy the excuse that you can’t quickly coordinate with them to make the number porting succeed.</p>
<p>I’m beginning to regret signing up with you. Perhaps I should have taken the MTN deal.</p>
<p>If you want to turn me into a happy customer, fix the problem, <strong>today</strong>, or if you can’t (eg, you can only fix it tomorrow or later), also refund the connection fee as a show of good faith.</p>
<p>Yours sincerely,<br/>
Simeon.</p></div>
    </content>
    <updated>2012-04-18T12:27:52Z</updated>
    <published>2012-04-18T12:27:52Z</published>
    <category scheme="http://localloop.co.za" term="General"/>
    <category scheme="http://localloop.co.za" term="cell c"/>
    <category scheme="http://localloop.co.za" term="fail"/>
    <category scheme="http://localloop.co.za" term="Virgin Mobile"/>
    <author>
      <name>Simeon Miteff</name>
      <uri>http://www.localloop.co.za</uri>
    </author>
    <source>
      <id>http://localloop.co.za/feed/atom/</id>
      <link href="http://localloop.co.za" rel="alternate" type="text/html"/>
      <link href="http://localloop.co.za/feed/atom/" rel="self" type="application/atom+xml"/>
      <subtitle xml:lang="en">Internet and Networking in South Africa</subtitle>
      <title xml:lang="en">Local Loop</title>
      <updated>2012-04-18T12:27:52Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://mithrandi.net/blog/?p=314</id>
    <link href="http://mithrandi.net/blog/2011/01/is-mandela-dead-yet/" rel="alternate" type="text/html"/>
    <link href="http://mithrandi.net/blog/2011/01/is-mandela-dead-yet/#comments" rel="replies" type="text/html"/>
    <link href="http://mithrandi.net/blog/2011/01/is-mandela-dead-yet/feed/" rel="replies" type="application/atom+xml"/>
    <title xml:lang="en">Tristan Seligmann (mithrandi): Is Mandela dead yet?</title>
    <summary xml:lang="en">Is Mandela dead yet? Find out now! UPDATE: Site is dead, so link removed.</summary>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p><a href="http://mithrandi.net/blog/2011/01/is-mandela-dead-yet/">Is Mandela dead yet?</a> Find out now!</p>
<p>UPDATE: Site is dead, so link removed.</p></div>
    </content>
    <updated>2012-04-14T18:39:08Z</updated>
    <published>2011-01-31T10:40:46Z</published>
    <category scheme="http://mithrandi.net/blog" term="Uncategorized"/>
    <author>
      <name>mithrandi</name>
      <uri>http://mithrandi.net/</uri>
    </author>
    <source>
      <id>http://mithrandi.net/blog/feed/</id>
      <link href="http://mithrandi.net/blog" rel="alternate" type="text/html"/>
      <link href="http://mithrandi.net/blog/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://pubsubhubbub.appspot.com" rel="hub" type="text/html"/>
      <link href="http://superfeedr.com/hubbub" rel="hub" type="text/html"/>
      <subtitle xml:lang="en">the shards of meaning</subtitle>
      <title xml:lang="en">Shattered Crystalline Matrix</title>
      <updated>2012-04-14T18:39:08Z</updated>
    </source>
  </entry>

  <entry>
    <id>tag:blogger.com,1999:blog-3746667170663095627.post-6156987450901734149</id>
    <link href="http://halcyonpage.blogspot.com/feeds/6156987450901734149/comments/default" rel="replies" type="application/atom+xml"/>
    <link href="http://www.blogger.com/comment.g?blogID=3746667170663095627&amp;postID=6156987450901734149" rel="replies" type="text/html"/>
    <link href="http://www.blogger.com/feeds/3746667170663095627/posts/default/6156987450901734149" rel="edit" type="application/atom+xml"/>
    <link href="http://www.blogger.com/feeds/3746667170663095627/posts/default/6156987450901734149" rel="self" type="application/atom+xml"/>
    <link href="http://halcyonpage.blogspot.com/2012/04/polyanarchy.html" rel="alternate" type="text/html"/>
    <title>Christel Breedt (Pirogoeth): Polyanarchy</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><br/><div style="font-family: arial; font-size: small;"><div>So this question popped up on the Polyamory forums recently :</div><div><b><br/></b></div><div><strong>Hi Polly,</strong></div><strong>I’m interested in something-more-than-platonic with two friends of mine (seperately, rather than as a group). They’ve already been good friends for a while. If I ask one of them out, should I disclose that I fancy her friend too? And if so, when?</strong><br/><div><strong>Ancelin</strong></div><div><br/></div></div><div style="font-family: arial; font-size: small;">And a lot of the answers this poster got were pretty big on the whole "NOOOO don't do two at a time!" thing. On the other hand some people felt it would be lying NOT to tell both people. I just thought people were missing the point, so I found my ink and quill and got cracking :</div><div style="font-family: arial; font-size: small;"><br/></div><div style="font-family: arial; font-size: small;">I wouldn't make a hard rule about starting more than one relationship at the same time, but I would caution anyone who tried that they need to consider the amount of energy it will take to bootstrap two new relationships. New relationships are about as disruptive to your old lifestyle as having a child (ok, maybe not <i>quite</i> that bad but it comes close.) and you may find yourself suffering from burnout, or alternatively neglecting one of both of your partners because you don't have enough emotional bandwidth to keep up with the intensity of NRE generally found in a new relationship. Even old-hands at poly struggle with this particular nugget. </div><div style="font-family: arial; font-size: small;"><br/></div><div style="font-family: arial; font-size: small;">I think the idea of learning to just sit with your affection for a person for a while is a good thing. Sometimes it just isn't the right time or place to start a relationship. Life is long, and it is worth it to take your time rather than compulsively attaching yourself to every person you are attracted to just because you are not prohibited from doing so. I don't think that qualifies as being deceitful - it strikes me as being a mature, responsible adult.</div><div style="font-family: arial; font-size: small;"><br/></div><div style="font-family: arial; font-size: small;">Then again you simply can't always control when you find someone who just fits, and if there happens to be two then the best you can do is arm yourself with foreknowledge. My best piece of advice would be to really focus on remembering to take care of your own needs, and encouraging your lovers to do likewise. Early on in a relationship we all tend to want to do anything and everything to please our new partner, and it is easy to let yourself get lost in that (I speak from experience here!). Consciously take some time-outs where you spend time alone with yourself taking stock and remind your lovers to do the same - especially if anyone in the group is new to polyamory.</div><div style="font-family: arial; font-size: small;"><div><br/></div><div>I do not believe in hierarchical relationships - I prefer to see all my partners as part of my extended family, and families do their best not to play favourites. When any one person in my "family" has an issue, all of us who are involved sit down and talk about it in a group. They don't have to all be BBF's, or lovers, but they should at least be able to have an adult conversation with one another in a friendly manner. I may not be popular for saying this, but personally I feel that wanting to segregate different partners is a sign of a lack of trust between partners and maturity from the person who is insisting on the segregation.</div><div><br/></div><div>It essentially boils down to an inability to accept the truth - that you are in a non-monogamous relationship, and that this requires adjustments on your part that may trigger your feelings of insecurity and abandonment. If you are not willing and able to address these issues in an adult fashion through clear communication with all involved parties, you may not be mature enough emotionally to handle polyamory. </div><div><br/></div><div>If those feelings are born out of issues in your existing relationship, it is best to resolve these issues with your partner BEFORE entering into a new relationship with a third party. If they are born out of previous trauma or abuse, I'd suggest getting therapy for a while, then trying again once you've learned to handle the issues better. It all boils down to taking personal responsibility for your own needs and happiness.</div><div><br/></div><div>For me the heart of the matter is that there are no hard rules in Polyamory - much like Anarchy - and that it comes down to each of the partners involved knowing their own limitations well and practicing self discipline. There are no poly-policemen who will keep them in line, and it is up to them to show the maturity needed to self-regulate their relationship. </div><div><br/></div><div>That's all she wrote!</div></div><div class="blogger-post-footer"><img alt="" height="1" src="https://blogger.googleusercontent.com/tracker/3746667170663095627-6156987450901734149?l=halcyonpage.blogspot.com" width="1"/></div></div>
    </content>
    <updated>2012-04-11T10:52:52Z</updated>
    <published>2012-04-11T10:50:00Z</published>
    <category scheme="http://www.blogger.com/atom/ns#" term="open relationship"/>
    <category scheme="http://www.blogger.com/atom/ns#" term="polyamory"/>
    <category scheme="http://www.blogger.com/atom/ns#" term="relationship advice"/>
    <author>
      <name>Whizper</name>
      <email>noreply@blogger.com</email>
      <uri>http://www.blogger.com/profile/03090091115823252921</uri>
    </author>
    <source>
      <id>tag:blogger.com,1999:blog-3746667170663095627</id>
      <category term="manifesto"/>
      <category term="open relationship"/>
      <category term="gay"/>
      <category term="freesoftware"/>
      <category term="vulnerability"/>
      <category term="culture"/>
      <category term="non-monogamy"/>
      <category term="relationship advice"/>
      <category term="memory"/>
      <category term="joy"/>
      <category term="icommons"/>
      <category term="shame"/>
      <category term="Pirogoeth"/>
      <category term="wikipedia"/>
      <category term="sexpositive"/>
      <category term="infedelity"/>
      <category term="all-cities"/>
      <category term="cheating"/>
      <category term="polyamory. Firework"/>
      <category term="wikimedia"/>
      <category term="ted talks"/>
      <category term="Michigan Spur"/>
      <category term="courtship"/>
      <category term="lesbian"/>
      <category term="cc"/>
      <category term="polyamory"/>
      <category term="LGBT"/>
      <category term="openheritage"/>
      <category term="fear"/>
      <category term="love"/>
      <category term="coming out of the closet"/>
      <author>
        <name>Whizper</name>
        <email>noreply@blogger.com</email>
        <uri>http://www.blogger.com/profile/03090091115823252921</uri>
      </author>
      <link href="http://halcyonpage.blogspot.com/feeds/posts/default" rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml"/>
      <link href="http://www.blogger.com/feeds/3746667170663095627/posts/default" rel="self" type="application/atom+xml"/>
      <link href="http://halcyonpage.blogspot.com/" rel="alternate" type="text/html"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <link href="http://www.blogger.com/feeds/3746667170663095627/posts/default?start-index=26&amp;max-results=25" rel="next" type="application/atom+xml"/>
      <title>Halcyon Days</title>
      <updated>2012-04-16T02:51:41Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://mithrandi.net/blog/?p=396</id>
    <link href="http://mithrandi.net/blog/2012/03/an-introduction-to-mantissa-part-3-navigation-powerups-and-other-friends/" rel="alternate" type="text/html"/>
    <link href="http://mithrandi.net/blog/2012/03/an-introduction-to-mantissa-part-3-navigation-powerups-and-other-friends/#comments" rel="replies" type="text/html"/>
    <link href="http://mithrandi.net/blog/2012/03/an-introduction-to-mantissa-part-3-navigation-powerups-and-other-friends/feed/" rel="replies" type="application/atom+xml"/>
    <title xml:lang="en">Tristan Seligmann (mithrandi): An introduction to Mantissa (part 3): Navigation powerups and other friends</title>
    <summary xml:lang="en">This is the fourth post in a series of articles about Mantissa. In the previous article I described how an offering can provide powerups to be included in a product, which will then be installed on a user store; in this installment, I will discuss what form these powerups can actually take, and how they [...]</summary>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>This is the fourth post in a <a href="http://mithrandi.net/blog/tag/mantissa-intro/">series of articles</a> about <a href="https://launchpad.net/mantissa">Mantissa</a>.</p>
<p>In <a href="http://mithrandi.net/blog/2010/07/an-introduction-to-mantissa-part-2-offerings/">the previous article</a> I described how an offering can provide powerups to be included in a product, which will then be installed on a user store; in this installment, I will discuss what form these powerups can actually take, and how they allow you to expose your application’s functionality to the user.</p>
<p>One of the most commonly-implemented powerup interfaces in Mantissa is <code>INavigableElement</code>. Mantissa has a somewhat generalized idea of “navigation”, whereby a nested menu structure can be defined through <code>INavigableElement</code> powerups, and then displayed by different implementations for different protocols; for example, the web view has a visual dropdown menu system, whereas the SSH server presents a textual menu system. A typical <code>INavigableElement</code> powerup implementation will look something like this:</p>
<pre class="brush: python; title: ; notranslate">from zope.interface import implements
from axiom.item import Item
from axiom.attributes import integer
from xmantissa.ixmantissa import INavigableElement
from xmantissa.webnav import Tab

class PonyCreator(Item):
    """
    Powerup for creating and managing ponies.
    """
    implements(INavigableElement)
    powerupInterfaces = [INavigableElement]

    ponyQuota = integer(allowNone=False, default=10)

    def getTabs(self):
        return [Tab('ZOMG PONIES!', self.storeID, 1.0)]
</pre>
<p><code>INavigableElement</code> only has one method, <code>getTabs</code>, which returns a list of “tabs” or menu items to be presented in the nav. The primary components of a tab are a title (which is how the item is displayed in the UI), the <code>storeID</code> of an item in the same store which the tab points to, and a float between 0.0 and 1.0 indicating the sort priority of the tab (higher values sort sooner). In this case, we have the tab pointing directly at the <code>PonyCreator</code> item itself; in order for this to work, we’ll need some extra code to allow <code>PonyCreator</code> to be exposed via the web.</p>
<p>In order for an item in a user’s store to be privately accessible via the web by that user, it needs to be adaptable to the (somewhat poorly-named) <code>INavigableFragment</code> interface. This is almost always done by defining an adapter from the item type to <code>INavigableFragment</code>:</p>
<pre class="brush: python; title: ; notranslate">from twisted.python.components import registerAdapter
from nevow.athena import LiveElement
from xmantissa.webtheme import ThemedDocumentFactory
from xmantissa.ixmantissa import INavigableFragment, ITemplateNameResolver

class PonyCreatorView(LiveElement):
    """
    Web view for Pony management.
    """
    implements(INavigableFragment)

    title = u'Pony management'
    docFactory = ThemedDocumentFactory('pony-creator', 'resolver')

    def __init__(self, ponyCreator):
        super(PonyCreatorView, self).__init__()
        self.ponyCreator = ponyCreator
        self.resolver = ITemplateNameResolver(self.ponyCreator.store.parent)

registerAdapter(PonyCreatorView, PonyCreator, INavigableFragment)
</pre>
<p>Our element will be wrapped in the Mantissa shell when it is rendered, so we cannot control the page title directly from the template, but the title attribute provides a way for our element to specify the page title. <code>ThemedDocumentFactory</code> is used to retrieve the template through the theme system; the arguments are the name of the template (‘pony-creator’) and the name of the attribute holding the <code>ITemplateNameResolver</code> implementation used to retrieve the template. This attribute is set in <code>__init__</code> using a slightly awkward method; the template resolver should really be passed in by Mantissa somehow, but currently there is no mechanism for doing this, so instead we retrieve the default resolver ourselves from the site store.</p>
<p>This is all that is needed for hooking some code up to the web view; any further UI behaviour would be implemented in HTML / JavaScript in <code>PonyCreatorView</code>, usually by invoking additional methods defined on <code>PonyCreator</code>.</p>
<p>Next up: Sharing, or “How do I publish public / shared content?”</p></div>
    </content>
    <updated>2012-03-04T20:33:14Z</updated>
    <published>2012-03-04T08:51:24Z</published>
    <category scheme="http://mithrandi.net/blog" term="Uncategorized"/>
    <category scheme="http://mithrandi.net/blog" term="mantissa"/>
    <category scheme="http://mithrandi.net/blog" term="mantissa-intro"/>
    <category scheme="http://mithrandi.net/blog" term="tech"/>
    <author>
      <name>mithrandi</name>
      <uri>http://mithrandi.net/</uri>
    </author>
    <source>
      <id>http://mithrandi.net/blog/feed/</id>
      <link href="http://mithrandi.net/blog" rel="alternate" type="text/html"/>
      <link href="http://mithrandi.net/blog/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://pubsubhubbub.appspot.com" rel="hub" type="text/html"/>
      <link href="http://superfeedr.com/hubbub" rel="hub" type="text/html"/>
      <subtitle xml:lang="en">the shards of meaning</subtitle>
      <title xml:lang="en">Shattered Crystalline Matrix</title>
      <updated>2012-04-14T18:39:08Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://localloop.co.za/?p=789</id>
    <link href="http://localloop.co.za/2012/02/install-xfce-and-carry-on-with-your-life/" rel="alternate" type="text/html"/>
    <link href="http://localloop.co.za/2012/02/install-xfce-and-carry-on-with-your-life/#comments" rel="replies" type="text/html"/>
    <link href="http://localloop.co.za/2012/02/install-xfce-and-carry-on-with-your-life/feed/atom/" rel="replies" type="application/atom+xml"/>
    <title xml:lang="en">Simeon Miteff (simeon): Install XFCE and carry on with your life</title>
    <summary xml:lang="en">Evolution of a Linux desktop user: Get XFree86 to work on your S3 graphics card under Linux, dabble with FVWM and Windowmaker. Discover KDE in their 1.x days – become a fan of the heavyweight desktop environment. Keep using KDE, notice how each release gets faster than the previous one, think you’ve found desktop nirvana [...]</summary>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>Evolution of a Linux desktop user:</p>
<ol>
<li>Get XFree86 to work on your S3 graphics card under Linux, dabble with FVWM and Windowmaker.</li>
<li>Discover KDE in their 1.x days – become a fan of the heavyweight desktop environment.</li>
<li>Keep using KDE, notice how each release gets <em>faster </em>than the previous one, think you’ve found desktop nirvana with KDE 3.5.</li>
<li>KDE 4.0 is released, postpone package updates so that you can stay with 3.5.</li>
<li>Eventually give up and make a painless switch to Gnome2.</li>
<li>When Ubuntu makes Unity the default desktop, keep using Gnome2.</li>
<li>Gnome3 is released, postpone package updates so that you can stay with 2.</li>
<li>Eventually give up and try KDE ~4.5, watch it crash. Upgrade your Ubuntu to 11.08 to get KDE 4.7.</li>
<li>Use KDE 4.7 for three weeks, notice that it is still much worse than KDE 3.5 or Gnome2 was.</li>
<li>Realize that upgrading your Ubuntu nuked Gnome2.</li>
<li>Try Gnome3 for 2 minutes, notice it’s gone 10 years backwards in terms of features.</li>
<li>Try the Cinnamon interface for Gnome3, wonder how you move the workspace switcher to another panel. After discovering on a forum that it requires editing stuff in Dconfig – give up.</li>
<li>In a last act of desperation install MATE (the Gnome2 fork). Log in, watch it crash.</li>
<li><strong>Install XFCE</strong>, customize it to behave like Gnome 2. <strong>Carry on with your life.</strong></li>
</ol>
<p>Of course, if XFCE becomes popular enough, hipster coders will remove all the features and make it look like the latest desktop environment from Apple. Then you’re off to install LXDE.</p>
<p>What is the sustainable solution?</p>
<p>Buy a Mac and get the hipster interface, but with more features and less bugs?</p></div>
    </content>
    <updated>2012-03-02T11:34:08Z</updated>
    <published>2012-02-28T14:00:03Z</published>
    <category scheme="http://localloop.co.za" term="Technical"/>
    <category scheme="http://localloop.co.za" term="cinnamon"/>
    <category scheme="http://localloop.co.za" term="gnome"/>
    <category scheme="http://localloop.co.za" term="hipsters"/>
    <category scheme="http://localloop.co.za" term="kde"/>
    <category scheme="http://localloop.co.za" term="lxde"/>
    <category scheme="http://localloop.co.za" term="macosx"/>
    <category scheme="http://localloop.co.za" term="mate"/>
    <category scheme="http://localloop.co.za" term="unity"/>
    <category scheme="http://localloop.co.za" term="xfce"/>
    <author>
      <name>Simeon Miteff</name>
      <uri>http://www.localloop.co.za</uri>
    </author>
    <source>
      <id>http://localloop.co.za/feed/atom/</id>
      <link href="http://localloop.co.za" rel="alternate" type="text/html"/>
      <link href="http://localloop.co.za/feed/atom/" rel="self" type="application/atom+xml"/>
      <subtitle xml:lang="en">Internet and Networking in South Africa</subtitle>
      <title xml:lang="en">Local Loop</title>
      <updated>2012-04-18T12:27:52Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://confluence.za.net/blog/?p=265</id>
    <link href="http://confluence.za.net/blog/?p=265" rel="alternate" type="text/html"/>
    <link href="http://confluence.za.net/blog/?p=265#comments" rel="replies" type="text/html"/>
    <link href="http://confluence.za.net/blog/?feed=atom&amp;p=265" rel="replies" type="application/atom+xml"/>
    <title xml:lang="en">Adrianna Pińska (Confluence): Oneiric!</title>
    <summary xml:lang="en">Today I upgraded. Yeah, it’s late — I delay my upgrades by a couple of months so that the early adopters set off all the landmines (thanks, guys). It was a mostly painless upgrade. On the whole, Ubuntu’s compatibility with non-standard WMs (like Fluxbox) seems to be improving steadily — so to everyone who is [...]</summary>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>Today I upgraded.  Yeah, it’s late — I delay my upgrades by a couple of months so that the early adopters set off all the landmines (thanks, guys).</p>
<p>It was a mostly painless upgrade.  On the whole, Ubuntu’s compatibility with non-standard WMs (like Fluxbox) seems to be improving steadily — so to everyone who is still whinging about Unity: try another WM.  It’s officially not hard anymore.</p>
<p>A quick rundown of issues:</p>
<p><strong>Volume control</strong></p>
<p><code>gnome-volume-control-applet</code> is dead, and has been replaced by <code>gnome-sound-applet</code>.  It’s a GTK3 app, so it’s going to be hideous until you set the GTK3 theme (see below).</p>
<p><strong>Autostart</strong></p>
<p>It looks like a few more of the config files in <code>/etc/xdg/autostart/</code> have stopped dissing non-GNOME WMs for no reason (the one for the Network Manager applet, for example), so <code>fbautostart</code> starts a bunch more stuff and I don’t have to do it myself.</p>
<p><strong>Goodbye, <code>gnome-settings-daemon</code></strong></p>
<p>I figured out how to set up compose keys without <code>gnome-settings-daemon</code>, and thus have been able to eliminate it.  Good riddance.</p>
<p><strong><code>update-notifier</code> and privilege escalation</strong></p>
<p>I fixed this The Right Way, so no more <code>--force-gksu</code>.  The right way involves starting <code>/usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1</code>, which is sadly still dissing non-GNOME WMs.  It would have been even more correct to edit the autostart file than to add it to <code>.fluxbox/startup</code>, but this way is shorter.</p>
<p><strong>My current <code>.fluxbox/startup</code> (it’s shorter without the comments)</strong></p>
<p><code><br/>
# (here I run an xrandr script to auto-detect the monitor layout)<br/>
# the thing that fixes update-notifier<br/>
/usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1 &amp;<br/>
# the thing that starts all the XDG autostart things<br/>
fbautostart &amp;<br/>
# compose keys<br/>
setxkbmap -option compose:rwin<br/>
setxkbmap -option compose:lwin<br/>
# super old-school system monitor<br/>
gkrellm -w &amp;<br/>
# the new sound applet<br/>
gnome-sound-applet &amp;<br/>
# the thing that makes my screen red at night<br/>
gtk-redshift -l -33.92:18.42 -t 6500:5500 &amp;<br/>
# the thing that gives me multiple clipboards<br/>
klipper &amp;<br/>
# my awesome quakelike terminal<br/>
yakuake &amp;<br/>
# the thing that actually launches Fluxbox<br/>
exec fluxbox<br/>
</code></p>
<p><strong>Themes and fonts (or OMGWTF, could you all <em>possibly</em> try to interoperate?)</strong></p>
<p>The good news is that you <em>can</em> set themes and font hinting for <em>all the things</em>. The bad news is that with the arrival of GTK3, the number of config files where you need to set what is mostly the <em>exact same information</em> — unless you’re one of those weirdos who only run apps from one toolkit — has ballooned hilariously to four.  Yes, four.  And that’s assuming you don’t care about GTK1 or Qt3.  Let’s take a tour:</p>
<p><strong>GTK2</strong></p>
<p><strong>Theme</strong>: can be set with <code>gtk-chtheme</code>.  That goes in <code>.gtkrc-2.0</code>. The generated file includes <code>.gtkrc.mine</code>, so that’s where you should put custom things, like…</p>
<p><strong>Font config</strong>: goes in <code>.gtkrc.mine</code>, and looks like this:</p>
<p><code>gtk-xft-dpi=96<br/>
gtk-xft-hinting=1<br/>
gtk-xft-hintstyle=hintmedium<br/>
gtk-xft-rgba=rgb<br/>
gtk-xft-antialias=1</code></p>
<p><strong>Qt4</strong></p>
<p><strong>Theme</strong>: can be changed with <code>qtconfig-qt4</code>.</p>
<p><strong>Font config</strong>: goes in <code>.Xresources</code>, which looks like this:</p>
<p><code>Xft.dpi: 96<br/>
Xft.antialias: true<br/>
Xft.hinting: true<br/>
Xft.rgba: rgb<br/>
Xft.autohint: true<br/>
Xft.hintstyle: hintmedium<br/>
Xft.lcdfilter: lcddefault</code></p>
<p>I assume that KDE overrides these settings if you run enough of it.</p>
<p><strong><code>.fonts.conf</code></strong></p>
<p>I forget why this is important.  I think Firefox needs it, or something.  Anyway, it looks like this:</p>
<p><code>&lt;?xml version='1.0'?&gt;<br/>
&lt;!DOCTYPE fontconfig SYSTEM 'fonts.dtd'&gt;<br/>
&lt;fontconfig&gt;<br/>
 &lt;match target="font"&gt;<br/>
  &lt;edit mode="assign" name="rgba"&gt;<br/>
   &lt;const&gt;rgb&lt;/const&gt;<br/>
  &lt;/edit&gt;<br/>
 &lt;/match&gt;<br/>
 &lt;match target="font"&gt;<br/>
  &lt;edit mode="assign" name="hinting"&gt;<br/>
   &lt;bool&gt;true&lt;/bool&gt;<br/>
  &lt;/edit&gt;<br/>
 &lt;/match&gt;<br/>
 &lt;match target="font"&gt;<br/>
  &lt;edit mode="assign" name="hintstyle"&gt;<br/>
   &lt;const&gt;hintmedium&lt;/const&gt;<br/>
  &lt;/edit&gt;<br/>
 &lt;/match&gt;<br/>
 &lt;match target="font"&gt;<br/>
  &lt;edit mode="assign" name="antialias"&gt;<br/>
   &lt;bool&gt;true&lt;/bool&gt;<br/>
  &lt;/edit&gt;<br/>
 &lt;/match&gt;<br/>
 &lt;match target="font" &gt;<br/>
  &lt;edit mode="assign" name="dpi" &gt;<br/>
   &lt;double&gt;96&lt;/double&gt;<br/>
  &lt;/edit&gt;<br/>
 &lt;/match&gt;<br/>
&lt;/fontconfig&gt;</code></p>
<p><strong>GTK3</strong></p>
<p>GNOME Tweak Tool won’t work unless you run the settings daemon.  I’m afraid you currently have to do everything by hand, by editing <code>.config/gtk-3.0/settings.ini</code>, which looks like this:</p>
<p><code>[Settings]<br/>
gtk-theme-name = Adwaita<br/>
gtk-fallback-icon-theme = gnome<br/>
gtk-font-name = DejaVu Sans 10</code></p>
<p>gtk-xft-hinting = 1<br/>
gtk-xft-hintstyle = hintmedium<br/>
gtk-xft-rgba = rgb</p>
<p><strong>Credits</strong></p>
<p>Tumbleweed, Nitwit and the rest of #clug; and the good people who write documentation for Arch Linux (you have the best documentation, seriously).</p>
<p><em>ETA: oh, yeah, here’s how you turn off <a href="http://www.tuxgarage.com/2011/04/disable-overlay-scrollbars-in-ubuntu.html" title="disable overlay scrollbars in ubuntu">those stupid hide-and-seek scrollbars</a> (they’ve been annoying me since Natty, but I only found out what they were called today).</em></p></div>
    </content>
    <updated>2012-02-20T23:00:15Z</updated>
    <published>2012-02-20T22:54:08Z</published>
    <category scheme="http://confluence.za.net/blog" term="Tech and coding"/>
    <author>
      <name>confluence</name>
      <uri>http://confluence.za.net</uri>
    </author>
    <source>
      <id>http://confluence.za.net/blog/?feed=atom</id>
      <link href="http://confluence.za.net/blog" rel="alternate" type="text/html"/>
      <link href="http://confluence.za.net/blog/?feed=atom" rel="self" type="application/atom+xml"/>
      <subtitle xml:lang="en">Powered by space monkeys!</subtitle>
      <title xml:lang="en">Confluence</title>
      <updated>2012-02-20T23:00:15Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://blog.saturnlaboratories.co.za/125 at http://blog.saturnlaboratories.co.za</id>
    <link href="http://blog.saturnlaboratories.co.za/archive/2012/02/20/successful-ubuntu-hour-cape-town-held-11th-february" rel="alternate" type="text/html"/>
    <title>Raoul Snyman (superfly): Successful Ubuntu Hour in Cape Town held on the 11th of February</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>I should have blogged a while ago about this, but didn't get around to it till now...</p><p>I decided a few months ago that I wanted to have an Ubuntu hour in Cape Town, as most of them happen out in Stellenbosch, and I don't really get the time to drive out there. In true open source style, if you want something done you need to do it yourself (not in a negative sense though, it's more like a self-help style thing), so I started organising it.</p><p>I eventually decided to hold it in Rondebosch, as that seems somewhat central, and after asking the Ubuntu-ZA mailing list and setting up a Doodle, it seemed the best day was the 11th of Feb.</p><p>I was rather worried that I would be the only person who could make it, since a few people indicated that they might not be able to make it, but in the end we had 8 people there. In terms of numbers it was a success, but I did rather wish there were more non-techie people so that we could answer questions people might have about open source software and Ubuntu.</p><p>Maia has some pictures of the event over on her blog: <a href="http://my-ubuntu-day.blogspot.com/2012/02/feb-ubuntu-hour-rondebosch.html">http://my-ubuntu-day.blogspot.com/2012/02/feb-ubuntu-hour-rondebosch.html</a></p></div>
    </summary>
    <updated>2012-02-20T11:42:43Z</updated>
    <category scheme="http://blog.saturnlaboratories.co.za/tags/cape-town" term="Cape Town"/>
    <category scheme="http://blog.saturnlaboratories.co.za/tags/february" term="February"/>
    <category scheme="http://blog.saturnlaboratories.co.za/tags/rondebosch" term="Rondebosch"/>
    <category scheme="http://blog.saturnlaboratories.co.za/tags/ubuntu" term="Ubuntu"/>
    <category scheme="http://blog.saturnlaboratories.co.za/tags/ubuntu-hour" term="Ubuntu Hour"/>
    <author>
      <name>raoul</name>
    </author>
    <source>
      <id>http://blog.saturnlaboratories.co.za</id>
      <link href="http://blog.saturnlaboratories.co.za" rel="alternate" type="text/html"/>
      <link href="http://blog.saturnlaboratories.co.za/rss.xml" rel="self" type="application/rss+xml"/>
      <title>Planetary Ponderings</title>
      <updated>2012-02-20T12:05:06Z</updated>
    </source>
  </entry>

  <entry>
    <id>tag:blogger.com,1999:blog-22557003.post-2472045493150568082</id>
    <link href="http://blog.grahampoulter.com/2012/02/maximum-wordpress-performance-on-ec2.html" rel="alternate" type="text/html"/>
    <title>Graham Poulter (verdant): Maximum Wordpress Performance on an EC2 Micro Instance</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><div class="separator" style="clear: both; text-align: center;">
<a class="vt-p" href="http://3.bp.blogspot.com/-8Jlo117TT0c/TzZ1p1k7tMI/AAAAAAAACeE/mFS7ApkNRsA/s1600/wordpress.jpg" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="http://3.bp.blogspot.com/-8Jlo117TT0c/TzZ1p1k7tMI/AAAAAAAACeE/mFS7ApkNRsA/s1600/wordpress.jpg"/></a></div>
<br/>
This is how to get <a class="vt-p" href="http://wordpress.org/">Wordpress </a>handling a reasonable continuous load on an <a class="vt-p" href="http://aws.amazon.com/ec2/instance-types/">Amazon EC2 t1.micro instance</a> using only standard <a class="vt-p" href="http://www.ubuntu.com/">Ubuntu</a> packages. I'm writing down the recipe before I forget how I managed it, and because I could not find a post that specifically details how to get all of Wordpress, Apache, mod_rewrite, mod_fastcgi, php-fpm and php-apc to play nicely together. Subsets, but not all of them. There's plenty out there for nginx though. Eventually I pieced an Apache solution together from many sources, and the synthesis follows. One post in particular from Brandon's Blog on <a class="vt-p" href="http://www.brandonturner.net/blog/2009/07/fastcgi_with_php_opcode_cache/">FastCGI with PHP Opcode Cache</a> does capture the basic principle and explains the benefits.  Note: most of the benefit is from opcode caching, mod_php will be fine for most sites.<br/>
<br/>
<a name="more"/><br/>
Why an EC2 micro instance? Micro instances are only $0.025 per hour. However, a stock Wordpress/mod_php install quickly runs out of memory and CPU resources at just one request per second. One user ctrl-clicking on posts in the archive for a minute, or a vulnerability scanner, or rude crawler, can DOS your site for everyone else. Without these optimisations, your remaining option is to rent a small instance at 3.8x the price of a micro. I realise the irony of going to all this effort myself and yet my own blog is hosted on Blogger.<br/>
<br/>
Aside: If you are using mod_php on a micro, set <i><a class="vt-p" href="http://httpd.apache.org/docs/2.2/mod/mpm_common.html#maxclients">MaxClients</a></i> from 150 down to 50 to respect the micro's limited 593MB of system memory, because each Apache+mod_php process chews about 10MB. Even with FastCGI bringing Apache processes down to 2.5MB, keep it low because there's only one CPU core for all 50 to share. On a micro I also recommend setting MaxRequestsPerChild to 1000, KeepAliveTimeout to 5, and MaxKeepAliveRequests to 30 (about two-thirds of MaxClients).<br/>
<br/>
<b>List of ingredients:</b><br/>
<ul>
<li><a class="vt-p" href="http://httpd.apache.org/docs/2.2/">apache2</a> - standard Apache 2.2 webserver on Ubuntu 11.10</li>
<li><a class="vt-p" href="http://php.net/manual/en/book.apc.php">php-apc</a> - Alternative PHP Cache, providing shared opcode cache</li>
<li><a class="vt-p" href="http://www.fastcgi.com/mod_fastcgi/docs/mod_fastcgi.html">libapache2-mod-fastcgi</a> - FastCGI module capable of talking to php-fpm.</li>
<li><a class="vt-p" href="http://php-fpm.org/">php5-fpm</a> - PHP FastCGI Process Manager. Does what it says on the box.</li>
<li><a class="vt-p" href="http://wordpress.org/extend/plugins/apc/">APC Object Cache Backend</a> - WP can use APC to retain objects between requests.</li>
<li><a class="vt-p" href="http://wordpress.org/extend/plugins/wp-super-cache/">WP Super Cache</a> - cache pages to static HTML</li>
</ul>
<br/>
PHP FPM works with mod_fastcgi OR mod_fcgi_proxy but <i>NOT</i> mod_fcgid, because the latter does its own process management exclusively, so does not support proxying to an external process manager like PHP-FPM, and FPM is necessary to get the benefit of opcode cache sharing.<br/>
<div>
<br/>
<b>Basic Setup</b><br/>
<br/>
First <a class="vt-p" href="http://codex.wordpress.org/Installing_WordPress" style="font-family: inherit;">install Wordpress from scratch</a> under Apache + mod_php to a <a>DocumentRoot</a> of /srv/wordpress. On Ubuntu,  run sudo apt-get install libapache2-mod-php5 <i>php5-mysql php5-gd</i> to get dependencies.<br/>
<br/>
Configure <a class="vt-p" href="http://codex.wordpress.org/Using_Permalinks">Permalinks</a> using mod_rewrite, since they're pretty and getting mod_rewrite to play nice with FastCGI is part of the trick.<br/>
<br/>
<b>WP Super Cache</b><br/>
<br/>
Install WP Super Cache from the plugin manager, using the default "PHP" caching. WP Super Cache is a huge win for minimal effort, serving cached HTML to anonymous users without regenerating the page.<br/>
<br/>
<b>Opcode and Object Caching</b><br/>
<br/>
Install the APC opcode cache with <i>sudo apt-get install php-apc</i>. Run  <i>php -r 'phpinfo();'|grep apc</i> to check that it's enabled. APC causes PHP sub-processes to inherit a warm opcode cache, greatly conserving CPU resources.<br/>
<br/>
Extract /usr/share/doc/php-apc/apc.php.gz to /srv/wordpress/apc.php and visit /apc.php to see how the cache is doing. If fragmentation is substantial then shm_size is too low. Restrict access to apc.php.<br/>
<br/>
<i>apc.shm_size = 64M</i> in /etc/php5/conf.d/apc.ini, because the default 32MB cache is too small for Wordpress (once you open Admin). Also set PHP <i>memory_limit</i> to 64M. Also set <i><a class="vt-p" href="http://apc.slam_defense/">apc.slam_defense</a> = 0</i> to prevent piles of "Potential cache slam averted for key" in Apache's error.log. The the <i>slam_defense</i> setting is deprecated by the default <i>apc.write_lock</i> anyway.<br/>
<br/>
Install the <a class="vt-p" href="http://plugins.svn.wordpress.org/apc/trunk/">trunk version</a> (supports WP 3.1+) of APC Object Cache Backend simply by placing object-cache.php in the wp-content directory. Simply dropping the file in enables Wordpress to cache complex PHP objects between requests and is also a huge win for little effort.<br/>
<br/>
<b>Set up mod_fastcgi with FPM</b><br/>
<br/>
FPM takes PHP out of Apache, cutting startup memory for new Apache workers from 10MB to 2.5MB per process.<br/>
<b><br/></b><br/>
<b>WARNING</b>: <a href="http://www.brandonturner.net/blog/2009/07/fastcgi_php_opcode_cache_benchmarks/">Brandon's benchmarks</a> found reqs/second performance is not improved by switching from mod_php to FastCGI, most of the performance gain came from opcode caching.  I now only recommend using FastCGI+FPM in case of (a) many concurrent requests and (b) serving a lot of static files (not just PHP content).  In those cases the memory saving should be substantial.<br/>
<br/>
Uncomment the "multiverse" lines in <i>/etc/apt/sources.list</i> and run apt-get update to make libapache2-mod-fastcgi available. Run <i>sudo apt-get install libapache2-mod-fastcgi php5-cgi php5-fpm, </i> which also enables mod_fastcgi and starts the "php5-fpm" service. For a micro instance, set FPM <i>max_children</i> to 6, <i>max_requests</i> to 500.  Immortal PHP processes been known to go crazy after a while - after a couple of days I found one hogging 100% CPU - so don't let them live forever.<br/>
<br/>
Add the following lines inside your WordPress <a class="vt-p" href="http://httpd.apache.org/docs/2.2/vhosts/">VirtualHost</a>, adapting "/srv/wordpress" to your DocumentRoot. It <i>pretends</i> that there exists a PHP5 executable called "/php5.fcgi". mod_fastcgi intercepts calls to php5.fcgi and passes them to FPM instead. Also enable the "actions" module to support the "Action" line.<br/>
<br/>
<pre>&lt;IfModule !mod_php5.c&gt;
&lt;IfModule mod_fastcgi.c&gt;
        Alias /php5.fcgi /srv/wordpress/php5.fcgi
        FastCgiExternalServer /srv/wordpress/php5.fcgi -host 127.0.0.1:9000
        AddHandler php-fpm .php
        Action php-fpm /php5.fcgi
&lt;/IfModule&gt;
&lt;/IfModule&gt;
</pre>
<br/>
<b>Making mod_fastcgi work with mod_rewrite</b><br/>
<br/>
The final trick is avoiding infinite recursion between mod_rewrite and mod_fastcgi, which shows up as lots of these in error.log: <i>the Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary.</i><br/>
<br/>
The solution is to add a <i>RewriteCond %{REQUEST_URI} !^/php5.fcgi</i> just before the final <i>RewriteRule . index.php [L]</i> to prevent /php5.fcgi (the handler) from being re-written to /index.php, which then needs a handler (/php5.fcgi), which is then rewritten to /index.php, ad infinitum. The complete rule block looks as follows:<br/>
<br/>
<div>
<pre style="border-bottom-style: none; border-color: initial; border-left-style: none; border-right-style: none; border-top-style: none; font-family: 'Bitstream Vera Sans Mono', monospace; font-size: 13px; padding-bottom: 10px; padding-left: 10px; padding-right: 10px; padding-top: 10px;"><span class="nb" style="color: #007020;">RewriteEngine</span> <span class="k" style="color: #007020; font-weight: bold;">On</span>
<span class="nb" style="color: #007020;">RewriteBase</span> /
<span class="nb" style="color: #007020;">RewriteRule</span> ^index\.php$ - [L]
<span class="nb" style="color: #007020;">RewriteRule</span> ^files/(.+) wp-includes/ms-files.php?file=$1 [L]
<span class="nb" style="color: #007020;">RewriteCond</span> %{REQUEST_FILENAME} -f [OR]
<span class="nb" style="color: #007020;">RewriteCond</span> %{REQUEST_FILENAME} -d
<span class="nb" style="color: #007020;">RewriteRule</span> ^ - [L]
<span class="nb" style="color: #007020;">RewriteCond</span> %{REQUEST_URI} !^/php5.fcgi
<span class="nb" style="color: #007020;">RewriteRule</span> . index.php [L]</pre>
</div>
<br/>
<div>
Now you are ready to <i>a2enmod fastcgi &amp;&amp; a2dismod php5 &amp;&amp; service apache2 restart.</i></div>
<br/>
<div>
Try a test query. If anything goes wrong, you can immediately revert to mod_php5 by running <i>a2enmod php5 &amp;&amp; a2dismod fastcgi &amp;&amp; service apache2 restart</i>. Post a comment and I'll see if I can help.</div>
</div><div class="blogger-post-footer"><img alt="" height="1" src="https://blogger.googleusercontent.com/tracker/22557003-2472045493150568082?l=blog.grahampoulter.com" width="1"/></div></div>
    </summary>
    <updated>2012-02-11T14:21:00Z</updated>
    <category scheme="http://www.blogger.com/atom/ns#" term="technology"/>
    <category scheme="http://www.blogger.com/atom/ns#" term="howto"/>
    <author>
      <name>Graham Poulter</name>
      <email>noreply@blogger.com</email>
    </author>
    <source>
      <id>tag:blogger.com,1999:blog-22557003</id>
      <category term="linux"/>
      <category term="technology"/>
      <category term="finance"/>
      <category term="lifehack"/>
      <category term="python"/>
      <category term="opinion"/>
      <category term="analysis"/>
      <category term="news"/>
      <category term="capetown"/>
      <category term="howto"/>
      <category term="journal"/>
      <category term="windows"/>
      <category term="fail"/>
      <category term="creations"/>
      <category term="philosophy"/>
      <category term="bash"/>
      <category term="review"/>
      <category term="how"/>
      <author>
        <name>Graham Poulter</name>
        <email>noreply@blogger.com</email>
      </author>
      <link href="http://blog.grahampoulter.com/" rel="alternate" type="text/html"/>
      <link href="http://blog.grahampoulter.com/feeds/posts/default?redirect=false&amp;alt=rss" rel="self" type="application/atom+xml"/>
      <title>Graham Poulter's Blog</title>
      <updated>2012-05-17T07:05:08Z</updated>
    </source>
  </entry>

  <entry>
    <id>tag:blogger.com,1999:blog-3746667170663095627.post-3291524114734103477</id>
    <link href="http://halcyonpage.blogspot.com/feeds/3291524114734103477/comments/default" rel="replies" type="application/atom+xml"/>
    <link href="http://www.blogger.com/comment.g?blogID=3746667170663095627&amp;postID=3291524114734103477" rel="replies" type="text/html"/>
    <link href="http://www.blogger.com/feeds/3746667170663095627/posts/default/3291524114734103477" rel="edit" type="application/atom+xml"/>
    <link href="http://www.blogger.com/feeds/3746667170663095627/posts/default/3291524114734103477" rel="self" type="application/atom+xml"/>
    <link href="http://halcyonpage.blogspot.com/2011/12/simply-fabilus.html" rel="alternate" type="text/html"/>
    <title>Christel Breedt (Pirogoeth): Simply FABiLUS</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">7 days ago at 10:30pm on a Thursday night I walked into a rustic eatery two blocks away from my home in Observatory. I was tired, and a little annoyed at my husband for invoking the power of our relationship to convince me to come and meet the owners of the place.<div><br/></div><div>Fabio, a happy-go-lucky Italian economics major and Wesley, an ex-programmer from Durban, had just opened their vegetarian-only restaurant that Monday and they had big ideas for converting the space they had rented into an open Artists Collective and Cultural Exchange such as Observatory had never seen.</div><div><br/></div><div>They drank strong coffee and talked into the wee hours... by the time I arrived the topic was deeply philosophical and ranged between Anarchy vs. Capitalism, the importance of community and the ethics of vegetarian cooking.</div><div><br/></div><div>I only had to spend a short amount of time with these charming and attractive young men to realise that we were all kindred spirits, and that much of our beliefs and ideas overlapped. I was hooked! </div><div><br/></div><div>They needed people to help them run the shop because they were short staffed, but they were frank about the fact that money was too tight to mention. Arno and I felt so powerfully about the worth of the idea they were trying to establish that we joined their cause without reservation and in exchange for our meals.</div><div><br/></div><div>It very quickly transpired that our biggest value would be in the realm of the kitchen. Arno's incredible cooking very quickly became a hit - customers wistfully commented that his food made them miss their mother's home cooking and dozens of people expressed amazement at the fact that such simple and un-fucked up food could be so good. Arno and I brought our belief in eating what you think smells good (within the basic boundaries of basic balanced meals) to the menu, and it was soon decided that we would not have a fixed menu but rather simply offer a set meal of the day (as chosen by the chef who cooked it) and a selection of bespoke smoothies alongside the usual coffees and teas. </div><div><br/></div><div>Very soon Arno and I were both practically living in the shop. Every single one of our team members did their level best to be on duty as long and often as possible, usually at least 12-16 hours a day. We all believed so passionately in this collective dream of ours that we were willing to sacrifice whatever we could muster to help our dream survive. </div><div><br/></div><div>Unfortunately this was not enough. Not one, but two of our financial backers abruptly absconded without so much as an explanation, and suddenly Wesley and Fabio were left high and dry having spent their investments on renovations, fittings, furniture and equipment. Suddenly left without a cent of running expenses to float our company through the difficult early months, we floundered. Before we knew it the dream had been scuppered, and all seemed lost.</div><div><br/></div><div>But this is where the story <i>really</i> starts.</div><div><br/></div><div>In the seven days that we grew to know each other better we became a family. The pure unselfish sacrifice that each of our team members brought to the project was inspiring. Fabio, while working a day job to help float himself financially, would come in the evenings after a long day at the office and still work until closing time. Wesley gave up almost every cent he had trying to keep us in running capital, and would often be awake from 5am until after midnight, and ended up doing the dishes most of the time. Bianca, a Swiss language teacher, would come and help out on her off days after working a 12 hour shift as a barmaid. Arno and I did our best to show them the good Afrikaans Protestant work ethic. For those seven days I learned what it meant to have a group of people who could work together almost seamlessly. In those seven days there was not one cruel or harsh word spoken between us, despite us all being under undue pressure to make ends meet. We had meetings often, and everyone's opinion was respected and valued. We debated new ideas and made decisions as a team, often unanimously. We all knew what was at stake, we all had a shared vision, and so we all just got on with the work at hand. Most evenings we would end the day by sharing the leftover dinner from our day's preparations and drinking our signature fruit water ( water with a slice of whatever fresh fruits were available. My favourite was Melon and Mint)</div><div><br/></div><div>When it finally came to the day when Wesley, who held the lease in his name, had to inform our landlord that we would default on our rent in January and request a cancellation of our contract, the weather chose to tell the whole of the neighbourhood of our sorrow - it was cold and dark and wet all day. Everyone in the store could sense the change in our mood and it seemed things were to be as dark and grey as the weather.</div><div><br/></div><div>However, the following day, exactly one week after we first met, we decided to have a ceremonial drunk. We all sat around the table with glasses of red wine and played poker with dried chillies for chips. Then we had a rather wonderful philosophical discussion about Polyamory, after which we all sat down to what would likely be our last meal together as the Fabilus team. We had fantastic potjiekos with fresh ciabatta and rice; to a man, every one of us overate.</div><div><div><br/></div><div>We had, in a way, survived a great challenge together - even though in the end we lost - and through this loss we were bonded together as friends. The love I came to feel for my teammates will never be lost, and the joy of our shared experience will never be taken away. I will always have the wonderful music that I copied from Fabio's iPhone - beautiful jazz that became Fabilus' signature sound and will always remind me of how uncomplicated and kind Fabio was. I will always remember the way that Bianca smoked her vanilla rolled cigarettes and would help steer our meetings when they went off track by bringing out her detailed little notebook. Wesley's cheerfulness and willingness to always be the first to help out even when he was visibly dead on his feet. I'll remember the madness of us having cold showers in the back yard while someone held watch at the back door; of braaing potjiekos on a simple brick fireplace in the back yard. Watching people play chess through the front windows on our hand-painted board, and having the umbrellas make Cape Town Flowers when the wind got especially strong and nearly lifted them out of our make-shift mountings. Buying vegetables with Wesley at the market, buying malva pudding with Fabio, hugging Bianca after she changed her mind about needing a hug after Lucas (our arch enemy and one of the investors who pulled out) visited the shop briefly. Falling asleep on the hideous green couch with the pink cloth over it. Making hummus for the first time. Eating gourmet food every day for a week. Drawing the menu in chalk on the wall, a different dish each day. The dress that Hans gave me that he thought couldn't possibly be his own design because it was too bohemian. Making our own chocolate ice cream. Seeing Arno more happy than I've known him to be in years - more even than a vacation could have achieved. </div><div><br/></div><div>So what if we will be entering the New Year not a cent richer for the work we did for Fabilus? We have nevertheless been enriched by the experience; our hearts are lighter and more at peace than they have been in years. </div><div><br/></div><div>Thank you, Fabilus. We will miss you.</div></div><div class="blogger-post-footer"><img alt="" height="1" src="https://blogger.googleusercontent.com/tracker/3746667170663095627-3291524114734103477?l=halcyonpage.blogspot.com" width="1"/></div></div>
    </content>
    <updated>2011-12-23T07:05:20Z</updated>
    <published>2011-12-22T21:28:00Z</published>
    <author>
      <name>Whizper</name>
      <email>noreply@blogger.com</email>
      <uri>http://www.blogger.com/profile/03090091115823252921</uri>
    </author>
    <source>
      <id>tag:blogger.com,1999:blog-3746667170663095627</id>
      <category term="manifesto"/>
      <category term="open relationship"/>
      <category term="gay"/>
      <category term="freesoftware"/>
      <category term="vulnerability"/>
      <category term="culture"/>
      <category term="non-monogamy"/>
      <category term="relationship advice"/>
      <category term="memory"/>
      <category term="joy"/>
      <category term="icommons"/>
      <category term="shame"/>
      <category term="Pirogoeth"/>
      <category term="wikipedia"/>
      <category term="sexpositive"/>
      <category term="infedelity"/>
      <category term="all-cities"/>
      <category term="cheating"/>
      <category term="polyamory. Firework"/>
      <category term="wikimedia"/>
      <category term="ted talks"/>
      <category term="Michigan Spur"/>
      <category term="courtship"/>
      <category term="lesbian"/>
      <category term="cc"/>
      <category term="polyamory"/>
      <category term="LGBT"/>
      <category term="openheritage"/>
      <category term="fear"/>
      <category term="love"/>
      <category term="coming out of the closet"/>
      <author>
        <name>Whizper</name>
        <email>noreply@blogger.com</email>
        <uri>http://www.blogger.com/profile/03090091115823252921</uri>
      </author>
      <link href="http://halcyonpage.blogspot.com/feeds/posts/default" rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml"/>
      <link href="http://www.blogger.com/feeds/3746667170663095627/posts/default" rel="self" type="application/atom+xml"/>
      <link href="http://halcyonpage.blogspot.com/" rel="alternate" type="text/html"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <link href="http://www.blogger.com/feeds/3746667170663095627/posts/default?start-index=26&amp;max-results=25" rel="next" type="application/atom+xml"/>
      <title>Halcyon Days</title>
      <updated>2012-04-16T02:51:41Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>urn:md5:f179dcacbfcb6792bb5b9dde4f6270f2</id>
    <link href="http://blog.wizzy.com/post/Apple-s-iPad-a-n00b-experience" rel="alternate" type="text/html"/>
    <title xml:lang="en">Andy Rabagliati (wizzy): Apple's iPad - a n00b experience</title>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p><a href="http://blog.wizzy.com/public/Misc/1stGen-iPad-HomeScreen.jpg"><img alt="Apple iPad" src="http://blog.wizzy.com/public/Misc/.1stGen-iPad-HomeScreen_s.jpg" style="float: right; margin: 0 0 1em 1em;" title="Apple iPad, Dec 2011"/></a> Two
friends of mine recently purchased iPads - Vernon asked me, as a computer
fundi, to help him out on the installation. I always think it is useful to
document first-time experiences - one adapts and forgets so easily.</p>    <h2>Old timer</h2>
<p>I have used Linux pretty much exclusively for the last 20 years. I have a
pragmatic approach to my friends who use Windows - I have followed Microsoft's
offerings from Windows98 through XP - I have an XP user's understanding of the
later versions of Windows.</p>
<p>Apple I have pretty much never used. I have never owned one, I taught people
how to use the original MacDraw, but pretty much have never used it since. So,
when Vernon took advantage of First National Bank's interest-free loan to buy
one, and asked my to check it out, I dashed over.</p>
<p>Fresh out of the box at his workplace in Cape Town, battery charged.</p>
<h2>Internet</h2>
<p>First hurdle - registration. There are a couple of Welcome.. screens, Name,
country, etc. Pretty soon, it wants to get online to talk to Apple. Well, we
had no wifi in his workplace, and the GSM SIM card was a "micro" variety, so I
couldn't pull one out of my Nokia and get past that.</p>
<p>Failure.</p>
<p><strong>Strike #1</strong> - I can't even use this thing without Internet ?
Ten years ago, this country only had dialup, and that was expensive. Requiring
Internet before doing even the most basic things like taking a picture, writing
a note, experiment with the touch screen ?</p>
<p>Vernon knew what to do - buy a SIM card, load with 100Mb data (costs R50,
about $8). Weekend comes around - Andy, stop over. Some trouble getting
cellular data to work through Vodacom. I had internet from my netbook tethered
through my phone - google, ask on forums - ah, I need to enter "Internet" as
the APN for the service provider. Would Vernon have figured that out on his own
? I don't think so.</p>
<p>As a side note - Ubuntu Linux knows all the main cellphone carriers in South
Africa, and if I choose Vodacom on Ubuntu, it knows to put "Internet" as the
APN (thanks, tumbleweed).</p>
<p>We walk through registration, no problems. Vernon had taken advantage of a
free 1 hour course at the Apple store, and came away with "iCloud". So, we must
hook that up.</p>
<h2>An iPad manual</h2>
<p>Back up a little - let's RTFM. Where is the iPad manual ? Nothing in the box
- no paper, no CD (haha - no CD player on the ultra-thin iPad). A tap on
Safari, a quick google - there is the manual, as a PDF on Apple's website.
Old-Skool says:- "Save the pdf on the desktop". Safari has no options for that
- wtf? Seems I am indeed old-school - the iPad has no desktop. Wait a minute -
the out-of-the-box iPad comes with no manual, and there is no way to save a
copy locally ?? More googling - oh - I must download the iBook application, and
then get the (free !) iPad user manual. Sigh - consider it done.</p>
<p><strong>Strike #2</strong> - I need internet, some savvy, a new app, and a
download just to read about how this thing works.</p>
<h2>iCitizenship</h2>
<p>Back to iCloud - Vernon had been told at the course that he needed a "United
States" designation for his iCloud registration. Seems the only iCitizenship
worth having is a US one - otherwise no music downloads and app restrictions,
or something. I trust the Apple store man - how to do this? More googling - you
need to attempt to get a free app from the Apple store, choose "None" as a
method of payment, lie about your address, lie about a US phone number.</p>
<p><strong>Strike #3</strong> - to get the full benefits of this new iPad, one
has to pretend to be a US citizen. South African simply doesn't cut it. You can
buy it here, but there are heavy restrictions on its use.</p>
<h2>GSM standards</h2>
<p>OK - nearly there with the iCloud registration. Oops - I have no data left.
Yep - I have burned through 100Meg of data just to get this far. A trip to the
corner store - buy R110 pre-paid airtime, pull the micro-SIM out of the iPad,
delicately put it in my phone (which takes a normal size) and walk through the
USSD menus to load the airtime, and convert R100 of it to data bundles. R10
left behind as voice - whoopsie. Chalk that up to Vodacom ineptitude.</p>
<p><strong>Strike #4</strong> - the iPad comes with no SMS/USSD interface to
the GSM network that would allow you to recharge a pre-paid SIM for data. You
must take the SIM out and do it on a phone - that may not take the same size
SIM.</p>
<p>Apple is using GSM - iOS (the operating system) is common with the iPhone -
yet Apple stripped the GSM bits out of the codebase for the iPad.</p>
<p>OK - now we are sorted. I am unwilling to experiment much with iCloud - I
have a feeling it could gobble up all my data again if I accidentally tap
"backup" or something.</p>
<p>Games - nope - just a Games portal - go buy one. What, not even tetris or
mines ? Oh well, was not really interested anyway.</p>
<p>Browsing is slick and fast, some study of the manual and gestures are easy
and intuitive. Some struggle with outdated concepts like stopping running
applications - I was pointed to <a href="http://arstechnica.com/apple/reviews/2011/07/mac-os-x-10-7.ars/8" hreflang="en">this article</a> by my Linux User Group.</p>
<h2>Bluetooth</h2>
<p><a href="http://blog.wizzy.com/public/Misc/frown_large.jpg"><img alt="frown_large.jpg" src="http://blog.wizzy.com/public/Misc/.frown_large_s.jpg" style="float: right; margin: 0 0 1em 1em;" title="frown_large.jpg, Dec 2011"/></a> OK
next - will it see my Nokia phone over Bluetooth ? My phone sees the iPad -
tries to pair with it - nope. The iPad never sees my phone.</p>
<p><strong>Strike #5</strong> - Apple uses standards like Bluetooth for things
like external keyboards, but does not bother to implement the standards
properly.</p>
<p>Its like they think they are so big they don't have to bother. Receive a
business card from my phone via bluetooth ? Pah - you must talk via Internet
please. No matter that others value interoperability, here at Apple we have our
own way of doing things.</p>
<p>I have paired my old Nokia phone with my newish netbook via bluetooth. I can
easily move photos back and forth, and without even taking my phone out of my
pocket the netbook will use it as a gateway onto the net. I can see that this
brand new Apple iPad will not allow me to do that - either acting as a gateway,
or being able to use my phone as a gateway for the iPad (which would have got
over Strike #1 if I could have reached the settings menu, which I could
not).</p>
<h2>USB</h2>
<p>And, last but by no means least - I cannot plug a USB stick into the
iPad.</p>
<p><strong>Strike #6</strong> - there is not even a physical interface for a
USB stick (or drive).</p>
<ul>
<li>Floppy disks were good in their day - but they got too small and
unreliable. Snif - floppies are gone.</li>
<li>CD were fantastic in their day - ubiquitous for two decades, they were the
workhorse of transferable media. Now they seem bulky, small, and a tad
unreliable. Snif - CDROM drives are fading from the landscape.</li>
<li>USB disks are small, everywhere, fit on your keyring, and absolutely rule
for data transfer. Even virus-writers target them, they are that convenient.
The sun has by no means set on the USB thumb drive, but Apple, in their wisdom,
choose not to provide an interface.</li>
</ul>
<p>Now, that is just nasty. That was deliberate. I saw what you did there. And
I am calling you on it.</p>
<p>And, just because of Strike #6, I am reviewing your motivations for Strikes
1 thru 5. I could have given you the benefit of the doubt over SMS, Bluetooth
and Internet, but I see now this is deliberate.</p>
<h2>Summary</h2>
<p>The iPad lives up to its reputation as a beautiful piece of hardware. The
Multitouch screen is a true Apple innovation, and is a pleasure to use. The few
apps I tried seemed nice. Read about that elsewhere - it is all true. But the
level of control that Apple assert over the products they sell brings the ugly
out in me.</p>
<p>Apple - I will not be buying your products any time soon.</p></div>
    </content>
    <updated>2011-12-22T21:03:00Z</updated>
    <category term="Computers"/>
    <category term="Apple"/>
    <category term="iPad"/>
    <category term="South Africa"/>
    <category term="Vodacom"/>
    <author>
      <name>Andy</name>
    </author>
    <source>
      <id>urn:md5:7502</id>
      <author>
        <name>Andy Rabagliati</name>
      </author>
      <link href="http://blog.wizzy.com:82/feed/atom" rel="self" type="application/atom+xml"/>
      <link href="http://blog.wizzy.com/" rel="alternate" type="text/html"/>
      <title xml:lang="en">Wizzy Africa</title>
      <updated>2012-05-15T13:34:27Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://confluence.za.net/blog/?p=260</id>
    <link href="http://confluence.za.net/blog/?p=260" rel="alternate" type="text/html"/>
    <link href="http://confluence.za.net/blog/?p=260#comments" rel="replies" type="text/html"/>
    <link href="http://confluence.za.net/blog/?feed=atom&amp;p=260" rel="replies" type="application/atom+xml"/>
    <title xml:lang="en">Adrianna Pińska (Confluence): +27119950000</title>
    <summary xml:lang="en">A few weeks ago I started receiving calls from this number on my cellphone. At first I got several a day. Then they slowed down to a trickle — one every one or two days, at random and inopportune times. If I answered, I heard complete silence until the call terminated. When I called back, [...]</summary>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>A few weeks ago I started receiving calls from this number on my cellphone.  At first I got several a day.  Then they slowed down to a trickle — one every one or two days, at random and inopportune times.  If I answered, I heard complete silence until the call terminated.  When I called back, I discovered that the number was invalid.  When I searched for <a href="http://www.google.com/search?q=%2B27119950000" title="+27119950000">the</a> <a href="http://www.google.com/search?q=011+995+0000" title="011 995 0000">number</a> on the internet, I found similar reports about nuisance calls from other people, some of them overseas.  This didn’t look like a deliberate crank caller — more like a misconfigured call centre.  The calls were getting really annoying, though, and I wanted them to stop.  So what were my options?</p>
<p><strong>1. Software</strong></p>
<p>If you have the right kind of smart phone, you can install software that will block specific numbers.  I have a <a href="http://www.gsmarena.com/nokia_6822-996.php" title="Nokia 6822">Nokia 6822</a>, so I very much doubt that I can (if I’m wrong, please let me know in the comments).</p>
<p><strong>2. My cellular provider</strong></p>
<p>Surely MTN can block specific nuisance callers from making calls to your number? <a href="http://www.mtn.com.af/sub.aspx?pageid=68" title="Call Filter (Call Block)">MTN Afghanistan can do it</a>.  How hard can it be?  Impossible, apparently.  According to MTN, all they can do is block all incoming calls to my number, which is not very helpful.  The MTN representative suggested that I call the police to have the number investigated.</p>
<p><strong>3. The police</strong></p>
<p>Um… no.  I’m not going to call the police to complain about a misconfigured call centre. I’m pretty sure they have actual work to do.</p>
<p><strong>4. Telkom</strong></p>
<p>Telkom issued this landline to someone, so they should be able to do something if they’re misusing it, right?  I searched the Telkom page for an appropriate avenue for this kind of complaint.  I couldn’t find anything specific, but they do have a <a href="http://www.telkom.co.za/general/customercentre/phoneus/crime_hotline.html">crime hotline</a> for reporting “criminal and unethical behaviour affecting Telkom”.  I guess being negligent when configuring automated phone systems is “unethical behaviour”, so I gave it a shot yesterday, after receiving yet another call.</p>
<p>The crime hotline operator said that they had no ability to investigate issues of this nature, and instructed me to call Telkom directly (apparently the Telkom crime hotline isn’t Telkom).  So I called the normal Telkom helpline, and after a lot of waiting and ignoring automated options I was redirected to an actual human.  After hearing my story, he said, “Ooh, we have a department for just this kind of thing,” and dictated the number of the crime hotline.</p>
<p>After explaining that the crime hotline had just redirected me back to Telkom, I eventually persuaded him to look the landline number up.  So he did.  And then he said, “<em>but that’s our call centre number!</em>”</p>
<p>There you go, people googling this who are trying to find out who keeps robo-calling them.  It’s Telkom!  Mystery solved.</p>
<p>Telkom Guy said that he would escalate the issue to his supervisor, who would call me back (I hope after investigating why one of Telkom’s own call centres was randomly spamming people with silent calls).</p>
<p>About half an hour ago, I got another call from the call centre.  I picked up, thinking that perhaps it was the promised return call from Telkom Guy’s supervisor.  It wasn’t.  It was a Telkom call centre operator trying to sell me an ADSL line.  I explained that I <em>already have</em> a Telkom ADSL line, briefly summarised the problem, and asked to be removed from their call list.  Did it work?  I guess I will find out tomorrow.</p></div>
    </content>
    <updated>2011-12-06T19:54:34Z</updated>
    <published>2011-12-06T09:45:53Z</published>
    <category scheme="http://confluence.za.net/blog" term="Rants"/>
    <author>
      <name>confluence</name>
      <uri>http://confluence.za.net</uri>
    </author>
    <source>
      <id>http://confluence.za.net/blog/?feed=atom</id>
      <link href="http://confluence.za.net/blog" rel="alternate" type="text/html"/>
      <link href="http://confluence.za.net/blog/?feed=atom" rel="self" type="application/atom+xml"/>
      <subtitle xml:lang="en">Powered by space monkeys!</subtitle>
      <title xml:lang="en">Confluence</title>
      <updated>2012-02-20T23:00:15Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.arbitraryuser.com/blog/?p=931</id>
    <link href="http://www.arbitraryuser.com/blog/2011/11/29/ten-things/" rel="alternate" type="text/html"/>
    <link href="http://www.arbitraryuser.com/blog/2011/11/29/ten-things/#comments" rel="replies" type="text/html"/>
    <link href="http://www.arbitraryuser.com/blog/2011/11/29/ten-things/feed/atom/" rel="replies" type="application/atom+xml"/>
    <title xml:lang="en">Jonathan Endersby (nlt): Ten things</title>
    <summary xml:lang="en">Get your priorities straight There is nothing more important than enjoying your life. Making sure that other people are enjoying their lives comes in at a close second. You are not a useful human being if you are not enjoying your own life. Don’t sweat the small stuff Gary Player famously said that the more [...]</summary>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Get your priorities straight</strong><br/>
There is nothing more important than enjoying your life. Making sure that other people are enjoying their lives comes in at a close second. You are not a useful human being if you are not enjoying your own life.</p>
<p><strong>Don’t sweat the small stuff</strong><br/>
Gary Player famously said that the more he practiced the luckier he got. You can reprogram the way your brain reacts to truly stressful situations by practicing positive, stress-free, reactions to the little things that go wrong every day.</p>
<p><strong>Get some perspective</strong><br/>
Most of the stuff you worry about is simply not important.  Your family and friends are what matter. They are irreplaceable.  Your car getting stolen, your house burning down, losing your job, while all sad and frustrating, should not result in emotional trauma.</p>
<p><strong>Emotional trauma is scar tissue</strong><br/>
Years ago I broke my big toe by kicking a wall. It was stupid and every now and then my toe hurts for no reason. If you repeatedly kick a wall your toe is going to hurt all the time and you are not going to be able to enjoy your life.</p>
<p><strong>It’s not over until you’re dead</strong><br/>
Your health is important, but not more important than enjoying your life. I’m not suggesting you start a small heroin habit, but worrying about your health is futile unless you’re doing it while calling a doctor.</p>
<p><strong>Put on your big girl panties when dealing with family</strong><br/>
There are situations in life where you just need to make hay, even if you’re allergic and the sun isn’t shining. The normal rules of engagement do not apply for family. “Not talking” to some branch of your family is an incredibly sad outcome that should be avoided at all costs. No one is asking you to paint each other’s nails while watching Thelma and Louise on VHS, but for everyone’s mental health, including your own, sometimes you just need to just get out there in the rain and start throwing around some hay.</p>
<p><strong>Appreciate what you have</strong><br/>
Be thankful for the things you have, not because one day they might be gone or because others don’t have them, but simply because you do have them.</p>
<p><strong>Stretch</strong><br/>
This is not a computer game. When you die your life is over. Try and be incredible or die trying.</p>
<p><strong>Yourself is the best you you can be</strong><br/>
Countless Facebook posts will encourage you to sing like no one is listening. That is rubbish. Being yourself is the only way to be happy. This is not rocket science. If you want to sing, sing. If you want to spend your weekend reading a book to your cat, do that.</p>
<p><strong>Stop</strong><br/>
Close the door, put away your phone, sit down and spend some time thinking. Call it whatever you want but just do it, daily if possible.</p></div>
    </content>
    <updated>2011-11-29T21:09:05Z</updated>
    <published>2011-11-29T21:09:05Z</published>
    <category scheme="http://www.arbitraryuser.com/blog" term="Aggregate This"/>
    <category scheme="http://www.arbitraryuser.com/blog" term="Life"/>
    <category scheme="http://www.arbitraryuser.com/blog" term="Philosophy"/>
    <author>
      <name>arbitraryuser</name>
      <uri>http://www.arbitraryuser.com/blog/wp-atom.php</uri>
    </author>
    <source>
      <id>http://www.arbitraryuser.com/blog/feed/atom/</id>
      <link href="http://www.arbitraryuser.com/blog" rel="alternate" type="text/html"/>
      <link href="http://www.arbitraryuser.com/blog/category/aggregate-this/feed/atom/" rel="self" type="application/atom+xml"/>
      <subtitle xml:lang="en">Jonathan Endersby, Recovering Technologist</subtitle>
      <title xml:lang="en">arbitrary user » Aggregate This</title>
      <updated>2012-01-08T02:48:58Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.arbitraryuser.com/blog/?p=927</id>
    <link href="http://www.arbitraryuser.com/blog/2011/11/24/leaving-trustfabric-and-joining-praekelt/" rel="alternate" type="text/html"/>
    <link href="http://www.arbitraryuser.com/blog/2011/11/24/leaving-trustfabric-and-joining-praekelt/#comments" rel="replies" type="text/html"/>
    <link href="http://www.arbitraryuser.com/blog/2011/11/24/leaving-trustfabric-and-joining-praekelt/feed/atom/" rel="replies" type="application/atom+xml"/>
    <title xml:lang="en">Jonathan Endersby (nlt): Leaving TrustFabric and joining Praekelt</title>
    <summary xml:lang="en">This news is a few weeks old but I kept on meeting people who hadn’t heard so I figured a blog post was in order. I have officially left TrustFabric and have joined Praekelt. Leaving TrustFabric was a hard decision. If Joe can pull of what he’s got planned, and I think he can, he [...]</summary>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>This news is a few weeks old but I kept on meeting people who hadn’t heard so I figured a blog post was in order.</p>
<p>I have officially left TrustFabric and have joined <a href="http://praekelt.com/">Praekelt</a>. Leaving TrustFabric was a hard decision. If Joe can pull of what he’s got planned, and I think he can, he will change the way we manage and share information online. I want that to be a reality. </p>
<p>My first few weeks at Praekelt have been great. I am now in a pure strategy role. Travelling back and forth between JHB and CPT, meeting amazing, talented people, having my mind expanded and learning constantly. My diverse background (travel, banking, advertising, telecoms, ISPs, online dating etc etc) is proving to be useful in ways that I never thought possible.</p>
<p>I’ll keep you posted.</p></div>
    </content>
    <updated>2011-11-24T12:38:04Z</updated>
    <published>2011-11-24T12:36:13Z</published>
    <category scheme="http://www.arbitraryuser.com/blog" term="Aggregate This"/>
    <category scheme="http://www.arbitraryuser.com/blog" term="Life"/>
    <author>
      <name>arbitraryuser</name>
      <uri>http://www.arbitraryuser.com/blog/wp-atom.php</uri>
    </author>
    <source>
      <id>http://www.arbitraryuser.com/blog/feed/atom/</id>
      <link href="http://www.arbitraryuser.com/blog" rel="alternate" type="text/html"/>
      <link href="http://www.arbitraryuser.com/blog/category/aggregate-this/feed/atom/" rel="self" type="application/atom+xml"/>
      <subtitle xml:lang="en">Jonathan Endersby, Recovering Technologist</subtitle>
      <title xml:lang="en">arbitrary user » Aggregate This</title>
      <updated>2012-01-08T02:48:58Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.arbitraryuser.com/blog/?p=922</id>
    <link href="http://www.arbitraryuser.com/blog/2011/11/22/brain-insight/" rel="alternate" type="text/html"/>
    <link href="http://www.arbitraryuser.com/blog/2011/11/22/brain-insight/#comments" rel="replies" type="text/html"/>
    <link href="http://www.arbitraryuser.com/blog/2011/11/22/brain-insight/feed/atom/" rel="replies" type="application/atom+xml"/>
    <title xml:lang="en">Jonathan Endersby (nlt): Brain Insight</title>
    <summary xml:lang="en">A few days ago I needed to get into my parent’s house while they were on holiday. I was driving to my house to fetch their spare keys and fretting about having forgotten their alarm code. As I opened my front door the alarm keypad began beeping. I instinctively started punching in a code. As [...]</summary>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>A few days ago I needed to get into my parent’s house while they were on holiday. I was driving to my house to fetch their spare keys and fretting about having forgotten their alarm code. As I opened my front door the alarm keypad began beeping. I instinctively started punching in a code. As I was pressing the keys I became aware that the pin I was entering was not the pin for my house but a totally different pin. </p>
<p>When I pressed the last number I realised that he pin I had just entered was the pin for my parents house. A pin that I <em>could not remember</em> a few seconds ago.</p>
<p>Mind blown.</p></div>
    </content>
    <updated>2011-11-22T07:35:22Z</updated>
    <published>2011-11-22T07:33:13Z</published>
    <category scheme="http://www.arbitraryuser.com/blog" term="Aggregate This"/>
    <category scheme="http://www.arbitraryuser.com/blog" term="Observation"/>
    <author>
      <name>arbitraryuser</name>
      <uri>http://www.arbitraryuser.com/blog/wp-atom.php</uri>
    </author>
    <source>
      <id>http://www.arbitraryuser.com/blog/feed/atom/</id>
      <link href="http://www.arbitraryuser.com/blog" rel="alternate" type="text/html"/>
      <link href="http://www.arbitraryuser.com/blog/category/aggregate-this/feed/atom/" rel="self" type="application/atom+xml"/>
      <subtitle xml:lang="en">Jonathan Endersby, Recovering Technologist</subtitle>
      <title xml:lang="en">arbitrary user » Aggregate This</title>
      <updated>2012-01-08T02:48:58Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://confluence.za.net/blog/?p=247</id>
    <link href="http://confluence.za.net/blog/?p=247" rel="alternate" type="text/html"/>
    <link href="http://confluence.za.net/blog/?p=247#comments" rel="replies" type="text/html"/>
    <link href="http://confluence.za.net/blog/?feed=atom&amp;p=247" rel="replies" type="application/atom+xml"/>
    <title xml:lang="en">Adrianna Pińska (Confluence): Stupid cold water inlet tricks</title>
    <summary xml:lang="en">I didn’t blog about this when I first did it, because I didn’t know if it was going to work. Today I was relieved to discover that the water puddle in my kitchen was caused by an over-watered plant standing above the washing machine, and not the violent death of yet another y-shaped splitter, so [...]</summary>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>I didn’t blog about this when I first did it, because I didn’t know if it was going to work.  Today I was relieved to discover that the water puddle in my kitchen was caused by an over-watered plant standing above the washing machine, and not the violent death of yet another y-shaped splitter, so I guess my solution is holding up nicely.  But first, a description of the problem.</p>
<p>My flat, which was built sometime in the forties or fifties, has a single cold water inlet cemented into the kitchen wall.  Since I have both a washing machine and a dishwasher, I need to split this inlet in two.  The vast array of plumbing possibilities available for purchase in hardware stores near me comprises exactly one suitable part, which is a rigid white plastic y-shaped splitter.</p>
<p>The water inlet is a pipe which protrudes quite far out of the wall.  When the rigid splitter is attached to it, and the ends of two inlet hoses are attached to the splitter, the resulting structure protrudes very, very far out of the wall.  When people stand around in the kitchen chatting, and lean back on the appliances, as they are wont to do, they push the dishwasher further towards the wall.  Subsequently, when the dishwasher is operated, its strong vibrations exert considerable force on the rigid assembly of pipes.</p>
<p>The dishwasher is made of metal, and the inlet pipe is made of metal, so the element which bears the brunt of the assault is the unfortunate y-shaped splitter, which is made of plastic.  A fracture forms in the crotch area, water squirts through it at an alarming rate, and I soon have a small pond in one corner of my kitchen.</p>
<p>I lost two splitters like this.  I really wanted to extend the inlet pipe with another hose before attaching the splitter, to give the whole assembly more space to flex, but I couldn’t find a female-to-male hose anywhere.  It’s possible that they don’t exist.  My inlet is male, all appliance hoses appear to be female-to-female, the nozzles on the appliances are male, and the splitter is one-female-to-two-male.</p>
<p>When I noticed that the inlet nozzle on my dishwasher is in a deeply recessed area, I tried an alternative plan: I attached the splitter to the dishwasher, one leg of the splitter to the inlet (using the dishwasher hose, with the convenient 90° kink next to the wall), and the other leg to the washing machine hose.  This moves the entire width of the splitter and hose ends into the recess.</p>
<p>This might work for you if you have a similar problem but no recessed nozzle — having the splitter protrude at a different height to the inlet pipe is probably still an improvement over having them right on top of one another.</p></div>
    </content>
    <updated>2011-11-15T20:41:23Z</updated>
    <published>2011-11-15T20:41:23Z</published>
    <category scheme="http://confluence.za.net/blog" term="Plumbing"/>
    <author>
      <name>confluence</name>
      <uri>http://confluence.za.net</uri>
    </author>
    <source>
      <id>http://confluence.za.net/blog/?feed=atom</id>
      <link href="http://confluence.za.net/blog" rel="alternate" type="text/html"/>
      <link href="http://confluence.za.net/blog/?feed=atom" rel="self" type="application/atom+xml"/>
      <subtitle xml:lang="en">Powered by space monkeys!</subtitle>
      <title xml:lang="en">Confluence</title>
      <updated>2012-02-20T23:00:15Z</updated>
    </source>
  </entry>

  <entry>
    <id>tag:blogger.com,1999:blog-22557003.post-1842626738128927835</id>
    <link href="http://blog.grahampoulter.com/2011/11/ubuntu-host-and-windows-7-virtualbox.html" rel="alternate" type="text/html"/>
    <title>Graham Poulter (verdant): Faster Windows 7 under Ubuntu by using raw SSD access</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-YkFA6_tlSX4/TsJPtkwexSI/AAAAAAAACcQ/X8Cdi4_va-A/s1600/download.jpg" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="200" src="http://3.bp.blogspot.com/-YkFA6_tlSX4/TsJPtkwexSI/AAAAAAAACcQ/X8Cdi4_va-A/s200/download.jpg" width="200"/></a></div>
This post is about how I made Windows 7 run fast as a guest under Ubuntu by running it from a raw partition of a Solid State Drive under <a href="https://www.virtualbox.org/">VirtualBox</a> 4.1.6.<br/>
<br/>
<a name="more"/><br/>
This week I was given an <a href="http://www.adata.com.tw/?action=product_feature&amp;piid=33">ADATA S599 2.5" SATA II Solid State Drive</a> in 115GB capacity from <a href="http://www.mantech.co.za/">Mantech</a> for my office workstation -- a 2008 <a href="http://www.dell.com/us/dfb/p/precision-t5400/pd">Dell Precision T5400</a> specced as quad-Xeon with 4GB RAM, and installed <a href="http://releases.ubuntu.com/11.10/">Ubuntu 11.10 amd64 desktop</a> on it. It now boots in 17 seconds, and the previously 30-second-long first-time login now takes less than 5 seconds. I use Python/Linux but most of the other devs use .NET/Windows so I require a Windows 7 virtual machine.  In fact, the slowness of my Windows 7 VM on a rotating drive was the main motivator for buying the SSD.<br/>
<br/>
I wanted Windows to take advantage of the <a href="http://en.wikipedia.org/wiki/TRIM">TRIM</a> command, to avoid the SSD slowing down once all its blocks have been written to.  I created an extra partition for windows during Ubuntu installation rather than have the VM run from a file, because I don't think TRIM issued by the guest OS would be passed down to the SSD if the virtual disk is a file on the host filesystem.<br/>
<br/>
To get ownership of the partition for VirtualBox, I created the following udev rule in <i>/etc/udev/rules.d/customdisk.rules</i> which permanently gives <i>graham</i> write permission to the Windows partition which is <i>/dev/sdb1</i> on my machine.  I ran <i>udevadm info -a -n sdb1</i> to get the start and size attributes to prevent the rule matching any other sdb1.  The rule sets UDISKS_PRESENTATION_HIDE to prevent Nautilus from displaying the partition, so I can't corrupt it by accidentally mounting and writing to it while the VM is running.<br/>
<br/>
<tt>KERNEL=="sdb1", SUBSYSTEM=="block", ATTR{start}=="2048", ATTR{size}=="136716288", SYMLINK+="win7", OWNER="graham", GROUP="disk", ENV{UDISKS_PRESENTATION_HIDE}="1"</tt><br/>
<br/>
I ran the udevadm test to make the rule to take effect:<br/>
<br/>
<tt>sudo udevadm test "$(udevadm info --query=path --name=sdb1)"</tt><br/>
<br/>
Following Virtual Box Manual Chapter 9 on <a href="https://www.virtualbox.org/manual/ch09.html#rawdisk">Using a raw host hard disk from a guest</a> I first listed partitions to get the correct partition number:<br/>
<br/>
<tt>sudo VBoxManage internalcommands listpartitions -rawdisk /dev/sdb</tt><br/>
<br/>
And created a raw VMDK for partition 1 of sdb:<br/>
<br/>
<tt>sudo VBoxManage internalcommands createrawvmdk -filename /home/graham/.Virtualbox/RawDisks/sdb1.vmdk -rawdisk /dev/sdb  -partitions 1 -relative</tt><br/>
<br/>
From virtualbox I created a Windows 7 machine, selecting sdb1.vmdk as the disk. On first run of the VM I added the <a href="http://www.mydigitallife.info/official-windows-7-sp1-iso-from-digital-river/">Official Windows 7 SP1 ISO from Digital River</a> to the virtual CD/DVD drive, installed Windows, and installed VirtualBox guest editions with 3D enabled. VirtualBox setting changes included:<br/>
<br/>
<ul>
<li>System: Base Memory=1024MB, Enable IO APIC=Ticked, Processors=2</li>
<li>Storage: SATA Controller: sdb1.vmdk: Solid-state drive=Ticked</li>
<li>Display: Enable 3D and 2D Acceleration. Video Memory=256MB</li>
</ul>
<br/>
The 3D isn't perfect: I disabled animations in guest's system settings, the Windows Experience benchmark crashes, and IE9 scrolling is jumpy (turned out to be an IE9 bug).<br/>
<br/>
But in general the VM is snappy and no longer slows down the Ubuntu host much.<div class="blogger-post-footer"><img alt="" height="1" src="https://blogger.googleusercontent.com/tracker/22557003-1842626738128927835?l=blog.grahampoulter.com" width="1"/></div></div>
    </summary>
    <updated>2011-11-15T07:00:00Z</updated>
    <category scheme="http://www.blogger.com/atom/ns#" term="how"/>
    <category scheme="http://www.blogger.com/atom/ns#" term="technology"/>
    <category scheme="http://www.blogger.com/atom/ns#" term="linux"/>
    <category scheme="http://www.blogger.com/atom/ns#" term="windows"/>
    <author>
      <name>Graham Poulter</name>
      <email>noreply@blogger.com</email>
    </author>
    <source>
      <id>tag:blogger.com,1999:blog-22557003</id>
      <category term="linux"/>
      <category term="technology"/>
      <category term="finance"/>
      <category term="lifehack"/>
      <category term="python"/>
      <category term="opinion"/>
      <category term="analysis"/>
      <category term="news"/>
      <category term="capetown"/>
      <category term="howto"/>
      <category term="journal"/>
      <category term="windows"/>
      <category term="fail"/>
      <category term="creations"/>
      <category term="philosophy"/>
      <category term="bash"/>
      <category term="review"/>
      <category term="how"/>
      <author>
        <name>Graham Poulter</name>
        <email>noreply@blogger.com</email>
      </author>
      <link href="http://blog.grahampoulter.com/" rel="alternate" type="text/html"/>
      <link href="http://blog.grahampoulter.com/feeds/posts/default?redirect=false&amp;alt=rss" rel="self" type="application/atom+xml"/>
      <title>Graham Poulter's Blog</title>
      <updated>2012-05-17T07:05:08Z</updated>
    </source>
  </entry>

  <entry>
    <id>http://mikro2nd.net/blog/mike/programming/2011/11/09/QOTD.html</id>
    <link href="http://mikro2nd.net/blog/mike/programming/2011/11/09/QOTD.html" rel="alternate" type="text/html"/>
    <title>Mike Morris: QOTD</title>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><blockquote>'the idea of immediate compilation and "unit tests" appeals to me only rarely, when I’m feeling my way in a totally unknown environment and need feedback about what works and what doesn’t. Otherwise, lots of time is wasted on activities that I simply never need to perform or even think about. Nothing needs to be "mocked up."'</blockquote>
<p>
Donald Knuth 25 April 2008
</p><p>
<i>(Okay, so I'm slow to the party. As always.)</i></p></div>
    </content>
    <updated>2011-11-09T10:03:08Z</updated>
    <published>2011-11-09T08:03:08Z</published>
    <author>
      <name>mike</name>
      <uri>http://mikro2nd.net/blog/mike//</uri>
    </author>
    <source>
      <id>http://mikro2nd.net/blog/mike//</id>
      <icon>http://mikro2nd.net/favicon.ico</icon>
      <link href="http://mikro2nd.net/blog/mike//" rel="alternate" type="text/html"/>
      <link href="http://mikro2nd.net/blog/mike/?flavor=atom" rel="self" type="application/atom+xml"/>
      <rights>Copyright (c) mike</rights>
      <subtitle>web2, net3, programming, design, business, and the fundamental nature of spacetime</subtitle>
      <title>one mikro2nd</title>
      <updated>2011-11-09T10:03:08Z</updated>
    </source>
  </entry>

  <entry>
    <id>tag:blogger.com,1999:blog-22557003.post-7198247899616713082</id>
    <link href="http://blog.grahampoulter.com/2011/11/getting-smoke-smell-out-of-waterproof.html" rel="alternate" type="text/html"/>
    <title>Graham Poulter (verdant): Getting smoke smell out of a waterproof jacket</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-RedmHfDca-M/Trl1Zsda3dI/AAAAAAAACcE/bdj_6B009mg/s1600/250px-Water_repellent_shell_layer_jacket.jpg" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="198" src="http://1.bp.blogspot.com/-RedmHfDca-M/Trl1Zsda3dI/AAAAAAAACcE/bdj_6B009mg/s200/250px-Water_repellent_shell_layer_jacket.jpg" width="200"/></a></div>
<div>
This is how I got rid of the smoke smell from my <a href="http://www.firstascent.co.za/product-details.php?prodid=750&amp;catid=245&amp;level=3">First Ascent Flash Flood waterproof jacket</a> after it was infused with campfire smoke from the Cape Point overnight trail last weekend.  The jacket uses "Vapour-Tex" breathable waterproofing, similar to Gore-Tex.</div>
<div>
<br/>
<a name="more"/></div>
<div>
Use <a href="http://www.nikwax.com/en-gb/products/productdetail.php?productid=4">Nikwax Tech Wash</a> non-detergent liquid cleaner, as it won't contain anything that could lodge between the fibers of the jacket's <a href="http://www.rei.com/expertadvice/articles/rainwear+dwr.html">Durable Water Repellant</a> (DWR) coating and impede its performance.</div>
<div>
<br/></div>
<div>
Hand wash the garment in a basin filled with<span style="background-color: transparent;"> "hand-hot" water using a capful of the wash liquid.  "Hand-hot" means the water should be no hotter than you can stand to immerse your bare hands in for washing the garment.   Soak it for about an hour, after which even the water smells of smoke.</span></div>
<div>
<span style="background-color: transparent;"><br/></span></div>
<div>
The Tech Wash bottle instructs rinsing the garment three times.  Use hand-hot water for all three rinses.  No need to soak on the first rinse.  Soak for 15 minutes on the second rinse.  Soak for 8+ hours on the third rinse.</div>
<div>
<br/></div>
<div>
After the final rinse the jacket smelled faintly of smoke, and I considered hanging it out.  However, smoke particles get between the fluorocarbon fibres of the DWR layer, so I wanted it out entirely.</div>
<div>
<br/></div>
<div>
So, wash again in hand-hot water, this time soaking it for 8+ hours.  Then do the triple rinse with hand-hot water: a quick first rinse, a 15-minute second rinse, and 8+ hour third rinse.   After all of that, there was no perceptible smell of smoke on the jacket.  It had been soaking wet for about 36 hours.</div>
<div>
<br/></div>
<div>
Hang the jacket out for a few hours to drip-dry, spray <a href="http://www.nikwax.com/en-gb/products/productdetail.php?productid=16">Nikwax TX Direct</a> all over the outside of the still-damp garment to maintain the durable water repellant layer, wipe off excess after a few minutes, then give the garment a day to dry properly.<br/>
<span style="background-color: transparent;"><br/></span><br/>
<span style="background-color: transparent;">Finally, use heat to restore the DWR layer.  The usual recommendation is tumble-drying on low or medium, or ironing with a towel in-between (risky).  I used a hair-dryer in lieu of a tumble dryer, seems to work.</span></div><div class="blogger-post-footer"><img alt="" height="1" src="https://blogger.googleusercontent.com/tracker/22557003-7198247899616713082?l=blog.grahampoulter.com" width="1"/></div></div>
    </summary>
    <updated>2011-11-08T18:46:00Z</updated>
    <category scheme="http://www.blogger.com/atom/ns#" term="howto"/>
    <category scheme="http://www.blogger.com/atom/ns#" term="lifehack"/>
    <author>
      <name>Graham Poulter</name>
      <email>noreply@blogger.com</email>
    </author>
    <source>
      <id>tag:blogger.com,1999:blog-22557003</id>
      <category term="linux"/>
      <category term="technology"/>
      <category term="finance"/>
      <category term="lifehack"/>
      <category term="python"/>
      <category term="opinion"/>
      <category term="analysis"/>
      <category term="news"/>
      <category term="capetown"/>
      <category term="howto"/>
      <category term="journal"/>
      <category term="windows"/>
      <category term="fail"/>
      <category term="creations"/>
      <category term="philosophy"/>
      <category term="bash"/>
      <category term="review"/>
      <category term="how"/>
      <author>
        <name>Graham Poulter</name>
        <email>noreply@blogger.com</email>
      </author>
      <link href="http://blog.grahampoulter.com/" rel="alternate" type="text/html"/>
      <link href="http://blog.grahampoulter.com/feeds/posts/default?redirect=false&amp;alt=rss" rel="self" type="application/atom+xml"/>
      <title>Graham Poulter's Blog</title>
      <updated>2012-05-17T07:05:07Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>urn:md5:00e96e1456bc610b47193098760b775d</id>
    <link href="http://blog.wizzy.com/post/Whisky-Live-Festival" rel="alternate" type="text/html"/>
    <title xml:lang="en">Andy Rabagliati (wizzy): Whisky Live Festival, Cape Town November 2011</title>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p><img alt="Glass of Whisky" src="http://blog.wizzy.com/public/Misc/.540px-Glass_of_whisky_s.jpg" style="float: right; margin: 0 0 1em 1em;" title="Glass of Whisky, Nov 2011"/>
I went to the <a href="http://www.whiskylivefestival.co.za/" hreflang="en">Whisky Live Festival</a> in Cape Town last Friday evening - the last day
of the Festival - definitely a good choice.</p>
<h2>International Convention Centre</h2>
<p>Emma, a visitor from Scotland, persuaded a group of us to go, and we made
our way to the International Convention Centre. We got a group rate, and 12
redeemable coupons for tasting. We decided that we would specialise on the
single malts - a whisky made from the product of a single distillery rather
than a blend between distilleries.</p>
<p>The first surprise we got was that many of the stands asked for two coupons
per taste, rather than the one we had been expecting. However, this did not
turn out to be a problem - by the end of the evening nobody bothered asking for
coupons as it was the last day.</p>
<p>The booth babes were gorgeous, and most seemed knowledgeable on their
products.</p>
<p>A good early stop was made at the stand for the Whisky magazine, who issued
awards for the whiskys. The gentleman on the stand said that the overall winner
that year had been a Japanese whisky - but it appeared that there were no
Japanese whiskys available for tasting in Cape Town, either on his stand
(stocked with also-rans from the competition) or on other stands. He
recommended the Independent bottlers stand as worth a visit.</p>
<p>I had an early taste of a Dalwhinnie - from a very impressive stand giving
tastings. I learned from Emma about <a href="http://en.wikipedia.org/wiki/Strathspey,_Scotland" hreflang="en">Speyside</a>
- one of the centres of the Scottish single malt industry.</p>
<h3>Glen Grant</h3>
<p>Another stand that stood out for me was the Glen Grant stand, where the very
knowledgeable South African Marketing manager gave us a rundown of their
products. They also had a whisky workshop, where they had three sessions
explaining the process of making whisky.</p>
<p>I managed to get a seat in the workshop, where the white-haired gentleman
explained the process - which starts very similar to beer. Malted barley is
cooked and rinsed to extract the sugar - maltose, created by enzymes from the
starch in the barley grain when it germinates.</p>
<p>The yeasts they use are different, however - the distiller's yeast can stand
much higher concentrations of alcohol. The yeast is allowed to do its work, and
the first distillation step produces Low wine - with alcohol concentrations up
to 60%. Another distillation step is performed - being careful to skip the
initial distillation products and the end distillation products, and keeping
the 'heart' of the whisky.</p>
<p>The end result of this is a clear liquor - of quite high alcohol
concentration, ready to be aged. Second hand barrels from the sherry industry
are very popular, as well as Madiera wine barrels. It is this step that gives
the whisky its colour and much of its taste. Scottish whiskys must be aged a
minimum of three years, but can be kept as long as 21 years.</p>
<p>We got to taste in the workshop the Low wine (rough, strong), the 3 year, 10
year, and 12 year Glen Grant products.</p>
<h3>Jack Daniels</h3>
<p>I bumped into friends Ashley and Barbs there, and also made my way to the
Jack Daniels stand, where I learned the differences between Bourbon Whiskey and
scotch. American whiskeys all contain at least 51% of another grain, either
corn, Rye, or wheat, though they also have a 51% barley product, Malt whiskey.
The Glen Grant man had no nice things to say about any grain other than
barley.</p>
<p>We tasted some nice Welsh whisky, and Ireland were also well represented.
The coupon system was out of the window by the end, so most of the stands were
offering free tastings.</p>
<p>A very pleasant evening.</p></div>
    </content>
    <updated>2011-11-06T08:59:00Z</updated>
    <category term="Cape Town"/>
    <category term="whisky"/>
    <author>
      <name>Andy</name>
    </author>
    <source>
      <id>urn:md5:7502</id>
      <author>
        <name>Andy Rabagliati</name>
      </author>
      <link href="http://blog.wizzy.com:82/feed/atom" rel="self" type="application/atom+xml"/>
      <link href="http://blog.wizzy.com/" rel="alternate" type="text/html"/>
      <title xml:lang="en">Wizzy Africa</title>
      <updated>2012-05-15T13:34:27Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://mithrandi.net/blog/?p=377</id>
    <link href="http://mithrandi.net/blog/2011/10/nat-connection-pinning-with-iproute2-iptables/" rel="alternate" type="text/html"/>
    <link href="http://mithrandi.net/blog/2011/10/nat-connection-pinning-with-iproute2-iptables/#comments" rel="replies" type="text/html"/>
    <link href="http://mithrandi.net/blog/2011/10/nat-connection-pinning-with-iproute2-iptables/feed/" rel="replies" type="application/atom+xml"/>
    <title xml:lang="en">Tristan Seligmann (mithrandi): NAT connection pinning with iproute2 / iptables</title>
    <summary xml:lang="en">My home network has a somewhat complicated setup where I have multiple PPPoE sessions across my ADSL connection, with various different ISPs. This allows me to take advantage of varying ISP properties such as cost and latency, by routing different traffic over different connections. Naturally, each of these connections only affords me a single IPv4 [...]</summary>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>My home network has a somewhat complicated setup where I have multiple PPPoE sessions across my ADSL connection, with various different ISPs. This allows me to take advantage of varying ISP properties such as cost and latency, by routing different traffic over different connections. Naturally, each of these connections only affords me a single IPv4 address, so I make use of NAT to allow the rest of my network access to the Internet. A potential problem arises, however, when connections go down and come back up. In the simple case, with only one connection, <code>MASQUERADE</code> takes care of all the details; when the interface goes down, all of the NAT entries associated with the connection are removed, so when it comes back up, it’s not a problem that your IP address has changed, because all of the NAT entries associated with the old address are gone. This works just as well in the multiple connections scenario; if an interface goes down resulting in traffic being routed over another interface, all of the old NAT entries have been dropped, so new ones will be established associated with the interface they are now travelling over. The problem arises when the interface that went down comes back up; traffic will now be routed over the first interface again, while still being rewritten to the second interface’s address, and this traffic is almost guaranteed to be dropped by either your ISP, or their upstream provider.</p>
<p>What’s the solution? Well, if you absolutely definitely want to start routing traffic over the first interface as soon as it comes back up, you’re going to need to flush the associated conntrack NAT entries as soon as it comes up, and let all your users reconnect (since their connections will be interrupted); I’m not entirely sure how to do this. In my case, however, I’m more concerned with maintaining existing connections without interruption, even if that means continuing to route them over the “wrong” interface. This also applies to incoming connections; ordinarily if somebody tries to establish a connection to the public IP address of one of your connections, they will need to connect to the same interface that outbound traffic to them would be routed over, which can be somewhat inconvenient.</p>
<p>My solution is something I’m going to call “connection pinning”. The idea is that once an outbound interface has been selected for a particular connection (by the Linux routing table), we “pin” the connection to that interface, so that traffic associated with that connection always travels over that interface even if the routing table changes. In order to achieve this, we can use a combination of Linux policy routing (<code>ip rule</code>), as well as firewall / conntrack packet marking. When a connection is first established, we set a <code>connmark</code>, which is a value stored in the conntrack table entry for that connection. In the case of an incoming connection, we set the mark based on the interface the packet arrived on; in the case of an outgoing connection, we set the mark in <code>POSTROUTING</code> based on the outbound interface already selected by the routing table. Then, for future outgoing traffic associated with that connection (as determined by conntrack), we set an <code>fwmark</code> based on the <code>connmark</code>, and bypass the normal routing table using policy rules for traffic marked thusly.</p>
<p>This is implemented in three parts. Firewall rules added using <code>iptables</code>, for the netfilter/conntrack bits; an <code>ip-up</code> script for establishing policy rules and routes when a PPP connection is established; and an <code>ip-down</code> script for flushing them again when the PPP connection is terminated.</p>
<p>First, the firewall rules (using the excellent <code>ferm</code> tool):</p>
<pre class="brush: plain; title: ; notranslate">@def $DEV_PRIVATE = eth0;
@def $NET_PRIVATE_V4 = 10.0.0.0/24;

domain ip table mangle {
    # Only match new connections; established connections should
    # already have a connmark, which should not be overwritten.
    chain (INPUT FORWARD) {
        # Unfortunately the set-mark rules need to be duplicated for
        # each ppp interface we have.
        mod conntrack ctstate NEW {
            interface ppp0 CONNMARK set-mark 1;
            interface ppp1 CONNMARK set-mark 2;
            interface ppp2 CONNMARK set-mark 3;
            interface ppp3 CONNMARK set-mark 4;
            interface ppp4 CONNMARK set-mark 5;
        }
    }
    chain POSTROUTING {
        mod conntrack ctstate NEW {
            outerface ppp0 CONNMARK set-mark 1;
            outerface ppp1 CONNMARK set-mark 2;
            outerface ppp2 CONNMARK set-mark 3;
            outerface ppp3 CONNMARK set-mark 4;
            outerface ppp4 CONNMARK set-mark 5;
        }
    }
    chain PREROUTING {
        # Copy the connmark to the fwmark in order to activate the
        # policy rules for connection pinning. Only do this for
        # traffic originating from the local network; other traffic
        # (such as traffic going *to* the local network) should be
        # left unmodified, to allow return traffic to be routed over
        # the correct interface.

        interface $DEV_PRIVATE daddr ! $NET_PRIVATE_V4 CONNMARK restore-mark;
    }
    chain OUTPUT {
        # Same as above, but for locally originating traffic.

        daddr ! $NET_PRIVATE_V4 CONNMARK restore-mark;
    }
}

# I am assuming you already have something like this:
domain ip table nat {
    chain POSTROUTING outerface (ppp0 ppp1 ppp2 ppp3 ppp4) MASQUERADE;
}
</pre>
<p>If you’re not using ferm, here’s what the raw <code>iptables</code> commands would be (these are exactly what ferm will install given the above, so this is just more verbose):</p>
<pre class="brush: plain; title: ; notranslate">iptables -t mangle -A FORWARD --match conntrack --ctstate NEW --in-interface ppp0 --jump CONNMARK --set-mark 1
iptables -t mangle -A FORWARD --match conntrack --ctstate NEW --in-interface ppp1 --jump CONNMARK --set-mark 2
iptables -t mangle -A FORWARD --match conntrack --ctstate NEW --in-interface ppp2 --jump CONNMARK --set-mark 3
iptables -t mangle -A FORWARD --match conntrack --ctstate NEW --in-interface ppp3 --jump CONNMARK --set-mark 4
iptables -t mangle -A FORWARD --match conntrack --ctstate NEW --in-interface ppp4 --jump CONNMARK --set-mark 5
iptables -t mangle -A INPUT --match conntrack --ctstate NEW --in-interface ppp0 --jump CONNMARK --set-mark 1
iptables -t mangle -A INPUT --match conntrack --ctstate NEW --in-interface ppp1 --jump CONNMARK --set-mark 2
iptables -t mangle -A INPUT --match conntrack --ctstate NEW --in-interface ppp2 --jump CONNMARK --set-mark 3
iptables -t mangle -A INPUT --match conntrack --ctstate NEW --in-interface ppp3 --jump CONNMARK --set-mark 4
iptables -t mangle -A INPUT --match conntrack --ctstate NEW --in-interface ppp4 --jump CONNMARK --set-mark 5
iptables -t mangle -A POSTROUTING --match conntrack --ctstate NEW --out-interface ppp0 --jump CONNMARK --set-mark 1
iptables -t mangle -A POSTROUTING --match conntrack --ctstate NEW --out-interface ppp1 --jump CONNMARK --set-mark 2
iptables -t mangle -A POSTROUTING --match conntrack --ctstate NEW --out-interface ppp2 --jump CONNMARK --set-mark 3
iptables -t mangle -A POSTROUTING --match conntrack --ctstate NEW --out-interface ppp3 --jump CONNMARK --set-mark 4
iptables -t mangle -A POSTROUTING --match conntrack --ctstate NEW --out-interface ppp4 --jump CONNMARK --set-mark 5
iptables -t mangle -A PREROUTING --in-interface eth0 ! --destination 10.0.0.0/24 --jump CONNMARK --restore-mark
iptables -t mangle -A OUTPUT ! --destination 10.0.0.0/24 --jump CONNMARK --restore-mark

iptables -t nat -A POSTROUTING --out-interface ppp0 --jump MASQUERADE
iptables -t nat -A POSTROUTING --out-interface ppp1 --jump MASQUERADE
iptables -t nat -A POSTROUTING --out-interface ppp2 --jump MASQUERADE
iptables -t nat -A POSTROUTING --out-interface ppp3 --jump MASQUERADE
iptables -t nat -A POSTROUTING --out-interface ppp4 --jump MASQUERADE
</pre>
<p>Next, the <code>ip-up</code> script (to be placed in <code>/etc/ppp/ip-up.d/</code> and made executable):</p>
<pre class="brush: plain; title: ; notranslate">#!/bin/sh
TABLE="$PPP_IFACE"
MARK=$((${PPP_IFACE##ppp} + 1))
ip rule del lookup "$TABLE"
ip route flush table "$TABLE"
ip route add default dev "$PPP_IFACE" table "$TABLE"
ip rule add fwmark "$MARK" table "$TABLE"
</pre>
<p>Finally, the <code>ip-down</code> script (to be placed in <code>/etc/ppp/ip-down.d/</code> and made executable):</p>
<pre class="brush: plain; title: ; notranslate">#!/bin/sh
TABLE="$PPP_IFACE"
ip rule del lookup "$TABLE"
ip route flush table "$TABLE"
</pre>
<p>There are a couple of changes you will need to make to adapt these for your own network. In particular, you’ll need to duplicate the <code>pppN</code> <code>iptables</code> rules for each of the PPP interfaces you want to apply this to. Also, if you are already doing packet marking for some other reason, you’ll need to change the fwmark values I’ve used to ones that don’t interfere with your existing marks. I suspect there’s a better way to only mark outbound traffic than what I do above, but I wasn’t able to figure it out. If you have any improvements to suggest, feel free to mention them in the comments; I will try to keep this post updated with any improvements I make (either on my own, or based on other people’s suggestions).</p></div>
    </content>
    <updated>2011-10-23T14:08:16Z</updated>
    <published>2011-10-23T13:59:52Z</published>
    <category scheme="http://mithrandi.net/blog" term="Uncategorized"/>
    <category scheme="http://mithrandi.net/blog" term="linux"/>
    <category scheme="http://mithrandi.net/blog" term="networking"/>
    <category scheme="http://mithrandi.net/blog" term="routing"/>
    <category scheme="http://mithrandi.net/blog" term="tech"/>
    <author>
      <name>mithrandi</name>
      <uri>http://mithrandi.net/</uri>
    </author>
    <source>
      <id>http://mithrandi.net/blog/feed/</id>
      <link href="http://mithrandi.net/blog" rel="alternate" type="text/html"/>
      <link href="http://mithrandi.net/blog/feed/" rel="self" type="application/atom+xml"/>
      <link href="http://pubsubhubbub.appspot.com" rel="hub" type="text/html"/>
      <link href="http://superfeedr.com/hubbub" rel="hub" type="text/html"/>
      <subtitle xml:lang="en">the shards of meaning</subtitle>
      <title xml:lang="en">Shattered Crystalline Matrix</title>
      <updated>2012-04-14T18:39:08Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://trusoft.co.za/57 at http://trusoft.co.za</id>
    <link href="http://trusoft.co.za/node/57" rel="alternate" type="text/html"/>
    <title>Andre Truter (Cacofonix): Steve Jobs a prophet?</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><!-- google_ad_section_start --><p>Soon after Steve Jobs passed away, my wife sent me the following article, asking me what I thought of it: <a href="http://online.wsj.com/article/SB10001424052970203476804576615403028127550.html">Steve Jobs: The Secular Prophet</a>.  Interesting article.<br/>
The writer speculate that Steve Jobs was a prophet for people who believe in technology.  He also states that the Apple logo is a reference to the apple in the garden of Eden and speculate that the logo basically indicates that Apple wants to reverse the curse of the Fall in the garden of Eden.</p>
<!-- google_ad_section_end --><p><a href="http://trusoft.co.za/node/57" target="_blank">read more</a></p></div>
    </summary>
    <updated>2011-10-22T08:25:52Z</updated>
    <author>
      <name>andre</name>
    </author>
    <source>
      <id>http://trusoft.co.za/blog</id>
      <link href="http://trusoft.co.za/blog" rel="alternate" type="text/html"/>
      <link href="http://trusoft.co.za/blog/feed" rel="self" type="application/rss+xml"/>
      <title>trusoft.co.za blogs</title>
      <updated>2012-04-25T14:05:04Z</updated>
    </source>
  </entry>

  <entry>
    <id>tag:blogger.com,1999:blog-3746667170663095627.post-4536825671081374057</id>
    <link href="http://halcyonpage.blogspot.com/feeds/4536825671081374057/comments/default" rel="replies" type="application/atom+xml"/>
    <link href="http://www.blogger.com/comment.g?blogID=3746667170663095627&amp;postID=4536825671081374057" rel="replies" type="text/html"/>
    <link href="http://www.blogger.com/feeds/3746667170663095627/posts/default/4536825671081374057" rel="edit" type="application/atom+xml"/>
    <link href="http://www.blogger.com/feeds/3746667170663095627/posts/default/4536825671081374057" rel="self" type="application/atom+xml"/>
    <link href="http://halcyonpage.blogspot.com/2011/10/grief-and-shame.html" rel="alternate" type="text/html"/>
    <title>Christel Breedt (Pirogoeth): Grief and Shame</title>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><div>For many years I have thought that surely, having been diagnosed with a mental illness in my childhood, and having been in treatment almost the whole of my life I must have progressed a goodly ways along the path of grieving for the life I would never have because I am ill.</div><div><div><br/></div><div><span class="Apple-style-span">It has dawned on me just today that I have, instead, grown very very good at denial. I have been a fugitive from my grief for almost two decades now right from the first time as a ten year old I visited the local library and took out every book I could find about my disorder. I had been diagnosed for 6 years by that time, and I had become curious about what the Scientific community had to say about my disorder - I had grown frustrated with the lack of communication and education I was receiving from my parents and therapists. What does it mean to have this disorder? How am I different from a person who doesn't have this disorder? What can I do to minimise the effect it has on my life? All reasonable questions for any patient to ask when he receives a diagnosis.</span></div><div><span class="Apple-style-span"><br/></span></div><div><span class="Apple-style-span"> What I read back then about the devastating effect it has - on your performance in school, in the workplace, in your personal relationships,on your lifespan - terrified me. I understood why nobody wanted to tell me anything about what this disorder would mean for my life.</span></div></div><div><br/></div><div>I wondered whether it was realistic of me to hope that medication could ever help me get to that "normal" place on a permanent (or even semipermanent) basis. Would I ever be able to live a "normal" life? Would I always feel this maladjusted, and unhappy? </div><div><br/></div><div>Ever since I was ten I have been running away from the answer to these questions - perhaps because even at ten I understood the truth that my symptoms are pervasive and their effect strikes to the heart of how we judge the value and worth of our lives: Wealth, health, the ability to be a productive and respected member of society, the desire to be self-supporting, the ability to love and be loved.</div><div><br/></div><div><span class="Apple-style-span">I spoke to no one of what I had learned, and I swore in my heart that it would NEVER happen to me. I would buck the trend. I'd crush the bell-curve with my boot. I would work harder, I would be smarter, I would learn coping skills, I would compensate, I would box it and bottle it and it would never ever destroy MY life. Never.</span></div><div><br/></div><div>It really isn't a wonderful thing for a child to be precocious. I think they learn things too soon, before they know how to live with the things they learn.</div><div><br/></div><div>Perhaps it took a day when I wasn't depressed anymore. A day when I felt good about myself and I believed that my life is worthwhile and that I am worthwhile. A day when could find the strength to stop running away from my grief. I think perhaps that day is today.</div><div><br/></div><div>I have been trying for so very long to hide my illness. I have, over the years, been forced through one humiliating failure after another: Inability to maintain a career, trouble maintaining relationships, trouble sustaining good habits of self-care, failure to perform to my potential at work or study... tick box after tick box. I felt increasingly condemned to being a textbook example of "The effects for mental illness and developmental disorders on an individual". </div><div><br/></div><div>And I was deeply and profoundly ashamed.</div><div><br/></div><div><a href="http://www.youtube.com/watch?v=X4Qm9cGRub0">Brene Brown'</a>s research on shame and connectedness has had a profound effect on my mental health in the past year, and the heart of her research was the great truth  that shame unravels connectedness. We all have shame, and the more we hide it and don't talk about it, the more it gnaws at us and makes us feel alone and unconnected. So I have begun to reveal more and more of my shame, in the hope that perhaps sharing it will help me feel less disconnected from the people I love and the world in general.</div><div><br/></div><div><span class="Apple-style-span">I was ashamed that I forget to bathe. That my house presents a health hazard almost half the year. That I am usually too depressed to do my fair share of the housework with my husband. That I struggle to make and maintain friendships.</span>That I have a serious problem with my weight. That I have been struggling with sexual dysfunction for many years. That I am unable to remain gainfully employed. That I suffer from such severe mood-swings that I sometimes want to harm myself and others, and that have on occasion tried to do so. </div><div><br/></div><div>But...lately I've begun to notice an odd thing: When I talk about being ill, I get better. When I admit to being lonely, I make friends. When I feel too ill to do anything, those friends help me out. The secret, it seems, was not to keep things secret.</div><div><br/></div><div>I think so many of we - the "different" - are subject to great suffering, simply because we have imprisoned ourselves in a cage of shame, guilt, anxiety and grief over our failure to perform to the standards that society has set for us - and more often the standards we have set for ourselves.</div><div><br/></div><div>We never speak of it except jokingly. We never weep where anyone can see us. We hide our illnesses and the effect it has on us so completely that we begin to live a lie. "You have medication now. You should be normal. Pull up your socks!" seems to be the subliminal message we all live by. </div><div><br/></div><div>It has made psychiatric and developmental disorders invisible in society in just as effective a way as it was made invisible a hundred and fifty years ago by incarcerating the mentally ill in mental hospitals and chaining them to their beds - except society pats itself on the back and imagines that we are so very much more enlightened now then we were back then.</div><div><br/></div><div>Then of course there are the countless people who still say such very insensitive and ridiculous things: "Mental illness is a choice."  "Everyone is mentally ill these days, it's just a fad."  "Medication is just a way for them to control your mind and make you a sheep." </div><div><br/></div><div>My response to this is becoming almost an allergic reaction. In the words of Tim Minchin "Does the idea that a evening spent reading Wikipedia might enlighten you, frighten you?" With so much solid, properly referenced information at your fingertips, why do so many people still propagate belief systems concoted by glib, fast talking television personalities who have no credentials save their proximity to a celebrity, or founded in a denial of the fact that just perhaps they also might be "different".</div><div><br/></div><div>In the age of such overwhelming and extensive Scientific research into the workings of the mind, when we know more about the way the brain works than ever before in the history of our world, WHY is it so difficult for people to accept that psychiatry isn't a form of quackery and that the illnesses described by their research are not some form of "get out of responsibility for free" card but rather a painful and tragic diagnosis that deserves the same empathy and understanding as diabetes, heart disease or cancer. </div><div><br/></div><div><span class="Apple-style-span">I don't want to lie anymore. I don't want to hide anymore. I don't want to feel that I am alone when I know that statistics indicate that between 2-7 percent of the population of Earth suffers from this disorder too, That's more nearly half a billion people worldwide. That doesn't even include other people who suffer from other psychiatric and developmental disorders -  schizophrenics, major depressives, people with ADHD, people with various forms of delusions and psychosis, people with eating disorders, people with OCD, people on the Autistic spectrum - the list is endless.</span></div><div><span class="Apple-style-span"><br/></span></div><div><span class="Apple-style-span">The world does not only belong to ableminded people and I am not alone.</span></div><div><span class="Apple-style-span"><br/></span></div><div><span class="Apple-style-span">I am ashamed that I have a mental illness and I feel that despite my best efforts to fight back,it has devastated my life. I grieve for the loss I have suffered in quality of life just as a lupus sufferer grieves because of the loss of quality of life they suffer. </span></div><div><br/></div><div>But I am loved, and I have friends. I have some good medication and my life is a good one. I am not afraid to admit that I am mentally ill, because I am beginning to realise that I am not ashamed of it any more - there is nothing to be ashamed of.</div><div><br/></div><div>So tell me, what is it you are you ashamed of?</div><div><br/></div><div><a href="http://www.youtube.com/watch?v=Gd9OhYroLN0&amp;feature=relmfu">http://www.youtube.com/watch?v=Gd9OhYroLN0&amp;feature=relmfu</a></div><div><br/></div><div><br/></div><div class="blogger-post-footer"><img alt="" height="1" src="https://blogger.googleusercontent.com/tracker/3746667170663095627-4536825671081374057?l=halcyonpage.blogspot.com" width="1"/></div></div>
    </content>
    <updated>2011-10-08T16:25:40Z</updated>
    <published>2011-10-04T09:23:00Z</published>
    <author>
      <name>Whizper</name>
      <email>noreply@blogger.com</email>
      <uri>http://www.blogger.com/profile/03090091115823252921</uri>
    </author>
    <source>
      <id>tag:blogger.com,1999:blog-3746667170663095627</id>
      <category term="manifesto"/>
      <category term="open relationship"/>
      <category term="gay"/>
      <category term="freesoftware"/>
      <category term="vulnerability"/>
      <category term="culture"/>
      <category term="non-monogamy"/>
      <category term="relationship advice"/>
      <category term="memory"/>
      <category term="joy"/>
      <category term="icommons"/>
      <category term="shame"/>
      <category term="Pirogoeth"/>
      <category term="wikipedia"/>
      <category term="sexpositive"/>
      <category term="infedelity"/>
      <category term="all-cities"/>
      <category term="cheating"/>
      <category term="polyamory. Firework"/>
      <category term="wikimedia"/>
      <category term="ted talks"/>
      <category term="Michigan Spur"/>
      <category term="courtship"/>
      <category term="lesbian"/>
      <category term="cc"/>
      <category term="polyamory"/>
      <category term="LGBT"/>
      <category term="openheritage"/>
      <category term="fear"/>
      <category term="love"/>
      <category term="coming out of the closet"/>
      <author>
        <name>Whizper</name>
        <email>noreply@blogger.com</email>
        <uri>http://www.blogger.com/profile/03090091115823252921</uri>
      </author>
      <link href="http://halcyonpage.blogspot.com/feeds/posts/default" rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml"/>
      <link href="http://www.blogger.com/feeds/3746667170663095627/posts/default" rel="self" type="application/atom+xml"/>
      <link href="http://halcyonpage.blogspot.com/" rel="alternate" type="text/html"/>
      <link href="http://pubsubhubbub.appspot.com/" rel="hub" type="text/html"/>
      <link href="http://www.blogger.com/feeds/3746667170663095627/posts/default?start-index=26&amp;max-results=25" rel="next" type="application/atom+xml"/>
      <title>Halcyon Days</title>
      <updated>2012-04-16T02:51:41Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://blog.adrianfrith.com/2011/10/01/south-african-redditors</id>
    <link href="http://blog.adrianfrith.com/south-african-redditors.html" rel="alternate" type="text/html"/>
    <title xml:lang="en">Adrian Frith (htonl): Some information about South African redditors</title>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>I took a look at the data from the <a href="http://blog.reddit.com/2011/09/who-in-world-is-reddit-results-are-in.html">Who
in the World is reddit survey</a> to see what it says about South African
redditors. Only 83 survey entries listed their country of residence as South
Africa, compared to 409 subscribers to <a href="http://www.reddit.com/r/southafrica">/r/southafrica</a>, so this data
might not provide a complete picture.

</p><p>To start off, it will surprise no-one to learn that most SA redditors are
men in their twenties and thirties.

</p><p><img src="http://blog.adrianfrith.com/images/zareddit/age-gender.png"/>

</p><p>Despite the “forever alone” stereotype, just about half are
in a relationship.

</p><p><img src="http://blog.adrianfrith.com/images/zareddit/relationship.png"/>

</p><p>We’re a pretty well-educated lot, with almost two-thirds having some
type of degree. I’m a little curious about the one associate’s degree,
since I don’t think such a thing exists in South Africa. Could be an
American expat, I suppose.

</p><p><img src="http://blog.adrianfrith.com/images/zareddit/education.png"/>

</p><p>Income has quite a varied distribution. The original income ranges are
given in multiples of US$20 000 — for the sake of having relatively
round numbers, I used an exchange rate of seven rand to the dollar.
</p><p><img src="http://blog.adrianfrith.com/images/zareddit/income.png"/><br/>
(And yes, I know this is a bad histogram, but it seems to be impossible to get
Libreoffice Calc to draw a better one.)

</p><p>I didn’t draw a chart of the answers to the “favourite
subreddit” question, because the answers were widely varying. The top
seven were:
</p><table>
<tbody><tr><th>Subreddit</th><th>Responses
</th></tr><tr><td style="padding-right: 1em;">fffffffuuuuuuuuuuuu</td><td>8
</td></tr><tr><td>askreddit</td><td>7
</td></tr><tr><td>pics</td><td>4
</td></tr><tr><td>truereddit</td><td>4
</td></tr><tr><td>askscience</td><td>3
</td></tr><tr><td>iama</td><td>3
</td></tr><tr><td>programming</td><td>3
</td></tr></tbody></table>
(I counted “f7u12” responses towards fffffffuuuuuuuuuuuu.)

<p>Finally, there are the two really serious questions. It turns out that
South African redditors are mostly dog people:

</p><p><img src="http://blog.adrianfrith.com/images/zareddit/pets.png"/>

</p><p>But we are a divided nation when it comes to the issue of cheese:

</p><p><img src="http://blog.adrianfrith.com/images/zareddit/cheese.png"/></p></div>
    </content>
    <updated>2011-10-01T17:39:52Z</updated>
    <published>2011-10-01T17:39:52Z</published>
    <source>
      <id>http://blog.adrianfrith.com/index.atom</id>
      <author>
        <name>adrian</name>
        <email>adrian@adrianfrith.com</email>
        <uri>http://blog.adrianfrith.com/index.atom</uri>
      </author>
      <link href="http://blog.adrianfrith.com" rel="alternate" type="text/html"/>
      <link href="http://blog.adrianfrith.com/index.atom" rel="self" type="application/atom+xml"/>
      <rights xml:lang="en">Copyright 2006-2011 Adrian Frith</rights>
      <subtitle xml:lang="en">Yet another boring blog; this one belongs to Adrian Frith.</subtitle>
      <title xml:lang="en">Adrian's Blog</title>
      <updated>2011-10-01T17:39:52Z</updated>
    </source>
  </entry>
</feed>

