<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Simon Lyall&#039;s Blog &#187; Linux.conf.au</title>
	<atom:link href="http://blog.darkmere.gen.nz/category/tech/lca/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.darkmere.gen.nz</link>
	<description>New Zealand, Sysadmin, Linux, Curry, Chess</description>
	<lastBuildDate>Sun, 21 Apr 2013 03:36:48 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5</generator>
		<item>
		<title>lca2013 &#8211; Day 4 &#8211; Session 2</title>
		<link>http://blog.darkmere.gen.nz/2013/01/lca2013-day-4-session-2/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=lca2013-day-4-session-2</link>
		<comments>http://blog.darkmere.gen.nz/2013/01/lca2013-day-4-session-2/#comments</comments>
		<pubDate>Thu, 31 Jan 2013 01:17:13 +0000</pubDate>
		<dc:creator>simon</dc:creator>
				<category><![CDATA[Linux.conf.au]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://blog.darkmere.gen.nz/?p=868</guid>
		<description><![CDATA[Git For Ages 4 And Up by Michael Schwern It is not you, is really is complicated It is easier to understand git from inside out, cause the interface is so far&#8230; Getting started &#8211; init and clone Entire repo in .git directory after &#8220;git init&#8221; Getting stuff done add and commit add writes to [...]]]></description>
				<content:encoded><![CDATA[<p><strong><a href="https://lca2013.linux.org.au/schedule/30286/view_talk?day=thursday">Git For Ages 4 And Up</a> <i>by</i> Michael Schwern</strong></p>

<p>It is not you, is really is complicated</p>

<p>It is easier to understand git from inside out, cause the interface is so far&#8230;</p>

<p>Getting started &#8211; init and clone
<ul>
    <li>Entire repo in .git directory after &#8220;git init&#8221;</li>
</ul>
Getting stuff done add and commit
<ul>
    <li>add writes to the repo</li>
    <li>commit creates a commit object and puts labels on it</li>
    <li>take a new copy this file.</li>
    <li>Add creates a new node, commit attaches a commit-object to it and moves the head and master</li>
</ul>
Branching
<ul>
    <li>git branch feature &#8211; added feature label to current node</li>
    <li>git checkout feature &#8211; next commit will move feature label</li>
    <li>git commit &#8211; moves the feature label and the head</li>
    <li>head always points to what you have checked out</li>
</ul>
Commits
<ul>
    <li>Every one is unique and has unique id</li>
    <li>They never change</li>
    <li>content, author, date</li>
</ul>
Staging area / Index / Cache
<ul>
    <li>Place to build up stuff before a commit</li>
    <li>eg what is in &#8220;add&#8221;</li>
</ul>
Workflow
<ul>
    <li>Isolate -&gt; work &lt;-&gt; update -&gt; share</li>
    <li>git checkout master &#8211; move back to master branch, can&#8217;t see stuff in branch</li>
    <li>get merge feature &#8211; merge in the branch &#8220;feature&#8221;</li>
    <li>git log &#8211;graph &#8211;decorate all</li>
    <li>reset &#8211; &#8220;arbitary move labels around command&#8221;</li>
    <li>Merge master back into feature
<ul>
    <li>git checkout feature</li>
    <li>git merge master</li>
</ul>
</li>
    <li>Unlike cvs &#8220;commit does not meet share&#8221;</li>
</ul>
Working with others
<ul>
    <li>git clone remote work &#8211; clones a remote into work folder</li>
    <li>Normally &#8220;remote&#8221; will be the URL of the remote repo</li>
    <li>origin/master &#8211; label to commit where git thinks remote currently is.</li>
    <li>pull == fetch + merge</li>
    <li>git checkout -b bugfix  &#8211; checkout and branch</li>
    <li>git push origin bugfix &#8211; push to the branch &#8220;bugfix&#8221; on the remote &#8220;origin&#8221;</li>
    <li>git push -u origin bufix &#8211; the -u sets the default branch to push to on the remote &#8220;origin&#8221; for next time</li>
</ul>
Tags
<ul>
    <li>git tag v1.0 b08234</li>
    <li>Add any old random tag to a commit, defaults to current commit you are on</li>
    <li>cannot move tags except with force</li>
    <li>can branch from tags</li>
</ul>
Rebase
<ul>
    <li>git rebase -i  &#8211; interactive mode</li>
    <li>squash</li>
    <li>creates a new commit ( hanging off parent of commit your are rebasing ) and move branch to it, leaves previous branch hanging detached</li>
    <li>Don&#8217;t rebase after you have pushed</li>
</ul></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.darkmere.gen.nz/2013/01/lca2013-day-4-session-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>lca2013 &#8211; Day 4 &#8211; Keynote</title>
		<link>http://blog.darkmere.gen.nz/2013/01/lca2013-day-4-keynote/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=lca2013-day-4-keynote</link>
		<comments>http://blog.darkmere.gen.nz/2013/01/lca2013-day-4-keynote/#comments</comments>
		<pubDate>Wed, 30 Jan 2013 22:56:22 +0000</pubDate>
		<dc:creator>simon</dc:creator>
				<category><![CDATA[Linux.conf.au]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://blog.darkmere.gen.nz/?p=866</guid>
		<description><![CDATA[Bunnie &#8211; Linux in the Flesh: Adventures Embedding Linux in Hardware  As CPU speeds growth has stall mobile CPUs have caught up with Desktop CPUs Cost of Mobile CPUs $20 on intro vs $X00 on intro for desktop CPUs Time spend making a product 11% on Hardware design &#8211; schematic and PCB layout 20% on [...]]]></description>
				<content:encoded><![CDATA[<p><strong>Bunnie &#8211; Linux in the Flesh: Adventures Embedding Linux in Hardware </strong></p>

<p>As CPU speeds growth has stall mobile CPUs have caught up with Desktop CPUs</p>

<p>Cost of Mobile CPUs $20 on intro vs $X00 on intro for desktop CPUs</p>

<p>Time spend making a product
<ul>
    <li>11% on Hardware design &#8211; schematic and PCB layout</li>
    <li>20% on product and software dev</li>
    <li>33% in mass production ramp</li>
</ul>
Giving Linux a body
<ul>
    <li>Consumers don&#8217;t like bare boards</li>
    <li>Comprehensive 3D models</li>
    <li>Build injection molds &#8211; Steel cut, EDM tidy, Hand polish</li>
    <li>Around $20k to create tool</li>
    <li>People like Apple will start multiple tool runs and keep the best</li>
    <li>General rule &#8211; $99 product you want to sell wholesale for $30</li>
    <li>Magic prices products sell at $99, $149, $199</li>
    <li>90% of hardware sales between Black Friday and Christmas. Can&#8217;t ship just after Christmas</li>
</ul>
Chellenges of Embedding Linux
<ul>
    <li>Embedded CPUs have lots of weird bugs</li>
    <li>Bootloaders
<ul>
    <li>CPU-Specific media loaders</li>
    <li>Firmware has raw Iron &#8211; NO MMU, No DRAM, etc</li>
</ul>
</li>
    <li>Small memory footprint
<ul>
    <li>Linux runs just a few MB of memory</li>
    <li>Every $ counts, lots of time fixing code</li>
</ul>
</li>
    <li>Flash File Systems
<ul>
    <li>Few 1000 read/write cycles</li>
    <li>No write g&#8217;teed to succeed</li>
    <li>Power-down corruption is a fact of life, need backup or read-only copies</li>
</ul>
</li>
    <li>Power Management
<ul>
    <li>Reduce frequency and voltage when CPU is lightly loaded</li>
    <li>Need to adjust for high and low load</li>
    <li>Rouge processes can chew CPU/Power</li>
    <li>Lots of auditing needed</li>
    <li>User apps are hard</li>
</ul>
</li>
    <li>Suspended / Sleep hard
<ul>
    <li>Drivers might be written with this in mind</li>
</ul>
</li>
    <li>Huge number of devices that can be plugged in, lots of drivers to verify</li>
    <li>Dev community
<ul>
    <li>Smaller pop that desktop</li>
</ul>
</li>
    <li>Updates and patches and rollout and distribution hard to do, must do yourself</li>
    <li>Software is the major bottleneck &#8211; cause it is easy, you can do <strong>anything</strong></li>
    <li>System architect must create a useful cage for the software dev</li>
</ul>
Case Study: Robot Vision
<ul>
    <li>Kovan</li>
    <li>Needs to do image processing</li>
    <li>Lots of choices
<ul>
    <li>Using FPGA on PCIe uses up all of memory bandwidth in small systems</li>
    <li>Connect via USB means it is just a &#8220;camera driver&#8221;</li>
    <li>Connect between Soc and the Screen</li>
    <li>Or between SoC and the DRAM</li>
</ul>
</li>
    <li>Ended up between SoC and LCD</li>
    <li>Ends up as /dev/fpga</li>
    <li>Handle multiple types by probing</li>
</ul>
Case: NeTV
<ul>
    <li>Goes between device and screen</li>
    <li>Overlay stuff over video</li>
    <li>But signal is all encrypted</li>
    <li><strong>Sync Pixels and replace one by one using Man-in-the-middle attack on encrypted signal!!!</strong></li>
    <li>Very hard to get timing, drift of 100s of pixels per frame</li>
    <li>Source clock from the incoming signal</li>
    <li>A few other tricks</li>
</ul>
Dev Enviroment
<ul>
    <li>Created Amazon AMI to help people get up and going</li>
    <li>But hardware devs not used to using these</li>
    <li>Not a 100% fit to normal dev model</li>
</ul></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.darkmere.gen.nz/2013/01/lca2013-day-4-keynote/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>lca2013 &#8211; Day 3 &#8211; Session 3</title>
		<link>http://blog.darkmere.gen.nz/2013/01/lca2013-day-3-session-3/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=lca2013-day-3-session-3</link>
		<comments>http://blog.darkmere.gen.nz/2013/01/lca2013-day-3-session-3/#comments</comments>
		<pubDate>Wed, 30 Jan 2013 06:17:32 +0000</pubDate>
		<dc:creator>simon</dc:creator>
				<category><![CDATA[Linux.conf.au]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://blog.darkmere.gen.nz/?p=864</guid>
		<description><![CDATA[users: delighted; (better UX using CSS 3 in particular and &#8220;HTML5&#8243; in general) by Adam Harvey User Experience &#8220;Used by meatbags sitting in keyboards&#8221; UI &#38; UX &#8221; The only thing that numbs the pain of dealing with IE6 &#8220; How to put yourself in the user&#8217;s shoes? Personas Simplify Interface  Three Click rule 4 [...]]]></description>
				<content:encoded><![CDATA[<p><strong><a href="https://lca2013.linux.org.au/schedule/30224/view_talk?day=wednesday">users: delighted; (better UX using CSS 3 in particular and &#8220;HTML5&#8243; in general)</a> <i>by</i> Adam Harvey</strong></p>

<p>User Experience
<ul>
    <li>&#8220;Used by meatbags sitting in keyboards&#8221;</li>
    <li>UI &amp; UX</li>
    <li>&#8221; The only thing that numbs the pain of dealing with IE6 &#8220;</li>
    <li>How to put yourself in the user&#8217;s shoes? Personas</li>
    <li>Simplify Interface
<ul>
    <li> Three Click rule</li>
    <li>4 Clicks to get to most wanted page of sample website</li>
    <li>Other study says people keep clicking until they get the page they want</li>
</ul>
</li>
    <li>Have to find balancer between what you want and what you can do</li>
</ul>
Example: PHP website, new version
<ul>
    <li>No real metrics</li>
    <li>Dropdown menus, hard to decide what to put on the documentation menu, guessed what people might want</li>
</ul>
People expect web interfaces to be smooth these days</p>

<p>Example @font-face
<ul>
    <li>Icon fonts
<ul>
    <li>Put things that were in sprites into icon-fonts</li>
    <li>Positives &#8211; scalable, bandwidth efficient, text effects are available eg blink</li>
    <li>Negatives &#8211; Lack of Accessibility, No colours</li>
    <li>Very compatible with browsers</li>
</ul>
</li>
    <li>Alternative SVG
<ul>
    <li>Positives &#8211; colour, scriptibility</li>
    <li>Negatives &#8211; Accessibility, slower, IE 9+ only, Andriod 3+ only</li>
</ul>
</li>
    <li>Consider sprites, Use icon fonts most of the time, SVG for specific needs</li>
</ul>
Transitions
<ul>
    <li>Smoothly make a change in an attribute</li>
    <li>Gotchas
<ul>
    <li>Image transition support variable in browsers</li>
    <li>Still vendor prefix</li>
    <li>But effect does degrade well</li>
</ul>
</li>
    <li>Good browser support except IE</li>
    <li>Use when you can, especially if you don&#8217;t care about IE</li>
</ul>
Keyframe Animation
<ul>
    <li>Can do simple animations of objects of CSS</li>
</ul>
&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.darkmere.gen.nz/2013/01/lca2013-day-3-session-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>lca2013 &#8211; Day 3 &#8211; Session 2</title>
		<link>http://blog.darkmere.gen.nz/2013/01/lca2013-day-3-session-2/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=lca2013-day-3-session-2</link>
		<comments>http://blog.darkmere.gen.nz/2013/01/lca2013-day-3-session-2/#comments</comments>
		<pubDate>Wed, 30 Jan 2013 04:01:00 +0000</pubDate>
		<dc:creator>simon</dc:creator>
				<category><![CDATA[Linux.conf.au]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://blog.darkmere.gen.nz/?p=862</guid>
		<description><![CDATA[Droids that talk: Pairing Codec2 and Android by Joel Stanley Sophisticated DSP and SDR are within the reach of the LCA attendee skill see FOSS Speech Codecs Post to any platform Possibilities Digital Voice over Radio Naarrow bandwidth Low bitrate Carried by VHF, HF Not GSM or VOIP 1000 times more efficient than voice over [...]]]></description>
				<content:encoded><![CDATA[<p><strong><a href="https://lca2013.linux.org.au/schedule/30226/view_talk?day=wednesday">Droids that talk: Pairing Codec2 and Android</a> <i>by</i> Joel Stanley</strong></p>

<p>Sophisticated DSP and SDR are within the reach of the LCA attendee skill see</p>

<p>FOSS Speech Codecs
<ul>
    <li>Post to any platform</li>
    <li>Possibilities</li>
</ul>
Digital Voice over Radio
<ul>
    <li>Naarrow bandwidth</li>
    <li>Low bitrate</li>
    <li>Carried by VHF, HF</li>
    <li>Not GSM or VOIP</li>
    <li>1000 times more efficient than voice over WIFI</li>
    <li>1/3 of bandwidth used by commercial Am Radio</li>
</ul>
Software Radio
<ul>
    <li>Software and be free</li>
    <li>CPU cycles can be nearly free</li>
</ul>
How Radio works?
<ul>
    <li>Antenna</li>
    <li>Pre-Amp &#8211; boast signal</li>
    <li>Mixer &#8211; Takes pre-amp signal  + local oscillator signal</li>
    <li>Another Audio Amplifier</li>
</ul>
FreeDV on Andriod
<ul>
    <li>libusb-andriod
<ul>
    <li>No lsoc support on Andriod</li>
    <li>Integrates with Andriod permission framework</li>
</ul>
</li>
    <li>fdmdv2 and codec2
<ul>
    <li>Worked as-is from freeDV</li>
</ul>
</li>
    <li>JNI Layer
<ul>
    <li>Thread USB callback</li>
</ul>
</li>
    <li>Audio Playback
<ul>
    <li>Uses Audiotrack API</li>
</ul>
</li>
    <li>Graphing hard- used GraphView</li>
    <li>Canvas class for drawing scatter plot</li>
    <li>Future &#8211; Waterfall plot</li>
</ul>
Links
<ul>
    <li><a href="https://blog.jms.id.au">https://blog.jms.id.au</p>

<p></a></li>
    <li><a href="https://blog.jms.id.au">http://www.rowetel.com/blog/codec2.html</p>

<p></a></li>
    <li><a href="https://blog.jms.id.au">http://freedv.org</p>

<p></a></li>
</ul>
&nbsp;</p>

<p><strong><a href="https://lca2013.linux.org.au/schedule/30184/view_talk?day=wednesday">The future of non-volatile memory</a> <i>by</i> Matthew Wilcox</strong></p>

<p>NVM Express Standard
<ul>
    <li>Talking to NVM across the PCIe bus</li>
    <li>Various vendor standards</li>
    <li>Want to have one driver, be able to switch between vendors easily</li>
</ul>
PCIe Drives
<ul>
    <li>2.5 and 3.5 Inc drives</li>
    <li>A common slot for SA / SATA / PCIe</li>
    <li>Support up to 4 lanes at 8Gb/s</li>
</ul>
Post-NAND Era
<ul>
    <li>Various technologies in dev to replace NAND</li>
    <li>Ferroelectric, Magnetoresistive, Phase-change, Racetrack</li>
    <li>Most promise DRAM-comparable speeds</li>
    <li>Only last a short time, not days/weeks of persistence with no power</li>
    <li>CPU will treat these the way it treats DRAM &#8211; just loads and stores to it directly, no API</li>
</ul>
Programming Model
<ul>
    <li>What if you allocate persistent memory?</li>
    <li>malloc() is the wrong model
<ul>
    <li>CPU is not persistent, after reset out of sync with memory</li>
</ul>
</li>
    <li>Block device also wrong model</li>
    <li>POSIX provides open(), mmap()</li>
    <li>So maybe a filesystem then?
<ul>
    <li>Must bypass page cache</li>
    <li>May be a simpler filesystem, not fully-featured, no page cache etc</li>
    <li>Keith Packard has already done this for graphics memory</li>
    <li>But writing files systems is hard, long time to get them stable</li>
</ul>
</li>
</ul>
Linux Assumes page cache
<ul>
    <li>O<em>DIRECT and splice() are good examples. May be other corner cases</li>
</ul>
Linux really sucks at sync
<ul>
    <li>msync(MS</em>ASYNC) is a no-op</li>
    <li>msync(MS<em>SYNC) is an inefficient way of calling fsync()</li>
    <li>fsync() synchronises more than we need</li>
    <li>So does fdatasync()</li>
    <li>sync</em>file_range() doesn&#8217;t sync enough</li>
</ul>
Humans suck at sync
<ul>
    <li>tdb has contained some horrendous races and missing syncs</li>
    <li>If we expect normal human programmers to get it right we have to come up with something easy</li>
</ul>
Observability
<ul>
    <li>CPU A modifies a cacheline and starts syncing it to the persistent memory</li>
    <li>CPU B reads the same cacheline and observes CPU A&#8217;s Changes</li>
    <li>Machine loses power. On reboot are we guaranteed that CPU A&#8217;s changes are still visable?</li>
    <li>Difference between coherence and persistence</li>
    <li>Journalling is HARD</li>
</ul>
Reliability
<ul>
    <li>Current API insulates us</li>
    <li>Memory can become corrupted, as long as we crash before it hits storage, the corruption will never be observed</li>
</ul>
Improving error logs
<ul>
    <li>Write directly to logs from inside the kernel</li>
    <li>Snapshot kernel and state for recovery or debugging</li>
    <li>Future machines may not have DRAM at all. What happens if you have  a problem, hard to cold boot</li>
    <li>&#8220;Emails to 10TB system state to LKML&#8221; &#8211; Jeff Waugh</li>
    <li>Cosmic rays corrupting memory while running</li>
</ul>
&nbsp;</p>

<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.darkmere.gen.nz/2013/01/lca2013-day-3-session-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>lca2013 &#8211; Day 3 &#8211; Session 1</title>
		<link>http://blog.darkmere.gen.nz/2013/01/lca2013-day-3-session-1/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=lca2013-day-3-session-1</link>
		<comments>http://blog.darkmere.gen.nz/2013/01/lca2013-day-3-session-1/#comments</comments>
		<pubDate>Wed, 30 Jan 2013 01:04:14 +0000</pubDate>
		<dc:creator>simon</dc:creator>
				<category><![CDATA[Linux.conf.au]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://blog.darkmere.gen.nz/?p=857</guid>
		<description><![CDATA[So after a late night hustling people at foosball and swapping rumours about a certain person being ejected from the conference, I managed to leave my key in my room in the rush to get to the opening (although in the end I caught a bus). The winner of The Rusty Wrench award was Donna [...]]]></description>
				<content:encoded><![CDATA[<p>So after a late night hustling people at foosball and swapping rumours about a certain person being ejected from the conference, I managed to leave my key in my room in the rush to get to the opening (although in the end I caught a bus).</p>

<p>The winner of The Rusty Wrench award was Donna Benjamin this year, I liked the way she talked about each of the past winners and got everybody to acknowledge them ( Rusty, Pia, Mary and Kim ).</p>

<p><strong> <a href="https://lca2013.linux.org.au/schedule/30217/view_talk?day=wednesday">Think, Create &amp; Critique Design</a> <i>by</i> Andy Fitzsimon</strong></p>

<p>&#8221; I&#8217;m a drinker with a speaking problem &#8220;</p>

<p>We are all designers</p>

<p>Fundamentals of design
<ul>
    <li>Elements and principals of design</li>
    <li>Like cooking &#8211; ingredients create flavours influencing a meal</li>
    <li>Elements are the raw tools:
<ul>
    <li>Line &#8211; continious path between two points, process, plot</li>
    <li>Shape &#8211; When I line joins around to cover an area &#8211; shapes used to explan something (pymrid scheme )</li>
    <li>Space &#8211; positive and negative</li>
    <li>Size</li>
    <li>Colour</li>
    <li>Value</li>
    <li>Texture &#8211; structure and feel</li>
</ul>
</li>
    <li>Principles
<ul>
    <li>made with elements and with other priciples</li>
    <li>proportion</li>
    <li>Pattern &#8211; using same element multiple times</li>
    <li>Graduation &#8211; incremental changes to one element over another</li>
    <li>Balance / Harmony / Unity &#8211; One or more elements creating a cohesion</li>
    <li>Contrast &#8211; abrupt difference between elements creating a compostion</li>
    <li>Emphasis</li>
    <li>Form &#8211; The &#8220;whole&#8221; that the sum of the parts make</li>
    <li>Gestalt</li>
</ul>
</li>
</ul>
Practices
<ul>
    <li>Visual Design</li>
    <li>The Swiss Won &#8211; &#8220;International Typographic Style&#8221;
<ul>
    <li>Typographic</li>
    <li>Famously minimalistic</li>
</ul>
<ul>
    <li>easy to critique and easier to impliment</li>
    <li>Baseline grid &#8211; can check with a ruler</li>
    <li>Always follows a vertical rhythm</li>
    <li>If you have a design you already have a grid</li>
    <li>A varied scale &#8211; Robert Bringhurst</li>
</ul>
</li>
    <li>Art Nouveau
<ul>
    <li>Hard to do</li>
</ul>
</li>
    <li>Style tiles and brand guides</li>
</ul>
Tools
<ul>
    <li>Patterns</li>
    <li>Wireframe</li>
    <li>Workflow</li>
    <li>Persona</li>
    <li>Analytics</li>
    <li>Instrumentation</li>
    <li>Surveys</li>
    <li>Reviews</li>
    <li>User Testing</li>
</ul>
Have some common sense</p>

<p>Interactive design
<ul>
    <li>Progressive disclosure</li>
    <li>Form follows function</li>
    <li>Affordance</li>
    <li>Hyper realism vs skeumorphism
<ul>
    <li>Hyper realism &#8211; makes things look real</li>
    <li>skeu &#8211; reminds you of something real</li>
</ul>
</li>
</ul>
Experience design
<ul>
    <li>Deliberate differences</li>
    <li>think, make, become (take ownership, win with empathy!)</li>
</ul>
Nail the hierarchy of needs
<ul>
    <li>Lovable</li>
    <li>meaningful</li>
    <li>pleasurable</li>
    <li>convienient</li>
    <li>predictable</li>
    <li>purposeful</li>
    <li>They are easy to observe but hard to tell</li>
    <li>damned hard to hit them all</li>
</ul>
Good design is a process
<ul>
    <li>Design thinking
<ul>
    <li>It is a quick workflow</li>
    <li>define</li>
    <li>find</li>
    <li>guess</li>
    <li>try</li>
    <li>check</li>
    <li>do</li>
    <li>learn</li>
</ul>
</li>
</ul>
Failing at life <del>is</del> helps you design</p>

<p>Design for hacker is a great book, if you can stomach apple worship and web 2.0</p>

<p>Bunch of other books..</p>

<p><a href="http://ndftz.com/poster.pdf">ndftz.com/poster.pdf</a></p>

<p>&nbsp;</p>

<p><strong><a href="https://lca2013.linux.org.au/schedule/30009/view_talk?day=wednesday">Vampire Mice: How USB PM impacts you</a> <i>by</i> Sarah Sharp</strong></p>

<p>How USB power Management works
<ul>
    <li>3 types of management
<ul>
    <li>Device suspend</li>
    <li>Host suspend</li>
    <li>Link power management</li>
</ul>
</li>
    <li>Devices suspended when inactive</li>
    <li>When all device on host you can suspend host</li>
    <li>1 device keeps host awake which keeps CPU awake</li>
    <li>Device must to support suspend (according to spec)
<ul>
    <li>But lots don&#8217;t</li>
    <li>Drivers sometimes don&#8217;t</li>
    <li>No USB transfers when suspended, so if userspace polling then can&#8217;t suspend</li>
</ul>
</li>
</ul>
How USB power Mngt does not work
<ul>
    <li>Drivers missing auto-suspend support</li>
    <li>Impossible to get device to idle</li>
    <li>Userspace polls device
<ul>
    <li>Has a SD card been inserted yet?</li>
</ul>
</li>
    <li>USB suspend issues
<ul>
    <li>Disconnect on resume</li>
    <li>Unsafe suspend behaviour ( usb hard drive cut power to spinning disk without parking )</li>
    <li>No remote wakeups ( mouse only wakes up when button pushed, not just when it is moved )</li>
    <li>Event loss during resume</li>
    <li>too risky to enable by default</li>
</ul>
</li>
    <li>Hard to tell if firmware version is good or bad</li>
    <li>All sorts of weird issues with different platforms ( USB Hubs etc )</li>
</ul>
USB Device Suspend Issues
<ul>
    <li>Blacklist to big to keep in the kernel</li>
    <li>USB Device suspend off by default</li>
    <li>Can be turn on by user (per device) via powertop</li>
    <li>Powertop setting won&#8217;t persist across device unplugs or reboots
<ul>
    <li>Solution: Create a udev rule</li>
</ul>
</li>
</ul>
Takeaway:
<ul>
    <li>Try using powertop</li>
    <li>Create Udev rule to keep</li>
</ul>
Challenges with USB device suspend
<ul>
    <li>Users must turn on</li>
    <li>Require driver modification</li>
    <li>Timeout too course grained</li>
    <li>Devices can&#8217;t refuse to allow suspend</li>
</ul>
USB 3.0 Link Power Management
<ul>
    <li>Link Power Management states U1 and U2</li>
    <li>Hosts and hubs track idleness</li>
    <li>OS sets timeout once</li>
    <li>No driver modification</li>
    <li>Devices can refuse U1 and U2</li>
    <li>Some vendors don&#8217;t like Link PM &#8211; can be detected</li>
    <li>Some Hubs don&#8217;t support either</li>
    <li>USB 2.1
<ul>
    <li>New L1 state</li>
    <li>No changes to USB 2.0 hubs</li>
</ul>
</li>
</ul>
New Intel stuff
<ul>
    <li>Panther Point vs Lynx Point chipsets</li>
    <li>Panther Point
<ul>
    <li>Has xHCI controller</li>
    <li>Only 4 points under xHCI</li>
    <li>Supports USB 3.0 Link PM</li>
</ul>
</li>
    <li>Lynx Point
<ul>
    <li>All Ports</li>
    <li>Supports 3.0 PM and 2.1 PM</li>
    <li>Completely unused ports can be turned off completely</li>
</ul>
</li>
</ul>
Summary
<ul>
    <li>Lot of broken devices</li>
    <li>But quiet a few that do work</li>
    <li>Try powertop</li>
    <li><a href="http://github.com/sarahsharp/usb-pm-tools">github.com/sarahsharp/usb-pm-tools</a></li>
    <li>Link PM improvements</li>
    <li>New Intel USB PM improvements</li>
</ul>
Actual saving is Probably more than you think, especially if you get the whole chain to sleep.</p>

<p>Somebody said &#8220;about 4 watts&#8221; for SandyBridge</p>

<p>Servers can also save. Options in HP G7 servers. But problems</p>

<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.darkmere.gen.nz/2013/01/lca2013-day-3-session-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>lca2013 &#8211; Day 2 &#8211; Session 3</title>
		<link>http://blog.darkmere.gen.nz/2013/01/lca2013-day-2-session-3/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=lca2013-day-2-session-3</link>
		<comments>http://blog.darkmere.gen.nz/2013/01/lca2013-day-2-session-3/#comments</comments>
		<pubDate>Tue, 29 Jan 2013 06:29:28 +0000</pubDate>
		<dc:creator>simon</dc:creator>
				<category><![CDATA[Linux.conf.au]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://blog.darkmere.gen.nz/?p=855</guid>
		<description><![CDATA[Getting your talk accepted: write a convincing talk proposal &#8211; Jacinta Richardson Background On a lot of papers committees LCA, SAGE-AU, OSDC Pick Conference you want to speak at Some easier to get into than others SAGE-AU 50% OSDC 50% YAPC easy OS Bridge &#8211; harder OSCON &#8211; 30-50% chance everywhere else &#8211; medium LCA [...]]]></description>
				<content:encoded><![CDATA[<p><strong>Getting your talk accepted: write a convincing talk proposal &#8211; Jacinta Richardson</strong></p>

<p>Background
<ul>
    <li>On a lot of papers committees</li>
    <li>LCA, SAGE-AU, OSDC</li>
</ul>
Pick Conference you want to speak at
<ul>
    <li>Some easier to get into than others</li>
    <li>SAGE-AU 50%</li>
    <li>OSDC 50%</li>
    <li>YAPC easy</li>
    <li>OS Bridge &#8211; harder</li>
    <li>OSCON &#8211; 30-50% chance</li>
    <li>everywhere else &#8211; medium</li>
    <li>LCA &#8211; really hard. 5x the proposals received than accepted</li>
</ul>
Speaker rewards
<ul>
    <li>Free entry</li>
</ul>
Call for Proposals
<ul>
    <li>Not always widely distributed</li>
    <li>Join mailing lists, watch websites, ask</li>
</ul>
Write Abstract
<ul>
    <li>The hard bit</li>
    <li>Some confs narrow or wide on talk topics</li>
    <li>Audience 1 &#8211; The programme Comittee
<ul>
    <li>Doesn&#8217;t know if you are a good speaker</li>
    <li>Look for link to video of you speaking</li>
    <li>If no video then assume if writing bad/good then speaking similar</li>
    <li>Check spelling and writing style</li>
    <li>Tell a story but not too long</li>
    <li>Not academia , avoid insane amounts of jargon</li>
    <li>Paragraphs good. Might only read the first</li>
    <li>&#8220;read first sentence of each paragraph&#8221;</li>
</ul>
</li>
    <li>Audience 2 &#8211; The attendees
<ul>
    <li>Why <strong>your</strong> talk?</li>
    <li>Against other options</li>
    <li>Good title</li>
    <li>Skip over &#8211; &#8220;X for fun and profit&#8221; , &#8220;making X sexy&#8221; , &#8220;What I did on my X holidays&#8221;</li>
    <li>5 or fewer words for title</li>
    <li>Convincing first paragraph or even the first sentence</li>
</ul>
</li>
</ul>
Ask for help
<ul>
    <li>From usergroups</li>
    <li>Or people you have met at LCA</li>
    <li>people on the papers comittee</li>
</ul>
<strong>Enabling Compute Clusters atop OpenStack &#8211; Enis Afgan</strong></p>

<p>cloudman &#8211; usecloudman.org
<ul>
    <li>People want a ready to use service, something they can just sit down and start using</li>
    <li>Bridge between Saas and IaaS</li>
    <li>Allows somebody to create a pre-configured compute cluster</li>
</ul>
Deploy
<ul>
    <li>Start with Cloud account</li>
    <li>Start master instance</li>
    <li>Use Cloudman web interface</li>
    <li>Multiple types of clusters availabile</li>
</ul>
Galaxy Cluster
<ul>
    <li>Used for Genomic Science</li>
    <li>Web based platform</li>
</ul>
Value Added features
<ul>
    <li>Customise your instance, add tools, add image, snapshot images, share images</li>
    <li>Auto scaling</li>
    <li>Flexible architecture ( openstack, Amazon , etc)</li>
</ul>
<strong>Open Programming Lightning Talks</strong></p>

<p>Adam Harvey
<ul>
    <li>Not all are sites are facebook</li>
    <li>Big frameworks are overkill for some people</li>
    <li>Microframework &#8211; &#8220;Under 1000 lines of code&#8221;</li>
    <li>Silex
<ul>
    <li>autoloads in lots of extra code</li>
    <li>33,086 lines of php code being pulled in</li>
    <li>Not very micro <img src='http://blog.darkmere.gen.nz/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </li>
</ul>
</li>
    <li>Slim
<ul>
    <li>Autoload &#8211; 6000 lines</li>
</ul>
</li>
    <li>Flight
<ul>
    <li>Autoload &#8211; 800 lines of code</li>
</ul>
</li>
    <li> Maybe just use raw PHP instead of a framework</li>
</ul>
Paul L &#8211; The Poor Man&#8217;s SANbox
<ul>
    <li>Allow people to enter python code into program</li>
    <li>Way to stop them doing bad stuff was over my head</li>
</ul>
Dave Boucher &#8211; Yak Shaving
<ul>
    <li>Transactional memory &#8211; red/black tree insertion</li>
    <li>Graphically show how RB tree inserts something</li>
    <li>Use SVG library in python</li>
    <li>SVG has animations</li>
    <li>Pretty!</li>
</ul>
Tom Sutton &#8211; Safe Strings in Haskell APIs
<ul>
    <li>Turn on OverloadedStrings</li>
    <li>Create customer datatype</li>
    <li>Can put special string types that don&#8217;t do things like concatenation if you don&#8217;t want (eg for a special type with SQL commands)</li>
    <li>andhetalkedsofastatheendIcouldn&#8217;tundertsandhissolution</li>
</ul>
Roger Barnes &#8211; poker, packets, pipes, and python
<ul>
    <li>Wanted a poker buddy</li>
    <li>packet caputure between andriod app and server while playing online poker</li>
    <li>ngrep</li>
    <li>Hack your router to get Linux on it</li>
    <li>Grab stream of info &#8211; all plaintext!</li>
    <li>ipython notebook</li>
    <li>parsing game, map card values</li>
    <li>Need live capture data</li>
    <li>Solution: ssh + ngrep + pipes</li>
    <li>watch out for buffering</li>
    <li>grab poker value and hints into lookups tables</li>
</ul>
Benner Leslie
<ul>
    <li>Python and Haskell</li>
    <li>Embed Haskell code into python</li>
    <li>Wanted to keep writing python most of the time and only use Haskell where it was needed</li>
    <li>Combine using foreign C-types</li>
</ul>
Nico &#8211; LatProc and Clockwork
<ul>
    <li>Libary for tools process control</li>
    <li>Controls machine that gets wool samples from bails of wool</li>
    <li>latproc on github</li>
</ul>
Duncan Rowe &#8211; Some commands I&#8217;ve developed over the years
<ul>
    <li>pd &#8211; keeps recent dirs in stack , allows you to skip to them</li>
    <li>sfl &#8211; searchs for strings in multiple paths</li>
    <li>bak &#8211; backup a file, just renames to filename.bak , various other options</li>
</ul>
Russell Stuart &#8211; PAMPython
<ul>
    <li>PAM in python</li>
    <li>PAM modules normally require C</li>
    <li>Can do various PAM functions in python</li>
    <li>Good for one-shot commands</li>
    <li>Sneaks in under all the programs that depend on PAM</li>
</ul>
Peter Chubb &#8211; When Arduino is not enough
<ul>
    <li>Stellaris launchpad just $12</li>
    <li>RaspberryPi $35</li>
    <li>Odriod U: quad core 2G RAM, 3W &#8211; PC like performance $69</li>
</ul>
&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.darkmere.gen.nz/2013/01/lca2013-day-2-session-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>lca2013 &#8211; Day 2 &#8211; Session 2</title>
		<link>http://blog.darkmere.gen.nz/2013/01/lca2013-day-2-session-2/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=lca2013-day-2-session-2</link>
		<comments>http://blog.darkmere.gen.nz/2013/01/lca2013-day-2-session-2/#comments</comments>
		<pubDate>Tue, 29 Jan 2013 03:35:43 +0000</pubDate>
		<dc:creator>simon</dc:creator>
				<category><![CDATA[Linux.conf.au]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://blog.darkmere.gen.nz/?p=853</guid>
		<description><![CDATA[Open Govt Miniconf &#8211; Open data panel Cassie Findlay &#8211; State records &#8211; NSW Mostly hard copies records but digital archives initiative Started Open Data Project, making metadate as open data API to catalogue OpenGov NSW website Mostly Annual Reports from Govt Agencies Place for other docs to be released in future Copies of last [...]]]></description>
				<content:encoded><![CDATA[<p><strong>Open Govt Miniconf &#8211; Open data panel</strong>
<ul>
    <li>Cassie Findlay &#8211; State records &#8211; NSW
<ul>
    <li>Mostly hard copies records but digital archives initiative</li>
    <li>Started Open Data Project, making metadate as open data</li>
    <li>API to catalogue</li>
    <li>OpenGov NSW website
<ul>
    <li>Mostly Annual Reports from Govt Agencies</li>
    <li>Place for other docs to be released in future</li>
    <li>Copies of last 20 years of Govt Gazettes</li>
    <li>New API</li>
</ul>
</li>
</ul>
</li>
    <li>Christen Normal &#8211; ACT Govt
<ul>
    <li>Even when govt data available, often in hard to use formats</li>
    <li>Needs to be more in line (format wise) to what community expects. APIs not PDFs</li>
    <li>Variety of reasons why people want data, journalists, public, many with short time</li>
    <li>New website, web servers API, download data</li>
    <li>Technology not problem, people just have different attitudes</li>
    <li>Expensive, not my job, people will find something was done wrong</li>
</ul>
</li>
    <li>John Billia &#8211; Aus Govt ICT management Office
<ul>
    <li>Covers emerging technologies</li>
    <li>Looking at Big Data over last 6 months</li>
    <li>If used effectively will led to better govt</li>
    <li>Concerns to pricacy, wishes of citizens as to if/who their data shared</li>
    <li>Problems with governments of projects, better data might improve outcomes</li>
    <li>Example was open source policy a few years ago
<ul>
    <li>Checks every govt tender to make sure complies with Open Source policy</li>
</ul>
</li>
    <li>Also managing Whole of Govt transition to IPv6
<ul>
    <li>Just under half Govt Agencies have already enabled IPv6 on external facing websites etc</li>
    <li>More that half of rest will be up by end of Q1 2013 and rest by Q2 or Q3 2013</li>
</ul>
</li>
</ul>
</li>
    <li>Julian Carver &#8211; Christchurch Earthquake recovery agency
<ul>
    <li>NZ Declaration on Open and Transparent data
<ul>
    <li>Active programme of release of data</li>
</ul>
</li>
    <li>Example &#8220;Charities register&#8221; , data via API</li>
    <li>Example &#8220;ASB Property Guide&#8221; &#8211; brings up property data</li>
    <li>Example &#8220;Info Connect&#8221; , transport data, used by 12 apps, eg traffic delays, looking at traffic flows to predict economic data</li>
    <li>Best way to happen was to built it ourselves and embarrass govt</li>
    <li>Ask people what they want released</li>
    <li>Compulsory for agencies to release data</li>
    <li>data.govt.nz ahead of Aus Central and State Govt totals</li>
</ul>
</li>
</ul>
&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.darkmere.gen.nz/2013/01/lca2013-day-2-session-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>lca2013 &#8211; Day 2 &#8211; Session 1</title>
		<link>http://blog.darkmere.gen.nz/2013/01/lca2013-day-2-session-1/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=lca2013-day-2-session-1</link>
		<comments>http://blog.darkmere.gen.nz/2013/01/lca2013-day-2-session-1/#comments</comments>
		<pubDate>Tue, 29 Jan 2013 01:02:15 +0000</pubDate>
		<dc:creator>simon</dc:creator>
				<category><![CDATA[Linux.conf.au]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://blog.darkmere.gen.nz/?p=851</guid>
		<description><![CDATA[Today I thought I&#8217;d go between miniconfs a little looking for talks I&#8217;m interested in. I was originally going to come mostly to openstack but I some of the talks seem a little specialised and there are some good talks elsewhere. Hopefully everybody will to close to schedule so switching will be easy. Introduction to [...]]]></description>
				<content:encoded><![CDATA[<p>Today I thought I&#8217;d go between miniconfs a little looking for talks I&#8217;m interested in. I was originally going to come mostly to openstack but I some of the talks seem a little specialised and there are some good talks elsewhere. Hopefully everybody will to close to schedule so switching will be easy.</p>

<p><strong>Introduction to OpenStack &#8211; Joshua McKenty</strong></p>

<p>Worked at NASA</p>

<p>Components increasing a rapid rate but most computer, networking and storage</p>

<p>Almost all commiters are paid to work on openstack</p>

<p>Quantum/Networking: Lots of paid plugins alongside free options</p>

<p>Generally a bit of an intro to the openstack organisation rather than the technology that I was expecting.</p>

<p><strong>The WebKit Browser Engine &#8211; An Overview &#8211; Dirk Schulze</strong></p>

<p>What is webkit?
<ul>
    <li>Just a browser engine</li>
    <li>Used in Safari, Chrome and others</li>
    <li>High market share on mobile, lower penetration on desktop</li>
</ul>
Components
<ul>
    <li>Webcore &#8211; triggering load pages, actually drawing, calculating layout,</li>
    <li>Javascript engine (alternative used in Chrome is V8)</li>
    <li>&#8220;Webkit&#8221; &#8211; platform dependent stuff, access graphic libraries (gtk, qt)</li>
</ul>
Webcore
<ul>
    <li>html document + CSS + Javascript</li>
    <li>Parse HTML docs, get dom elements, create a DOM Tree</li>
    <li>Everything in DOM tree can be accessed from javascript</li>
    <li>Render Tree just has stuff needed to render the page</li>
    <li>Eg &lt;head&gt; element doesn&#8217;t get into render tree but are in dom tree, same with &#8220;display: none&#8221; elements</li>
    <li>Some elements are in render tree but not Dom tree (eg anonymous blocks)</li>
    <li>Renderlayer &#8211; render elements above/below other elements ( eg using &#8211; style=&#8221;z-index: 1;&#8221; ), stacking context ( also via opacity, filter or mask )</li>
</ul>
Render Object
<ul>
    <li>Layout &#8211; dimension of the element ( height, width, plus borders, positioning )
<ul>
    <li>So if updated only need to repaint affected area</li>
</ul>
</li>
    <li>Paint &#8211; Draw element on screen</li>
    <li>Multiple paint phases called from RenderLayer
<ul>
    <li>Background, borders</li>
    <li>floating content</li>
    <li>inline content</li>
    <li>Based on CSS boxing model, code follows spec</li>
</ul>
</li>
    <li>Hit testing
<ul>
    <li>Pointer events &#8211; homer, onmouseover</li>
</ul>
</li>
    <li>SVG &#8211; different from other renderers
<ul>
    <li>One element &#8211; one renderer</li>
    <li>No CSS boxing model, No anonymous blocks, different handling on transformations</li>
</ul>
</li>
</ul>
Implementing new elements and Interfaces
<ul>
    <li>Look at the specification</li>
</ul>
&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.darkmere.gen.nz/2013/01/lca2013-day-2-session-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux.conf.au &#8211; Day 2 Keynote: Radia Perlman</title>
		<link>http://blog.darkmere.gen.nz/2013/01/linux-conf-au-day-2-keynote-radia-perlman/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=linux-conf-au-day-2-keynote-radia-perlman</link>
		<comments>http://blog.darkmere.gen.nz/2013/01/linux-conf-au-day-2-keynote-radia-perlman/#comments</comments>
		<pubDate>Mon, 28 Jan 2013 22:59:21 +0000</pubDate>
		<dc:creator>simon</dc:creator>
				<category><![CDATA[Linux.conf.au]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://blog.darkmere.gen.nz/?p=849</guid>
		<description><![CDATA[Tuesdays Keynote was by Radia Perlman of Network Protocol Folklore General protocol about protocol design Need more people in the field that hate computers Autoconfiguration Knobs if you want them Be evolutionary if possible Networking is taught as if TCP/IP arrived from the sky. As if nothing else ever existed She teaches by looking at [...]]]></description>
				<content:encoded><![CDATA[<p>Tuesdays Keynote was by <a href="http://en.wikipedia.org/wiki/Radia_Perlman">Radia Perlman</a> of <strong>Network Protocol Folklore</strong></p>

<p>General protocol about protocol design
<ul>
    <li>Need more people in the field that hate computers</li>
    <li>Autoconfiguration</li>
    <li>Knobs if you want them</li>
    <li>Be evolutionary if possible</li>
</ul>
Networking is taught as if TCP/IP arrived from the sky. As if nothing else ever existed</p>

<p>She teaches by looking at a problem and looking at how different protocols solve it</p>

<p>Comparing technologies
<ul>
    <li>Nobody knows both of them</li>
    <li>Everybody is partisan</li>
    <li>Both moving targets</li>
    <li>Hard to compare via benchmarks since people are just comparing implementations rather than actual technology</li>
</ul>
The Story of Ethernet
<ul>
    <li>ISO 7 layer model</li>
    <li>Ethernet was intended to be layer 2, neighbour to neighbour, was are packets forwarded</li>
    <li>Ethernet physical was a new type of link, multiple nodes on single link</li>
    <li>But we haven’t done CSMA/CD networks for years</li>
    <li>No hopcount field in Ethernet since never occurred to designers that people would be forwarded the packets</li>
    <li>People started building networks layer-2 only without layer-3</li>
    <li>Needed to forwarded Ethernet between networks, but had to work with existing ethernet packets -&gt; Bridge</li>
    <li>Spanning tree reduced created loop-free subset of the topology</li>
</ul>
Why is wrong with IP as L3 protcol
<ul>
    <li>Every link must have own address block</li>
    <li>Configuration intensive</li>
    <li>In 1992 Internet could have adopted CLNP but NIH</li>
    <li>Also advantages not obvious then since things like DHCP, NAT so advantages of CLNP not as obvious</li>
</ul>
TRILL
<ul>
    <li>Switches run routing protocol between themselves</li>
    <li>Replaces spanning tree (switch by switch basis)</li>
    <li>Wraps ethernet packets in trill headers, forwards to other trill switch and then unwraps</li>
    <li>Various ways to link which end devices are behind which trill switch</li>
    <li>Link state routing between trill switches to create shortest paths</li>
    <li>Can upgrade switches to trill one by one an &#8220;just starts working better&#8221;</li>
    <li>Anything can do the trill encapsulate/decapsulate</li>
</ul>
Similar to TRILL
<ul>
    <li>VXLAND / NVGRE</li>
    <li>Wrap IP rather than ethernet</li>
</ul>
Protocol Forklore
<ul>
    <li>Version number
<ul>
    <li>What is the purpose?</li>
    <li>What is the new protocol vs the old protocol?</li>
    <li>Envelope says how to parse the header (how to parse the packet)</li>
    <li>Need to define what node does when it sees a different version number</li>
</ul>
</li>
    <li>Parameters
<ul>
    <li>minimise these</li>
</ul>
</li>
    <li>Latency
<ul>
    <li>cut-through &#8211; forward before you have received the whole thing</li>
    <li>Destination should be near the start of the header</li>
    <li>tcp has checksum so need to see the whole header before you forward</li>
</ul>
</li>
</ul>
&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.darkmere.gen.nz/2013/01/linux-conf-au-day-2-keynote-radia-perlman/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux.conf.au &#8211; Day 1 &#8211; Keynote</title>
		<link>http://blog.darkmere.gen.nz/2013/01/linux-conf-au-day-1-keynote/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=linux-conf-au-day-1-keynote</link>
		<comments>http://blog.darkmere.gen.nz/2013/01/linux-conf-au-day-1-keynote/#comments</comments>
		<pubDate>Mon, 28 Jan 2013 02:02:06 +0000</pubDate>
		<dc:creator>simon</dc:creator>
				<category><![CDATA[Linux.conf.au]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://blog.darkmere.gen.nz/?p=846</guid>
		<description><![CDATA[The Future of the Linux Desktop &#8211; Bdale Garbee General career update, retired from HP Doing rocket electronics business &#8211; Altus Metrum Involved with Freedom Box Is 2013 finally the year of the Linux Desktop? Percentage of people whose main desktop is on a desk is dropping (although desks more common a LCA that possibly [...]]]></description>
				<content:encoded><![CDATA[<h2>The Future of the Linux Desktop &#8211; Bdale Garbee</h2>

<p>General career update, retired from HP
Doing rocket electronics business &#8211; Altus Metrum
Involved with Freedom Box</p>

<p><strong>Is 2013 finally the year of the Linux Desktop?</strong></p>

<p>Percentage of people whose main desktop is on a desk is dropping (although desks more common a LCA that possibly elsewhere)</p>

<p>Not everything needs a &#8220;desktop&#8221; interface (eg fridges, TVs)
Desktop is interface to Universal computer environment
<ul>
    <li>Email, web, design, software development, accounting, managing a small business, presentations</li>
    <li>User is completely in charge</li>
</ul>
Will Linux ever displace Windows?
<ul>
    <li>Some big deployments</li>
    <li>Cost of change can be high , re-education of users, people know applications instead of concepts</li>
    <li>OEMS have strong dis-incentives
<ul>
    <li>Offering to &#8220;reduce their software expense&#8221; is a non starter</li>
    <li>Pre-loaded Windows does not cost OEMs large money, can be net-revenue source</li>
    <li>Joint marketing opportunities with software vendors</li>
</ul>
</li>
</ul>
Will Linux ever displace Apple?
<ul>
    <li>Wall Gardens can be very beautiful, alluring&#8230; captivating</li>
    <li>Mac OS X
<ul>
    <li>Credible technical base</li>
    <li>Plausible additional target for free software applications</li>
</ul>
</li>
    <li>iOS
<ul>
    <li>Oh please! World most proprietary operating environment</li>
    <li>Hard to ship free software</li>
    <li>Hostile to hardware devs</li>
</ul>
</li>
</ul>
Many desktop devs have been lured to mobile
<ul>
    <li>Core technology elements certainly relivant</li>
    <li>So much effort applied to lot of things that didn&#8217;t make it</li>
    <li>Android consumes open source, uses lot of open source but ecosystems arn&#8217;t really open</li>
    <li>They are not a universal computing enviroments</li>
</ul>
Is this work on mobile useful to us?
<ul>
    <li>Can one UI really span all things? The idea is certainly appealing&#8230;</li>
    <li>Interface capabilities vary widely
<ul>
    <li>keyboard centric vs touch centric</li>
    <li>Screen size</li>
</ul>
</li>
</ul>
Personal computers with Free Software were meant to empower!
<ul>
    <li>Any user <em>can</em> become a developer, every dev is a user</li>
    <li>Expanding the user base by reaching more people is laudable
<ul>
    <li>Accessility, multi-lingual, appealing to non-geeks</li>
</ul>
</li>
</ul>
Feeling abandoned by Linux desktop developers
<ul>
    <li>Confusion over target audenience</li>
    <li>Not eating their own dogfood</li>
    <li>Huge piles of software that interfaces in complex ways makes it hard for users to become developers</li>
    <li>Was with bunch of Gnome devs, none of them uses evolution to read email</li>
    <li>Not scratching our own itches</li>
</ul>
Tradeoffs associated with encompassing apps, system functions
<ul>
    <li>eg Gnome desktop relationship with network manager</li>
</ul>
XFCE4 as Debian Wheezy&#8217;s default
<ul>
    <li>Gnome too big to fit on single OS install CD</li>
    <li>Most distributed have moved to DVD image but Debian wants to stay with credible single CD option</li>
</ul>
Why can debian easy change desktop without hurting users
What really matters: Applications
<ul>
    <li>Desktop doesn&#8217;t really matter, it just gets in the way</li>
    <li>Want to use any application with any desktop</li>
    <li>Linux gives us the ability to multitask, don&#8217;t take it away</li>
</ul>
What really matters: Efficiency
<ul>
    <li>Buy a faster computer should mean applications run faster</li>
    <li>For most modern computing, battery life is a really big deal
<ul>
    <li>Composting is expensive</li>
    <li>Shiny can be fun, but is all the &#8220;bling&#8221; really worth the cost?</li>
    <li>Oh, and because my laptop is my desk, please don&#8217;t cook my legs</li>
</ul>
</li>
</ul>
What really matters: Customizing
<ul>
    <li>Users won&#8217;t to customise
<ul>
    <li>Personalisation is part of taking ownership</li>
    <li>Investing time is okay as the returned value persists</li>
</ul>
</li>
    <li>Ability to automate things that are repetitive
<ul>
    <li>Scripting is valuable part of Unix heritage</li>
    <li>Don&#8217;t hide access to text interfaces too deeply</li>
</ul>
</li>
    <li>Coping with the industry infatuation with 1366&#215;768 displays
<ul>
    <li>Waste as few pixels as possible on &#8220;decorations&#8221;</li>
    <li>Vertical &#8220;panel&#8221; support</li>
</ul>
</li>
</ul>
What really Matters: Hackable
<ul>
    <li>The real reason I run free software
<ul>
    <li>I&#8217;ve known since I was a kid I was a &#8220;tool maker&#8221;</li>
    <li>Immense gratification from fixing and sharing the fixes</li>
</ul>
</li>
    <li>I want to be able to undertsand and fix the software I use
<ul>
    <li>Gave up trying to get evolution to build</li>
    <li>Complexity gets in the way of &#8220;casual contribution&#8221;, killing the long tail effect!</li>
    <li>Linux kernel has many devs that just submit single patch</li>
</ul>
</li>
    <li>I want yo be able to share easily with others
<ul>
    <li>Any app should work on any desktop</li>
    <li>Ability to push patches upstream</li>
</ul>
</li>
</ul>
What does all this mean?
<ul>
    <li>Fell good about how Linux is winning in the mobile space!</li>
    <li>Pick realistic goals.. can&#8217;t easily convert OEMs from Windows</li>
    <li>We should build the kind of systems <em>we</em> want to use!</li>
    <li>Collaborative development model is awesomely powerful
<ul>
    <li>Differentiate in interoperable ways!</li>
    <li>Empower users to be developers so we can get long tail effect</li>
</ul>
</li>
</ul></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.darkmere.gen.nz/2013/01/linux-conf-au-day-1-keynote/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
