Open Letter to Southern Vectis

August 17th, 2011

ATTN: Alex Carter
Chief Executive
Southern Vectis

Dear Mr. Carter,

I have recently had the opportunity to use your bus services on the Isle of Wight. I must say, I have been very underwhelmed and disappointed in the service. Not only is it expensive (which can be forgiven for the size of the market served), but it is inefficient and it is very clear (to me)
that little or no attempt at co-ordination is being made between Southern
Vectis and ferry service operators on the Island (who deliver your captive audience and therefore are of some utility to your company). This point was driven home as we arrived in East Cowes exactly as the (hourly) ferry departed from the terminal, needlessly wasting an hour of our time.

Mr Carter, you need to reach out to Red Funnel and have a dialogue. Pick up the phone, call them, and steer the conversation toward how you can collectively work together to offer your respective customers the kind of great experience they should be demanding from you. Perhaps you can find whole new ways to expand your service (and financial return) through shared initiatives – beginning with co-ordinated services. Such an initiative would also necessitate that subsequent changes to your respective timetables are handled appropriately – don’t blame oneanother, embrace the business opportunity to succeed by reacting appropriately – by reaching out and having a renewed dialogue around how you can best resolve such issues.

Furthermore, you need to reconsider the impression upon your paying, law abiding customers of your overly aggressive use of video cameras and surveillance on board your buses. I realize a pandemic disease exists within the UK that causes people to embrace and believe such utterly intrusive use of cameras is reasonable, but ask yourself whether you actually need to have *four* individual cameras on just one level of your buses – complete with a TV screen passively aggressively reminding customers to conform to societal norms by displaying scrolling footage. Would even one camera not surfice? Ask yourself where it ends – a camera watching every seat individually?

Next time I visit the island, I hope to discover a Brave New World in
which you have spoken with Red Funnel, and in which I receive great
customer service in return for the fare level charged.

Yours,

Jon Masters

Porting Linux: part 1 (of many)

June 5th, 2011

So I’m working on a book at the moment, to be title “Porting Linux”, which will cover the process of porting the kernel to new architectures (and platforms within those architectures). It happens to coincide with a number of interests of mine. Anyway, I thought I would start making some online notes about porting. This is the first in an ongoing series of mini-dumps of unorganized thoughts on the topics I am researching/working on for the book.

At a high level, a new architecture port[0] needs to cover the following topics:

  • Fundamentals – the bitness and endianness of the system (bitsperlong, byteorder, etc.). Stuff that goes in system.h includes read_barrier_depends handling, and instruction sync and memory barrier definitions.
  • Atomic and bit operations – atomic, bitops, swab, etc. Many of these are used generically by the reference asm-generic code and core kernel to implement higher level primitives.
  • CPU and cacheing – SMP setup, cache management, percpu bits, topology, procfs, etc. The CPU(s) are bootstrapped in head.S and friends, but then they need functions to handle non-MMU items such as IPI, etc.
  • Init – Entry into the kernel, establishing exception vectors, calling into start_kernel. This is head.S and friends.
  • Interrupts and exceptions – IRQ setup, traps, entry, etc. The low-level exceptions might live in head, but they will call into generic C-level code to implement various functionality (specific higher-level functions for e.g. VM live elsewhere)
  • IO operations – IO, PCI root setup, legacy IDE bits, etc. Various miscellaneous stuff, especially generic panic-inducing inb/outb functions on modern arches without separated IO memory).
  • Library functions – Checksum support, asm-optimized stuff not specifically in another subsystem.
  • Locking – Spinlock support
  • Memory management – Init, faults, TLB setup, page management, MMU contexts, memcpy, strings, etc.
  • Modules – Load, unload, and relocation
  • Signals – Signal contexts, signal delivery, compat signal handling
  • Tasks – current macros, thread_info, unistd, process, mmap, ELF and auxiliary vectors
  • Time – timex, time setup
  • Linking – asm-offsets, linkage, symbols exported in assembly, etc.
  • Console drivers – early_printk support and a minimal character driver. The only driver work actually required for a port includes being able to squirt stuff straight out the UART in early_printk, and minimally handle the boot console output.
  • Debugging – backtrace, opcode dissassembly, stack unwind, ftrace, kexec, kgdb, kprobes, ptrace

Those are the areas needed to be covered for a minimally working port.

