Index ¦ Archives ¦ RSS > Tag: exit review

Exit review: Emacs

A shocking time has come - I've given up Emacs, after using it for 20 years. When interviewing developers, one of the questions I ask is about their favourite editor. I don't care what the answer is, but I do very much care about why it is. An editor is a fundamental part of developer productivity, so I want to hear about the candidate caring about their own productivity and trying to improve it on an ongoing basis.

The irony is that I was using the same editor for decades. I did keep trying to find improvements, but never could. There are two sides to Emacs - one is as a competent & coherent editor, and the other is "living" in it. It has builtin web browsing, image viewing, email and news support, terminal emulators etc. I was never one of those.

Before Emacs I used vi. Its modal interface, small size, and availability on all systems make it a good tool. However it was text console only, and didn't do colour, menus, multiple files or other useful functionality. (It does now.) vi does have a learning curve - I estimate it takes about 4 years to be good with it, and 8 years to be an expert!

I had known about Emacs for a while, but it was text console only, and didn't do colour, or menus. Each attempt to use it left me frustrated with what amounts to another arbitrary set of keystrokes. (I've always been a cross platform person so I was also juggling keystrokes for other operating systems and applications.) A colleague (hi Jules) introduced several of us to XEmacs around 1995. It had a gui, and colour, and most importantly a menu system. It was no longer necessary to memorize a large set of new keystrokes, as the menus showed them. You could do everything without knowing any, and then pick up those you use often enough.

By the mid 2000s XEmacs was languishing, and Emacs was slowly catching up with the gui. More and more packages only worked with regular Emacs (there were small but growing incompatibilities). I eventually made the switch from XEmacs to regular Emacs.

There was an explosion in different file types I was editing: Python, C, Javascript, Java, Objective-C, HTML, HTML with Jinja Templates, JSON, matlab, CSS, build scripts, SQL, and many more I have forgotten. Emacs had support for most. Support means syntax highlighting, indenting, jumping around notable symbols etc. More packages were produced that did linting (looking for common errors), and various other useful productivity enhancements.

At the same time a new editor Sublime Text was introduced. It had fantastic new interaction (goto anything, projects, command palettes, multiple selections, distraction free) and a rich package system (written in Python - yay!) I kept trying it, but kept finding issues that affected me. Development also seemed to drastically slow, and since it was closed source there was no way for others to improve and update the core.

Meanwhile Emacs became more and more frustrating. The web (HTML, Javascript, CSS) is not a first class citizen. Not many packages were distributed with the core, and you had to copy crytic elisp code from various places, or use strange tools to try and get them installed and kept up to date. Then you had to do that on each machine. Heck the package repositories (eg MELPA) didn't even use SSL by default! My emacs configuration file kept getting longer and longer.

Ultimately tools these days are defined by their vibrant community, useful defaults, and easy to use extension mechanisms. Emacs has all those, especially in the past. But they are of a different era and different cadence.

I have switched to Atom. It had a rough initial exposure with performance problems, and the extremely dubious choice of being closed source. However both have been addressed. Just days before Atom 1.2 was released, I removed Emacs in favour of Atom 1.1. My configuration file is 10 lines long, and I get the same experience on every machine.

Category: misc – Tags: exit review


Farewell: Mario Kart Wii

Last week Mario Kart Wii online services went away. I am a fan of driving games and have had Mario Kart Wii since it came out in 2008. Most driving games only allow for perfection. If you take a corner badly or have a crash, then that is it. You'll have lost several seconds and have to start again for the position or time [1].

Mario Kart is very forgiving, using goodie boxes scattered throughout the tracks, containing random items. The closer to the front you are the more pointless the goodies are, while being further back gives the good stuff especially items that let you get closer to the front.

That all leads to a nice balance. Mistakes that lose position get you better goodies that let you recover. Players who aren't as good drivers also get opportunities to move up. You get three laps of hectic racing with everyone having a reasonable chance of a good scoring position. And the best driver can come last too.

The single player game, racing against the computer is ok but not that much fun. You need to complete various cups to unlock vehicles and characters. It just isn't that hard nor does the computer offer much challenge.

Online on the other hand is spectacular fun. You race against other people. Unlike the computer they do all sorts of unexpected things as well as cool tactics. This makes every race unpredictable and lets you use your own nefarious tactics. Fortunately Nintendo means there is no interaction with other players unlike the swearing, racism and misogyny reported on other platforms. Heck you can't actually tell it is even people other than they don't behave like the computer does. When playing you'll assign all sorts of motives to actions, be lenient or get revenge.

The engineering is impressive too. The players can be all over the world (and often are) which means it takes a while for position and speed information to be transmitted to all other players. Until later correct information arrives it has to predict where karts are to show you them right now. This is why you can sometimes think you hit or shelled someone but then nothing happens.

Online is what makes this game.

