Planet Javasummit

July 21, 2018

Tim Bray T'aanuu ll­na­gaay

On Friday July 13th I was sitting under trees looking at the ocean and I thought “This is maybe the nicest place I’ve ever been.” The beach was at Tanu (T'aanuu llnagaay in the Haida language), which is here. In front of me, the Hecate Strait, much hated by West Coast mariners. Behind me, the old Haida village site, with interesting memento mori: a mass grave of fifty or so smallpox victims, and the beautiful modern gravestone of Bill Reid. Flowing over me, a breeze of what struck me as the freshest, cleanest, nicest air I have ever breathed. This was on the last day of our Haida Gwaii, uh, let me see, I can hardly call it an adventure after all that. But it sort of was.

Haida Gwaii is a waterspout-shaped triangle of Islands 70km off Canada’s left coast right up where it meets the Alaska Panhandle, a two-hour puddlejumper flight from Vancouver. Mostly it’s cool and grey and wet and stormy; but we soaked up five days of mild breezes, mostly sunlit, and came back with pictures, but words have been hard to come by, they seem inadequate.

I’ve pictures enough for a few entries, so I’ll talk about logistics and photography and so on later; today just Tanu.

Trees and beach at Tanu

Pixel 2, 1/2300 sec at f/1.8, ISO 54

Tanu is in Gwaii Haanas (officially: Gwaii Haanas National Park Reserve and Haida Heritage Site); one of five Haida village sites where there’s a watch house staffed by Haida Watchmen, who’ll welcome you, give you a tour, and stamp your visitor book. Some of the watchmen are women and all the ones we met were awfully nice.

One of them at Tanu had her little niece visiting, a high-energy girl with a lovely native-flavored name; here she is with my daughter.

Girls at Tanu

Fuji X-T2, XF35mmF1.4R, 1/200 sec at f/1.8, ISO 200

The Haida story, like that of darker-skinned aboriginal peoples wherever my pale ancestors showed up, is pretty sad: Disease, oppression, proselytization, expropriation. I’ve heard it said, by white urbanites like me, that today the Haida nation is generally better off than many other First Nations; but don’t take my word for it.

Here’s part of the old village site; house beams under that moss. Because of the mass smallpox grave, some of the Haida Watchmen don’t like to work here; there are ghost stories. Bill Reid’s family requests that his grave not be photographed, but it’s a fine, modest, unassuming piece of work.

Part of the Tanu village site

Fuji X-T2, XF35mmF1.4R, 1/220 sec at f/5.0, ISO 200

Should you ever visit Tanu (and you should if you get the slightest chance), here’s a tip. Walk down to the right (facing the sea) end of the beach, where there’s a little mossy rise with a few trees.

At the south end of the beach at Tanu

Fuji X-T2, XF35mmF1.4R, 1/105 sec at f/8.0, ISO 200

Even better, take your sweetie along for some private time.

For me the main attraction of Gwaii Haanas is the wonderful, wonderful trees and their forest-floor neighbors. Many of my pictures are about their huge scale, but they’re striking in the small as well. Everything has moss on it.

Mossy tree at Tanu

Fuji X-T2, XF35mmF1.4R, 1/80 sec at f/4.0, ISO 200

I’ll sign off with the same picture twice.

Ferns in context

Fuji X-T2, XF35mmF1.4R, 1/200 sec at f/4.0, ISO 200

Ferns in sun

Fuji X-T2, XF35mmF1.4R, 1/60 sec at f/8.0, ISO 500

Really, if you’re anywhere near the top left corner of the New World you should go visit Haida Gwaii. Next time out I’ll explain how.

July 20, 2018

Worse Than FailureError'd: Upon Reaching a Certain Age...

"Evidently, once you hit 55, LinkedIn thinks you'll age until your buffer overflows," writes Jonathan L.

 

"I started out looking for shower gel, but now, thanks to Google, I'm considering if a GBIC in Cadet Blue is worth the extra money," writes Robin M.

 

Matthew B. wrote, "So, an article about AI shows that the AI behind generating the summary rasied an exception. Maybe the AIs aren't speaking to each other?"

 

"Wait...did I just fail a Turing Test?" writes Daniel.

 

Rob J. wrote, "I got a 2 on a vision test but apparently only people from Krypton or blind people test on it, because there were very large negative and positive scores."

 

Pieter V. writes, "Thankfully this combo error didn't occur on the plane I took."

 

[Advertisement] Forget logs. Next time you're struggling to replicate error, crash and performance issues in your apps - Think Raygun! Installs in minutes. Learn more.

XKCDSports Champions

July 19, 2018

Worse Than FailureClassic WTF: Flawless Compilation

Just today I was joking with my co-workers: I had written software for which we had no viable test hardware, but the code compiled, therefore I was done. The difference is I was joking… --Remy (Originally)

Back in the heady days of Internet speculation, the giant retailer JumboStores contracted with Fred’s software company, TinyWeb, to develop the region’s first web-based supermarket. Customers would be able to assemble carts online and receive their groceries the next day.

The virtual supermarket had to communicate with JumboStores’s inventory system in real-time. The former was bleeding-edge web technology, the latter a cobweb-laden mainframe with no external point of access.

“How will we get around this?” Fred asked early in the specification process.

“We can stage an intermediate server.” Nick, a programmer from JumboStores IT, assured him around a mouthful of doughnut. “You guys send your requests there, we’ll write software to forward them to the mainframe and back.”
Engine overhauled
Fred was optimistic. Both companies were *nix shops; the JumboStores IT department were his geek kindred. Equally optimistic, JumboStores management scheduled a live media demo several months out, well after the estimated project completion date.

Deadlines slipped, as they are wont to do. The week before the big demo, the online supermarket still wasn’t ready. TinyWeb had implemented the website and database back-end, but JumboStores’ relay software lagged behind. At the urging of multiple strata of nervous managers, Fred took an emergency trip to JumboStores to investigate.

“We don’t know, man, we just don’t know.” The confident Nick of months prior shook now, leading Fred to his cubicle. “We coded the application. We debugged until it compiled without errors. When we run it- core dump!” He threw up his hands, then dropped into his swivel chair. “We’ve been pestering IBM support, but they haven’t been very helpful.”

“Well, why would they be?” Fred frowned, pausing at the cube threshold. “I mean, who knows what might be wrong with the code?”

“Nothing’s wrong with it. It compiles!”

“So? It could still have errors.”

Nick swiveled around to face him. “Dude. It compiles.

Fred faltered in the wake of Nick’s earnest insistence. “That… doesn’t mean the code is perfect.” He all but fell into the spare chair presented to him. “How do I explain this?” Am I actually trying to explain this? To a programmer? “Let’s say you’re building an engine.”

“This isn’t an engine,” Nick said. “It just passes-“

“No, a car engine! OK? You have all the parts spread out on the desk here.” He waved his arm out over a layer of branded cube toys and post-it notes. “You’ve never built an engine from scratch before, but you have a blueprint with pictures and directions, so you grab your wrench and your welder and whatever, and go to town. At the end, all the parts get used up, and the result looks vaguely engine-like. Still, would you expect to drop it under the hood and have it start up flawlessly the first time you turn over the ignition?”

Nick stared. “I… don’t see what this has to do with anything.”

Fred refrained from smacking his forehead. “Uh, OK. Forget the engine. It’s like sheet music. Just because all the dots are on the staff doesn’t mean it’s the song you want.“

“Dude! The compiler would bug out if there were any problems.” Nick graciously omitted the Duh.

Fred took one last chance. “No- it’s like, if you were building a house. Just because all the parts fit together doesn’t mean it will stand up.”

Nick’s face brightened. “It’s like the home inspector! I see what you mean."

“If that works for you…” Fred said, carefully.

After long consideration, Fred took the intermediate server back home to TinyWeb for some down-to-the-wire recoding, resulting in a flawless demo for the press. JumboStores was delighted.

With their collaboration at an end, Fred wondered how JumboStores IT would ever manage on their own.

[Advertisement] BuildMaster allows you to create a self-service release management platform that allows different teams to manage their applications. Explore how!

July 18, 2018

Worse Than FailureClassic WTF: The Mega Bureaucracy

Part of the reason we need a summer break is because we simply don't have the organizational skills of this particular company. I wonder if they sell consulting. Original -- Remy

Photo credit: 'digicla' at Flickr At my daytime corporate-type job, if I need to even sneeze in the general direction of a production environment, I need both a managerial and customer approvals with documentation solemnly stating that I thoroughly tested my changes and swear on a stack of MSDN licenses and O'Reilly books that I am NOT going to break anything as a result of my changes. Sure, the whole thing is a pain (and admittedly, a necessary evil), but what Bruce W. has to go through beats the pants off of anything I've ever had to go through.

For the most part, Bruce loves his job. He gets to work with a lot of intelligent and motivated people. He has been developing a new system to support a new product that has the possibility of earning his division several million dollars per year and saving the corporate parent several hundred thousand dollars per year. The net effect on the corporate parent's bottom line will be quite nice. He developed a Web front end while a fellow developer put together the data feeds. The initial development work was estimated to take about six weeks; pretty good since we only had eight weeks to work with.

However, Bruce works in a very large corporation (70,000 plus employees through out the US and several countries) and IT for the corporation has been highly centralized to the world headquarters. Smaller IT work, like the development and support for only a single division, isn't centralized but must pass through the central Mega Bureaucracy for approval and placement on the centralized servers.

...and Bruce needs their "help" to officially set up his environments.

You see, while Bruce and his group can test all day long on their local computers and servers, any kind of "live" environments must be created, blessed, and centralized by the Mega Bureaucracy. They're bigger, badder, and have more connections than anybody in your division's rank-and-file. Remember: in the Mega Bureaucracy, processes and procedures are to be followed, respected, and if necessary worshipped. Oh, and forget even thinking of installing Web services on one of the existing centralized servers. That would bring down the wrath of the entire blessed Bureaucracy for changing the purpose of an existing machine without first going through Mega Change Server Process.

Here's a brief overview of what Bruce had to go through to get four (one each for development, testing, staging, and production) Windows-based Web servers:

Week 1 - At the same time Bruce's group started the project he went to procure the servers. He was told that all he needed to do was put in a Service Request with the Windows Server Team and they would get what we needed. However, that request is cancelled because when the Windows Server Team saw that the servers were for a new application they said, "Whoa, you have violated rule #38,991 of the Mega Bureaucracy! New applications must go through the Process for Application Implementation and Navigation."

Bruce starts into the fill the first two PAIN forms (one being 20 pages long with 150 questions), sends them off to the server team, and immediately receives a response that, no, do not directly send PAIN forms to the group they go to. Instead, open a project with the Mega Bureaucracy's project tracking system, attach the forms and THEN assign the project to the group.

A few days later, he receives word that the project has been accepted, slotted, and a project manager assigned. Bruce figures, "Cool, now we are moving! I'll have my servers in no time!" He and his boss have a conference call with the PM and express to him the time critical nature of these servers. The PM agrees to push them forward saying that the request isn't complex and shouldn't take much effort.


Week 2 - Bruce receives the initial project estimate and immediately replies with his approval.


Week 4 - Bruce calls the PM to find out what's going on. He says that due to staffing cuts only a handful of requests are being processed at a time. Despite being reminded that this project is literally worth millions, he says that other projects are ahead of us and that this is simply how things are. Bruce boss escalates the issue to the head of IT for the entire division who just happens to be a member of the Project Approving Council and supposedly has the power to move the project forward.


Week 6 - Only three weeks until the promised delivery date, Bruce learns that the project still has not moved. His boss fires off a series of emails saying that the app is about to go live on a system that will earn the company millions of dollars that is running on a desktop machine sitting in a cubicle.


Week 7 - The system is now fully coded. Bruce is walking around, shaking his head, saying to himself "We have done user testing and end-to-end testing on a desktop machine-based server!"


Week 8 - The new system goes live and is serving dozens of customers daily. The difference between Production and Test environments is a Post-it Note. Power strips and network hub are carefully labeled "DO NOT TOUCH! HIGH VOLTAGE!" to prevent cleaning staff misfeance.


Week 10 - Bruce and the Windows Server Team finally have the project kick off meeting for the servers. About 15 of the 30 minute call was spent with Bruce repeatedly saying, "All I need is a Windows Server with IIS and .NET. I do not need a database server, no access to the mainframe, no massive SAN space, no Internet access, no interplanetary probe, just servers." "BUT", they say, "You stated on page 16, question 113 that your application uses a database. Where will that database come from?" Bruce explains again, "We are using existing databases assigned to our group. The database is outside of the scope of the project of setting up four Web servers."

Week 12 - Bruce and the Windows Server Team get together for their status meeting. The server team says they haven't budged since last meeting. Why? Everyone says, "Well, we're just waiting for the other shoe to drop and this becoming a big, complex, hairy project requiring massive time." Bruce once again states that all they he needs is four Web servers. Nothing more. The server design engineer says, "Wow, that is pretty simple. Shouldn't take too long at all."


Week 14 - Bruce has another status meeting with the PM and the server engineer. The engineer has put together the required diagram of the requested infrastucture and states that he only had to change a handful of things from the initial template. He says that everything should be ok and once they have the infrastructure readiness, the server builds can start. Bruce thinks, "Finally! All the other people initially assigned to the project must have realized that building four web servers isn't that big if a deal! ...haven't they?"


Week 18 - The head of IT for our division finds out that we are still waiting. Heads start rolling...even poor Bruce's. "WHY DIDN'T YOU CALL ME SIX %($$!*& WEEKS AGO???" the IT head blasts.


Week 19 - The servers are built (it only took 2 days to build them!) and are signed off for production support.

Week 20 - Bruce distributes the application URL pointing to the brand new servers.

Through all of this Bruce learned a couple things. First, don't even think of going around the Mega Bureaucracy, even if somebody says you can. The Mega Bureaucracy remembers and brands you a heretic. Second, if you think you will need help from the Mega Bureaucracy, start early, fill out all of the forms, stand in the right lines, sacrifice to the appropriate gods, and don't even hint that you would think of going around them. Finally, he who yells loudest gets move the front of the queue soonest - as holy and almighty as The Mega Bureaucracy is, they're happiest to get rid of their crabbiest customers first.

The silver lining in all of this? Apparently, the Guardians of the Mega Bureaucracy seem to now be willing to consider that there is a different tier of requests that don't require so many stopping points, designed to make sure that users really, REALLY know what they want to request. Bruce remains positive saying that, maybe in a few years, after meetings to plan meetings, forms to request forms, they will have a process that only has an initial questionnaire of 10 pages and 75 questions.

[Advertisement] Otter - Provision your servers automatically without ever needing to log-in to a command prompt. Get started today!

XKCDSoftware Development

July 17, 2018

Worse Than FailureClassic WTF: The Source Control Shingle

Our summer break continues. I once worked on a team which made "shingles"- software modules that were layered on top of a packaged product. There were a lot of WTFs in those shingles, but nothing that can compare to this once. Original--Remy

The year was 1999 and the dot-com boom was going full-throttle. Companies everywhere were focused on building revolutionary applications using nothing but top-shelf hardware and state-of-the-art software tools. Developers everywhere were trying to figure out if they should play more foosball, more air hockey, or sit back down on their Aeron and write more code. Everywhere, that is, except Boise, Idaho. Or at least, Dave's small corner of it.

At Dave's company, developers worked at a solid pace, using reliable tools, for a stable industry. They were sub-sub-contractors on a giant project commissioned by the U.S. Navy to condense naval vessel documentation. Generally speaking, the complete documentation required for a modern warship-from the GPS calibration instructions to the giant 130-millimeter cannon repair guide-is measured in tons. By condensing the documentation into the electronic equivalent, they could not only save tremendous physical space, but they could make it much easier to navigate.

A Simple Plan

Dave's company's small piece of the pie involved writing a very specific application for a particular group of users. Their application needed to track who moved which box of classified documentation from where to where, and why. Given the very simple requirements, the entire application was assigned to Mark.

Mark believed in keeping things simple: he rarely left the command line, his text editor was notepad and his source repository was a few backup folders on a network drive. He didn't need or want more than that. It was a simple task that called for his simple methodologies.

As their app neared completion, a whole new set of requirements came in. Now, they had to add in security and logging. When Dave joined Mark's one-man team to help out with this, the current system of source control -- nothing -- became inconvenient for collaborating.

Dave suggested they set up a source-control repository, but Mark wanted to keep things simple. He devised a solution called the "source-control shingle."

Roofing and Revisions

The source-control shingle was literally that: an actual shingle from someone's house that somehow ended up in their office. It acted like a "talking stick," in that only he who possessed the shingle was allowed to edit the common libraries.

As time went on, the project's scope grew immensely. More and more developers came on board, and the source-control shingle was pushed to its limits. Despite not being in possession of the shingle, some developers broke protocol and edited the library files on the share drive. Finally, Mark agreed to use a simple source repository. He wanted to use the only source-control system that guaranteed file locks: Visual Source Safe.

Unfortunately, Source Safe was so painful to license and manage that Mark had no choice but to explore other options, some of which involved a piece of painted wood. After much arguing and cajoling, Mark agreed to try out open source CVS. Things went well for the first few days, but quickly took a turn for the worse.

"What happened to my code?" Mark asked. "I just did a CVS UPDATE and everything I wrote this morning is gone!"

"It's working fine for me," one of the developers replied.

"Same here," another joined in. "I just checked in my changes a few minutes ago, and they're still here."

"Wait," a third one questioned, "did you do an UPDATE before the COMMIT?"

"Did I what?" the second developer replied. "Oh. Crap."

Exasperated, Mark jumped. "That's it! We're going back to the shingle!"

Fortunately, some of the other developers managed to convince Mark to stick with CVS, at least for a little while longer. One of the developers even managed to enforce better source control practices using some server-side scripts. And despite Mark's constant reservations, they ended up staying with CVS throughout the project. But the whole while, Mark kept the shingle handy, just in case.

[Advertisement] ProGet supports your applications, Docker containers, and third-party packages, allowing you to enforce quality standards across all components. Download and see how!

July 16, 2018

XKCDNegative Results

July 13, 2018

XKCDAn Apple for a Dollar

July 08, 2018

Tim Bray Jag Diary 3: What We Know

Between June 4th, when the first wave of reviews of the New Jag hit (offically the I-PACE, what a dumb name) and the time the salesman called me saying “Time to sign the order if you want to be in the first wave”, I had to decide whether to spend a lot of money on a car I’d never seen or touched. So I paid damn close attention to those reviews. I’m a critical reader, and suspicious about the motives of product reviewers, and I think the picture that emerges is pretty clear. This post is to enumerate what I think it’s possible to know for sure about the car without having owned or even driven one.

I’ll throw in a bunch of links down at the bottom to reviews that I think are particularly useful.

Facts

  • The story starts in 2014, when Jag leadership decided to go all-in on a from-scratch electric model. They put an integrated development team all in one room at the University of Warwick — not exactly traditional auto-biz practice — and eventually brought the new car from nothing to market in “only” four years, which is considered very good in that industry.

  • It has two motors, one wrapped round each axle, with the space between full of battery, then the cabin perched on top. At moderate speeds, only the back wheels drive.

Underneath
  • It’s almost all aluminium and, despite that, is still super-heavy (2100kg), mostly because of the battery.

  • I’m not going to recite horsepower and torque numbers that I don’t understand, but people who do understand them sound impressed.

  • I don’t understand charging issues well enough to have an intelligent opinion, but Seth Weintraub does, and his review is full of useful detail. Tl;dr: The range is competitive with other high-end electrics.

  • It doesn’t have gears as such, just buttons: P, N, R, D. The North American edition comes only with air suspension, and has a thing where you can elevate the car for a tricky driveway or rutted gravel, and it settles down automatically at high speeds. I gather the Euro model can be bought with springs.

  • Another difference: The Euro model comes with either a standard or glass roof; in the New World it’s all-glass all the time. Personally, I’d prefer a layer of metal between me and the sun, but they claim it’s sufficiently shaded and UV-impervious.

  • Electrics are super quiet inside so, if you want, the Jag will play you a spaceship-y acceleration sound that changes with the speed. Fortunately it’s optional; although one of the journos who took it out on the racetrack said he found it useful in situations where you don’t have time to look at the speedometer.

  • There’s a screen behind the steering wheel where you can display speed and charge and maps and so on. Front center, there’s a biggish (but not Tesla size) screen above for Infotainment, and a smaller one below for climate control. On the subject of climate control, the console has a couple of actual physical knobs for that.

Black interior White interior
  • It’s got a fair-size trunk at the back (the back seats fold down 60/40) and a tiny one under the front hood; someone suggested it was just big enough to carry your cat.

  • As with most electrics, you can do one-pedal driving, where easing off the accelerator goes into regeneration mode and provides enough breaking for all but exceptional circumstances.

  • You can actually take it off-road, up and down stupidly steep hills, through really deep puddles, and so on: The “LR” part of JLR is Land Rover, and that part of the company knows something about those things.

  • There’s plenty of room inside for four big adults. The person in the middle of the back seat should be on the small side.

  • Nobody has seen either Apple CarPlay or Android Auto at work, but the company claims that both will be supported. My own Jag dealer said he’d heard that they’d done the technology work were just doing licensing and payment.

  • It has a SIM slot and over-the-air software update.

  • You can equip it with a tow-bar and bike-rack and roof-rack.

  • It’s built, not by JLR themselves, but by Magna Steyr, a contract manufacturer in Graz, Austria, that also builds the Mercedes G-Class and BMW 5 Series.

Things that are good

  • Everyone agrees that it’s a blast to drive. What’s interesting is that the most common comment was “feels just like a Tesla”. The Top Gear scribe pointed out, in a melancholy tone, that apparently all electric motors feel more or less like all others. This is a big change from the days of internal-combustion engines, which have all sorts of personality. It’s fast, maneuverable, and comfortable.

  • The one-pedal driving mode takes a bit of getting used to but all the journos ended up loving it, and assuming that pretty everyone would use it all the time.

  • The seats are said to be super-comfortable.

  • It has all the bells and whistles and technology gadgets anyone could want.

  • The cabin has all sorts of storage space in bins here and there and under the back seats and so on.

  • It has more than enough range for people who drive around town and then occasionally go 200+ km for business.

Things that are not so good

  • If you’re a road warrior, Jag doesn’t have anything to compete with Tesla’s supercharger network. I’ve started poking around PlugShare and ChargePoint and so on, and I think you could manage road trips, but it’s not going to be as slick as with a Tesla. Perhaps this situation will improve?

    Me, I have a carport on the back alley and I’ll put in a charger and I should be fine.

  • The infotainment system is slow and laggy, and some important settings are deeply nested into the menus. Android Auto is my answer to that.

  • The storage space isn’t that well-organized and it’s not obvious where to stow the charging cables.

  • The fifth person in the car is going to be kind of cramped.

  • Visibility out the back window is lousy, with big rear posts getting in the way.

  • The brake pedal tries to combine regenerative and friction braking and as a result is said to feel soft and weird.

  • The air-suspension ride has been reported as feeling a bit jittery and unstable at low/moderate speeds.

  • The center console crowds the driver’s leg a bit; more of a problem in left-hand drive vehicles, obviously.

My conclusion

What happened was, when the first buzz of publicity hit in March I was interested enough to drop by Vancouver Jaguar and talk to Caleb Kwok, the sales manager. He’s a plausible guy, responsive to email, and anyhow, he convinced me to put down a refundable deposit, buying me a place near the front of the line at the time actual orders would open up. Which turned out to be last week.

By which time I’d read all the material summarized in this piece. On balance, I liked what I heard; the pluses were pretty big and none of the minuses bothered me that much. Remember, the longest trip I normally take is 230km to Seattle, where I park for a couple of days then drive home.

So I signed on the dotted line, and my deposit is no longer refundable.

The big worry, of course, is reliability and manufacturing quality. Jaguar, at various times in its history, has had a miserable reputation. Of one famous model, they used to say “It’s a great car, so buy two, because one will always be in the shop.” It’s worse than that; Jag at one point had a particularly stinky track record around electrical systems.

But there are stats suggesting Jag’s doing better in recent years. And then there’s the fact that it’s being built in a plant where they also make Mercedes and BMW. Granted, I’m taking a chance here.

Helpful reviews

July 07, 2018

Tim Bray Jag Diary 2: “T-K”

Apparently Jaguar committed to developing a serious electric car back in 2014, which was a brave move at that point. Obviously, this wouldn’t have happened, nor would the upcoming Audi, Porsche, and Mercedes BEVs (Battery Electric Vehicles), if Tesla hadn’t proved that these things can be built and people want to buy them. Now, suppose you had the job of marketing this new thing to the world; how would you start?

Launching

The I-PACE (Reminder: Dumb name, hereinafter referred to as “the Jag”) launched in early March 2018 at the Geneva Motor Show. They set up a sort of little go-kart track in a parking lot outside the show, with cones you had to drive around, whose tips illuminated in an unpredictable pattern. Sort of a “follow the flashing lights” course. Of course, in a parking lot the car couldn’t go very fast, or very far, and eveyone only got a couple of minutes. But more or less every single journo or car geek who got that two-minute experience then went and wrote a couple of hundred words about it, and/or posted video.

Going downhill Splash!

Not a Geneva parking lot. Explanation below.

As they did so, the big themes in the marketing campaign started to emerge. Put yourself, for a moment, in the position of a JLR marketing leader, planning the pitch to the world. Protip: The world’s attention span is really, really short. So every good marketeer knows that no matter how many great things there are about your product, there has to be one flagship message that grabs attention, is easy to understand, that people like, and will motivate them to sample the story you’re trying to tell.

So, if you were that JLR exec, what would your key message be? “Venerable British builder leaps into the future with high-tech product!” Not bad; Hardly anyone’s ever driven a Jaguar, but most people have the notion that it’s sort of classy. How about “Electric car that looks great and goes fast!” This has the advantage of being true, but really not newsworthy. Everyone knows someone who drives a Leaf or a Bolt, and if you’re in high tech, a Tesla.

The hook

Well, let’s skip over a bunch of other plausible concepts and zero in on where Jaguar actually went, and where it went was with only two words: “Tesla Killer”. Yes! Newsworthy, involves colorful personalities, and everyone loves to watch a fight.

Hold on, hold on! As far as I know, nobody from Jaguar has ever uttered those words. They didn’t have to, because in parallel with the Geneva Motor Show launch, they released this video: The Jag vs the X type in a drag race! Now, you might suspect that the video wasn’t totally one thousand percent fair, and you might be right; here’s a riposte video in which Tesla does better.

Boy, did it ever work. Later on in the year, when the journos got to drive the Jag at length and write about it, basically every review used the phrase “Tesla Killer”. It’s a really stupid phrase so let’s just say “T-K”.

To be clear: As almost every one of those journos concluded, the notion that the Jag is a T-K is idiotic. To start with, it doesn’t really compete directly. It’s an SUV form factor, while the S class is a saloon. It’s smaller and cheaper than the X class. The aesthetics, particularly of the interior, couldn’t possibly be more different. And most apparent, the biggest problem with high-end electric cars is making enough of them: Demand exceeds supply.

But it didn’t matter. T-K was a phrase any journalist could hang a review on, and very few were strong enough to resist the temptation, and it’s not as though that was dumb: It’s a phrase that’s going to get a lot of people to raise their eyebrows and click on that link.

Booze & Schmooze

The next phase of the marketing campaign involved a place called Faro, at the southern tip of Portugal. What Jaguar did was take a huge number of journalists and social-media hacks from around the world, twenty at a time, and fly them into Faro for two days each of schmoozing, boozing, and cruising. They got to take the cars through the narrow Portuguese country and town roads, then along the course of a running stream, then up a ridiculously steep dirt road (see, it’s a Sports Utility Vehicle, right?) (see pix above), and then a few laps of a well-regarded, technically-challenging race track.

An important subtext, which I’m pretty sure nobody from Jag ever uttered, but plenty of the scribes took up anyhow, was: “Teslas can’t do this.” Can they? I don’t know myself, but a lot of pretty seasoned auto writers were willing to say just that in their write-ups.

Amazingly, after visiting the T-K meme (usually dismissively, give ’em credit), they all enthused about JLR letting them loose to drive up mountains and down stream-beds and around a race-track. Some, but not all, of the journalists disclosed the free travel and entertainment; one explained cheerily that “It’s cheaper to ship the journalists to the cars than the cars to the journalists.”

Well yeah, but it’s not cheap. My mind boggles at the scale of the stage-managing: Keeping all those cars cleaned, charged, and ready to go at all times. Especially given that I suspect both the Faro infrastructure and the pre-production Jags were a bit sketchy. Anyhow, the deal was that all the write-ups were embargoed until June 4th. Which meant that any publication anywhere in the world that writes about cars had a Jag story in the first half of June. Did you notice the new Jag’s existence around then? Not a coincidence.

I read a lot of these stories, and pretty well discounted all of those that failed to disclose the schmoozing or to find any faults with the car. After which, I freely admit, I was impressed not only with the awesome marketing execution, but with the car.

The long haul

I suppose JLR’s marketing group isn’t exactly standing down now, but their first job is done: They got the car into the conversation. At this point it’s over to the dealer network, regular old advertising, the big serious reviews by serious auto geeks, and whether people are willing to pay serious money (but less than a Tesla) for what seems to be a pretty decent electric SUV.

A trailing note: For a while there, I was watching the conversation curl round the Net, and once the T-K meme became established, it got to a weird place: the Tesla-long vs Tesla-short battleground. Oh my goodness gracious me, is that ever some heavy trolling, both sides. Internet shitheads are everywhere.

Next

I think the nature of the Jag, its strengths and weaknesses, is pretty clear today, based on what’s been published. Clear enough that I converted my refundable deposit into the real thing and am now waiting for one. Next time, I’ll try to distill the highlights and lowlights into a few hundred words.

July 06, 2018

Tim Bray Jaguar Diary

On Wednesday, I signed an order for a 2019 Jaguar I-PACE, to be delivered in the late autumn. For those who don’t follow the electric-car scene, this is a brand-new no-petroleum product with range and performance in the same range as a Tesla S or X. Since electric cars interest geeks and greens — both over-represented in my readership — and since the Jag is a new thing and contains a lot of technology, I thought I’d do a diary-and-notes series on the car and the experience of getting into the electric-driving space.

Jaguar I-PACE

The configuration I ordered. The picture is kind of fuzzy
because it’s a screen grab from Jaguar’s VR configurator.

Why electric in 2018?

I think we can all agree that we’d like our autos to be as spacious, comfortable, green, and fast as possible within our budget constraints. As of now, electrics are at least as spacious, comfortable, and fast as ICE (Internal Combustion Engine) cars, but more expensive. They’re greener because, obviously, they don’t burn petroleum distillates.

But the green part isn’t a slam-dunk. An automobile’s carbon load falls into the manufacturing bucket and the running bucket, and these often end up being roughly comparable over the lifetime of the car. So the green thing to do is to keep your car on the road for a long time, and thus inflict the manufacturing carbon on the environment as rarely as possible. Since, at the moment, our family cars average well over ten years in age and both are over-powered gas guzzlers, the green trade-off is OK.

But wait! If you’re living in a place where the electricity is coal-generated, it’s not obvious that exiting petrol lowers your carbon load. Once again, since we’re in the Pacific Northwest where the power is mostly hydroelectric, the greenness accounting looks good.

When I say the accounting is OK, does this mean I've done a detailed quantitative drill-down on the tons of CO2 that are getting into the atmosphere as the consequence of my actions? Nope. Just that the story, in this case, doesn’t suffer from any glaring implausibilities.

Why Jaguar?

My electric-car shopping has an extra constraint: Since I live in Vancouver and work for Amazon, anything I buy has to be able to take me to Seattle (226km), no doubt allowed whatsoever that it’ll get there on a charge. Up until recently, that meant Tesla. While I admire Tesla’s boldness and engineering skill, I find the cars, as design statements, blankly cautious. Model 3’s have started appearing in my neighborhood and they’re just hideous inside. Also, Teslas seem overpriced. Also, every geek I know who’s inclined to electric already has one. Also, I’ve enriched enough Paypal founders already.

The picture improved a bit with the recent arrival of the Chevy Bolt, which seems like a nice practical little car. On the other hand, reviewers say that many people find the seats violently uncomfortable.

Now, the I-PACE… aargh, that dorky all-caps name hurts my brain; from here on in I’ll just say “the Jag”. Its range and performance are similar to a Tesla S or X. I think it looks way cooler. It’s significantly cheaper, too. There’s a console with knobs you can spin and a data-rich dashboard behind the wheel. I’ll do another post digging deep into the car, which I’ve been researching pretty extensively.

Why now?

That’s a good question. Both of our 10-plus-year-old vehicles still run OK (although I don’t trust the one I usually drive enough for the Seattle trip). Buying an electric car now creates the same kind of fear you got buying a PC in the Nineties: If I wait six months, will there be something better?

Except that here’s where emotion enters into it. I’ve wanted an electric for a few years now, and have been frustrated that on my internal Venn diagram, the “I like it” circle didn’t intersect the “Can reach Seattle” circle. Second, when I was a little kid growing up in the Sixties, the Jaguars were the most beautiful cars in the world. I wasn’t car-centric then and I’m still not now, but I can remember thinking “Wow, that’s a great-looking car. When I grow up, I’m going to have a Jaguar!”

Well, I’m grown up. More than that, I’m getting kind of old. Who knows if there’ll be a tomorrow? I don’t feel like waiting, I feel like driving a great-looking super-fast electric Jag. So I put down a refundable deposit when the I-PACE news broke in March, signed the paperwork this week, and got an order number.

Next

First, the product launch was a marketing masterpiece, worth covering. Next, I’ll write what we know so far about the car. Then, I’ll offer opinions about how to order. I think electric-car politics are worth a few words too. Also, I’ve started to find out about the e-vehicle owner subculture that’s springing up. Then eventually later this year, I’ll report on actually owning the thing.

June 18, 2018

etbeCooperative Learning

This post is about my latest idea for learning about computers. I posted it to my local LUG mailing list and received no responses. But I still think it’s a great idea and that I just need to find the right way to launch it.

I think it would be good to try cooperative learning about Computer Science online. The idea is that everyone would join an IRC channel at a suitable time with virtual machine software configured and try out new FOSS software at the same time and exchange ideas about it via IRC. It would be fairly informal and people could come and go as they wish, the session would probably go for about 4 hours but if people want to go on longer then no-one would stop them.

I’ve got some under-utilised KVM servers that I could use to provide test VMs for network software, my original idea was to use those for members of my local LUG. But that doesn’t scale well. If a larger group people are to be involved they would have to run their own virtual machines, use physical hardware, or use trial accounts from VM companies.

The general idea would be for two broad categories of sessions, ones where an expert provides a training session (assigning tasks to students and providing suggestions when they get stuck) and ones where the coordinator has no particular expertise and everyone just learns together (like “let’s all download a random BSD Unix and see how it compares to Linux”).

As this would be IRC based there would be no impediment for people from other regions being involved apart from the fact that it might start at 1AM their time (IE 6PM in the east coast of Australia is 1AM on the west coast of the US). For most people the best times for such education would be evenings on week nights which greatly limits the geographic spread.

While the aims of this would mostly be things that relate to Linux, I would be happy to coordinate a session on ReactOS as well. I’m thinking of running training sessions on etbemon, DNS, Postfix, BTRFS, ZFS, and SE Linux.

I’m thinking of coordinating learning sessions about DragonflyBSD (particularly HAMMER2), ReactOS, Haiku, and Ceph. If people are interested in DragonflyBSD then we should do that one first as in a week or so I’ll probably have learned what I want to learn and moved on (but not become enough of an expert to run a training session).

One of the benefits of this idea is to help in motivation. If you are on your own playing with something new like a different Unix OS in a VM you will be tempted to take a break and watch YouTube or something when you get stuck. If there are a dozen other people also working on it then you will have help in solving problems and an incentive to keep at it while help is available.

So the issues to be discussed are:

  1. What communication method to use? IRC? What server?
  2. What time/date for the first session?
  3. What topic for the first session? DragonflyBSD?
  4. How do we announce recurring meetings? A mailing list?
  5. What else should we setup to facilitate training? A wiki for notes?

Finally while I list things I’m interested in learning and teaching this isn’t just about me. If this becomes successful then I expect that there will be some topics that don’t interest me and some sessions at times when I am have other things to do (like work). I’m sure people can have fun without me. If anyone has already established something like this then I’d be happy to join that instead of starting my own, my aim is not to run another hobbyist/professional group but to learn things and teach things.

There is a Wikipedia page about Cooperative Learning. While that’s interesting I don’t think it has much relevance on what I’m trying to do. The Wikipedia article has some good information on the benefits of cooperative education and situations where it doesn’t work well. My idea is to have a self-selecting people who choose it because of their own personal goals in terms of fun and learning. So it doesn’t have to work for everyone, just for enough people to have a good group.

June 06, 2018

etbeBTRFS and SE Linux

I’ve had problems with systems running SE Linux on BTRFS losing the XATTRs used for storing the SE Linux file labels after a power outage.

Here is the link to the patch that fixes this [1]. Thanks to Hans van Kranenburg and Holger Hoffstätte for the information about this patch which was already included in kernel 4.16.11. That was uploaded to Debian on the 27th of May and got into testing about the time that my message about this issue got to the SE Linux list (which was a couple of days before I sent it to the BTRFS developers).

The kernel from Debian/Stable still has the issue. So using a testing kernel might be a good option to deal with this problem at the moment.

Below is the information on reproducing this problem. It may be useful for people who want to reproduce similar problems. Also all sysadmins should know about “reboot -nffd”, if something really goes wrong with your kernel you may need to do that immediately to prevent corrupted data being written to your disks.

The command “reboot -nffd” (kernel reboot without flushing kernel buffers or writing status) when run on a BTRFS system with SE Linux will often result in /var/log/audit/audit.log being unlabeled. It also results in some systemd-journald files like /var/log/journal/c195779d29154ed8bcb4e8444c4a1728/system.journal being unlabeled but that is rarer. I think that the same
problem afflicts both systemd-journald and auditd but it’s a race condition that on my systems (both production and test) is more likely to affect auditd.

root@stretch:/# xattr -l /var/log/audit/audit.log 
security.selinux: 
0000   73 79 73 74 65 6D 5F 75 3A 6F 62 6A 65 63 74 5F    system_u:object_ 
0010   72 3A 61 75 64 69 74 64 5F 6C 6F 67 5F 74 3A 73    r:auditd_log_t:s 
0020   30 00                                              0.

SE Linux uses the xattr “security.selinux”, you can see what it’s doing with xattr(1) but generally using “ls -Z” is easiest.

If this issue just affected “reboot -nffd” then a solution might be to just not run that command. However this affects systems after a power outage.

I have reproduced this bug with kernel 4.9.0-6-amd64 (the latest security update for Debian/Stretch which is the latest supported release of Debian). I have also reproduced it in an identical manner with kernel 4.16.0-1-amd64 (the latest from Debian/Unstable). For testing I reproduced this with a 4G filesystem in a VM, but in production it has happened on BTRFS RAID-1 arrays, both SSD and HDD.

#!/bin/bash 
set -e 
COUNT=$(ps aux|grep [s]bin/auditd|wc -l) 
date 
if [ "$COUNT" = "1" ]; then 
 echo "all good" 
else 
 echo "failed" 
 exit 1 
fi

Firstly the above is the script /usr/local/sbin/testit, I test for auditd running because it aborts if the context on it’s log file is wrong. When SE Linux is in enforcing mode an incorrect/missing label on the audit.log file causes auditd to abort.

root@stretch:~# ls -liZ /var/log/audit/audit.log 
37952 -rw-------. 1 root root system_u:object_r:auditd_log_t:s0 4385230 Jun  1 
12:23 /var/log/audit/audit.log

Above is before I do the tests.

while ssh stretch /usr/local/sbin/testit ; do 
 ssh stretch "reboot -nffd" > /dev/null 2>&1 & 
 sleep 20 
done

Above is the shell code I run to do the tests. Note that the VM in question runs on SSD storage which is why it can consistently boot in less than 20 seconds.

Fri  1 Jun 12:26:13 UTC 2018 
all good 
Fri  1 Jun 12:26:33 UTC 2018 
failed

Above is the output from the shell code in question. After the first reboot it fails. The probability of failure on my test system is greater than 50%.

root@stretch:~# ls -liZ /var/log/audit/audit.log  
37952 -rw-------. 1 root root system_u:object_r:unlabeled_t:s0 4396803 Jun  1 12:26 /var/log/audit/audit.log

Now the result. Note that the Inode has not changed. I could understand a newly created file missing an xattr, but this is an existing file which shouldn’t have had it’s xattr changed. But somehow it gets corrupted.

The first possibility I considered was that SE Linux code might be at fault. I asked on the SE Linux mailing list (I haven’t been involved in SE Linux kernel code for about 15 years) and was informed that this isn’t likely at
all. There have been no problems like this reported with other filesystems.

March 16, 2018

etbeRacism in the Office

Today I was at an office party and the conversation turned to race, specifically the incidence of unarmed Afro-American men and boys who are shot by police. Apparently the idea that white people (even in other countries) might treat non-white people badly offends some people, so we had a man try to explain that Afro-Americans commit more crime and therefore are more likely to get shot. This part of the discussion isn’t even noteworthy, it’s the sort of thing that happens all the time.

I and another man pointed out that crime is correlated with poverty and racism causes non-white people to be disproportionately poor. We also pointed out that US police seem capable of arresting proven violent white criminals without shooting them (he cited arrests of Mafia members I cited mass murderers like the one who shot up the cinema). This part of the discussion isn’t particularly noteworthy either. Usually when someone tries explaining some racist ideas and gets firm disagreement they back down. But not this time.

The next step was the issue of whether black people are inherently violent. He cited all of Africa as evidence. There’s a meme that you shouldn’t accuse someone of being racist, it’s apparently very offensive. I find racism very offensive and speak the truth about it. So all the following discussion was peppered with him complaining about how offended he was and me not caring (stop saying racist things if you don’t want me to call you racist).

Next was an appeal to “statistics” and “facts”. He said that he was only citing statistics and facts, clearly not understanding that saying “Africans are violent” is not a statistic. I told him to get his phone and Google for some statistics as he hadn’t cited any. I thought that might make him just go away, it was clear that we were long past the possibility of agreeing on these issues. I don’t go to parties seeking out such arguments, in fact I’d rather avoid such people altogether if possible.

So he found an article about recent immigrants from Somalia in Melbourne (not about the US or Africa, the previous topics of discussion). We are having ongoing discussions in Australia about violent crime, mainly due to conservatives who want to break international agreements regarding the treatment of refugees. For the record I support stronger jail sentences for violent crime, but this is an idea that is not well accepted by conservatives presumably because the vast majority of violent criminals are white (due to the vast majority of the Australian population being white).

His next claim was that Africans are genetically violent due to DNA changes from violence in the past. He specifically said that if someone was a witness to violence it would change their DNA to make them and their children more violent. He also specifically said that this was due to thousands of years of violence in Africa (he mentioned two thousand and three thousand years on different occasions). I pointed out that European history has plenty of violence that is well documented and also that DNA just doesn’t work the way he thinks it does.

Of course he tried to shout me down about the issue of DNA, telling me that he studied Psychology at a university in London and knows how DNA works, demanding to know my qualifications, and asserting that any scientist would support him. I don’t have a medical degree, but I have spent quite a lot of time attending lectures on medical research including from researchers who deliberately change DNA to study how this changes the biological processes of the organism in question.

I offered him the opportunity to star in a Youtube video about this, I’d record everything he wants to say about DNA. But he regarded that offer as an attempt to “shame” him because of his “controversial” views. It was a strange and sudden change from “any scientist will support me” to “it’s controversial”. Unfortunately he didn’t give up on his attempts to convince me that he wasn’t racist and that black people are lesser.

The next odd thing was when he asked me “what do you call them” (black people), “do you call them Afro-Americans when they are here”. I explained that if an American of African ancestry visits Australia then you would call them Afro-American, otherwise not. It’s strange that someone goes from being so certain of so many things to not knowing the basics. In retrospect I should have asked whether he was aware that there are black people who aren’t African.

Then I sought opinions from other people at the party regarding DNA modifications. While I didn’t expect to immediately convince him of the error of his ways it should at least demonstrate that I’m not the one who’s in a minority regarding this issue. As expected there was no support for the ideas of DNA modifying. During that discussion I mentioned radiation as a cause of DNA changes. He then came up with the idea that radiation from someone’s mouth when they shout at you could change your DNA. This was the subject of some jokes, one man said something like “my parents shouted at me a lot but didn’t make me a mutant”.

The other people had some sensible things to say, pointing out that psychological trauma changes the way people raise children and can have multi-generational effects. But the idea of events 3000 years ago having such effects was ridiculed.

By this time people were starting to leave. A heated discussion of racism tends to kill the party atmosphere. There might be some people who think I should have just avoided the discussion to keep the party going (really I didn’t want it and tried to end it). But I’m not going to allow a racist to think that I agree with them, and if having a party requires any form of agreement to racism then it’s not a party I care about.

As I was getting ready to leave the man said that he thought he didn’t explain things well because he was tipsy. I disagree, I think he explained some things very well. When someone goes to such extraordinary lengths to criticise all black people after a discussion of white cops killing unarmed black people I think it shows their character. But I did offer some friendly advice, “don’t drink with people you work with or for or any other people you want to impress”, I suggested that maybe quitting alcohol altogether is the right thing to do if this is what it causes. But he still thought it was wrong of me to call him racist, and I still don’t care. Alcohol doesn’t make anyone suddenly think that black people are inherently dangerous (even when unarmed) and therefore deserving of being shot by police (disregarding the fact that police can take members of the Mafia alive). But it does make people less inhibited about sharing such views even when it’s clear that they don’t have an accepting audience.

Some Final Notes

I was not looking for an argument or trying to entrap him in any way. I refrained from asking him about other races who have experienced violence in the past, maybe he would have made similar claims about other non-white races and maybe he wouldn’t, I didn’t try to broaden the scope of the dispute.

I am not going to do anything that might be taken as agreement or support of racism unless faced with the threat of violence. He did not threaten me so I wasn’t going to back down from the debate.

I gave him multiple opportunities to leave the debate. When I insisted that he find statistics to support his cause I hoped and expected that he would depart. Instead he came back with a page about the latest racist dog-whistle in Australian politics which had no correlation with anything we had previously discussed.

I think the fact that this debate happened says something about Australian and British culture. This man apparently hadn’t had people push back on such ideas before.

March 05, 2018

etbeWordPress Multisite on Debian

WordPress (a common CMS for blogs) is designed to be copied to a directory that Apache can serve and run by a user with no particular privileges while managing installation of it’s own updates and plugins. Debian is designed around the idea of the package management system controlling everything on behalf of a sysadmin.

When I first started using WordPress there was a version called “WordPress MU” (Multi User) which supported multiple blogs. It was a separate archive to the main WordPress and didn’t support all the plugins and themes. As a main selling point of WordPress is the ability to select from the significant library of plugins and themes this was a serious problem.

Debian WordPress

The people who maintain the Debian package of WordPress have always supported multiple blogs on one system and made it very easy to run in that manner. There’s a /etc/wordpress directory for configuration files for each blog with names such as config-etbe.coker.com.au.php. This allows having multiple separate blogs running from the same tree of PHP source which means only one thing to update when there’s a new version of WordPress (often fixing security issues).

One thing that appears to be lacking with the Debian system is separate directories for “media”. WordPress supports uploading images (which are scaled to several different sizes) as well as sound and apparently video. By default under Debian they are stored in /var/lib/wordpress/wp-content/uploads/YYYY/MM/filename. If you have several blogs on one system they all get to share the same directory tree, that may be OK for one person running multiple blogs but is obviously bad when several bloggers have independent blogs on the same server.

Multisite

If you enable the “multisite” support in WordPress then you have WordPress support for multiple blogs. The administrator of the multisite configuration has the ability to specify media paths etc for all the child blogs.

The first problem with this is that one person has to be the multisite administrator. As I’m the sysadmin of the WordPress servers in question that’s an obvious task for me. But the problem is that the multisite administrator doesn’t just do sysadmin tasks such as specifying storage directories. They also do fairly routine tasks like enabling plugins. Preventing bloggers from installing new plugins is reasonable and is the default Debian configuration. Preventing them from selecting which of the installed plugins are activated is unreasonable in most situations.

The next issue is that some core parts of WordPress functionality on the sub-blogs refer to the administrator blog, recovering a forgotten password is one example. I don’t want users of other blogs on the system to be referred to my blog when they forget their password.

A final problem with multisite is that it makes things more difficult if you want to move a blog to another system. Instead of just sending a dump of the MySQL database and a copy of the Apache configuration for the site you have to configure it for which blog will be it’s master. If going between multisite and non-multisite you have to change some of the data about accounts, this will be annoying on both adding new sites to a server and moving sites from the server to a non-multisite server somewhere else.

I now believe that WordPress multisite has little value for people who use Debian. The Debian way is the better way.

So I had to back out the multisite changes. Fortunately I had a cron job to make snapshots of the BTRFS subvolume that has the database so it was easy to revert to an older version of the MySQL configuration.

Upload Location

update etbe_options set option_value='/var/lib/wordpress/wp-content/uploads/etbe.coker.com.au' where option_name='upload_path';

It turns out that if you don’t have a multisite blog then there’s no way of changing the upload directory without using SQL. The above SQL code is an example of how to do this. Note that it seems that there is special case handling of a value of ‘wp-content/uploads‘ and any other path needs to be fully qualified.

For my own blog however I choose to avoid the WordPress media management and use the following shell script to create suitable HTML code for an image that links to a high resolution version. I use GIMP to create the smaller version of the image which gives me a lot of control over how to crop and compress the image to ensure that enough detail is visible while still being small enough for fast download.

#!/bin/bash
set -e

if [ "$BASE" = "" ]; then
  BASE="http://www.coker.com.au/blogpics/2018"
fi

while [ "$1" != "" ]; do
  BIG=$1
  SMALL=$(echo $1 | sed -s s/-big//)
  RES=$(identify $SMALL|cut -f3 -d\ )
  WIDTH=$(($(echo $RES|cut -f1 -dx)/2))px
  HEIGHT=$(($(echo $RES|cut -f2 -dx)/2))px
  echo "<a href=\"$BASE/$BIG\"><img src=\"$BASE/$SMALL\" width=\"$WIDTH\" height=\"$HEIGHT\" alt=\"\" /></a>"
  shift
done

November 18, 2014

Kelvin Lawrence - personal25 Years of the World Wide Web

I have been so busy that I am a few days late putting this post together but hopefully better late than never!

A few days ago, hard though it is to believe, the Worldwide Web, that so many of us take for granted these days, celebrated it's 25th anniversary. Created in 1989 by Sir Tim Berners-Lee , for many of us, "Web" has become as essential in our daily lives as electricity or natural gas. Built from its earliest days upon the notion of open standards the Web has become the information backbone of our current society. My first exposure, that I can remember, to the concept of the Web was in the early 1990s when I was part of the OS/2 team at IBM and we put one of the earliest browsers, Web Explorer, into the operating system and shipped it. Back then, an HTML web page was little more than text, images, animated GIFs and most importantly of all hyperlinks. I was also involved with the team that did some of the early ports of Netscape Navigator to OS/2 and I still recall being blown away by some of what I saw that team doing upon some of my many visits to Netscape in California what seems like a lifetime ago now!

 From those modest but still highly effective beginnings, the Web and most importantly perhaps, the Web browser, has evolved into the complete business and entertainment platform that it is today.


The Web, and open standards, have been part of my personal and work life ever since. I am honored to have been a small part of the evolution of the web myself. I have worked on a number of different projects with great people from all over the World under the auspices of the W3C for longer than I care to remember! I have done a lot of fun things in my career, but one of the highlights was definitely working with so many talented people on the original Scalable Vector Graphics (SVG) specification which is now supported by most of the major browsers and of course you can find my library of SVGsamples here on my site.

It is also so fitting that the latest evolution of Web technology, the finished HTML 5 specification was announced to coincide with the 25th anniversary of the Web.

I could write so much more about what the Web has meant to me but most of all I think my fondest memory will always be all of the great friends I have met and the large number of very talented people that I have had the good fortune to work with through our joint passion to make the Web a better and even more open, place.

Happy (slightly belated) Birthday Worldwide Web and here's to the next 25!

November 13, 2014

Kelvin Lawrence - personalAsian Tiger Mosquitoes

The weather has been unusually cold for the time of year the last day or so. I was actually hoping that if we get a hard freeze it will kill off for now the Asian Tiger mosquitoes that we have been overrun with this year. However I have my doubts as apparently, unlike other mosquitoes, their eggs, which they lay in vegetation and standing water, can survive a harsh winter. They apparently got into the USA in a shipment of waterlogged tires (tyres for my UK friends) some time ago and they are now spreading more broadly. They are covered in black and white stripes and look quite different than the regular "brown" colored mosquitoes we are used to seeing here. They are also a lot more aggressive. They bite all day long (not just at dusk) and even bite animals but definitely prefer humans. It has got so bad that we have had to pay to have our yard sprayed regularly almost all year so that we even have a chance to sit outside and enjoy our yard. These nasty little guys also transmit the chikungunya virus for which I currently believe there is no vaccine. It's not usually fatal but does have some nasty symptoms if you are unlucky enough to catch it. Here's a link to a WebMD write up on these little nasties.

November 12, 2014

Kelvin Lawrence - personalPink Floyd's Endless River - The End of an Era

I just purchased the new Pink Floyd CD from Amazon which includes a free digital download as well. I have been listening to it while I work today. Given the way the album was put together (using material the late Richard Wright recorded almost 20 years ago during the making of The Division Bell) much of the music is immediately familiar. I definitely also hear flashbacks to Wish You Were Here, Dark Side of the Moon and many other albums as well. It's mostly instrumental and there is a lot of it - four sides if you buy the vinyl version!! A lot of the music has an almost eerie tone to it - definitely a good one for the headphones with the lights off. It's a really good listen but left me feeling sad in a way, in a good way I guess, as much of their music has been the backdrop to the last 40 years or so of my life and this is definitely the end of a musical era as supposedly this is the last album the band plan to release. It has a bit of everything for Pink Floyd fans, especially those who like some of the "more recent" albums. Don't expect a bunch of rocking songs that you will be humming along to all day but as a complete work, listened to end to end, I found it very moving. Very much not your modern day pop tune and thank goodness for that!

October 26, 2014

Kelvin Lawrence - personalSeven years post cancer surgery

Today marks another big milestone for me. It has now been seven years since my cancer surgery. As always, I am grateful for all of my family, friends and doctors and every minute that I get to spend with them.

June 03, 2009

Software Summit June 3, 2009: The Finale of Colorado Software Summit

To Our Friends and Supporters,

In these challenging economic times, business has slowed, many companies have had to resort to layoffs and/or closures, and everyone has been tightening their belts. Unfortunately, Colorado Software Summit has not been immune to this downturn. As have so many companies and individuals, we too have experienced a severe decline in our business, and as a result we are not able to continue producing this annual conference.

This year would have been our 18th conference, and we had planned to continue through our 20th in 2011, but instead we must end it now.

Producing this conference has been a wonderful experience for us, truly a labor of love, and we have been extremely privileged to have been able to do well by doing good.  We are very proud of the many people whose careers flourished through what they learned here, of the extensive community we built via the conference, and of the several businesses that were begun through friendships made here. We treasure the friends we made, and we consider them to be part of our extended family. Just as in any family, we celebrated with them through joyous life events and grieved with them through tragic ones.

This is a sad time for us, of course, but not overwhelmingly so. It's sort of the feeling you have when your son leaves for college, or your daughter gets married. You knew it was coming someday, but it is here much sooner than you imagined, and the sadness is sweetened with the joy you had in all that has come before.

We have been privileged to have created a thriving community of friends who met for the first time at the conference, and we want that community to continue. We hope that all of you will stay in touch with us and with each other, and that the Colorado Software Summit community will continue as a source of wisdom and friendship to all of you. If you have ever attended one of our conference, we hope you will consider joining the Colorado Software Summit LinkedIn group as one means to keep in touch.

With our very best wishes for your future, and with unbounded gratitude for your support,

- Wayne and Peggy Kovsky -

All presentations from Colorado Software Summit 2008 have been posted.

May 18, 2009

Software Summit May 17, 2009: Additions to Preliminary Agenda for Colorado Software Summit 2009

We have posted additions to the preliminary agenda for Colorado Software Summit 2009, in two formats:

We will continue to post additions to this agenda during the coming weeks. Please check back here from time to time for additions and/or changes to the agenda, or subscribe to our RSS feed to receive notifications of updates automatically.

Presentations from the 2008 Conference

We have posted presentations for these speakers from Colorado Software Summit 2008:

Presentations from Colorado Software Summit 2008 will be posted periodically throughout the year.

May 03, 2009

Software Summit May 3, 2009: Additions to Preliminary Agenda for Colorado Software Summit 2009

We have posted additions to the preliminary agenda for Colorado Software Summit 2009, in two formats:

We will continue to post additions to this agenda during the coming weeks. Please check back here from time to time for additions and/or changes to the agenda, or subscribe to our RSS feed to receive notifications of updates automatically.

Presentations from the 2008 Conference

We have posted presentations for these speakers from Colorado Software Summit 2008:

Presentations from Colorado Software Summit 2008 will be posted periodically throughout the year.

April 26, 2009

Software Summit April 25, 2009: Preliminary Agenda for Colorado Software Summit 2009

We have posted the preliminary agenda for Colorado Software Summit 2009, in two formats:

We will continue to post additions to this agenda during the coming weeks. Please check back here from time to time for additions and/or changes to the agenda, or subscribe to our RSS feed to receive notifications of updates automatically.

Presentations from the 2008 Conference

We have posted presentations for these speakers from Colorado Software Summit 2008:

Presentations from Colorado Software Summit 2008 will be posted periodically throughout the year.