lca2013 – Day 3 – Session 2

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 WIFI
  • 1/3 of bandwidth used by commercial Am Radio

Software Radio

  • Software and be free
  • CPU cycles can be nearly free

How Radio works?

  • Antenna
  • Pre-Amp – boast signal
  • Mixer – Takes pre-amp signal  + local oscillator signal
  • Another Audio Amplifier

FreeDV on Andriod

  • libusb-andriod
    • No lsoc support on Andriod
    • Integrates with Andriod permission framework
  • fdmdv2 and codec2
    • Worked as-is from freeDV
  • JNI Layer
    • Thread USB callback
  • Audio Playback
    • Uses Audiotrack API
  • Graphing hard- used GraphView
  • Canvas class for drawing scatter plot
  • Future – Waterfall plot

Links

 

The future of non-volatile memory by Matthew Wilcox

NVM Express Standard

  • Talking to NVM across the PCIe bus
  • Various vendor standards
  • Want to have one driver, be able to switch between vendors easily

PCIe Drives

  • 2.5 and 3.5 Inc drives
  • A common slot for SA / SATA / PCIe
  • Support up to 4 lanes at 8Gb/s

Post-NAND Era

  • Various technologies in dev to replace NAND
  • Ferroelectric, Magnetoresistive, Phase-change, Racetrack
  • Most promise DRAM-comparable speeds
  • Only last a short time, not days/weeks of persistence with no power
  • CPU will treat these the way it treats DRAM – just loads and stores to it directly, no API

Programming Model

  • What if you allocate persistent memory?
  • malloc() is the wrong model
    • CPU is not persistent, after reset out of sync with memory
  • Block device also wrong model
  • POSIX provides open(), mmap()
  • So maybe a filesystem then?
    • Must bypass page cache
    • May be a simpler filesystem, not fully-featured, no page cache etc
    • Keith Packard has already done this for graphics memory
    • But writing files systems is hard, long time to get them stable

Linux Assumes page cache

  • O_DIRECT and splice() are good examples. May be other corner cases

Linux really sucks at sync

  • msync(MS_ASYNC) is a no-op
  • msync(MS_SYNC) is an inefficient way of calling fsync()
  • fsync() synchronises more than we need
  • So does fdatasync()
  • sync_file_range() doesn’t sync enough

Humans suck at sync

  • tdb has contained some horrendous races and missing syncs
  • If we expect normal human programmers to get it right we have to come up with something easy

Observability

  • CPU A modifies a cacheline and starts syncing it to the persistent memory
  • CPU B reads the same cacheline and observes CPU A’s Changes
  • Machine loses power. On reboot are we guaranteed that CPU A’s changes are still visable?
  • Difference between coherence and persistence
  • Journalling is HARD

Reliability

  • Current API insulates us
  • Memory can become corrupted, as long as we crash before it hits storage, the corruption will never be observed

Improving error logs

  • Write directly to logs from inside the kernel
  • Snapshot kernel and state for recovery or debugging
  • Future machines may not have DRAM at all. What happens if you have  a problem, hard to cold boot
  • “Emails to 10TB system state to LKML” – Jeff Waugh
  • Cosmic rays corrupting memory while running

 

 

Share

lca2013 – Day 3 – Session 1

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 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 ).

 Think, Create & Critique Design by Andy Fitzsimon

” I’m a drinker with a speaking problem ”

We are all designers

Fundamentals of design

  • Elements and principals of design
  • Like cooking – ingredients create flavours influencing a meal
  • Elements are the raw tools:
    • Line – continious path between two points, process, plot
    • Shape – When I line joins around to cover an area – shapes used to explan something (pymrid scheme )
    • Space – positive and negative
    • Size
    • Colour
    • Value
    • Texture – structure and feel
  • Principles
    • made with elements and with other priciples
    • proportion
    • Pattern – using same element multiple times
    • Graduation – incremental changes to one element over another
    • Balance / Harmony / Unity – One or more elements creating a cohesion
    • Contrast – abrupt difference between elements creating a compostion
    • Emphasis
    • Form – The “whole” that the sum of the parts make
    • Gestalt

Practices

  • Visual Design
  • The Swiss Won – “International Typographic Style”
    • Typographic
    • Famously minimalistic
    • easy to critique and easier to impliment
    • Baseline grid – can check with a ruler
    • Always follows a vertical rhythm
    • If you have a design you already have a grid
    • A varied scale – Robert Bringhurst
  • Art Nouveau
    • Hard to do
  • Style tiles and brand guides

Tools

  • Patterns
  • Wireframe
  • Workflow
  • Persona
  • Analytics
  • Instrumentation
  • Surveys
  • Reviews
  • User Testing

