Wanted computer to be available when away from desktop, but not be disruptive and uncomfortable
Affordable, approachable to hobbyist, there are more expensive alternatives
nodes – jeenode, audrino clone, tiny, easy to hid, cheap ( $20 including wireless RFM12B vs $20-30 + 30 for wifi for more conventional audrino )
RFM12B – 66 bytes
Server – pandaboard ~$200 . ARM processor with full Ubuntu install
Server – aggregates data from all notes and sends commands to all it’s nodes. Contains services for system, json data feeds from nodes, web client interface, interface for sending commands to system
Client(s) – several machines in house used from
client – jquery mobile , small applet , on desktop , chromium app mode
Inputs: Temperature , Humidity , motion sensor (lights on/off)
Input: RFID reader (disappointed at short range, <1m , one was in doorways to trace path of wallet)
Input: touch sensor ( simple controls, in pillow ) , small keyboard (bluetooth, usb)
Output: Glowing egg ( multi colour, hand sized ) , Power Tail (power extension, turns on/off)
Output: Hollowed out candle with LEDs inside , Instamorph & super Sculpey to create “solid” objects
Tools: Talk in inkscape/sozi , Also use: vala (webserver) , jquery mobile
Cheap Tabloid tricks – Angus Kidman
Journalists have secret lawyer fantasies, they have wrung the information out of the sources
Is the IT media biased?
no coverage of lca2012 in main Aus IT press
more coverage in 2nd tier
Only 3% pageviews on lifehacker use Linux
Not many IT journalists these days, One on FT on lifehacker, more to do (websites, blogs, video, podcasts)
Freelancers – can be an option. Freelance rates not good, getting worse, competition from bloggers, etc. Hard to convince editor that story is worthwhile.
IT news driven by fashion. In early 2000s belief among publications that Linux stories would drive traffic from slashdot etc
Current fashion is facebook and Apple. Stories about them in demand
Eg Lifehacker did apple angle on LCA keynote
Open source Projects lack definitive spokesperson
Media obsessed with cult of Trivia, Celebrity . eg Linus
Media not influenced by advertisers
Does Linux need media? Yes if want to reach more than the 3%
The Samba tour of scripting languages – Amitay Isaacs and Andrew Bartlett
Samba is C based
But seems to have a lot of scripting
Has to be portable no non-gnu systems like solaris, reply on POSIX sh, make (not gun make), awk, m4 and a c compiler
shell scripts for first testing. Over 10,000 lines if shell in building
Python , TCL and Lua bindings all added but unpopular and eventually removed
Perl over 20,00 lines
IDL build initially in awk. Switched to perl based PIDL
javascript before it was cool – embedded javascript engine
But the cool kids were using python so switched from Javascript to python
Exception based languages things cleaner
waf is python based build system
python bindings for most things, or via C hook
Lots of other stuff being written into python, called directly by samba for small tasks
90,000 lines of python
Example: Samba3 upgrade – python based tool in 3 weeks. Business login in python, exceptions test for bad input
At build time python checks to see if ABI has changed from previously and alert developer if it has.
Test frameworks – unit tests on standalone components. Environmental tests with everything running, different types on server setups, fake ips and tests made. All runnable as non-root
9000 test in 1300 test suites. Mosts test in C, some in python or shell
Running Python in Grub – Josh Triplett
” I ported python to grub “
perception that Linux doesn’t need BIOS
Involves programming hardware in functional/safe/optismise configuration
Lots of stuff to support, a few decades of compatibility, very bare-metal programming, small number of people working on it
What can go wrong: Broken or disabled CPU features, missing or broken memory, sub-optimal power mngt, delays & latency, USB bios handoff. Undocumented customer interfaces
Why not test under Linux? Linux gets in the way, no direct BIOS access for tests
Grub2 – 32 bit addresses, written in C, can read files, menus, single thread, no OS to disturb, only uses a bit of BIOS itself
ORigin: Replacing DOS test programs, test for power mngt, new grub commands for command-line.
Grub script language – bashish, no expressions, can just glue things together in menus, have to write lots of C
Ported CPython 2.7 to GRUB
Wrote a C/Posix compatibility layer for GRUB, floating point functionality via fdlibm , ported much of python standard library
Build C extension modules, added “bits” module to access platform functionality
ACPICA already in Linux for parsing ACPI. ported as a grub module with python module to access it.
bits passes grub command line to python for python to parse
FUSE for Python and GRUB. added a python device reading python/foo invokes a python callback.
logging to in-memory buffer and sends to log in FUSE via system. Save to ACPI table and then OS can grab it later
SMP support in grub, pyton scripting in ring0, python modules for platform interfaces CPU, PCI, PCI-e, ACPI including decoding and method evaluation, logging, test suite evaluation
BITS test: power mngt configuration, perf optimisation, CPU config registers, SMI frequency/latency , USB handoff from BIOS to OS including effects on SMI and C states.
Used by BIOS vendors before shipping boards, BIOS problems actually get fixed!
7 different kernels in 10.10 . Improving with Linaro
OMAP 3 100% in main Linux kernel so easy to support.
Someday unified kernel onto ARM
Toshiba AC-100 netbook
11.10 preview release of ARM server
Lots of work to get SMP and now 64 bit to work. Some code assumed they would never exists
Virtualisation support soon for server space
Main sense of ARM in server space is 10x saving in power eg ~50W vs ~5W
Lots of other stuff this guy was going too fast for me to keep up
Helping your Audience learn – Jacinta Richardson
Conferences let you vary your level of intensity according to your energy
Conferences – no assessment
Training is different, all day, 6-8 hours, several days in row, builds on previous days
can’t afford to get lost.
Cognitive load – how much effort somebody has to apply to learn a new thing.
Intrinsic – how hard actually thing is.
Extraneous – how harder trainer makes it than it needs to be
Germaine – how well concepts build on what we already understand
Building framework takes time. Scaffolding has to be well designed. Lots of simply examples
Mind map of material -> what you are teaching to build foundation
Be realistic what you can fit into day (including breaks, people late)
6 – 6.5 hours optimistic. Seems to be max most people can handle
90 minutes then break ( eg 90min on, 30min off repeat 4 times )
Documents – short prose sections, short examples, short chapters (work though in 90 minutes)
Key info at start of the day. Dont do lots of extra stuff like class rules
Easy stuff, unimportant stuff at the end of the day.
Essentials at the start of the course
First 90 minutes or first day is most important
Options extras at end of course or end of each day
If you have lots of stuff -> create another course, make more money
Use diagrams, code, pictures, comics
reduce germane cognitive load:
Order carefully
group similar concepts
Put import stuff in bold
10:10 – 10 minutes instructions, 10 minutes of student exercise. Sometimes 10:20 . Occasionally 10:30
1-3 concepts in that 10 minutes. But try to balnce
Spare time = more examples
90 minutes = 3 x 10:20 + 4.5 x 10:10
Target exercises at each key point. Doesn’t have to be real-world
1 point = 1 exercise
Easy to advanced exercises. Additional exercises to really advanced people
NO answer files. Cause everybody will cheat
Minimise cross-chapter reliance
Sometimes you have to rely on previous stuff (should have been at start on day one). Try and avoid since people will have missed or not picked up previous concepts
New topic = clean slate
Good, through course notes
Not slides, write a book, should be readable later, good advertising
A few other ideas:
Keep room cold, keep it fresh. 21-23 degrees
Bell curse applies to student ability. Students not slow, but have less foundation or experience in topics
Target average student. Offer extra help for ones behind. Don’t slow down for slowest student.
Larger block sizes for ( especially for metadata, to provide perf improvements in some cases)
Scrubbing uses CRC to varify data on disk, fixes bad ones with good copy on another disk which has okay CRC
“df ” gives completely wrong values on how full the disk is or it’s size
discard/trim supported both real time and batched
Drive Swapping – current raid rebuilds via balance code, can also restripe between RAID levels
btrs send/receive in development
Embedded – friendly to small machines, not as friendly to small disks (being worked on) Works well with low-end flash drives
RAID 5/6 – MErge pending completion of fsck work. will also add triple mirroring
beta read-only filesystem recovery tool – copies data out of corrupt FS
tree root-history log lets us recovery from many hardware errors. “mount -recover”
New fsck release on the way. May be announced very soon
yum-plugin-fs-snapshot . yum plug to trigger a snapshot on package install/upgrades
The Web as an application development platform – Shane Stephens and Mike Lawther
When and how to move from native to web/cloud apps
Examples
Text based like email (pine, mutt, outlook). 15 years ago web-based email started. access anywhere, no install required, easy to start using, use anywhere
Desktop publishing. Hard to collaborate with other people using desktop based software by emailing docs around to other people. On the web it’s often native multi-user. Send Links rather than emailing whole doc.
On web everybody always running latest version
Github gives you one-stop shop for projects. wiki, forums etc. Native in app rather than bolt on to desktop version
Graphics
Flickr – has native sharing, backups etc
Online editing of images etc now possible
Games
Farmville – no install, easy to share links
Angry Birds – has web version, html5 , flash for sound, 60fps
Not at stage where First person shooters going to happen yet. Users have high end hardware
Overall Benefits – No install, universal access to data, always using latest version, collaboration and sharing built in. Simple text layout, Web as IDE, open and modular enviroment
Drawbacks – Layout more involved than desktops apps, distributed code makes debugging hard, cross browser compatibility, security limits flexibility.
Useful web technologies (see also HTML5Rocks website) :
Display / Rendering
HTML , SVG , Canvas – All fairly easy to combine
WebGL , flexbox and grid <- future
Communications
Standard http requests, AJAX / XHR , Websockets / Browser Channel , libraries like Faye etc
Storage
Traditionally just cookies, Session Storage, Local Storage, indexDb, AppCache
Most contributors paid to work on it by their companies
number , quality and area or contributors varies
6 monthly releases – design summits – continuously open truck – dev on master – Monthly milestones – stable branches post release
Vision – consistent tooling and process on all projects -> Consistent Product -> Multiplier effect.
Minimize meta-development, Standard tools
Gerrit – code review
Jenkins – Testing (pre and post merge)
Orchestra (bare metal deployment)
Lanchpad, documentation servers, planet, repos
Environment: Ubuntu, Everything in Python (pep8 standard, openstack.common ). virtualenv/pip
Gated truck – ensure quality – auto tests – means devs always start from working code – keeps bad code out of tree – process same for everybody, transparent, automated.
Gerrit – stand-alone patch review system – lots of integration hooks – lots of review categories
SSI using openid for all of project sites
Git review is implemented as git sub-command to submit things to gerrit. zero-config <- looks cute
Vendors can have labs and tests and code can be automatically submitted and tested on it
I’ll be posting some updates from Linux.conf.au in Ballarat in the next few days. I arrived on Sunday but this is my first post. I’ll see if I do an out-of-order blog post on that later.
The keynote from Bruce Perens was really good. He talked a lot about the failure of open source to engage the public and policy makers. He also covered a bunch of cool hardware projects and cheap (and often open) small boards and other electronic products.
Smashing a square peg into a round hole – David Basden and Chris Collins
Automation your automation.
Anchor – Hosting provider, doing built solutions, non-standard requirements
Puppet is one step, PXE & dbootstrap just another, hundreds of others
A “simple” build used to take a day, down to 10 minutes
instead of defining all steps define dependencies to get a “partial ordering”
figure out what has to be done, in what steps, keep track of what has been done
Lack of security in many queuing systems, bad agents can grab tasks they aren’t supposed to etc
Outline of “Audience” job control system. Design goals and decisions
I don’t usually make New Year’s resolutions let alone publish them but I thought I’d go for it this year. If nothing else it’ll make me feel a bit guilty not keeping to them.
1. Get weight down to 80kg – Over the last couple of years my weight has drifted up from around 85kg to 95kg. My goal for this year is to get it down to 80kg.
2. Get my learners driver license – I don’t have a drivers license at all right now. Goal for this year is to at least pass the written test and get the first stage of a full license. Hopefully I’ll actual do a bit more than this but I think the learners is a good minimum.
3. Get chess rating to 2000 (either NZCF or FIDE) – My rating is currently hovering around the 1800 level for both my New Zealand (NZCF) and International (FIDE) rating. My goal is to get this 200 points higher which will put me into New Zealand “A” grade.
4. Complete “Learning Python the Hard way” – My programming skills are a bit weaker than I would like. The is a fairly well known book/course Learn Python the Hard way by Zed Shaw that I’d like to complete to get my skills up a bit.
I’ve tried to make the goals realistic and list things I can actually finish. The weight goal and the chess goal are probably the hardest. The weight one will require me to stick to a diet pretty much all year while the chess one will require at least a couple of hours a day of study and practise.
I’m not sure how long the programming course will take, I’m guessing 20-50 hours if I do most of the extra-credit exercises. The drivers license things should be less perhaps 20 hours of road-code study plus the test itself.
Some of the things above cost money but I feel that they are all worthwhile enough to spend a bit on. This is especially the case where I’m spending a lot of hours on something. For example there is a video version of the python course available for $US 29. It would be silly of me to invest 20-50 hours in the course but “save” $29 by not paying for the full version.
The license and programming goals are a little unambitious but with them I’m hoping to (a) have something I will actually complete and (b) be things that have obviously follow-ups.
At the same time as New Zealand’s general election on November 26th 2011 it also held a referendum of the voting system. While only early results are back it looks like the vote was to keep Mixed Member Proportional ( MMP ) system and so there will be a review in 2012 of MMP. I thought I’d list many of the possible options for changing MMP in a post for people. I’ll try to skip options that completely change the system however.
Local Electorates
Completely get rid of and go to a list-only system
Change the formula for decided the number of electorates ( currently 16 in the South Island and NI and Maori seats in proportion )
Loosen or tighten the requirements for electorates to have the same population
Create other electorates for other ethnic groups, overseas NZers, electorates that anyone can “move” to.
electorate winners determined by Party vote ( eg if a party is entitled to 20 MPs then it’s 20 highest polling candidates are elected)
Otherwise disallow the election of electorate MPs that would cause an overhang.
The Lists
Strighter requirements for lists to be democraticly decided
People can be on multiple lists
List-only candidates not allowed
Changes in how list-members who leave parliament are replaced.
Regional lists and/or one covering the Maori Seats
Make any MP that forgoes their position on the list to allow a person below them into parliament ineligible to stand in the next election
The list vote
Threshold to be changed from current 5% ( usually reduced )
Removal of exception from threshold for parties that win an electorate
Winning a electorate reduces the threshold but doesn’t eliminate it ( eg : No Seats = 5% , 1 Seat = 4% , 2 seats = 3% 3 seats = 2% )
Remove/Reduce threshold for parties representing Maori interests
Change from Sainte-Laguë method for deciding seat allocation to another method
Ability of people to reorder or otherwise influence the order in which their party lists are ordered when they vote
Ability to have a second choice if ones “first choice” party does not make the threshold
Removal from lists of candidates that stood in local electorates but failed to win or complete ban on people being allowed to be on both list and stand in electorate.
Only remove a losing electorate candidate from a list if they were previously the MP ( eg “thrown out by their constituents” )
Allow people to vote across lists . Perhaps via a STV type system of (optionally) numbering candidates from multiple parties.
Regional lists and/or one covering the Maori Seats
Threshold is 1 electorate MP , no percentage threshold
Electorate MPs elected for a party must exceed list MPs
Increase/decrease in the number of list MPs
Removal of separate list vote, just count electorate vote towards party-list quota.
I flew down first thing on Wednesday for round 1 at 9:30am. It had snowed in Christchurch over the weekend and the Monday so there was a light layer of snow on the ground coming in. Since Christchurch rarely receives snow it had caused some disruption including cancelled flights earlier in the week. However my flight made it in okay and the weather was sunny although a little chilly for my stay. The club is in a light industrial area in the centre-west of Christchurch that has seen little damage from the recent earthquakes. While there were a few cracked buildings, damaged chimneys and other minor mess the area was in fact busier due to businesses from damaged areas moving their while restaurants that were open were busy due to those in the city being closed.
The Tournament had 25 entries with The top being Steven Lukey ( NZCF rating 2332, rank 11th) and John MacDonald ( Rating 2114, rank 48th) being the top ranks with me being ranked 17th in the field on 1699. Games were 90 Minutes plus 30 seconds a move and held at around 9:30 and 3pm each day.
Round 1 – White vs Ross Jackson ( 1975 )
The opening was a fairly standard c3 Sicilian with Ross making things up a little as he went so I kept a small advantage for the first 20 moves. At that point Ross made a mistake and allowed me to win the exchange ( a rook for a bishop) which solidified my advantage. However he did have 2 bishops so I did not feel my advantage was decisive especially against somebody rated 300 points higher than me so I offered a draw on move 32 which he accepted.
Round 2 – Black vs Arie Nijman ( 1895 )
Arie is an older player playing in his 55th(!) Canterbury Championship (which the SI Champs acts as). The opening was a Petroff with 5. Qe2 and white retained an advantage coming out of the opening. I started to get ahead around move 14 before blundering a pawn on move 15. I then had to defend for around 10 moves before we swapped down to a rook and a bishop each by move 29. A further swap was down to a bishop and 6 pawns (him) vs a bishop and 4 pawns (me) but we had opposite colour bishops so I though I had a chance to draw. We eventually had pawns racing down opposites of the board with him sacrificing his bishop to stop mine and me probably have to sacrifice mine soon (which probably still wouldn’t have stopped him). However he lost track of time on his clock and it ran out giving me the win.
Round 3 – White vs Dan Dolejs ( 1882 )
Dan played a Scandinavian with “2. Nf6” which I expected and had practised a little for, although he did a different variation on move 5 than I’d expected I have looked at the one he did so had a rough idea what to play. On move 9 I was the equivalent of a point ahead but I soon wandered a little as the middle game kicked in. However on move 13 I made a blunder (see diagram) which allowed a check on h2 and a strong attack from black. By the computer’s estimate I was the equivalent of 3 pawns down. However I managed to defend well and black didn’t press his advantage well until we got to the position (see diagram 2) after 24. ..Nc6. My move dxc6! wins the game since it puts me a piece up since if black tries to take my queen then I take both his rooks and queen my pawn on b8. Blacks reply ( Rxe1 26. cxb7 Kxb7 27. Qxd8 Rxa1 28. Bxa1 ) left me a bishop up and an active queen which I used to pick off black’s pawns and eventually checkmate (although I missed a few earlier mating chances).
So after day 1 I have 1.5/2 against 2 higher rated opponents and was pretty happy.
Round 4 – Black vs Hamish Gold ( 1831)
I used to play against Hamish when we were at school. I gave up chess but he kept playing and last year came 1st equal in this tournament. The opening was a fairly standard Slav with an advantage to white after a let my position get a little cramped. Around move 19 I turned the tables a little and pushed a bishop and two Knights against white’s queen nad got ahead by 2 pawns. I was however short on time and offered a draw instead of risking going for the win.
Round 5 – Black vs Quintin Johnson ( 2116 )
With 3 points out of 4 I was actually playing on board 2 for round 5, however 3rd ranked Quintin Johnson was a much harder opponent. Agsin I had a slav opening but miscalcuated a couple of moves and got myself in trouble by move 15. White build on his lead and overpowered me with his attack.
Round 6 – White vs Edward Rains ( 1884 )
The opening was a c3 Sicilian with g6. Black had a strong bishop down g7->a1 and after he swapped his white bisop for my f3 Knight and I made some lazy moves he captured both my centre pawns. I for one back at the expense of swapping a lot of material until we had just a knight, a rook & two pawns on each side plus he had a central passed pawn. 20 moves of manoeuvring later ( a 3 refusals of my offers for a draw ) . He unexpectantly swapped off all the pieces, made an inaccurate move and gave me a winning endgame.
I was now on 4 points out of 6 which I was very happy with given then higher ratings of all my opponents.
Round 7 – Black vs Ross McKarras ( 2070 )
White unexpectedly played the Bishops opening ( 1. e4 e5 2. Nc4 ) and I played it completely wrong to leave me down a full pawn and in a cramped position my move 10. A strong attacked followed and I risigned on move 40.
Round 8 – White vs Nigel Richardson ( 1705 )
I pulled out a sideline against the Alekhine’s defense which my opponent wasn’t familar with so he was on the back foot after the opening. I didn’t managment to convert my lead but was still a little ahead before he made a mistake and I gained a pawns and an attack. I missed the best continuation however and settled for being 2 pawns up and swapping queens. Some bad play by both sides followed (in timetrouble) until I eventually won.
I ended up with 4th equal with 5 points out of 8. However since all my opponents had a higher rating than me this was much higher than my expected score of around 2 so I will gain several rating points from the tournament.
I just updated this blog to wordpress 3.2 which came out this week. Only a small glitch caused by me running an old theme which wasn’t 100% compatible. WordPress itself seems to be better. I had a quick look at the Twenty Eleven theme which comes packaged with wordpress and it looks nice even via my mobile browser. I’m tempted to update from the Simplicity theme which I currently use.
I updated my hosted Linux VPS to Ubuntu 10.04 last week and took the opportunity to change the web software around when I did it. I’ve now replaced lighttpd+fastcgi with a standard apache2+mod_php setup but I’ve put Varnish 3.0 web accelerator in from of everything. Complete overkill for a bunch of small sites that I host but it gives me peace-of-mind for slashdotting type situations. Main reason for the move is that lighttpd is a little obscure these days while I use apache and varnish at work.
Last week I attended the 3 day NetHui conference in Auckland. The conference was aimed around Internet Policy for New Zealand. An interesting 3 days during which I attended (and missed) plenty of great discussion, talking to interesting people and saw a few great talks. The event was cheap to allow more people to attend and features a wide range of people including Lawyers, educationalists, techies, businessmen, civil servants and a few “interested in a private capacity” people. Great event. Here is a link to the media/blog coverage.
Later this month I’ll be in Christchurch for the South Island Chess Champs ( link to site not page since sites uses frames!!). Christchurch has been hit by 3 big earthquakes in the last year (and hundreds of small ones) and thousands of buildings have been damaged (Many have or will be demolished) so it will be interesting seeing some of this for myself (although I’ll be playing chess during most of the day). The tournament is one the other side of down from the most damaged areas however.
Also coming up this month I’ll be at Barcamp Auckland 5 , probably not speaking though.
The Call of Papers and Call for Miniconfs have also just come out for Linux.conf.au 2012 in Ballarat. Once again we’ll hopefully be able to run a Sysadmin Miniconf and I’m also thinking of putting in a talk proposal.