The Anglo Files

July 3rd, 2010

This 4th July weekend, I’ve been listening to some more of The Anglo Files: A Field Guide to the British. This is a 2008 book by Sarah Lyall, a correspondent for the New York Times, who is based in London and married to a British author. She’s lived in the UK for over a decade and her book expertly dissects many of the too-close-to-home self truths that the British would love never, ever, to talk about. I thoroughly recommend this book, though I suspect that it may not be as well received within the UK as it should be, largely due to its accuracy. It should also be worth saying that the UK is really changing, so many of the points about old boys networks are crumbling away.

As a “recovering” expatriot of the UK, I am in a position to begin to analyze many of the cultural traumas and other issues, though I am biased in large part due to my lack of enthusiasm for the country of my birth (I don’t hate the country or its people, I just don’t really care to live there). It is my hope that Sarah Lyall can offer a more pragmatic viewpoint, since she has obviously chosen to live in the country and cannot therefore really despise doing so (or she would have long-since moved back to New York City). It’s true to say that the UK has many things going for it too that the US does not, but as Lyall explains in her book, it’s not a competition either. It is possible to criticize things in one place without saying another is necessarily better.

Here are some of the topics that I have enjoyed her coverage of thus far:

*). The British cultural tendency toward repressed emotions (everything is implied, but never explicitly stated – this is why Americans “don’t get” sarcasm, because they usually don’t need to bury meaning deep in subtext), reservation, excessive self-deprecation (introducing oneself by way of describing one’s character flaws), and the use of excessive qualifying words in Every. Single. Sentence. One has only to listen to a few minutes of BBC news to realize the final point, but the issue of repression is one that I have been actively working on since I moved to the US. It’s ok to express how you feel, and – by way of abusing an example from the book – Hitler was a mass murdering genocidal maniac fucker rather than “not a very nice man”.

*). Institutions. The UK has a lot of institutions that would be best completely eliminated. The lack of a Constitution is a HUGE problem, not something to be proud of. The House of Lords is a disgrace, and the stories of the way women were treated upon first entering the House of Commons are entirely believable. I also am inclined to agree that I used to view the liveliness of the House of Commons debates as a plus for the UK (as compared with the US Congress), but I now see it is petty and childish. The US Congress – for all its many faults – takes decorum very seriously indeed, and would not tolerate the rowdiness. Of course, Congress has historically also had members carrying pistols and the odd brawl, but I’m talking about the modern age. The UK needs a giant spring clean of the old fuddyduddys.

*). Newspapers and media. The UK has hugely impressive newspaper and media sales figures, but the reality is that most people are not actually reading the Broadsheets (what’s left of them), and are instead likely reading something of the Murdoch persuasion (not fit for use as toilet paper). This includes the “Times of London” (as Americans refer to it), which I generally have no time for, even though Lyall is quite forgiving of it in particular. Truly journalistic endeavors such as The Independent are relatively few in number compared with “The Sun”, “The News of the World”, and so forth, which actively pay for the more shocking “stories”. In the US, these are “supermarket tabloids” seen in places like Walmart but not alongside serious newpapers such as The New York Times. Papers love a good story, but they don’t like correcting themselves unless compelled to do so – in contrast, the New York Times has a prominent page 2 “corrections” section. The BBC is far more biased and opinionated than most people give proper attention to, especially in interviews.

*). Drinking. Binge drinking, yobs, treating European countries as a giant festering toilet to abuse through low-cost airline trips. These are all giant issues. I hadn’t really given due consideration to how ingrained drinking is in British culture until I read about the uncomfortable self-truths in Lyall’s book. She’s right that the level of cultural repression is often (and somewhat unfortunately) countered through events driven by means of alcohol. Relationships, scandals, and other newsworthy events do often seem to revolve around getting “totally trashed”, “trollied”, or whatever the terms are these days. And taking low-fares airlines trips to Continental Europe in order to imbibe even more without any due consideration for the local population, history, or culture, as a giant problem that requires more attention that it is given.