The Wii doesn't do code storage or online code updates, so Nintendo's developers had to get everything right first time for the CD. (By contrast Gran Turismo 6 for PS3 had updates every few days after release.)

There are two areas that Nintendo didn't get right. The first is balance - you expect characters and vehicles to be approximately equal. There are different attributes - eg one vehicle may have a higher speed, but lower acceleration or vice versa. These can still be balanced. Sadly they gave the bikes too much advantage, with the consequence being virtually all highest scoring players using a big player (eg Donkey Kong) on a bike.

The second area is the waiting. Each race is a multi-step process waiting to join a race, waiting for everyone else to join, selecting a track, waiting for everyone else to track select, waiting for the system to pick the track, waiting for everyone to load the track and then finally you get to race. A lot of this waiting could be combined to make the whole process be quicker.

Sadly near the end the distasteful topic of cheats came up. Some people reverse engineered what was going on and could for example shell every player as the race started, or avoid having anything affect them. Despite these "impossible" things happening, Nintendo never seemed to do anything about it.

So what is next? Wii U has a new Mario Kart coming out, but it isn't that good. And it costs over $300 because you have to buy a relatively unpopular system. I'm going to pass, and just remember the several years of multiplayer Mario Kart Wii for the fun it was.

[1]A notable exception is Excite Truck where you lose a fraction of a second in a crash, and even get points for how spectacular the crash is. When the game resumes you are still in the thick of the action instead of seconds behind in the dust.

Category: misc – Tags: exit review


Exit Review: Novell Bag

In the spirit of Bunnie's exit reviews I'm writing about a bag.

Photo of bag

In 2005 I happened to be passing the Moscone Center where lots of events happen, and spotted many people on the street with the bag. It turned out Novell's Brainshare conference was happening inside and that was amongst the swag being given out. The bag looked the perfect size to me and one was ordered online. In the almost decade since, that bag has been with me all over the world for both personal and professional trips and meetings, and has been perfect.

Size

It is hard to get size exactly right. I wanted something big enough to function as a carry on (eg some clothes, toiletries, books, electronics and laptop) but at the same time being small enough that it easily fits in overhead bins, cars, and with me when I am walking. This bag makes the tradeoffs and gets the size exactly right.

When other passengers have been made to weigh or measure their carryon, I've always been bypassed with the bag.

For my last two laptops I specifically made sure they fit in the bag (just). They were the Lenovo Thinkpad T61 (15 inch) and T430s (14 inch).

Wheels and extension handle
It has wheels at the front and a nice long extension handle. The handle has two vertical pieces which makes it very stable and easy to control.
Straps, grab handle
There is another decent sized grab handle on top, useful for pulling out of overhead bins or just moving the thing around. There are also two backpack style shoulder straps at the front, hidden behind a panel. Although I never remember using them - it was always wheels or grab handle.
Plastic bucket
You can't see this in the picture but the entire bottom is a large plastic bucket with the fabric over it. It is about 15cm deep. This means that if it ever ended up in water, the water would have to be quite deep to actually get into the bag itself. It is nice to be puddle proof.
Compartments

There are 3 compartments - not too many and not too few. At the back (closest to the camera) is a small compartment suitable for keys, documents, pens etc. There is a nice organizer inside for all these including a zipped pocket and quite a bit of space at the bottom where I would have things like spare contact lenses and an alarm clock.

The middle compartment is for laptops and has a nice padded pouch plus enough additional space for things like mice and power bricks.

The main compartment is suitably spacious. Even when full it kept its shape which meant you could still easily get the laptop in and out.

Side pockets
You can see one suitable for water bottles or rolled up magazines. It has a drawstring with a clamp to keep whatever is there from falling out. The other side has zipped pocket - perfect for ear plugs and eye masks.
Understated but sufficient colour
The black colour means it doesn't draw attention to itself, but the red trim and panel at the front made it sufficiently noticable that it would get lost in a sea of other black bags or get forgotten in a meeting room.

Sadly it broke earlier this year with the plastic near the extension handle folding over. This causes the main compartment to distort which then does the same to the laptop compartment rendering the whole thing broken (or at least significantly reduced capacity.)

It was the exercise of trying to get a replacement bag that made me appreciate just how perfect this one is. Sadly Novell don't sell the bag anymore, nor could I track down who actually made it.

During my shopping trips to get a replacement I found problems like:

  • Not having wheels
  • Too large or too small
  • Mismatched dimensions (eg really tall but comical lack of depth)
  • Nowhere to put a laptop
  • Designed to only take small Apple laptops (eg 11 inches)
  • Not having easily accessibly external pocket/compartment for travel docs and similar
  • No side pockets
  • Very inconvenient to take laptop in and out
  • Tendency to fall over
  • General lack of attention to detail

So far the JWorld Sundance (model RBS-19) has been the least worst replacement, and took a really long time to find.

Category: misc – Tags: exit review

Contact me