Loud ramblings of a Software Artisan

Monday 21 March 2016


Over the last holidays I plunged and started learning Rust in a practical way. Coming from a C++ background, and having a strong dislike of the whole concept of checking the correctness at runtime, like in, say, JavaScript, Rust is really promising.

With Rust, you get:

  • raw performance since it is compiled to native code, and no garbage collection to introduce a pause.
  • RAII (Resource Acquisition Is Initialisation) that allow a clear release of resources when going out of scope, one of the major feature I like in C++.
  • Strong typing, with inference (C++ finally got the auto keyword for that purpose) the right balance between over declaration and none.
  • Ownership strictly enforced, and this is where C++ lacks: the compiler strictly enforce ownership of data, making "moveable" and "immutable" the defaults, enforcing lifetime of reference (no pointers !).
  • Relative easiness to interface foreign function (like C) with Rust, offering clear unsafe code blocks.
  • Proper tooling for dependency management, building, documentation and built-in test support.
  • A clean macro syntax, unlike the C preprocessor.
  • Concurrent programming built into a the standard library and language.

Rust is not an object oriented language. Since it doesn't have inheritance it can only do polymorphism through traits, and it has generic types. Just a design choice that force us to rethink a bit and this is checked by the compiler. And many of these design choices are here to write safer code, code less subject to causing security issues like we find everyday lately, like very recently in libotr, git and a few others.

In short, I really see myself doing more stuff with Rust.

Tuesday 29 April 2014

Crazy idea: Decentralised bug tracker

Last week, over a nice diner in a nice Portuguese restaurant on "the main", I had a discussion with @pphaneuf about decentralised bug tracking. He had the idea first.

Since you have decentralised version control in the name of git (there are others), couldn't we have the same for a bug tracker? Using sha1 instead of bug name isn't much different as you could use the abbreviated form. After all, Mozilla has reached the 7 digits bug numbers now.

The idea I proposed was something like carrying that metadata in a secondary repository inside that would be linked - or even better, in a different branch. Also there would be an equivalent to cgit to serve this data in a web interface and probably a few new git commands. The bug repository could be skipped on check out for those who don't want it.

And here goes bug fixing and triaging in a European airport or luxurious hotel wifi with proper access to the whole history.

The idea sounds crazy, but I think it can work. Let's call it buggit.

And no I'm not coding it. This is just small talk. And I haven't done due diligence in searching if something already existed but I like crazy ideas.

Thursday 29 August 2013

Dead tree backup

QR Code
QR Code by lydia_shiningbrightly, on Flickr

This week I am at the Toronto Mozilla office. With Mike and Alan we were discussing information entropy and backups and devised the craziness of doing a hard drive backup onto paper, using QR Codes.

Alan and Mike did the math.

For one TB, it would take 44 trees, and at 20 pages per minute, it would take 123 days to print the 3.6 millions letter-size single sided pages, at 300dpi, in large-size, using the highest-redundancy QR codes.

Now you know how much information we create and how much it would take to make it last longer than the electronic device it is stored on.

Thursday 16 August 2012

Personal computing pioneers - part 2