Jon.

[0] Based on studying recent ports (tile, microblaze, etc.) from the first patch to the last, and long-time established existing ports (ARM, PowerPC, x86, etc.).

Response to “Why systemd?”

April 29th, 2011

So I read Lennart’s blog post entitled Why systemd?. In it, he makes a number of comparisons between systemd and the two other Linux init systems that are still in widespread use (this being the third init system some distributions have adopted within the last few years). Overall, he makes a good argument that systemd has many nice and exciting features, and I’m sure they are of interest to various people who want their init system to be SYSV on steroids. Here are some of them:

  • Interfacing via D-BUS
  • Shell-free bootup
  • Modular C coded early boot services included
  • Socket-based Activation
  • Socket-based Activation: inetd compatibility
  • Mount handling
  • fsck handling
  • Quota handling
  • Automount handling
  • Swap handling
  • Encrypted hard disk handling (LUKS)
  • Infrastructure for creating, removing, cleaning up of temporary and volatile files
  • Save/restore random seed
  • Static loading of kernel modules

These are all things I don’t want built into my init system. To me, there are many good reasons that they have been traditionally handled using simple, easy to edit and modify scripts, and that’s where I personally feel they should belong. In my mind, some don’t even make sense to build directly into the init system itself, such as automounting and the like (that belongs in autofs and friends). There’s more, but the main point I want to make here is that when you come up with a list of comparisons, that list should not really be an inverted list of features of the replacement (which obviously may not be in what is being replaced). A better comparison would be user experience. If I’m an admin, all of the new features are nice, but do I need to change my workflow for the new tool? And at the end of the day, what am I winning overall in terms of experience?

I’m not one of those who actually wanted YAIS (Yet Another Init System). No offence particularly to systemd, but I preferred good old fashioned sysvinit. It worked for longer time than many people have been using Linux (or UNIX), it was well understood, and well documented. It was far from perfect, but it got system services started. I can’t remember ever yelling at SYSV init and saying “wow, if only you weren’t so crappy, if only you started every service when I connected to it”. In fact, it was a mature tool that did everything I needed it to. It took a little longer to boot my system than it might, but then like most real users, I use suspend and other features that mean I boot from scratch infrequently, or I run servers where I really don’t care at all. I wouldn’t have cared if it took 10 minutes to boot my laptop, or an hour to boot my server…well, I exaggerate, but you get the point. And inetd? Or xinetd? Automount? Good enough for my uses as separate tools.

Jon.

On desktop re-invention

April 24th, 2011

If you live in, or you’ve visited the United States, you might be struck by how product packaging and design changes little over the years (or perhaps you’re so familiar with this, you haven’t seen it). That bar of candy? It probably has a very similar label to the one it had twenty or more years ago. That top loading washing machine design? Still in widespread use today because it was the design that first gained market traction.

Europeans don’t always understand this, but Americans are generally very conservative in their adoption of iterations of existing technologies. It’s not just Americans, but let’s take this example for the moment. When a new technology first comes along, it’s open reign – do whatever you like – but as it gains widespread adoption, the market resists more than a certain level of change. People become familiar and comfortable with a certain mode of operation and expect that to remain consistent from one year (or decade) to the next, until the Next Big Thing. We saw this with the introduction of every big technology over the last 50-100 years.

In the technology space, we can observe how the PC has become a very popular, well established platform. This hasn’t happened only because Microsoft are somehow “evil”. It’s happened through consistency and standardization (even if it’s not an Open standard, it’s still a de facto standard). You can learn how to use a Windows or Mac system once, and apply the same concepts from one year (or decade) to the next. With the advent of tablets, and smartphones, there’s an opportunity to start afresh, but neither Apple nor Google are going to massively change the fundamentals of the user experience in their mobile platforms at this point. That’s not to say they can’t innovate, but they can’t break suddenly with the established customer expectations.

Like it or not, you get one chance to do this right before traction sets in and certain expectations are created. Ignore this at your own cost. Microsoft might love to fix all of the problems with the Windows experience (they are actually not entirely stupid), but they can’t do that now without alienating their established user base in the process.

My opinion is that GNOME 3 made a fundamental mistake in breaking with tradition. Innovation on that scale should target new less well established platforms, such as netbooks, tablets, and the like. Places where there’s still opportunity to define the Next Big Thing. Innovate with the new, don’t break with decades of established user experience on the old.