Have some common sense

Interactive design

  • Progressive disclosure
  • Form follows function
  • Affordance
  • Hyper realism vs skeumorphism
    • Hyper realism – makes things look real
    • skeu – reminds you of something real

Experience design

  • Deliberate differences
  • think, make, become (take ownership, win with empathy!)

Nail the hierarchy of needs

  • Lovable
  • meaningful
  • pleasurable
  • convienient
  • predictable
  • purposeful
  • They are easy to observe but hard to tell
  • damned hard to hit them all

Good design is a process

  • Design thinking
    • It is a quick workflow
    • define
    • find
    • guess
    • try
    • check
    • do
    • learn

Failing at life is helps you design

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

Bunch of other books..

ndftz.com/poster.pdf

 

Vampire Mice: How USB PM impacts you by Sarah Sharp

How USB power Management works

  • 3 types of management
    • Device suspend
    • Host suspend
    • Link power management
  • Devices suspended when inactive
  • When all device on host you can suspend host
  • 1 device keeps host awake which keeps CPU awake
  • Device must to support suspend (according to spec)
    • But lots don’t
    • Drivers sometimes don’t
    • No USB transfers when suspended, so if userspace polling then can’t suspend

How USB power Mngt does not work

  • Drivers missing auto-suspend support
  • Impossible to get device to idle
  • Userspace polls device
    • Has a SD card been inserted yet?
  • USB suspend issues
    • Disconnect on resume
    • Unsafe suspend behaviour ( usb hard drive cut power to spinning disk without parking )
    • No remote wakeups ( mouse only wakes up when button pushed, not just when it is moved )
    • Event loss during resume
    • too risky to enable by default
  • Hard to tell if firmware version is good or bad
  • All sorts of weird issues with different platforms ( USB Hubs etc )

USB Device Suspend Issues

  • Blacklist to big to keep in the kernel
  • USB Device suspend off by default
  • Can be turn on by user (per device) via powertop
  • Powertop setting won’t persist across device unplugs or reboots
    • Solution: Create a udev rule

Takeaway:

  • Try using powertop
  • Create Udev rule to keep

Challenges with USB device suspend

  • Users must turn on
  • Require driver modification
  • Timeout too course grained
  • Devices can’t refuse to allow suspend

USB 3.0 Link Power Management

  • Link Power Management states U1 and U2
  • Hosts and hubs track idleness
  • OS sets timeout once
  • No driver modification
  • Devices can refuse U1 and U2
  • Some vendors don’t like Link PM – can be detected
  • Some Hubs don’t support either
  • USB 2.1
    • New L1 state
    • No changes to USB 2.0 hubs

New Intel stuff

  • Panther Point vs Lynx Point chipsets
  • Panther Point
    • Has xHCI controller
    • Only 4 points under xHCI
    • Supports USB 3.0 Link PM
  • Lynx Point
    • All Ports
    • Supports 3.0 PM and 2.1 PM
    • Completely unused ports can be turned off completely

Summary

Actual saving is Probably more than you think, especially if you get the whole chain to sleep.

Somebody said “about 4 watts” for SandyBridge

Servers can also save. Options in HP G7 servers. But problems

 

Share

lca2013 – Day 2 – Session 3

Getting your talk accepted: write a convincing talk proposal – 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 – harder
  • OSCON – 30-50% chance
  • everywhere else – medium
  • LCA – really hard. 5x the proposals received than accepted

Speaker rewards

  • Free entry

Call for Proposals

  • Not always widely distributed
  • Join mailing lists, watch websites, ask

Write Abstract

  • The hard bit
  • Some confs narrow or wide on talk topics
  • Audience 1 – The programme Comittee
    • Doesn’t know if you are a good speaker
    • Look for link to video of you speaking
    • If no video then assume if writing bad/good then speaking similar
    • Check spelling and writing style
    • Tell a story but not too long
    • Not academia , avoid insane amounts of jargon
    • Paragraphs good. Might only read the first
    • “read first sentence of each paragraph”
  • Audience 2 – The attendees
    • Why your talk?
    • Against other options
    • Good title
    • Skip over – “X for fun and profit” , “making X sexy” , “What I did on my X holidays”
    • 5 or fewer words for title
    • Convincing first paragraph or even the first sentence

Ask for help

  • From usergroups
  • Or people you have met at LCA
  • people on the papers comittee

Enabling Compute Clusters atop OpenStack – Enis Afgan

cloudman – usecloudman.org

  • People want a ready to use service, something they can just sit down and start using
  • Bridge between Saas and IaaS
  • Allows somebody to create a pre-configured compute cluster

