Wikipedia vs Mana Party

Local elections are happening in New Zealand in a few weeks. As part of it people from the parties are active online.

On September 6th a wikipedia account called “manamangerecreated a Wikipedia page for James Papali’i who is standing for Auckland city council seats on a Mana-linked ticket (Mangere is the suburb of Auckland near the Airport).

However a regular New Zealand Wikipedia editor made this edit to the article who linked back to a 2006 conviction that Papali’i had received for fraud.

“manamangere” is now asking that the article be removed since if it includes the fraud conviction it does more harm than good. In reality it will probably be removed since Papali’iis below the level of fame that usually gets an article.

 

Share

Idea: Cafe magazine club

I was in a cafe last night that had a a magazine I used to read and I realized how much I missed reading magazines.

Up until about 5 years ago I used to spend about an evening a week at the local Borders working my way though around a dozen magazines in a row. Most of these were from the US/UK and had sticker prices of $20-$30 to buy so I couldn’t realistically afford them. However I changed jobs and Borders closed so I’ve gotten out of the habit.

These days the only magazines I regularly read are the Fortune and Time magazines that my local cafe has (they also have 2-3 other magazines I don’t follow plus the local paper). In fact since I have a choice of about a dozen cafes I can eat lunch at one of the reasons I choose that cafe is their magazine selection.

It occurs to me that reading matter is a big part of the cafe experience for some people, however investing in them is a big expense for cafe owners. So my idea is that customers could pay directly for magazines in the local cafe. One possible way would be to have a subscription, I pay say $5 per week and I am allowed to read the magazines that are on offer. I can also vote to help decide what magazines the cafe should subscribe to (I’d suggest STV for any fellow voting geeks out there). Casual readers might pay a $2 pass with their order.

Any resemblance to the Diogenes Club is not entirely accidental

 

Share

Newsblur RSS reader review

On March 13th 2013 Google announced that they were shutting down Google Reader from July 1st. As a big RSS user I started looking around for an alternative a few days later and settled on using the web-based Newsblur. Now I’ve been using it for close to a month I thought I’d give a quick review.

How and Why RSS?

Before I do the actual review I thought I’d give a quick overview of Why I use a RSS reader. I think Marco Arment put it well when he wrote:

RSS is best for following a large number of infrequently updated sites: sites that you’d never remember to check every day because they only post occasionally, and that your social-network friends won’t reliably find or link to.

Which is very much the case with me. I read relatively obscure but interesting blogs that are not massively retweeted or linked to. I read enough of them that it isn’t practical to visit them every day to check for updates (which may only happen every few weeks) and I follow enough people on twitter (145) that I will sometimes skip a few hundred tweets that happened overnight so I could miss a tweet announcing a blog post (assuming I want to follow that persons tweets).

A specific use case I saw is for web comics. Instead of me checked the half-dozen web-comics I follow every day for a new stripe they all appear automatically in my reader.

Getting Started with Newsblur

To switch from Google reader to Newsblur was fairly simple. From Google reader I went to “settings” and then “Import/Export” and exported my information via Google “takeout”. Google then gave my a zip file which contained a subscriptions.xml file and some .json files.

I then setup a Newsblur account. Currently Newsblur offers free accounts and paid accounts. Free accounts are limited to just 64 feeds being active and update less often. Paid accounts cost $US 24/year and have unlimited sites, more updates and some sharing options. Once you create your account you can import you subscriptions.xml (call and OPML file) and you will see you previous subscriptions. After a couple of days using it I signed up to a one year subscription.

If you don’t have an old RSS reader you can just grab RSS feeds from sites you read. Look our for the RSS symbol or use your browser to find the RSS URL of the sites you want to follow.

Newsblur’s Interface

I found Newsblur’s interface to a little clunky but usable.

Newsblur Interface

The left hand sidebar has my various feeds (the number is how many unread articles are in each) . The main pane on the right has the article I’m reading and the bottom right pane has the list of articles in my current feed (just the one I am reading in this case). The go to feeds you click on the name of the feed on the left and it loads in the right-hand panes.