In my previous post ''What happened to all the pioneers in personal computing?'' I forgot a few notable companies.

  • Acorn: I mostly forgot to talk about Acorn Computers, probably because Acorn computers were only popular mostly in the UK and were quasi unknown in France. The BBC Micro is their most popular 8-bit computer, released in 1981. But what came later was the game changing for the industry today. In 1987, they released the Acorn Archimedes, a 32-bits desktop computer powered with a RISC processor. It was faster than most of the competition like the Atari ST and the Amiga. Its CPU was the ARM (Acorn RISC Machine). This led to the spin-off ARM Ltd, that was in charge of the development of the ARM CPU. A partnership with Apple that wanted something for the Newton led to further development and the first license ; the RISC PC became the last generation of Acorn computer. Today, ARM is the most used CPU design for embedded systems: cell-phone, DSL routers, iPod, smart phones, PDA, iPad, etc. Acorn Computers moved on to build set-top boxes, after selling the RISC PC business, and in the end was absorbed into Broadcom in 2000 to become the DSL unit. ARM Ltd is now known ARM Holdings and license the IP for the ARM CPU to manufacturers.
  • Compaq: Compaq major achievement was to be the first manufacturer of 100% IBM compatible PC after they successfully cloned the BIOS via clean room engineering, 1982. The BIOS was the cornerstone of IBM PC compatibility as just running MS-DOS wasn't enough: the Disk Operating System has so little feature that programmers mostly called into the BIOS interruptions to write their applications. Phoenix Technologies who followed in 1984 offering their own BIOS clone. Compaq made the first 100% IBM PC compatible portable computer, and then manufactured lot of quality IBM PC Clones, including the first with an Intel 386, being ahead of IBM itself. After buying Digital Equipment Corporation, it was bought by HP in 2002 and the PC product lines were merged, where mostly Compaq products in the business line were rebadged HP.

As I was writing this second, post, Ars Technica published From Altair to iPad: 35 years of personal computer market share where they relate the 35 years from the Altair to the move to the iPad as a personal computing device.

Monday 6 August 2012

What happened to all the pioneers in personal computing?

The Commodore 64 is 30. The TRS-80 is 35. But what happened to all the pioneers of the Personal Computing era?

  • MITS. They made in 1974 the Altair 8800. It was a micro-computer sold in kit (or assembled), running the Intel 8080 processor. The first one ; it sold quite well, but was not, at first, usable out of the box as it didn't have software. Also it is the Altair that led to the creation of Microsoft who sold their BASIC to MITS. For Microsoft, we know the rest, for the Altair, the computer is almost forgotten, so is MITS, as the company got sold. One notorious clone of the Altair was the IMSAI 8080 ; if you have seen the movie Wargames (1983), you have seen one.
  • Tandy: The TRS-80 appeared in 1977 and become quickly one of the most popular PC, selling until being discontinued in 1981, replaced with the Model III. It was much cheaper than the Apple 2 and was widely available in the Radio Shack stores (several thousands in the US). Zork, the text adventure game was ported and released on the TRS-80 first. Tandy was so serious about making computers that they bought GRiD, and later started making IBM PC clones. Tandy sold off the computer division to AST in the early 90's. The TRS-80 was nicknamed Trash-80 probably because of all the quirks in its design.
  • GRiD Computing: GRiD is not that well known from the general public, but they were the first company designing laptop computers that were attach√©-case sized. The GRiD Compass was released in 1982 and was marketed to CEOs. The GRiD Compass 110 featured the clam-shell design so well known today that GRiD patented. In 1989, the GRiD Compass 1101 was the first laptop to fly on the Space Shuttle. GRiD also pioneered in tablet computing. They got bought by Tandy.
  • Commodore: The Commodore 64 was not Commodore first computer, nor their last, but was hugely popular, both in North America and in Europe, a best seller with between 12.5 and 17 Million units sold. It just celebrated its 30 years. In 1984, Commodore International founder Jack Tramiel left the company. After that, Commodore went on to buy a startup called Amiga Corporation to make the Amiga line of computers, that ended up competing with the rival Atari. The company filed for bankruptcy in 1994. Today the ghost of the Amiga still lives in the heart of fans and hobbyists. I wish my brother had preferred getting a Commodore 64 rather than a TI99/4A at the time.
  • Atari: The story of Atari is more convoluted. Atari Inc. was the company that sold the first video game: Pong. In 1979 they released the Atari 400 and 800 8 bits computers. In 1984, Warner Communication, Atari Inc. owner, sold off the home computing and console division to Jack Tramiel - Commodore International founder - to form Atari Corporation. This is how the Atari ST end up being released in 1985, competing directly with Commodore's Amiga. It was more popular in Europe, with Germany being the key market, than in the US. The whole line was cancelled in 1993, and in 1996, Atari reverse merged with another company, to be sold to Hasbro in 1998, mostly for the IP (game rights) and brand.
  • In Europe, there was Sinclair, Amstrad, etc. None of these make personal computers anymore.