I’m glad that Lyall wrote this book, and I’m enjoying it. I recommend it.

Jon.

What Would Jesus Buy?

June 27th, 2010

So I sit here watching the end of “What Would Jesus Buy?”, a movie about the Church of Stop Shopping (now known as The Church of Life after Shopping) and it got me thinking once again about how our actions directly affect the world around us.

I used to be the biggest consumer whore (literally, I have been 250lbs). I used to think “big box stores”, shopping Malls, and Starbucks were King. I used to “enjoy” wondering around the local shopping mall with a latte, buying random crap. Heck, I still enjoy buying random crap, but I am trying to be more responsible with my actions, and I’m trying to learn that I don’t always need what I’m being told to buy (I canceled my Cable, so good luck advertising that crap to me anyway). What I do also directly affects the world around me. One seemingly small decision – do I buy that item? where do I buy it? am I supporting my local community? – can make a difference. And numerous small decisions can add up to real change, or at least force folks to sit up and listen for a while.

In the vain of self reform, a few years ago, I made a few promises to myself. One of them was that I would never shop in a Walmart store (I can go into one, I just won’t buy anything). Like other corporate behemoths, they come to small towns across this country and slowly put the local stores out of business, with products typically made in far away places for the lowest price possible. Quantity is the order of the day. People (many of whom can afford to pay more and instead choose not to) have become so obsessed with the lowest possible price that they have often completely lost track of where their products are made, under what conditions, and at what cost. It seems as if the only important thing in the eyes of many consumers is that their groceries and plastic crap are a few cents cheaper than they might have been had they been bought at a local store instead. I don’t want to support that kind of economy, so I do my part by never going to these kinds of stores ever again.

I stopped going to Starbucks more than a year ago for similar reasons. This is why you won’t find me in there these days. There are literally dozens of great local alternatives where I live, which brew good (often locally roasted) coffee, that tastes good, and they afford their staff a little more freedom to be creative and self expressive than they might have been elsewhere. And this week, I made a resolution never to purchase products made by the big brewers in the US, for reasons similar to those for giving up Starbucks. Although alcohol in this country is still pretty screwed up (see for example how distribution works), there are thousands of microbreweries and “craft beer” brewers in this country today striving for a small piece of the 5% of the market not sewn up by mainstream beer – most of which isn’t worth using to clean a toilet with anyway, in terms of its taste. I am glad the US is rediscovering good beer and that there are alternative choices in most markets.

It’s not just Walmart, Starbucks, or the big breweries. They’re an easy target because of their size. My attempts at self-reform are more directed at understanding the economics, social impact, and environmental cost of the consumption habits that I have. I now often look at the corporate structure of stores I have shopped at (right down to ceasing to buy a particular laundry detergent a few months ago, or choosing one pharmacy over another because of their political affiliation) or will be shopping at, who the senior management team gave campaign contributions to (especially if they elected to muddy the waters between their personal and corporate views – for example, I stopped shopping in Whole Foods after that anti-Healthcare reform rant in the Wall St. Journal last August), and what their stance is on various issues.

I’m far from perfect, but I am trying to get better. I’m also late at this party, but that doesn’t mean it isn’t worth coming at all.

Jon.

Wisdom Teeth

June 18th, 2010

So I had my wisdom teeth removed this afternoon at my local dentist. They had been bothering me (teeth ache, ear pain, you name it) and I had been putting this off for literally several years, but finally it came time to just get it done. And in the end, it was very minor. If you’re interested in a first-hand account, read on for more detail.

Photo: My wisdom teeth (alas I was not allowed to keep them)

I have a problem with dentists (and doctors). Having spent a long time in hospital once with a rare blood disorder that could have killed me, I’ve never quite gotten comfortable with medical stuff. I can’t even go into a dentist’s office if I don’t know exactly what they’re going to do (usually by reading in very specific levels of detail beforehand, studying the chemical layout of Procaine, etc.), and am sure they’re not going to try to gas me when I’m in there. When it comes to wisdom teeth, I’d built up this assumption that the only way they would remove them is under some kind of anesthetic – very common in the US – which concerns me far more than the procedure itself. Fortunately, it’s not some weird requirement to do it that way.