Thus concludes consumer behavior 101. You don’t have to like it, but you do have to live with it. And though you can certainly flame me for saying this, the reality is that this is the reason next year will be “the year of the Linux desktop”, and the year after, and the year after…repeat until the wheel re-invention exercise stops.

Jon.

On switching to KDE/Xfce

March 13th, 2011

So call me old fashioned, but I don’t like the direction being taken by modern “User Experience” design. To me, GNOME Shell provides an experience that I am supposed to love, but it doesn’t empower me to make changes to that experience according to my existing use practices when that given experience inevitably falls short of my own personal preference. Perhaps I’m just “wrong” and I should be doing everything differently, but I suspect like some other users, my reaction to this enforced pattern of use (a trend that has been a long time coming with GNOME) is to be driven away from GNOME as a desktop environment of choice, and toward something else. What “something else” is a very good question.

Unlike with the panel, in GNOME 3, I can no longer choose to have the clock where I want it, remove some of the unnecessary icons, or even add weather applets and information to the screen. At the same time, I am supposed to believe everything is now an “Activity” with a single menu button being used to drive everything I do, rather than various shortcuts and icons around the screen. I can’t even have desktop icons or launch a terminal via the right click menu (which now doesn’t exist in the default setup). I’m also not at all fond of the effects, or the new window manager. In fact, where GNOME 2.x did almost everything I wanted, it seems that GNOME 3 does the opposite. Where it used to be about productivity, it’s now about appearance and effects, at the cost of more experienced users.

So I find myself being a reluctant “convert” to KDE and Xfce in the past few days. I don’t want to switch, but I can’t stick with the new GNOME 3 desktop either. I like a lot of the GNOME applications, I like the libraries, and I plan to continue to use them. But at the same time, KDE and Xfce give me a more familiar look and feel (after a lot of tweaking to be made to look just like the GNOME 2 desktop it replaces). I’m going to give Xfce a go on my rawhide netbook for a while and see if it can be my upgrade path elsewhere, too. If not, I shall try KDE some more, etc. I did try xmonad but I do actually want a “desktop” environment. I just don’t want an environment that seems tailored for netbooks and novices rather than experienced veterans of UNIX and Linux.

Don’t think I’m happy with this, because I’m not. But I have tried the alphas, the betas, the test images, and I have watched things head in a direction I just can’t agree with on a personal use level. It’s a sad day for me because I’ve been using GNOME for a decade. I still have GNOME 2.x installed on many other systems, but it seems that its days are numbered, and it, too, will need to be replaced.

Jon.

Don’t buy an Apple TV 2

March 6th, 2011

So I had a $100 gift card, and applied my usual logic: buy something random to play with. In this case, since the Apple TV 2 is $99, it seemed like a worthwhile experiment. I say experiment, because I fully expected to be ripping it apart and poking at its innards anyway, so whether or not it actually worked well wasn’t really an issue for me. But let me share some impressions, anyway.

The hardware is typically Apple. It’s very well done. Cheap, but rugged ARM based system with 8GB of flash, 256MB RAM, lots of other goodies. This is certainly the main reason I bought it – to rip it open and poke at the innards and not really care because I got it as a gift and it was cheap enough anyway. There’s enough hardware in there to make a reasonable Linux set-top-box, or perhaps (more likely) break without really feeling much was lost (see software below).

Unfortunately, the software is typically Apple, too. Not only is it so locked down as to be useless out of the box (though you can fix some of it by jailbreaking, adding XBMC, etc.), but it doesn’t even live up to Apple’s traditional standards. This is true especially considering that they have tried twice to do this right now. The latest attempt fails because there is no integration. Rather than a boxee-style home screen with the latest bits of media you might be interested in, this facebook generation is greeted with a 1980s style menu system that might have been designed on the back of a napkin (were it wide enough to do so), in about ten minutes. Here are some of the ways the software fails to be useful:

  • The remote use is horrific. No scroll wheel (iPod style), only a limited number of non-useful buttons. I’m sure if you own an iPhone it’s slightly better, but the out of the box experience is that you have a shiny remote control (lovely hardware), with a bad software experience.
  • The home screen presents nothing other than simplistic drop-down, non-customizable (until you install “Overflow”, not supplied by Apple) menus. Very 1980s, not very 1990s, and certainly not the 2011 “facebook” generation wherein home screens are supposed to pull in all the latest bits of media, recommendations, etc.
  • The integration with services like Netflix is an afterthought. Interested in browsing through your instant queue? Every time you go into a title and leave, it’ll take you back to the start of – if you’re like me – several hundred items that have to be clicked through to get back to the item you were on. Not very Apple.
  • The Podcast subscription service is utterly painful, and rather than showing you the latest podcasts, you have to individually navigate to items in your “favorites”. Again, it’s an afterthought, added so it seems useful, but you wouldn’t want to use it every day (or all all).
  • Media sharing with your existing Apple system kinda works, but doesn’t include Audiobooks (a jab at Amazon?), and is very clunky.
  • Radio doesn’t do favorites, etc. Again, looks like an afterthought.