Deploy

  • Start with Cloud account
  • Start master instance
  • Use Cloudman web interface
  • Multiple types of clusters availabile

Galaxy Cluster

  • Used for Genomic Science
  • Web based platform

Value Added features

  • Customise your instance, add tools, add image, snapshot images, share images
  • Auto scaling
  • Flexible architecture ( openstack, Amazon , etc)

Open Programming Lightning Talks

Adam Harvey

  • Not all are sites are facebook
  • Big frameworks are overkill for some people
  • Microframework – “Under 1000 lines of code”
  • Silex
    • autoloads in lots of extra code
    • 33,086 lines of php code being pulled in
    • Not very micro 🙁
  • Slim
    • Autoload – 6000 lines
  • Flight
    • Autoload – 800 lines of code
  •  Maybe just use raw PHP instead of a framework

Paul L – The Poor Man’s SANbox

  • Allow people to enter python code into program
  • Way to stop them doing bad stuff was over my head

Dave Boucher – Yak Shaving

  • Transactional memory – red/black tree insertion
  • Graphically show how RB tree inserts something
  • Use SVG library in python
  • SVG has animations
  • Pretty!

Tom Sutton – Safe Strings in Haskell APIs

  • Turn on OverloadedStrings
  • Create customer datatype
  • Can put special string types that don’t do things like concatenation if you don’t want (eg for a special type with SQL commands)
  • andhetalkedsofastatheendIcouldn’tundertsandhissolution

Roger Barnes – poker, packets, pipes, and python

  • Wanted a poker buddy
  • packet caputure between andriod app and server while playing online poker
  • ngrep
  • Hack your router to get Linux on it
  • Grab stream of info – all plaintext!
  • ipython notebook
  • parsing game, map card values
  • Need live capture data
  • Solution: ssh + ngrep + pipes
  • watch out for buffering
  • grab poker value and hints into lookups tables

Benner Leslie

  • Python and Haskell
  • Embed Haskell code into python
  • Wanted to keep writing python most of the time and only use Haskell where it was needed
  • Combine using foreign C-types

Nico – LatProc and Clockwork

  • Libary for tools process control
  • Controls machine that gets wool samples from bails of wool
  • latproc on github

Duncan Rowe – Some commands I’ve developed over the years

  • pd – keeps recent dirs in stack , allows you to skip to them
  • sfl – searchs for strings in multiple paths
  • bak – backup a file, just renames to filename.bak , various other options

Russell Stuart – PAMPython

  • PAM in python
  • PAM modules normally require C
  • Can do various PAM functions in python
  • Good for one-shot commands
  • Sneaks in under all the programs that depend on PAM

Peter Chubb – When Arduino is not enough

  • Stellaris launchpad just $12
  • RaspberryPi $35
  • Odriod U: quad core 2G RAM, 3W – PC like performance $69

 

Share

lca2013 – Day 2 – Session 2

Open Govt Miniconf – Open data panel

  • Cassie Findlay – State records – 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 20 years of Govt Gazettes
      • New API
  • Christen Normal – ACT Govt
    • Even when govt data available, often in hard to use formats
    • Needs to be more in line (format wise) to what community expects. APIs not PDFs
    • Variety of reasons why people want data, journalists, public, many with short time
    • New website, web servers API, download data
    • Technology not problem, people just have different attitudes
    • Expensive, not my job, people will find something was done wrong
  • John Billia – Aus Govt ICT management Office
    • Covers emerging technologies
    • Looking at Big Data over last 6 months
    • If used effectively will led to better govt
    • Concerns to pricacy, wishes of citizens as to if/who their data shared
    • Problems with governments of projects, better data might improve outcomes
    • Example was open source policy a few years ago
      • Checks every govt tender to make sure complies with Open Source policy
    • Also managing Whole of Govt transition to IPv6
      • Just under half Govt Agencies have already enabled IPv6 on external facing websites etc
      • More that half of rest will be up by end of Q1 2013 and rest by Q2 or Q3 2013
  • Julian Carver – Christchurch Earthquake recovery agency
    • NZ Declaration on Open and Transparent data
      • Active programme of release of data
    • Example “Charities register” , data via API
    • Example “ASB Property Guide” – brings up property data
    • Example “Info Connect” , transport data, used by 12 apps, eg traffic delays, looking at traffic flows to predict economic data
    • Best way to happen was to built it ourselves and embarrass govt
    • Ask people what they want released
    • Compulsory for agencies to release data
    • data.govt.nz ahead of Aus Central and State Govt totals

 