Being British, my teeth are hardly my best asset at times. Like many Brits, my teeth are covered by “The Anglo Files” and I was almost allergic to the notion of gleaming whites. When I moved to the US, they needed a fair bit of work, which of course I didn’t get done. Eventually, I had a bunch of fillings and a root canal, which made things much better. But every time I went, I would get nagged about the wisdom teeth and how they were impacted and becoming quite decayed, and I would then freak myself out. About the only really good thing about my teeth is that they’re reasonably strong, and I only ever had two (upper) wisdom teeth – I’m in that small percentage of the population without lower wisdom teeth to begin with. That’s a good thing – lower wisdom teeth can be a lot more of a pain in the ass.

Eventually, I decided it was just a good idea to have it done, so I scheduled today’s appointment. I had a filling and two extractions, and I have to say that the filling was more involved than the extractions! I’d built this thing up in my head – in part because of the absolute nutticisms in the States over wisdom teeth and how everyone seems to get actual hospital surgery for this stuff as a weird kind of “right of passage” right before going to college – but the actual procedure was only a couple of minutes, relatively comfortable, and less annoying than a root canal. And for the record, a root canal is not as bad as you might think that it is. The older expressions were born before we had really good dentists and pain treatment.

So anyway. The dentist shoved some things into the gap between the teeth and bone, wiggled (technical term used), and then yanked each tooth, first the top right, and then the top left. The top right one came out easily, the top left took a few more tools and a bit of hard yanking to persuade it to come out. Both teeth really were quite decayed, and I’m hoping they really were the cause of a lot of the hassles I’ve had. I asked the dentist to write me a prescription for my favorite antibiotic just in case, in order to avoid infection, and then I headed home (via the pharmacy). At this point, I can feel my mouth again, and I’m on regular over-the-counter stuff for pain, but it seems not a huge deal so far. I’ll relax and hope it isn’t much worse tomorrow.

No free lollipop at the end, but a very happy patient, who is glad that this is all done with. If you’ve been putting this stuff off for years too, I hope the least I can do is convince you that I really am the worst patient and I didn’t think it was that bad. I recommend just getting them whipped out one Friday, if you’re concerned.

Cyberwar: it’s all bullshit

June 14th, 2010

So this evening, there was another 60 minutes “OMG, the sky is falling!” story about how evil bad guys might break into the power grid (“oh no! not the power grid! how will I watch my reality TV? and waste my life?”) and turn us into cave dwellers once again. And assorted other scaremongering. It was really quite good sensationalism.

First, some basics:

1). The US power grid isn’t one system. The notion of a “cascade” shutdown from the “really super dooper” dude they interviewed was utter bullshit. The power system in this country is actually in at least three pieces – there is work to implement some sharing, but it is not complete – and it is run by regional ISOs. So you can’t shut it all down in one go by knocking out a few power generation facilities.

2). Even if you could shut it down, the grid can be restarted in a matter of hours or days. This has even happened quite famously on a few occasions. Economic impact yes, reality TV viewing disruption for sure (and that would be a great societal benefit in any case), but no return to the stone age.

3). The regional ISOs require annual cold start testing for each generating facility that is required to perform a restart. So we not only can do this, but we test for it annually and know that the power system can be restarted.

And besides, if it weren’t for the stupid trading nonsense designed to drive up energy prices and profiteering, the system could be more closed than it is today. As it is, direct control is not connected to the public internet, only the trading stuff is in some regional ISOs. And probably there are a few places connected that shouldn’t be, and running Windows. But in that case I can only laugh loudly.

When 60 minutes report these stories, they mention how some government computers are “hacked” (in technical parlance, it’s called “cracking”, and not “hacking”) by people leaving USB thumbdrives around containing nasty computer viruses (“oh noes! my computerz have teh colds!”). What they fail to mention – and any serious journalism entity should do – is that the problem here is two-fold:

1). Obviously US government personnel shouldn’t be plugging in stuff they find in the parking lot. It’s just a bad idea in the first place and should rightly be banned.

2). Microsoft Windows is so laughably insecure that I can’t take you seriously if you use it and expect security. And when the government use it, I just sigh and wonder aloud how many billions of dollars are going to be wasted by the US Congress “protecting” us from attacks on badly designed systems that are insecure by design? If they didn’t use Microsoft *crap* then they wouldn’t have half these problems. And I don’t just mean “use Linux”, I mean use something else. Almost anything else.

The latter point of a global dependence on bad Microsoft crap is generally ignored. In all these stories. And then they go mentioning these silly-and-pointless 24-style “cyber command” places (likely filled by people who just about know a bit more than how to use Microsoft Word, but still largely use pointy-clicky crap with giant video screens in over sized and over expensive “mission control” rooms) where the government can protect us from bad software design and morons who plug important shit into the outside world so it can be broken into in the first place.

Half the time, I feel it’s like there are these people running around justifying their need to fight off bad guys while most of the issues are pointless to begin with.

Jon.

Intel/AMD CPU catchup

March 28th, 2010

So I decided roughly a decade too late that the POWER/PowerPC/SPARC RISC fanboy in me probably needed to (reluctantly) accept that x86 won the war, which means I’ve been brushing up on my x86-64 assembler (by poking in head_*.S, which is correctly written in AT&T syntax, and not that other syntax I shall not name) and trying to catch up on what the heck Intel and AMD are working on in terms of roadmaps, etc. I now know how REX prefixes work on “Intel 64″, for example. And I’ve read the recent changes to the ABI (Fortran support included!). I shall poke at the recent SVM/nested page tables stuff sometime for fun. Oh, and I don’t care that I’m not an IA32 assembly guru, I shall focus on flat 86-64 and forget about last century’s segmentation and other ye olde bank switching inspired hacks.

This weekend, I’ve gone over all of the recent models and public announcements, read some IDF bits, and learned about Intel’s QPI (as opposed to the one I knew, AMD HT – QPI is basically trying to throw off the FSB, but it does some nice failover things HT does not include AFAIK). I’ve concluded that the model numbers used by these guys these days are way, way too confusing. Even more so than when I last really cared about this stuff – determining which “Xeon” has Intel-VT or AMD-V is a game of looking up lots of 4 digit model numbers where a simple naming formula somehow including reference to the microarchitecture used in the model “name” would suffice to convey far more useful information). But, none of this stuff is your grandfather’s x86. It’s every bit as capable (in x86-64 anyway) of taking on the other Big Endian arches I have always personally preferred.

I expect to do a lot more to keep up with x86 development rather than letting my own personal academic fondness for cleaner ISAs limit my exposure. I’m thinking about getting another older Xeon build/test box for playing with x86 stuff and for speeding up kernel compiles at home – perhals a used Dell PE1950 or Precision 490 as these have the best bang for buck ratio at the moment. What I would like to know, from anyone who bothered to read this far, is where should I be going to get the very latest information on x86 developments? I’m on the k.o lists, and I am specifically not a game playing weenie who cares about that stuff – I want to know about roadmaps, things like the new AES extensions, etc. I don’t care that the “whizzbang X1234 blah blah would look uber l33t in this plexiglass case I just bought on eBay”.

Jon.

On Fedora updates

March 14th, 2010

There’s been a lot of talk recently about Fedora’s policy (or lack thereof) for shipping updates to existing stable releases. Rather than keep repeating the same points on the mailing lists ad nauseam, let me give my own $0.02 here. Keep in mind that these are my own personal opinions, and nobody else’s.

First off, I know in using Fedora that I am not using an “Enterprise” distribution that is intended to remain rock solid and stable for a long time without substantive changes. I’m ok with having to upgrade every 6 or 12 months, and I’m willing to deal with fixing breakage when that happens (though obviously in a perfect world the upgrade would be entirely seemless). What I am not ok with is updates shipping that cause any breakage or behavioral changes to my perfectly working system when I have not asked to perform a major upgrade. I expect that, if I upgrade my laptop system ten minutes before a meeting, then it will still work exactly as it did before. I don’t want to have to delay doing any updates – as I do now – for fear of the result.