Really, the only thing this is good for out of the box is as a means to give Apple more money to watch iTunes content. So, if you’re planning to rent movies, maybe it’s useful. But it is a secondary set-top-box that might be useful for watching iTunes. It does not, and will not, be something you want to use if you live in the modern world.

Jon.

Trying to understand US education

February 13th, 2011

I’m overly critical sometimes, and it’s easy for me to think I have all the answers. So this is an information gathering blog post while I wait for something to finish on my computer. In short, I’m trying to figure out the difference in approach between US Middle and High School vs. my experience with British secondary education.

When I went to secondary school (age 11 – think combination of middle and high school), we had fixed class schedules for the first 3 years. In my case, it was required to study the following individual subjects from age 11 to age 14 (mostly determined by the National Curriculum):

  • Art
  • Biology
  • Chemistry
  • Civic Studies
  • Design Technology
  • English
  • French (later German)
  • Games (outdoor PE)
  • Geography
  • History
  • IT
  • Math(s)
  • Music
  • Personal Social Education (PSE – sex education, etc.)
  • Physical Education (PE)
  • Physics
  • Religious Studies

Now, I was at a private school, and some of these topics differ if you’re not, but not many (Latin was dropped the year I started…sadly). Most of these are mandated at various “Key Stages” of the UK National Curriculum as required, even if only for a year or so. In some schools, for example, they combine sciences, but you still have to study science from age 11 onwards. Classes were divided into 40 minute “periods”, with a bell in between, and 5 minutes to get to the next class. There were no “hall monitors”, you just asked if you wanted to go to the bathroom and they trusted you. Also, we all wore uniforms (complete with Blazer and Harry Potter style ties with different School Houses), and (private school bit) were required to stand when a teacher or adult entered the room, as a sign of respect. There were no metal detectors, and the most violent thing I recall ever happening was someone stealing some Potassium from the Chemistry lab.

US secondary education is highly regional in nature, and there are very few national standards (No Child Left Behind, etc. don’t actually attempt to set a national curriculum), so what you learn in one state will vary wildly from another, even down to how the Civil War is described (and thus cannot be agreed upon) in history class. It is my understanding that high school here is a lot more like what would be called “college” in the UK (which is not a University, but is instead an alternative system available to 16 year-olds), and middle school is a half-way point. As I understand it, it’s not required to study science, history, or geography beyond a very elementary level. Classes seem to be longer in duration but focused on fewer topics of study, with a lot more choice.

I made no pretence that I disfavor the notion of allowing children to opt out of classes they don’t like. For example, I suck at German…seriously. I just can’t handle the different genders. I would get everything right, except I would be unable to get the right one of the three possibilities. But I’m glad that I was required to study German. I’m also glad that I didn’t have a choice about studying a foreign language, or art, or other topics I might have chosen to avoid if I had had a choice in the matter (I consistently got over 100% in Religious Studies due to a bonus points system, but I might have opted out – I even once managed to get everyone out of an 80 minute test by keeping the teacher side-tracked in a discussion/debate on cryopreservation as applied to the second coming of Christ). After the age of 14, it was possible to drop certain subjects, but not all. For example, German got dropped :) but a foreign language was required, as was art, both subjects I might have chosen not to pursue with a choice in the matter.

Anyway. If you have links/stories about how secondary education works differently in the US, I would actually be interested. I can hopefully convince myself with enough actual data that not all schools here are just maximum security facilities with metal detectors, cops, etc. and other notions I may have.

Jon.