Share

lca2013 – Day 2 – Session 1

Today I thought I’d go between miniconfs a little looking for talks I’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 OpenStack – Joshua McKenty

Worked at NASA

Components increasing a rapid rate but most computer, networking and storage

Almost all commiters are paid to work on openstack

Quantum/Networking: Lots of paid plugins alongside free options

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

The WebKit Browser Engine – An Overview – Dirk Schulze

What is webkit?

  • Just a browser engine
  • Used in Safari, Chrome and others
  • High market share on mobile, lower penetration on desktop

Components

  • Webcore – triggering load pages, actually drawing, calculating layout,
  • Javascript engine (alternative used in Chrome is V8)
  • “Webkit” – platform dependent stuff, access graphic libraries (gtk, qt)

Webcore

  • html document + CSS + Javascript
  • Parse HTML docs, get dom elements, create a DOM Tree
  • Everything in DOM tree can be accessed from javascript
  • Render Tree just has stuff needed to render the page
  • Eg <head> element doesn’t get into render tree but are in dom tree, same with “display: none” elements
  • Some elements are in render tree but not Dom tree (eg anonymous blocks)
  • Renderlayer – render elements above/below other elements ( eg using – style=”z-index: 1;” ), stacking context ( also via opacity, filter or mask )

Render Object

  • Layout – dimension of the element ( height, width, plus borders, positioning )
    • So if updated only need to repaint affected area
  • Paint – Draw element on screen
  • Multiple paint phases called from RenderLayer
    • Background, borders
    • floating content
    • inline content
    • Based on CSS boxing model, code follows spec
  • Hit testing
    • Pointer events – homer, onmouseover
  • SVG – different from other renderers
    • One element – one renderer
    • No CSS boxing model, No anonymous blocks, different handling on transformations

Implementing new elements and Interfaces

  • Look at the specification

 

Share

Linux.conf.au – Day 2 Keynote: Radia Perlman

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 a problem and looking at how different protocols solve it

Comparing technologies

  • Nobody knows both of them
  • Everybody is partisan
  • Both moving targets
  • Hard to compare via benchmarks since people are just comparing implementations rather than actual technology

The Story of Ethernet

  • ISO 7 layer model
  • Ethernet was intended to be layer 2, neighbour to neighbour, was are packets forwarded
  • Ethernet physical was a new type of link, multiple nodes on single link
  • But we haven’t done CSMA/CD networks for years
  • No hopcount field in Ethernet since never occurred to designers that people would be forwarded the packets
  • People started building networks layer-2 only without layer-3
  • Needed to forwarded Ethernet between networks, but had to work with existing ethernet packets -> Bridge
  • Spanning tree reduced created loop-free subset of the topology

Why is wrong with IP as L3 protcol

  • Every link must have own address block
  • Configuration intensive
  • In 1992 Internet could have adopted CLNP but NIH
  • Also advantages not obvious then since things like DHCP, NAT so advantages of CLNP not as obvious

TRILL

  • Switches run routing protocol between themselves
  • Replaces spanning tree (switch by switch basis)
  • Wraps ethernet packets in trill headers, forwards to other trill switch and then unwraps
  • Various ways to link which end devices are behind which trill switch
  • Link state routing between trill switches to create shortest paths
  • Can upgrade switches to trill one by one an “just starts working better”
  • Anything can do the trill encapsulate/decapsulate

Similar to TRILL

  • VXLAND / NVGRE
  • Wrap IP rather than ethernet

Protocol Forklore

  • Version number
    • What is the purpose?
    • What is the new protocol vs the old protocol?
    • Envelope says how to parse the header (how to parse the packet)
    • Need to define what node does when it sees a different version number
  • Parameters
    • minimise these
  • Latency
    • cut-through – forward before you have received the whole thing
    • Destination should be near the start of the header
    • tcp has checksum so need to see the whole header before you forward

 

Share

Linux.conf.au – Day 1 – Keynote

The Future of the Linux Desktop – Bdale Garbee

General career update, retired from HP
Doing rocket electronics business – 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 elsewhere)

Not everything needs a “desktop” interface (eg fridges, TVs)
Desktop is interface to Universal computer environment

  • Email, web, design, software development, accounting, managing a small business, presentations
  • User is completely in charge

Will Linux ever displace Windows?

  • Some big deployments
  • Cost of change can be high , re-education of users, people know applications instead of concepts
  • OEMS have strong dis-incentives
    • Offering to “reduce their software expense” is a non starter
    • Pre-loaded Windows does not cost OEMs large money, can be net-revenue source
    • Joint marketing opportunities with software vendors