Since time doesn’t stand still following a release, and bugs and regressions are found – and security issues are raised – a flow of updates to a “stable” release is both necessary and healthy to any distribution. But updates should be just that: updates. And also “necessary”. To me, an “update” is not shipping a major version bump on an existing piece of software, or replacing an entire stack (complete with all manner of behavioral changes – no matter how “small”: it does matter if that menu item moves around mid-release) – after the release. That’s called a new release. Or rawhide. Or whatever. The point is that a release has to have some kind of meaning for it to even be worth having a release. Otherwise, you may as well just call it “Forever Rawhide”.

Now I’m not saying there can’t be flexibility. For example, I don’t personally care at all about KDE update frequency. I’m sure the people who work on it (many of whom I have met over the years) are very nice people, and I know they do good work. But I don’t use KDE (other than a few specific pieces of software, such as k3b), and I haven’t for years. So if KDE is updated ten times a day, I’m not going to even notice. I’d rather, for the sake of the users have a consistent policy, but perhaps that stack could be excluded since its maintainers are quite vocal about being able to make a lot of updates. I would rather an exemption were made for their specific stack rather than have the rest of the distribution need to following the same rolling update trend.

What I am going to notice, however, is if any of the critical path components that I rely upon is broken, has a behavioral change, or is needlessly updated way too often to make any real sense. Needless includes pulling in some minor upstream bits that aren’t materially warrented by actual or likely bug reports. Those things are best done in rawhide where they belong, and where those who are more than willing to test as they go will happily help shake out issues. I myself run rawhide also, but on dedicated real or virtual machines that are only for testing and not intended to be used or relied upon for daily work. Even in the case of rawhide, I think things should be at least reasonably tested on a standalone system (more than just compile tested) before pushing if they stand a chance of breaking something fundamental in the distribution.

Think about it this way. The Fedora development cycle is about 6 months. If you are a user and really, badly need some major new feature, you might have to wait an average of 3 months. Even if that’s hardware enablement that makes the distribution otherwise inaccesible to you, I would rather that you have to wait 3 months for the new version (during which time you are free to try the pre-releases, alphas, betas, etc.) than ship an intrusive update that may negatively affect other users who already have working systems that can already make full use of what they have available. It’s simply not worth inconveniencing existing users of a stable release for the possible benefit of those who are not already using it and can wait until the next time.

Anyway. I think Fedora needs an update policy, and it needs a strong one. If you know me, you know I am far from a conservative guy, but I do think that stable Fedora updates should have a fairly conservative update policy for at least all critical path components. Those should never be updated unless necessary to fix specific bugs, and only in a fashion not likely to cause regressions for other users not affected by those bugs, or who rely upon specific behavior not to change (i.e. not a whole major version bump). The components not in the critical path can have more wiggle room if necessary, but I would still like to see far fewer updates in the stable releases.

Jon.

Remote kgdb target debugging via the Cyclades TS-3000 Terminal Server

February 12th, 2010

So I’ve been poking at Jason Wessel’s kgdb patches recently (specifically, the ones in kgdb-next – you do believe in kernel debuggers, right? Good). They came in very handy when trying to track down an obscure netfilter brokenness last week that was causing Fedora kernels to fall over reproducibly when running KVM. That particular issue was caused by libvirt’s namespace code that attempts to create additional network namespaces on startup, just to see if it’s possible (for optional containers support). After a very long weekend, I pointed out a number of bugs that got fixed. But it got me thinking about kgdb and being able to easily debug stuff that rolls over and plays dead.