The interface above shows i follow 141 sites and I have 225 unread articles. The “Ars technica” site (2nd from the top) is an example of a site I’ve used the built-in filtering function with. There are 37 articles I’ve filtered to “good”, 46 filtered to neutral and another 77 completely hidden ones I’ve filtered out. The filtering is fairly simple and works on keywords, authors or titles of articles. Sites which have good tagging are easiest to filter while those that don’t (eg slate.com) are a lot harder. This is a feature that Google reader never implemented and is very useful for readers sites where their are whole groups of posts you want to exclude (eg gaming articles on Ars Technica).

One of the bugs with the interface is that their are a lot of different option menus ( the “cog” at the bottom left, the “cog” in the feed pane next to the feed’s name, right clicking on  a feed name) which are a bit confusing. There is even a dev.newsblur.com which has a preview of the upcoming interface . At least once I’ve switched the the “dev” site to fix a setting I couldn’t change in production.

Overall Impression

I’m fairly happy with Newsblur as a replacement for Google reader.

  • Immediately after Reader announced their shutdown the site was overwhelmed with new customers but over the lat month they have expanded capacity and are now pretty stable and fast
  • The site owner (1 person does everything) is fairly responsive to bug reports and help requests
  • The interface is improving and being worked on
  • The company appears to have a sustainable business model
  • There are a good set of short-key keys to speed up reading.
  • The filtering is very useful.

A few rough areas

  • The interface is still a bit of a mess and has some bugs, hopefully the new release will improve
  • I’ve found a few feeds are completely broken on Newsblur (eg James Hamilton’s Perspectives) but seem to work okay when I test them directly. Unfortunately Newsblur probably doesn’t have the manpower to fix these one by one.
  • If you are a big using of the sharing and highlighting functions of Google Reader then Newsblur’s equivalent may be short of what you need. I don’t use these however.
  • There is no “sort by magic” function that Google Reader had, but this filtering is a good replacement in most cases.

But I think the site is more than usable and getting better and I definitely recommend it to others.

Share

Links: Spinning Levers, Redis, College a bad investment, Playing the World Champ

Share

lca2013 – Day 4 – Session 2

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…

Getting started – init and clone

  • Entire repo in .git directory after “git init”

Getting stuff done add and commit

  • add writes to the repo
  • commit creates a commit object and puts labels on it
  • take a new copy this file.
  • Add creates a new node, commit attaches a commit-object to it and moves the head and master

Branching

  • git branch feature – added feature label to current node
  • git checkout feature – next commit will move feature label
  • git commit – moves the feature label and the head
  • head always points to what you have checked out

Commits

  • Every one is unique and has unique id
  • They never change
  • content, author, date

Staging area / Index / Cache

  • Place to build up stuff before a commit
  • eg what is in “add”

Workflow

  • Isolate -> work <-> update -> share
  • git checkout master – move back to master branch, can’t see stuff in branch
  • get merge feature – merge in the branch “feature”
  • git log –graph –decorate all
  • reset – “arbitary move labels around command”
  • Merge master back into feature
    • git checkout feature
    • git merge master
  • Unlike cvs “commit does not meet share”

Working with others

  • git clone remote work – clones a remote into work folder
  • Normally “remote” will be the URL of the remote repo
  • origin/master – label to commit where git thinks remote currently is.
  • pull == fetch + merge
  • git checkout -b bugfix  – checkout and branch
  • git push origin bugfix – push to the branch “bugfix” on the remote “origin”
  • git push -u origin bufix – the -u sets the default branch to push to on the remote “origin” for next time

Tags

  • git tag v1.0 b08234
  • Add any old random tag to a commit, defaults to current commit you are on
  • cannot move tags except with force
  • can branch from tags

Rebase

  • git rebase -i  – interactive mode
  • squash
  • creates a new commit ( hanging off parent of commit your are rebasing ) and move branch to it, leaves previous branch hanging detached
  • Don’t rebase after you have pushed
Share

lca2013 – Day 4 – Keynote

