Along with some other local technologists (Rich Evans, Con Zymaris and Veechi Curtis), I was interviewed (via email) by Patricia Maunder for an article in today's edition of The Age newspaper ("livewire" section of the Green Guide, page 22). It discusses and celebrates Robert Pirsig's seminal book "Zen and the Art of the Motorcycle".
Being a keen technologist and motorcycle rider, I was pretty excited to be interviewed about the book and contemporary technology and put some serious effort into my replies. Of course, I expected that my extensive response would be heavily edited (for good reason) and so, I asked Patricia if she'd mind if I blogged my complete replies (once the article was published).
In case you are wondering what I'm holding in the article's photograph ... it is a Bike Interceptor, created by a very talented local designer, Marc Alexander. One of the best things about being part of the Melbourne HackerSpace has been meeting many people like Marc, who have incredible technical skills and a generous desire to share their experience. There is a lot more innovation going on by individuals and small companies in Melbourne than any of us realize.
Fortunately, Patricia did an excellent job of extracting the pithy comments (from all interviewees) and created an article that captured what I'd hope to convey, but in a much more concise way. I was pleasantly surprised that the important themes of openness and hacking as a means for self-education, self-empowerment and innovation came through so strongly.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Q: Briefly describe what you do, and what aspects of technology interest you professionally and personally.
I'd say that my vocation is a distributed systems engineer, which means that I design and develop networked computer software and (to a much lesser extent) hardware, as well as lead technical teams in that domain.
As a kid, I was fascinated with building small computers connected to real world devices. Throughout my career, I've been able to pursue my interests, sometimes with extraordinarily powerful computers, and at other times with increasingly small, networked devices. Fortunately, I've been around knowledgeable people from whom I've learnt and shared that passion.
These days, my personal and professional interests are aligned. I'm both working on Internet based systems, like WatchMyThing, as well as participating in local technology groups, such as Melbourne HackerSpaces. The combination of these efforts are an attempt to measure our environment, acting as a catalyst to positively changing our behavior, and improving the world.
It's also challenging and fun to be involved in groups like Lunar Numbat (http://lunarnumbat.org)
Q: Are you the kind of person who reads instruction manuals, or tosses them in the bin ? Does it depend on the nature of the product you've just acquired ?
The best consumer products are designed so that you can get going quickly, without having to trawl through detailed instructions. These days, most products containing electronics have sophisticated features that do require you to eventually read the manual to get the most from your equipment.
When it comes to engineering using third-party technology, you risk misusing or damaging something, if you are too impatient to read the manual before leaping in.
I prefer instruction manuals to be on-line where you can always find them when needed. Much better than hoarding, then eventually losing large collections of booklets and CDs.
Q: Is there some technology, old or new, that you like to be really hands-on with, such as maintaining a vintage car or building computers ? Why ?
Modern desktop and laptop computers, even mobile phones are too complex for any one person to completely understand from the base hardware, all the way through to the complete stack of software. It takes a large
team of people and many organizations to design, build and maintain such things.
However, there are smaller computers and networked devices that are both comprehensible by a single person and can be used to perform interesting tasks. A system-on-a-chip computer can be bought for a couple of dollars, connected to some inexpensive sensors and actuators, and some control software written during a casual afternoon on the weekend.
Best of all, these types of projects are being shared amongst a large and growing community of software and hardware hackers. The good kind of hacker, of course.
You can experiment with home automation, 3D printing, wearable computing, augmented reality and vehicle embedded systems, including putting some telemetry onto your motorbike !
This takes me right back to where I started as a kid ... noodling around with technology. Except these days, we have much better access to information and knowledgeable people via the Internet, much more open-source software and unbelievably capable and cheap hardware.
Q: The fact that you ride a motorcycle will be great for the story ! Has this been a long-term interest? Do you maintain and repair your bike ? What does riding mean in your life, and is there a connection with Zen and the Art of Motorcycle Maintenance ?
I first started riding motorbikes over 25 years ago, starting with trail bikes, then moving onto road bikes. Early on, I was shown how to maintain, service and repair my motorbikes by a friend. This is a pretty important skill to have, when you are stuck out in the bush, with some sort of problem. In my case, it was often from drowning the bike, when attempting a deep river crossing.
These days, due to other priorities for my time and the sheer technical sophistication of modern sports bikes (along with the need for specialist diagnostic equipment and manufacturers who don't share maintenance information) ... I don't service my motorbike, any more. It's still important to understand your vehicle, so that you can let the service people know what the problems are, and to be certain that they have repaired it properly.
However, performing basic checks (tyres, brakes, chain, cables, fluids) and maintenance is something that I still do ... as should every bike rider, for their own safety and ease of mind.
Not long after I started riding motorbikes, I read "Zen and the Art of Motorcycle Maintenance". Soon after, I got my dream job, co-incidentally working for a company based in Minnesota, which is where the story in the book begins. The company I worked for was legendary for their focus on engineering quality and performance.
The best way to experience motorcycling riding, is to head out into the country, leave the main highway behind (straight, safe and boring) and ride the secondary roads (curvy, unpredictable and interesting). Unlike
driving around in a car, you're not in an enclosed container, but rather you are part of the environment. Staying at old hotels, like the Dargo Pub, is a real experience.
The book still rings true. The first few pages of "Zen" describe the experience of motorcycle touring perfectly, including the not-so-comfortable parts and interactions with other people. Pirsig provides a fresh perspective on the differences in how people relate to solving mechanical problems and understanding modern technology. Always observing and "listening" to your motorbike, any piece of equipment, and most importantly your own body and mind ... is exceptionally good advice.
Q: What ideas in this book have had an impact on you?
On the inside cover, Pirsig says "The real cycle you're working on is a cycle called 'yourself'". So, I didn't have to look very hard to discover the basic message of the book is about self-improvement. Of course, different people will interpret his dialogues and metaphors to suit themselves.
The most important concept for me was the notion that there are various ways of perceiving the world, and that different people may have incompatible approaches for processing what they see and how they tackle problem solving. However, there is great value in understanding those differences and when possible reconciling them.
Another common thread concerns having a good understanding of how a given technology should work when functioning correctly, especially those technologies that you rely upon. Then, whenever you notice a deviation from normal operation, e.g. something sounds different, then performing a systematic diagnosis and pro-actively repairing the fault is the best approach.
Q: In Zen, Robert Pirsig argued that having an understanding of how tech-based things work, and being able to maintain and repair them, is important for one's quality of life in the modern world. Do you agree? How relevant is this view today, given that intuitive interfaces are critical to many products' success, and instant obsolescence often makes maintenance and repair irrelevant?
I completely agree that being able to understand, repair and best of all customize (hack) technology to suit new purposes, provides a better quality of life. This empowers people to innovate and helps them avoid feelings of powerlessness in this technological age. This doesn't just apply to high-technology such as electronics, but also to any activity that involves the use of tools or craft skills.
Of course, no one person can have all the experience required in every available technology. Therefore, people with different skills should band together and based on common interest ... collaborate to create or repair things that they could not manage by themselves. This can occur as a community, using the Internet to effectively self-organize.
I believe that the need for communities and individuals to educate themselves (throughout their lives) will continue to become more essential as time passes. Many of the problems facing the world today, need to be solved independently of any industry vested interest or maintenance of the government status quo. Additionally, Australia needs to innovate to remain competitive. This can only occur with an educated population, where education and self-improvement doesn't stop at the end of school, college or university.
Intuitive interfaces, such as those on modern electronic devices (rarely done right), typically provide an abstraction away from the underlying internal mechanisms. By necessity, good end-user interfaces simplify the operation of the device. An unfortunate side effect is that general users of technology have no idea about how an appliance really works, which means that they may not know how to use it most effectively or repair it when it breaks.
Hiding the internal operation by an intuitive interface is compounded by the manufacturer's natural tendencies to protect their product from competitors and to increase sales by ensuring that broken appliances have to be replaced, not repaired.
Now that pollution, insufficient recycling or re-use and limited resources are now our biggest problems, wasteful approaches can no longer be accepted, if we wish to maintain a reasonable quality of life.
Everyone should insist on open-standards for all infrastructure, and whenever possible, open-source design and good documentation for all appliances, equipment and tools ... so that we can repair and re-use them as much as possible. This also enables the next generation of kids to be able to learn about how things work, pull them apart and put them back together again in new and interesting ways.
You can't do this with black-boxes.
We should have a right-to-repair anything that we purchase.
Q: Can you give examples from your professional and/or personal life where a failure to grasp the technology behind a product or process has had a negative impact on an individual or organization?
Computer back-ups !
Everyone "knows" that mechanical devices fail eventually and that this applies to computer hardware, especially spinning hard disks. However, many people, including some in the computer industry (who should know better) fail to protect their precious information properly.
I think that people don't have a solid enough understanding of the certain likelihood of failure (over a long period of time) based on the many ways in which a computer can break both at the hardware and software levels, as well as taking into account good old human error.
This is compounded by a lack of understanding of the correct approaches to properly backing up and recovering a computer system. Although, computer vendors are gradually addressing this problem, e.g. Apple's Time Machine.
A new problem for everyone to deal with is that more of their precious digital information is being stored on the Internet, in web services like Google, Flickr, Twitter, Facebook ... with little understanding of the data retention and recovery policies. This is going to catch out a lot of individuals and organizations in the future.
Q: And examples of the reverse, where there have been benefits from putting in some effort to understand, if not manage, back-end technology?
Over recent years, around the world, groups of people have formed what are called "HackerSpaces". These are collectives that share a physical space, equipment and knowledge from many different domains. Their goals are usually to learn how to use technology to create new and interesting things.
Typically, these groups bring together people with an interest in electronics, software, mechanics and performance art to either re-work existing equipment to do things it wasn't originally intended to do ... or to build things using recent developments, such as inexpensive 3D printers.
The goals of a HackerSpace are usually to "have fun, learn and collaborate" and within that context a lot of innovation occurs, often on a very low-budget.
Q: Pirsig wrote that art and technology have been divorced from each other in the modern world, that people have become divided between 'in the moment' Romantic thinkers and rational, practical Classicists. Would you say you are firmly in one camp, or do you endeavor to straddle the two – for example, I expect you are primarily a rational, practical person, but do you also have faith in seemingly irrational concepts such as intuition?
My personal inclination and experience have always leaned strongly towards the Classical camp. However, I appreciate that to achieve a completely satisfying outcome, one must also consider the aesthetics of the final result.
Creating a high quality software design requires a systematic approach to ensure that the end result is fit for the intended purpose. However, you'll also hear some software engineers talk about beautiful or elegant solutions, which strongly suggests that aesthetics also has a part to play. Often this means that the design is efficient, has clarity, is flexible and is cohesive. It must be strange to see software developers looking at a page of ugly, incomprehensible symbols and hear them say "that's beautiful" !
Xerox Parc had an "Artist-in-Residence Program", which paired artists with researchers to produce new innovations combining art and science. I think this is a great idea that more organizations should emulate. I'd suggest taking that a step further and pairing an engineer, an artist and a young member of the team, so that skills can be passed onto the next generation ... and that the senior staff are kept on their toes :)
I believe that intuition is the ability to make quick decisions based on past personal experience, or communal shared experience (aka folklore). In situations where you don't have sufficient time to figure things out from first principles ... "going with your gut" is a very rational means of coping.
Q: Will the future be populated by people who self-install open-source software, or those who press the 'on' button of equipment with pre-installed corporate software? Why will that future be good or bad, philosophically speaking?
Both. And, often people who do have the ability to manage things at a deeper level will simply want to "press the 'on' button".
As long as everyone has the *choice* to interact with their equipment as either an end-user (just at the interface) or at a deeper level (inside the box), as their circumstances require ... then, that is a good future. Having your choices artificially restricted by a third-party who has conflicting interests compared to yours ... is a bad place to be.
Typically, appliances should just work and perform simple, every day operations, without having to refer to the manual or the source code. However, should an appliance not operate in a way that you need, then you should be able to improve it or engage someone who can do that for you. You should be able to interconnect your appliances, without having to break down barriers artificially introduced by different vendors to lock you out of your own possessions.
Prior to electronic or software control, all appliances could be disassembled by an individual and their operation understood by inspection. As more appliances use software to control their operation, it is becoming impossible to understand the operation of these devices without also being able to read the software source code. This is why open-source software is so important (to everyone, except the vendor who wants to keep it a secret).
In a world where the majority of computers and appliances are controlled by closed-source software, we will have lost control of the things that have become essential to our current life-styles and businesses. And, the next generations of Australians will have greatly reduced options for innovation and making much needed changes in society.
Q: Is there anything else about the book, your own experience of technology, or the general topic of getting behind technology's interfaces that you'd like to comment on ?
The most important thing to remember is that it costs very little, close to zero these days, to share knowledge and information with the whole world. We should be encouraging our kids to create, innovate and solve problems ... without shackling them with increasingly draconian laws that only protect old-school special interests.
Instead, we should encourage kids to take things apart, understand how things work and share the experience. Along with combining different perspectives and approaches, such as artistic sensibilities and solid engineering.
As many people have pointed out, the recent Triple-J Hottest 100 Songs of All Time had a baffling bias. Fortunately, Naomi Eve is proactively restoring the balance, with a Hottest 100 Songs by Women poll and list.
My list of favorite women artists is a little off-centre, but surely one of the many excellent efforts by these musicians was good enough for Triple-J listeners ?
- Laurie Anderson
- Kate Bush
- Chrissie Hynde (The Pretenders)
- Björk
- Annie Lennox (The Tourists, Eurythmics)
- PJ Harvey
- Tori Amos
- k.d lang
- Deborah Harry (Blondie)
- Tina Weymouth (Tom Tom Club, Talking Heads)
- Rickie Lee Jones
- Cyndi Lauper
- Missy Elliot
- Imani Coppola
- Susanna Hoffs (The Bangles, Ming Tea)
- Kim and Kelley Deal (The Breeders)
- Miho Hatori (Cibo Matto, Gorillaz) and Yuka Honda
- Kate Ceberano
- Merril Bainbridge
- Max Sharam
- Liz Phair
- Fiona Apple
- Alanis Morissette
- Imogen Heap
- Ute Lemper
- Nina Hagen
- Grace Jones
- Shirley Manson (Garbage)
- Siouxsie Sioux (and the Banshees)
- Dusty Springfield
- Aretha Franklin
- Chrissie Amphlett (Divinals)
- Martha Davis (and the Hotels)
- Suzi Quatro
- Pat Benetar
- Julee Cruise
- Grace Slick (Jefferson Airplane / Starship)
- Gwen Stefani (No Doubt)
- Karen Orzolek (Yeah Yeah Yeahs)
- Marianne Faithfull
- B(if)tek
- The Go-Gos
- Lash
- Shonen Knife
- The Spazzys
Perhaps Triple-J listeners can redeem themselves next time an *All Time* list of great songs is produced :)
Continuing on from the initial launches of a Class C rocket, the Lunar Numbat build team has been making steady progress towards launching more sophisticated avionics, along with an audio/video feed, as part of a Class G rocket.
A crucial part of the journey has been, not just creating the hardware and software, but bringing more capability and experience to the effort, in the form of organization, equipment and most importantly ... people with specialist skills.
For a long time, we've been contemplating the need for a shared space or workshop, expensive electronics equipment and mechanical manufacturing capabilities beyond that which individuals can typically justify or afford. These sorts of facilities are available in universities and specific types of government or commercial organizations, but they are much less accessible to smaller communities of individual developers.
At the end of March 2009, a Wired magazine article propelled the concept of HackerSpaces into the popular zeitgeist. So, it was an natural step to create the first HackerSpace in Melbourne, Australia, aka the "Connected Community".
The Connected Community HackerSpace was formed and operates independently from the Lunar Numbat project. A HackerSpace is much broader in scope than even a space technology project, to the point of hacking any object in any domain in any conceivable fashion is fair game. Fortunately, there is significant overlap in the types of people involved in both groups, the skills and equipment required and the artifacts created.
An advantage of the HackerSpace is that it attracts a larger community of hobbyists and professionals. These people may not be as focused or as passionate about the research and development of space technology as the Lunar Numbat team. Although, sometimes they are even more passionate. However, their skills can directly or indirectly contribute to the Lunar Numbat effort, due to the deeply embedded culture of sharing. This collaboration is enhanced by both groups utilizing commodity, open-source hardware and software. The power of open-source hardware and software communities is evident in the growing number of developers using the Arduino platform or BeagleBoard for increasingly sophisticated projects.
Since it's inception, the HackerSpace has been meeting regularly and working on a variety of projects. Many of the projects have been founded by HackerSpace members, often initiated prior to the HackerSpace and operating independently. In addition, the HackerSpace is introducing new members to those projects and bringing them up-to-speed with fundamental skills, such as PCB design and manufacture. New members also bring additional skills such as amateur radio experience, CNC milling machine design, construction using composite materials or hard-core hardware and software engineering ... and, even rocketry.
The Lunar Numbat project has benefited from this infusion of new blood and conversely, the Class G rocket development has been one of the projects around which HackerSpace members can gravitate and apply their skills.
Project progress and technical discussions have been captured on the Connected Community HackerSpace web-site and project artifacts placed in social coding repositories, such as the popular GitHub, as follows ...
A
key outcome will be to deliver re-usable hardware and software
components. In part, this is driving us to create general purpose
frameworks, like Aiko, which provide a modular, event-driven abstraction on top of specific hardware / software platforms, like the Arduino.
This is so that we can produce high-quality embedded applications and
software components that encapsulate a given set of hardware devices.
In the longer term, this collaboration between the Connected Community HackerSpace and Lunar Numbat, along with the resulting re-usable hardware and software artifacts, provides a strong foundation for undertaking the next phases of Lunar Numbat beyond the current Class G rocket launch milestone.
A brief summary of the talks I attended today ...
My LCA 2009 Flickr photostream
NDB / MySQL Cluster by Monty Taylor (Sun Microsystems) mordred@sun.com
- URLs ...
- https://launchpad.net/ndb-bindings
- ndb-connectors@lists.mysql.com
- http://lists.mysql.com
- IRC #mysql-ndb at freenode.net
- High availability, 5 9's (99.999%)
- Sub-second fail-over
- Configurable redundancy, e.g. number of replicas
- Best to use just 2 replicas, using more isn't necessarily a good thing
- High performance through parallelism
- For simple primary key look-ups as fast as memcached
- But, harder to configure
- Doesn't implement foreign keys
*** Fully asynchronous, includes an Event API ***
- Data and indices kept in main memory and check-pointed to disk
- Share nothing, commodity PCs, commodity interconnects, no expensive shared disk
- No single point of failure
- Originally a project at Ericsson, then MySQL and now Sun Microsystems
- Hash (MD5) on the primary key and split across systems accordingly
- Storage Engine API (per table configuration)
- Like a Virtual File System
- Different implementation, e.g. InnoDB, MyISAM, NDB, Falcon
- NDB doesn't exist in Drizzle yet
- NDB only really exists in the MySQL cluster fork
- mysqld talks to cluster of NDB nodes, using NDB wire protocol
- Using NDB directly is roughly 5 times faster than SQL
- With 16 nodes has achieved ...
- Using MySQL: 120,000 transactions per second
- Using NDB 5.1 directly: 500,000+ transactions per second
- Complete NDB API ...
- Primary Key operations: readTuple, writeTuple, deleteTuple
- Index Scan - readTuples
- Table Scan - readTuples
- Unique Index Scan - readTuples
- All other operations can be broken down into combinations of these
- NDB API / Bindings for Java (most complete), Python, Ruby, Perl, C#, Lua
- Require ...
- MySQL installed with libs and headers
- MySQL 5.1 CGE 6.2 required (and 6.3.14 or 6.3.16 will also work)
- C++ API (libndbclient) wrapped with SWIG
- Java bindings (NDBJ) or JNI via SWIG
- Java NDB object is not thread-safe, need to have one NDB instance per thread
- REST API: http://code.google.com/p/mod-ndb/
- Returns: JSON, XML, YAML
Transcoding in MythTV by Paul Wayper
- Capture analogue signal can result in significant storage requirements
- Good idea to transcode from RTJPEG into MPEG-4
- Remove "cut regions", e.g. advertisements, etc.
- Editing using "e" key whilst watching
- "z" to import commercial flagged regions
- Transcoding ...
- Removes previously set "cut regions", but not "flagged regions"
- Downsize physical area
- Recompress using MPEG-4 (fixed bit rate with quality settings) and downsample audio
- Exporting to other media
- Using nuvexport to reformat and export to external storage
- But, easier to just add storage and kept video stored in MythTV
- User jobs are harder to configure, separate script, can be performed automatically
after transcoding, environment variables for parameters
- An example: export to mobile phone 3gpp files
- Ended up talking a lot about his custom notebook cover made from laser-cut wood veneer
Panel on Geek Parenting by LinuxChix
- Q: How did you start out as a "geek parent: ?
A: Reading books on parenting
A: Lessons learned from parent's parenting
A: Listen to all the details and throw it all away apart from the "nuggets of wisdom"
A: Not something you can prepare for intellectually, because it's not an intellectual process
A: Freaking out from total information overload. Avoid taking on too much information from outside
A: Funniest book: "Perfect parents" (history of parenting)
- Q: What type of teaching, before your kids started formal education ?
A: Reading to them and music
A: The simple things that we all take for granted, e.g. language and mathematics
A: Lots of group activities, getting them out in the open
A: Parent-child relationship goes both ways, e.g. parent also learns from child
A: Allow child's simple explorations become opportunities for "finding out about the world"
A: Read "thousands" of books to kids, counting games (with numbers)
A: Looking for toys with some sort of "creative construction" element, e.g. Lego
A: Less interest in games with fixed or limited outcomes, rather than more open-ended
A: Capacity to learn driven by motivation
A: Engage them in activities: physical, social, intellectual, artistic
A: Know when to "stop" ... when some activity isn't working
A: Know when not to "stop" ... don't let them learn to give up when things get hard
- Q: Double challenge for parents of girls, encouraging interest in maths and science
A: Social stigma associated with girls and geeky, technical subjects ... still true ?
A: Are toys becoming more segregated into boys and girls ?
A: Still opportunities for balance between girl and boy interests.
- Q: Juggling parenting and your career ?
A: Divorced, by self, entrepreneur ... organised with a regular routine, balance, prioritise
A: Important to spent more time at home with your children, if at all possible
A: Having a full-time, start at home Mum can be good, if at all possible
But, need to ensure that you are very engaged as a parent when you are at home
Gever Tulley: TED Talk: 5 Dangerous things your kids should do !
http://www.ted.com/index.php/talks/gever_tulley_on_5_dangerous_things_for_kids.html
System Administration Lightning Talks
VESPER (Virtual Embraced Space ProbER) by Sungho Kim
- http://sysadmin.miniconf.org/lightning09.html#01
- Uses KProbes (Kernel Dynamic Probes = automated breakpoint, small C functions)
- http://sourceware.org/systemtap/kprobes
- Gathers information from the guest operating system under test
Mondorescue via PXE by Simon Lyall
- http://sysadmin.miniconf.org/lightning09.html#03
- http://www.mondorescue.org and http://trac.mondorescue.org
- Documentation: /usr/share/docs/HOWTO.pxe (?)
- Backup and Recovery tool
- Creates bootable images of running servers
- Intended for system and appications
- Not for backing up all your data, e.g. not database, not video
- # mount ...; mondoarchive ...; umount ...
- Full or incremental back-ups
- Use with PXE for booting and restoring system
- Also good for cloning machines
- Read the Trac FAQ (more up-to-date) after the main FAQ
Think by Frank Sainsbury
- http://sysadmin.miniconf.org/lightning09.html#04
- We are paid to "think"
- Frank has been at the "rough end" of some pretty poor thinking
- Works for someone who wants everything and wants it yesterday
- Project: Places SMS messages into an Oracle database
- Based on Windows 2003 server and Oracle database
- Tactical thinking: How to fix the problem
- Strategic thinking: Longer term ... but no-one had thought about that, e.g. keep it simple
- Should perform strategic thinking, even if it is a (so called) simple task
- Security has become a bit part of what we do these days
- Running 2 versions of Apache, versions of Java, JavaScript, Mono and many, many other things !
- Need shared access to good Oracle database models for a specific domain, improve implementation time
- Caught out by RedHat ES deployment issue
- Need all Linux hackers / system administrators to *think*, collaborate and do it better !
System administration - a programming perspective by Devdas Bhagat
- http://sysadmin.miniconf.org/lightning09.html#02
- Need to think in terms of multiple systems, not single systems
- Need to have centralised configuration system management
- System administrator also needs to be a programmer to solve the problems
- Opposing view: Centralised configuration can be overkill
- Centralised deployment management ?
- Use "puppet" ... http://reductivelabs.com/trac/puppet/wiki/PuppetIntroduction
- Test Driven Systems Administration ?
- System Administrators need to work much more closely with Developers, particularly for production environment
- Developers need to test against an environment that is as close as possible to the production environment
Large CPU masks by Rusty Russell
- Kernel primitives ...
- Runtime NR_CPUS and cpus_weight_nr() and for_each_cpu_mask_nr(...)
- set_cpus_allowed_ptr()
- Magic declaration and allocation macros
- Returns pointer to cpumask for specified node
- These primitives are applied on an "as needed basis" ,,,
- And trial-and-error, only fix when broken
- What if distributions set CONFIG_NR_CPUS=4096, even if you only have 2 CPUs ?
- 2.6.29 aim is to remove (almost) all cpmasks from x86 stack
- CONFIG_CPUMASK_OFFSTACK: currently only set by x86/64 MAXSMP or via DEBUG_CPUMASKS
- We do have a typedef "cpumask_var_t" and also "alloc_cpumask_var(&var, fp)"
- Need to provide new kernel API, switch all code across, then deprecate the old kernel API
- Usually takes at least one cycle of kernel development
- 2.6.30 aim is to remove all cpumasks and old operators from everywhere on x86
- Fairly good set-up for "static" per-cpu variables ...
- DEFINE_PER_CPU(type, name)
- __get_cpu_var(name)
- get_cpu_var(name), put_cpu_var_name(), per_cpu(var, cpu)
- Also have "temporary" system (now 5 years old) for "dynamic" per-cpu variables ...
- Mirror "static" per-cpu variables, but uses alloc / free
- Do have a real allocator inside the module code, but never exposed because per-cpu space is severely limited
Longer term: Growing per-cpu areas ?
- Virtual contiguous layout scheme ?
- Then networking code can move back into using per-cpu areas
Presence Awareness for MythTV by Jonathan Oxer
- SuperHouse: Channel 31 in Melbourne, later in the year
- Blog: jon.oxer.com.au
- Flames: jon@oxer.com.au
- Web: http://superhouse.tv
- Using Arduino + PHP code to play/pause MythTV
- Multi-room MythTV and follow-me
- Presence loss: query location, parse and log -> Last event for a particular person
- Presence gain: read log, change channel and play from given point in movie
- Problem MythTV back-end doesn't provide play video from given point in movie
- Use "zoneminder" and security cameras
- Facial recognition: Intel video library "opencv"
MythTV Lightning Talks
MythTV usability: Customisation and tweaking versus the Wife Acceptance Factor !
- HTPC - Home Theatre PC
- Two vague terms crammed together ?!?
- HTPC - Customisation ?
- MythTV - Convergence ?
- PVR - Convenience ?
- Not having to mess with a collection of video tapes or DVDs
- Customizations: Best image quality, scaling
- Windows: FFDShow http://www.avsforum.com ... difficult to configure, too many hours required
- Good versus Bad customisation
- Good: Learning remote, Useful jobs (copy and transcode, burn to DVD), MythTV menus
- Useful: Remote admin: ssh -L 9999:localhost:80 host
Linux kernel Panel
- Worst bug introduced into the kernel ?
- Memory leak in the ICMP stack, took a year to discover
- Removed semicolon (?) which broke part of the build for 6 weeks, before it was discovered
- Broke the build in Linus' tree
- Broke code turning off barriers, which wasn't possible to test, but broke for someone in the field
- Forgot some parenthesis so that a divide-by-two became multiple-by-two, lead to allocation
growing too fast. Took 2 years to discover.
- How did you become a kernel hacker ?
- After fixing lots of kernel bugs (in Debian)
- Was Mac OS hacker, started playing with Linux, noticed it didn't run so well, knew hardware
pretty well, and slowly started hacking kernel more and more
- Started hacking on hand-rolled BSD kernels in embedded systems. Moved across to working on XFS.
- Started working at Sequent on MPP systems. Hired by IBM, started working on broken Linux kernel
things
- Started kernel hacking in 1996, was sick of working on minority O.S.
Linux looked like the next bug thing. First patch was to ISO9960 file system
- What development environments and work flow process do you use ?
- VI, GIT, make and shell scripts
- Emacs (minimal features)
- Anything that runs in an xterm, e.g. VIM, user mode Linux, sometimes Linux on ESX
- KVM or VMWare to test ISO of distribution
- Make and test on real hardware, due to using drives for device specific hardware
- Would be useful to have tool to many KVM images
- Use "quilt" for work-flow
- Should use "guilt", which is "quilt" on GIT :)
- When will you be finished [as a kernel hacker] ?
- When I've drunk away the less of my brain cells
- When it stops being fun
- When I can buy my very own goat farm [laughter]
- Worst part of being a kernel hacker ?
- There is no holiday, it's 24x7 ! Always someone asking a question
- Having the control-D key wearing out on all my keyboards
- Too much stuff to keep track off
- If you aren't deleting your email intray messages, you're not a kernel hacker
- Can't keep up with all of Linux Kernel email list messages
- No-one person has a full grasp on the whole kernel ... but, it's getting worse
- Other people breaking your stuff
- Coming back from vacation ... with pages and pages of messages
- Other people touching stuff [laughter]
- Other people fixing a problem, but the solution is almost worst than the problem !
- Especially, when it's Linus' [laughter] Linus is perfect [laughter]
- Have you been flamed by Linus ?
- YES. YES. YES. YES. YES
- Being flamed for coding style
- Flamed at 2007 kernel site regarding scalability for device probing ...
- "Stupid SGI people with their stupid problems, should stop bothering other people with their problems"
- Broke something for a Mac Mini ... and Linus has a Mac Mini !
- Linus flamed someone (and everyone involved in Linux security) as "wanking around",
which means he really disagrees with you
- This one was picked up on by all the technical press, e.g. article in The Inquirer
- Linus is really quoted properly in context
- Question regarding security
- Lots more code being committed these days, but not more code review
- Some third-party organisations now have financial incentive to find security problems
- Leads to more reports
- Kernel hackers don't have the same types of incentives to find these sort of problems
- Again: Just lots more code these days
- Can't stop bugs getting into the kernel without slowing down the rate of development ... so ...
Need some tool that will allow you to patch them out in the field as they are discovered [laughter]
Finished an excellent and long day by having dinner with several of the Linux kernel hackers and playing some GO back in the University accommodation.
My immediate reaction was to stop filling the car, head over to the cash register and politely explain that I wouldn't be using that petrol station again, as long as they were willing to "sell-out their customers and their right to some piece and quiet".
Sadly, I thought that this was going to be the start of an unstoppable new advertising trend, where we'd all suffer increasingly unbearable amounts of noise pollution. After all, petrol stations quite happily surround their service counter with confectionery (whilst obesity is a major problem) and keep cigarettes in plain view, which pretty much sums up what they think of their customers.
Happily, it appears that a significant number of other customers have either complained or moved to other petrol stations ... and that PumpTalk has been turned off (at least, at the petrol stations I visit) ! So, it seems that if we all quietly state our concerns and shop elsewhere, that we can make a difference for the better.
Tara's skiing improved at lot this year. With the exception of the most extreme runs, we were able to cover most of the mountain, including Spargos.
Now, it's back to work ... and time to start saving for next year !
The iTunes application store brings the same seamless, instant gratification experience to applications that it did for music. Combined with the always connected 3G networking, means it will be a juggernaut that sets a new bar for everyone else. The applications, many of the good ones are free, show a lot of promise, but still lack maturity. These days, I look for networked applications that run (or are accessible) everywhere; in the web browser, on Mac OS X, on Linux, on mobile phone browsers, and native for the iPhone and N95. Nothing less will do !
Social networking is a hot bed of activity, the more you look, the more you find. Providing bridges between the various networks, as well as data portibility is crucial to prevent massive fragmentation. Everyone needs to be able to communicate with everyone else, regardless of which social network, micro-blog or instant messaging service that they use. Remember Metcalfe's law !
Developments and interest in building automation is gradually increasing. It good to see moves towards a more open and standards based industry and less fragmentation due to proprietary protocols. The recent announcement of Open Remote, which is support by some heavy hitters, will be an interesting development to watch.
Meanwhile, the pair of local magpies that live nearby are visiting on a regular basis, pigging-out on raw meat and preparing for the breeding season. Typically, they'll bring their young fledgling down, once it has learnt to (sort of) fly.
Since I'm developing a mobile phone application, I need to keep up with this ...
Useful ... The Great Big, Constantly Updated, Australian iPhone FAQ v2.0
Sad, but no great surprise ... LEAKED: Telstra iPhone Plans -- and they'll break the bank
Good for us hackers ... iPhone OS 2.0 Unlocked
:)
Clearly, the blog-o-sphere is going to be drowning in (infinitely recycled) iPhone 2.0 news.