Traditionally, I have used a (somewhat loud, and sometimes therefore unfortunately annoying) PC attached to my debugging target via a serial crossover cable. Actually, it’s the inverse of the usual setup in which said other PC is intended to be the target of experimental test kernels, with my desktop generally not being anticipated to fall over with kernel bugs (as it has been doing increasingly of late). In any case, it’s not optimal to leave that PC running and I prefer it being used for evil test experiments. An opportunity to buy random crap on eBay presented itself in the form of an awesome Cyclades (now some other random company) terminal server. I bought a TS-3000 for $115, which is less than a tenth of what they used to go for retail. 48 ports of serial terminal server goodness for the home.

Photo: My Cyclades TS-3000 sitting atop an APC Masterswitch Plus

I was never very good at waiting for santa. I was tracking this damned thing several times a day for the two days it was in transit. And when it arrived – shock! – it might not have the latest firmware! Quick! Time to fix that. I hadn’t even used it in anger before I managed to brick the thing with an update not intended for this model. Cursing myself, I figured I would just rescue it via TFTP. But that requires a special console cable (not quite the same as some others) in order to interrupt the standard boot. Obviously I had none of these cables, and all of the ones here were useless. And I wasn’t prepared to wait ten minutes to order another one. So I went to Microcenter, and bought two RJ45-DB9 generic converters you can click together to wire yourself.

I followed a diagram online to make the RJ45-DB9 cable for the Cyclades – twice. But all of the posted diagrams were incorrect (this is nothing like a Cisco cable, even if you’re a moron and think that it is when you incorrectly make a website with the wrong pinouts, especially if you’re Cyclades and write a manual with the wrong information contained within it…thanks a bunch!). Not to be discouraged, the soldering iron came out, and I rummaged around in a box of parts to find some serial connectors. Fortunately, I had a female DB9 and plenty of old crappyish network cables. I soldered, desoldered, and resoldered this thing about 4 times before finding the correct Cyclades console cable pinout (ADB0036 female DB9) (repeated below, for the benefit of others who read this). Finally, I reflashed the unit with the same firmware it had had when it arrived (zImage_ts_140-3.bin) – the “new” firmware was only for specific other units of which mine was not one thereof, there is a newer “GPL” kit I will poke at sometime – and booted it up.

Photo: A homebrew Cyclades ADB0036 Cable

RJ45 pin DB9 pin
1 8 (CTS)
2 1 (DCD) and 6 (DSR)
3 2 (RD)
4 5 (SGND)
5 7 (RTS)
6 3 (TD)
7 4 (DTR)
8 4 (DTR)

Figure: The correct pinout for a Cyclades ADB0036 console cable (RJ45 to Female DB9 connector)

Cyclades made good (fanless) hardware, but they were hardly the most adept at making configuration straightforward. Sure, you can configure the network easily (this one is called “morse” after the inventor – in the US – of the coding used for telegraphs, which are an ancient precursor to the RS232 standard used on modern serial ports), but when it comes to the port setup…what you want to know is that you’re looking for the “Socket SSH” option, set to increment (e.g. from “1″ – no need to use the “7001″ example, you’re not directly sshing into the port anyway, as with telnet), and based upon a simple “CAS profile” with local authentication (make sure you add a new “system” user for those SSH logins), unless you want to use RADIUS (I have home KRB5, but haven’t deployed RADIUS at the moment). Always make sure you “Run Configuration” before flashing – it seems the former writes to the actual config files that the latter will use, so you cannot necessarily flash and then “Run Configuration” that way around, depending upon the particular operation you are performing.

Once you have the terminal server running, you can talk to it:

$ ssh user_name:port_number@terminal_server.address

More importantly perhaps, you can use the gdb remote target:

(gdb) target remote | ssh -t -t user_name:port_number@terminal_server.address

Remember to tell ssh not to ruin the day (fail to allocate a pty for your friendly conversation) by specifying the “-t -t”, then you can talk to Jason’s kgdb stub.

Next steps? I need to make some more of these damned ADB0036 cables (or find some more on eBay – anyone want some useless Cisco cables I bought thinking they were the same?) and hook them up to all of my systems at home. They will then constantly log via the awesomeness of GNU screen to a remote VM, and I can jump in if something rolls over and catch it so I won’t miss panic/debug opportunities.

Kernel debuggers FTW.

Jon.