Bunnie – 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 – schematic and PCB layout
  • 20% on product and software dev
  • 33% in mass production ramp

Giving Linux a body

  • Consumers don’t like bare boards
  • Comprehensive 3D models
  • Build injection molds – Steel cut, EDM tidy, Hand polish
  • Around $20k to create tool
  • People like Apple will start multiple tool runs and keep the best
  • General rule – $99 product you want to sell wholesale for $30
  • Magic prices products sell at $99, $149, $199
  • 90% of hardware sales between Black Friday and Christmas. Can’t ship just after Christmas

Chellenges of Embedding Linux

  • Embedded CPUs have lots of weird bugs
  • Bootloaders
    • CPU-Specific media loaders
    • Firmware has raw Iron – NO MMU, No DRAM, etc
  • Small memory footprint
    • Linux runs just a few MB of memory
    • Every $ counts, lots of time fixing code
  • Flash File Systems
    • Few 1000 read/write cycles
    • No write g’teed to succeed
    • Power-down corruption is a fact of life, need backup or read-only copies
  • Power Management
    • Reduce frequency and voltage when CPU is lightly loaded
    • Need to adjust for high and low load
    • Rouge processes can chew CPU/Power
    • Lots of auditing needed
    • User apps are hard
  • Suspended / Sleep hard
    • Drivers might be written with this in mind
  • Huge number of devices that can be plugged in, lots of drivers to verify
  • Dev community
    • Smaller pop that desktop
  • Updates and patches and rollout and distribution hard to do, must do yourself
  • Software is the major bottleneck – cause it is easy, you can do anything
  • System architect must create a useful cage for the software dev

Case Study: Robot Vision

  • Kovan
  • Needs to do image processing
  • Lots of choices
    • Using FPGA on PCIe uses up all of memory bandwidth in small systems
    • Connect via USB means it is just a “camera driver”
    • Connect between Soc and the Screen
    • Or between SoC and the DRAM
  • Ended up between SoC and LCD
  • Ends up as /dev/fpga
  • Handle multiple types by probing

Case: NeTV

  • Goes between device and screen
  • Overlay stuff over video
  • But signal is all encrypted
  • Sync Pixels and replace one by one using Man-in-the-middle attack on encrypted signal!!!
  • Very hard to get timing, drift of 100s of pixels per frame
  • Source clock from the incoming signal
  • A few other tricks

Dev Enviroment

  • Created Amazon AMI to help people get up and going
  • But hardware devs not used to using these
  • Not a 100% fit to normal dev model
Share

lca2013 – Day 3 – Session 3

users: delighted; (better UX using CSS 3 in particular and “HTML5” in general) by Adam Harvey

User Experience

  • “Used by meatbags sitting in keyboards”
  • UI & UX
  • ” The only thing that numbs the pain of dealing with IE6 “
  • How to put yourself in the user’s shoes? Personas
  • Simplify Interface
    •  Three Click rule
    • 4 Clicks to get to most wanted page of sample website
    • Other study says people keep clicking until they get the page they want
  • Have to find balancer between what you want and what you can do

Example: PHP website, new version

  • No real metrics
  • Dropdown menus, hard to decide what to put on the documentation menu, guessed what people might want

People expect web interfaces to be smooth these days

Example @font-face

  • Icon fonts
    • Put things that were in sprites into icon-fonts
    • Positives – scalable, bandwidth efficient, text effects are available eg blink
    • Negatives – Lack of Accessibility, No colours
    • Very compatible with browsers
  • Alternative SVG
    • Positives – colour, scriptibility
    • Negatives – Accessibility, slower, IE 9+ only, Andriod 3+ only
  • Consider sprites, Use icon fonts most of the time, SVG for specific needs

Transitions

  • Smoothly make a change in an attribute
  • Gotchas
    • Image transition support variable in browsers
    • Still vendor prefix
    • But effect does degrade well
  • Good browser support except IE
  • Use when you can, especially if you don’t care about IE

Keyframe Animation

  • Can do simple animations of objects of CSS

 

Share

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