So what is left from the pioneers?

  • Microsoft, that sold BASIC to MITS (and several other manufacturers including Apple), and later MS-DOS to IBM is still here, doing mostly the same thing.
  • IBM is still around, after launching the IBM PC in 1981, using Microsoft MS-DOS (and BASIC), they failed to gain traction in the OS market with the failed OS/2. IBM sold the PC division to Lenovo in 2005.
  • Apple, after the Apple 2 gained traction with the Macintosh they launched in 1984. After catastrophic mid-90's, they got put back on track and are now the number 1 laptop vendor in a market dominated by Microsoft Windows machines, and make the best selling smartphone, the iPhone.

Am I missing anything?

Update: part deux

Wednesday 12 October 2011

RIP Dennis M Ritchie

It is hard to write eulogies about people you have never met. Dennis M Ritchie's work has influenced me a lot in my tech field. UNIX and C were two of the main projects he worked on and two of the things from which I have been making a living. If it wasn't for them, I may not be working in software engineering.

Dennis M Ritchie sadly passed away today at 70.

The Economist has a good summary of Dennis Ritchie work. The article is from 2004, before iPhone, iPad and Android, which are the most popular consumer products that are based off UNIX.

I spent my professional life either fiddling with operating systems like AIX, BSD, iOS, Linux, MacOS X, Solaris, based on or derived from UNIX, or writing software in C, C++, Objective-C. Thank you Mr Ritchie for your invaluable contribution to computing.

Sunday 28 August 2011

I hate hardware

My Linux server rebooted spontaneously and then decided to kernel panic.

Running memtest off a bootable Gnome 3 Live USB system:

Diagnosis: dead RAM stick. With only one stick, memtest even crash on test 6, while the other just pass.

The good news is that the motherboard support single channel. The second good news is that it is lifetime warranty. Requested a RMA.

The bad news: I might have to return both as they are paired leading to eventually a longer downtime. :-/

Monday 26 April 2010

RIP Floppy disk

I can't remember when was the last time I actually used a floppy. I actually still have one machine with a floppy drive, and can't even tell whether it works or not.

Today Sony announced the death of the floppy. They were apparently the last manufacturer.

Time to let it go.

Tuesday 2 September 2008

Fail, etc.

Google get a Fail for their comic strip to present Chrome. It is simply unreadable on a computer screen because it is formatted to be in portrait orientation like in a paper book and not in landscape orientation like on a computer screen.

And the Reg has parodies, because not everything is a rant. :-)

Monday 10 September 2007


Done recently:

  • Read Motoral RAZR with Linux to see what could be done with only USB connectivity. Works great with RAZR V3 and V220. Ended up making a couple of rind tones for my phone. I still hate the software on this phone.
  • Experimented with boost::thread. Looks nice although the documentation seems to be a bit vague. I'll talk more about it when I wrangle it better. I like Boost, even though sometime g++ does not help.
  • Installed openSUSE 10.3 beta3 on the brand new X60 for work. This laptop clearly blast my personal one.
  • Welcome IBM, seriously ! Delighted by Michael's post.
  • Saw my workstation being gutted to replace the whole system board due to a fried USB. The Xeon "dual core"[1] look very small... much smaller than the fan / cooling unit that sits on it.


[1] I forgot the name

Tuesday 21 August 2007

Welcome to the 20th century

My cable TV provider allow me to select the channels "à la carte" using their website. Apparently, even their computer system seems to have business hours:

Self-service is currently unavailable.

Hours of operations are:

   * Monday to Saturday, from 7 :00 AM to 11 :00 PM.
   * Sunday from 10 :00 AM to 11 :00 PM.
We apologize for the inconvenience.

This time I'm annoyed. It is so 20th century.

Monday 23 July 2007


My laptopThinkpad Z60t display Fan error on boot.

Huge suckage.

Google does not help. Screwdrivers might.

Oh dear Lazyweb all mighty, save my soul an show me the answer!