Will Linux ever displace Apple?

  • Wall Gardens can be very beautiful, alluring… captivating
  • Mac OS X
    • Credible technical base
    • Plausible additional target for free software applications
  • iOS
    • Oh please! World most proprietary operating environment
    • Hard to ship free software
    • Hostile to hardware devs

Many desktop devs have been lured to mobile

  • Core technology elements certainly relivant
  • So much effort applied to lot of things that didn’t make it
  • Android consumes open source, uses lot of open source but ecosystems arn’t really open
  • They are not a universal computing enviroments

Is this work on mobile useful to us?

  • Can one UI really span all things? The idea is certainly appealing…
  • Interface capabilities vary widely
    • keyboard centric vs touch centric
    • Screen size

Personal computers with Free Software were meant to empower!

  • Any user *can* become a developer, every dev is a user
  • Expanding the user base by reaching more people is laudable
    • Accessility, multi-lingual, appealing to non-geeks

Feeling abandoned by Linux desktop developers

  • Confusion over target audenience
  • Not eating their own dogfood
  • Huge piles of software that interfaces in complex ways makes it hard for users to become developers
  • Was with bunch of Gnome devs, none of them uses evolution to read email
  • Not scratching our own itches

Tradeoffs associated with encompassing apps, system functions

  • eg Gnome desktop relationship with network manager

XFCE4 as Debian Wheezy’s default

  • Gnome too big to fit on single OS install CD
  • Most distributed have moved to DVD image but Debian wants to stay with credible single CD option

Why can debian easy change desktop without hurting users
What really matters: Applications

  • Desktop doesn’t really matter, it just gets in the way
  • Want to use any application with any desktop
  • Linux gives us the ability to multitask, don’t take it away

What really matters: Efficiency

  • Buy a faster computer should mean applications run faster
  • For most modern computing, battery life is a really big deal
    • Composting is expensive
    • Shiny can be fun, but is all the “bling” really worth the cost?
    • Oh, and because my laptop is my desk, please don’t cook my legs

What really matters: Customizing

  • Users won’t to customise
    • Personalisation is part of taking ownership
    • Investing time is okay as the returned value persists
  • Ability to automate things that are repetitive
    • Scripting is valuable part of Unix heritage
    • Don’t hide access to text interfaces too deeply
  • Coping with the industry infatuation with 1366×768 displays
    • Waste as few pixels as possible on “decorations”
    • Vertical “panel” support

What really Matters: Hackable

  • The real reason I run free software
    • I’ve known since I was a kid I was a “tool maker”
    • Immense gratification from fixing and sharing the fixes
  • I want to be able to undertsand and fix the software I use
    • Gave up trying to get evolution to build
    • Complexity gets in the way of “casual contribution”, killing the long tail effect!
    • Linux kernel has many devs that just submit single patch
  • I want yo be able to share easily with others
    • Any app should work on any desktop
    • Ability to push patches upstream

What does all this mean?

  • Fell good about how Linux is winning in the mobile space!
  • Pick realistic goals.. can’t easily convert OEMs from Windows
  • We should build the kind of systems *we* want to use!
  • Collaborative development model is awesomely powerful
    • Differentiate in interoperable ways!
    • Empower users to be developers so we can get long tail effect
Share

Linux.conf.au 2013 – Day 0 Sunday

So I am off to my 10th Linux.conf.au ( every year from 2004 ) in Canberra Australia.

To get there I flew over to Sydney ( leave 7am Sunday, arrive 8am ) and then took the bus down to Canberra (leave 10:15 , arrive 13:30 ) and then the LCA people organised a bus for us from the bus station to the halls.

I’m staying at John XXIII Hall on campus. As you may guess from the name it is a Catholic College which means there are photos of the Pope on the condom machines in the toilets. No aircon in the rooms but that is pretty common, wired Internet was working though.

Signup was pretty effecient this time around (apart from a big queue at start ), we just gave over a piece of paper with our name on it, they typed our name in the the software and printed out our badge.

This year the bags were pre-placed in our room with our stuff in it, which is a good idea since it speeds up registration. Stuff in my bag was a t-shirt and a hygiene pack ( with shampoo, conditioner, soap and sunblock ).

I went for a walk with Devdas Bhaget to look for some lunch, it was pretty hot so hard going. We got a little lost too and were unable to find the pub so just ended up getting some snacks for lunch and heading back. Later I went with a group of people out to the Pub for dinner

Share

Links: Parody trailers, Obama fundraising, Japan!, American academic jobs

Share

Links: Exercise, Radio NZ Hosting, Scale in the Cloud, Philip Roth

Share