Update: looks like a good ol' smack and it is good to start again, not without coughing a lot of dust. Thank you lazyweb

Tuesday 27 March 2007

Keyboard layouts

Thomas: concerning keyboard layouts, I myself ended up using US layout exclusively (British work fine too). The French layout also has shift for digits, and start with AZERTY on the top row. It all came back to the time I was given, at work, an old laptop with a British keyboard. Reluctant at first, I got used to it and actually found it actually very useful for programming. The only problem I had at one point was to get accents on a US layout, but fortunately configuring right-Alt to be compose works pretty well, while the British layout, at least on RH 6.2 (I was using at that time) had Alt-Gr to provide a few dead keys for diacriticts. Actually the compose setup is better than the French keyboard because I can access even more combinations of diacritics/letters.

And for my Canadian readers, I have to point out that the French keyboard layout I'm talking about has nothing to do with the Canadian-French we find here which looks marginally more convenient.

Once again the choice of keyboard layout is a matter of tastes and habits.

Wednesday 3 January 2007

Customer dis-service

So my IBM/Lenovo/Thinkpad[1] battery is still not in after 3 weeks. Richard I think that the problem you are experiencing clearly show a leveling down of the quality that is also affecting the Thinkpad line, the one that still has IBM on the label and for which you call IBM.

Note that the supervisor at the PC hotline told me it was because of the huge Sony battery recal (hint, my battery is a Sanyo), etc. But yesterday I called in I got a representative that told me there was an attempt of delivery with the wrong address last week. Wrong address He took note of the address again and told me it was fixed with the courier and that I'll get it today Wednesday. But no. I checked with the tracking and it was still waiting for a new address. Bottom line I won't get it before tomorrow.

So not only IBM/Lenovo/Thinkpad are incompetent, even more they lie to you.


[1] who knows who does what today

Saturday 23 December 2006

Why I won't buy Thinkpads any more...

Since Clare is looking for a new laptop to buy (part 2), I thought it should give my opinion. It just happen to be related to a currently unsolved problem of mine.

In the past I have always had a good success with IBM Thinkpad laptops and everybody in the Linux community were praising them for how well they ran on Linux (more or less some details as usual), including with the consistent ACPI bios and the quality of the keyboards.

Exactly a year ago I bought a Thinkpad Z60t to run exclusively Linux. This laptop caries an IBM logo and you get IBM Canada on the phone, but it is a Lenovo. This would all be okay, but no. Here is the list:

  • they don't refund the unused software even though the country they sell the computer in has something about that. I guess that's like every big corporation they just take the law as a guideline, and the government just don't care. They also charge for you to get the media that would erase your hard drive to allow you to get back the original software that was preloaded (this is not specific to this brand).
  • they are unable to provide the proper product description: they said Intel wireless and I end up to have to compile a binary driver. At that point I should just have returned the laptop. After all the advertised Intel Wireless took part of the process of choosing the laptop. (picture proof)
  • they changed the AC adapter and the battery. So you can't use standard IBM replacement or at least the old one. Apparently all new Thinkpad seems do be like that. So be it, but you lost one of your advantage.
  • there is a screw to hold the AC adapter, that I ended up "losing" (I found it every time). That shouldn't just happen to have to screw things back.
  • the battery is now dead. By dead I mean it say it is charged, and if you unplug the AC adapter, the laptop just turn itself off.

But what makes me so angry? The battery. I called the IBM hotline, and once we addressed the warranty expiration (because they didn't get the information from the reseller), they were supposed to send me a battery. In short, I call Tuesday, fax the information on the Wednesday, and from that they were supposed to ship me a battery. On the Monday still nothing, I call in, and got told that parts are "on order" and won't be shipped before the Wednesday 20th. It take 1 to 2 days to get them, so on the Friday I called and still nothing. WTF? Don't promise to deliver something you can't deliver. I call that dis-service.

One thing is sure is that I won't be buying IBM/Lenovo anymore. This issue is simply ridiculous (unfortunately I don't know what I will be buying, but unless I have to replace the current one, it is unlikely to happen anyhow).