CES 2014

An $1,100 walkman? Seriously? (TheVerge). This is the router I want. Full speed for my iPhone 6 Plus! (TheVerge). Quantum dots are a way to make the colour gamut of LED TVs almost as good as OLED TVs. But not quite. (TheVerge) Now you can let your car park itself in a parking garage, and summon it when you’re ready to go. It’s like having valet service. (TheVerge) Autonomous cars are trending I think. (CNet). “Works with NEST” is a thing. (CNet) Mercedes has a concept autonomous car. (PCMag) AT&T shows prototype of tech that [Apple released last year][8] – phone calls routed to your laptop/desktop machine. ([PCMag][9]) Now you can have an app for your WiFi-enabled kettle. ([PCMag][9])

[8]: http://www.ibtimes.co.uk/apple-allows-you-make-phone-calls-your-laptop-1450954

Autonomous Vehicles

In November 2013, my boardgaming group had a driveway-discussion about self-driving cars. We started making predictions. We followed up in email. So here is a summary of those discussions/emails. One thing we came up with were the 4 predictive questions below. I thought more people answered them though. If you add your answers in the comments, or email them to me, I’ll add them inline.

John and Reid

  1. How any years (which year) until you can get a car that is capable of driving 100% of any journey?

    • John P: 30 (2033)
    • Reid: 16 (2029)
  2. How any years until you can get a car that is capable of driving 100% of a journey?

    • John P: 10 (2023)
    • Reid: 10 (2023)
  3. How any years until you can buy an autonomous (by almost any definition) vehicle for less than $75k.

    • John P: 10 (2023)
    • Reid: 10 (2023)
  4. How any years until autonomous cars replace subways/busses/LRTs?

    • John P: 25 (2036)
    • Reid: 20 (2033)


I think the big hurdle for full autonomous cards will be the last 2-5% of situations.

I think the huge challenge will be like for aeroplane auto-pilots. The cars will be capable of driving themselves almost all the time, but if they let the cars do that, the humans will be utterly unprepared for the 2% of the time they’re needed.

I could see it getting really awkward somewhere around 2025. I’m hoping by 2030 or so they’ll actually have truly autonomous cars, but I’m trying to think if there’s any activity today, no matter how simple, where we let computers have that level of autonomy. Even automated parking lots have one human attendant. Actually, I think I do have an example.

I’ve read about highly automated warehousing (usually ship-related) where humans are confined to specific areas. It does depend somewhat how you define autonomous. I think it will be a long time before someone without a driver’s license will be allowed alone in a moving car.

However, I fully expect 30% of our driving to be autonomous (in new vehicles) in 10 years, and 75% in 20. There’s no need for a human in stop-and-go traffic, plain-old highway driving, etc What’ll be interesting is when it becomes legal for the “driver” to be distracted (i.e. watching a video) while “driving” while automation is in control. Any bets as to when the legislation is passed in Ontario?

Scott M

Jan 9, 2014

Not gonna happen in our lifetime. It will take just ONE lawsuit by the family of a child pedestrian killed by an autonomous car because of a “software” glitch.

I’ll bet my left testicle (the right one is my favourite) we won’t see autonomous vehicles in our lifetime.

Dec 24, 2014

Driverless (ie: self-driving) cars prediction? I’d say 25-50 years before they’re “legal” everywhere in North America, at the EARLIEST. Hell, we don’t even have self-driving subways, LRTs, and trains, and those things are on tracks! Geeks/Nerds (and I include myself in that group) tend to, I think, be far too optimistic when it comes to SOME new tech. There’s a TON of work to do before I’ll trust a computer system to propel a 3,500 to 4,000 pound vehicle at 100kms per hour down the highway. But that’s just me. And get off my lawn!

John C

So autonomous vehicles will become popular in less litigious countries; and when eventually it makes economic and political sense, insurance companies and automobile manufacturers will lobby to get legislation passed in each U.S. state preventing such lawsuits.

Andy B

Robotic drivers are inevitable because $.

If a professional driver costs $45K a year, and a robotic kit costs $15K, then the robot pays for itself in 4 months, and will never want pensions, sick days, vacations or to join a union.


I think as soon as insurance companies see the stats on autonomous cars (autocars), they will ram them down our throats, much the same way they did seat belts. The same thinking applies: if autocars save lives, make them mandatory.

The Scarborough RT has been autonomous since it started in 1985, but the unions pushed a requirement that a driver be onboard. Toronto is the only place that has a driver for this model of train. The Vancouver SkyTrain and the Detroit People Mover are the same model but have no drivers on board. There are trains elsewhere that have been autonomous for years. Why do you think autonomous cars will have higher accident rates than people? People fail and have accidents all the time.

to which Craig retorted:

Those aren’t autonomous, but automated, controlled centrally. Just something you do with transit systems. We’re getting that on the Yonge line in the next few years, and the Montreal Metro is going that way too.

John B

I am not sure autonomous vehicles replace subways. Even driven better you couldn’t replace the Yonge or Bloor St subways with cars, let alone the London Underground or New York MTA! too many people trying to get into a densely packed destination area. Buses there is a stronger case-ie where the fundamental route density is much lower. It might be LRTs in fact that buses will reduce the need for — those sort of intermediate route densities.

Indeed in cities like Atlanta the minivan solution has always seemed to me to be a good one — 5-8 commuters in a vehicle, perhaps picked up at local shopping mall parking lots (where there is ample parking). AVs in Toronto say seem first and foremost to be a partial amelioration of the 401 problem, ie a road which cannot increase its capacity, but needs to. Which is why they will be tried in California first– there’s no way Los Angeles or Silicon Valley will ever be primarily public transport driven.

The other thing AVs will do well is as you suggest, ie in the dispersed point to point market (we all live in suburbs, and drive to other suburbs to work and shop) — think modern Atlanta. Perhaps the greatest threat to public transport is simply that we commute less: already UK train operators have made comments that the drop in Friday and Monday traffic is noticeable (but when the recession started, ridership picked up!, people thought it prudent to not be ‘working at home’ where the bosses couldn’t see them).

Since public transport is all fixed cost infrastructure, that could really ruin the economics (to be honest the Toronto, NYC and London subway systems are so full even outside of rush hours I don’t see it as a big threat). There is also some evidence that Americans are just driving less (Vehicle Miles Travelled has fallen since 2006) perhaps because one shopping mall looks pretty much like another, and you can see your friends on the internet– ie there is just less need to drive if it does not take you anywhere different. Over to Justin B on all this.

Justin B

The travel density found in central business districts was created with the technological revolution of the 1890s: all those hives of people working in offices. As long as we need to have so many people working together at once, we’ll need mass transit; and the examples John mentions demonstrate the need even for recreational purposes in these cities.

Transport economics is a weird thing. You can’t run a transit system for profit unless private vehicles are not available; but you have to keep the transit system running with public subsidy unless you want transport problems to take over and kill the city; it’s almost as vital as clean water and proper garbage disposal. Well maybe bicycle usage on the scale of big Chinese cities in the 1970s could be another option…

Wikipedia Predictions

Wikipedia used to maintain predictions at this location. It was removed, but thanks to the eternal history of Wikipedia, here is a link to the last entry, which is included among the summaries below.

As of Jan 9, 2014

  • By 2014, Volvo expects vehicles that can be autonomous at up to 31 miles (50 km) per hour, with expected use in heavy traffic.
  • By 2014, Israeli company Mobileye expects to release semi-autonomous car technology.
  • By 2015, Audi plans to market vehicles that can autonomously steer, accelerate and brake at lower speeds, such as in traffic jams.
  • By 2015, Cadillac plans vehicles with “super cruise”: autonomous steering, braking and lane guidance.
  • By 2015, Nissan expects to sell vehicles with autonomous steering, braking, lane guidance, throttle, gear shifting, and, as permitted by law, unoccupied self-parking after passengers exit.
  • By Mid-2010’s, Toyota plans to roll out near-autonomous vehicles dubbed Automated Highway Driving Assist with Lane Trace Control and Cooperative-adaptive Cruise Control.
  • By 2016, Tesla expects to develop technology that operates autonomously for 90 percent of distances driven.
  • By 2016, Mobileye expects to release fully autonomous car technology.
  • By 2018, Google expects to release their autonomous car technology.
  • By 2020, Volvo envisages having cars in which passengers would be immune from injuries.
  • By 2020, Mercedes-Benz, Audi, Nissan and BMW all expect to sell autonomous cars.

As of Dec 25, 2014

  • In late 2014, Volvo will feature Adaptive Cruise Control with steer assist which will automatically follow the vehicle ahead in queues. Mercedes already has it on some markets.
  • In late 2014, The National Telecommunications and Information Administration is expected to set recommendations for setting aside broadband spectrum for autonomous cars.
  • By 2015, Tesla says its cars will “probably” be capable of autopilot for 90 percent of miles driven, and definitely so for highway miles. This feature combines automatic lane change, adaptive cruise control, and sign recognition to regulate speed and location.
  • By 2015, California will allow the testing of vehicles without wheels or pedals such as Google’s on public roads. This will follow a 120-day grace period after a rule to be introduced in late 2014.
  • By the mid-2010s, Toyota plans to roll out near-autonomous vehicles dubbed Automated Highway Driving Assist with Lane Trace Control and Cooperative-adaptive Cruise Control.
  • By 2016, Audi plans to market vehicles that can autonomously steer, accelerate and brake at lower speeds, such as in traffic jams.
  • By 2016, Mercedes plans to introduce “Autobahn Pilot” aka Highway Pilot, the system allow hands-free highway driving with autonomous overtaking of other vehicles.
  • By 2016, Mobileye expects to release hands-free driving technology for highways.
  • In 2016 (2017 model year), GM plans to offer a “super cruise” feature on select Cadillac models, with autonomous lane keeping, speed control, and brake control, so that parts of trips can be made without touching the wheel or pedals.
  • By early 2017, the US Department of Transportation hopes to publish a rule mandating vehicle-to-vehicle (V2V) communication by an as-yet unspecified deadline. GM says that by the 2017 model year, the Cadillac CTS will be V2V equipped.
  • Between 2017 to 2020, Google believes its Level 4 self-driving cars will be available to the public.
  • By 2018, Mobileye expects autonomous capabilities for country roads and city traffic.
  • By 2018, Nissan anticipates to have a feature that can allow the vehicle manoeuver its way on multi-lane highways.
  • By 2019 or 2020, Tesla expects that “true autonomous driving” where passengers can “get in the car, go to sleep and wake up at your destination” will be achieved.
  • By 2020, Volvo envisages having cars in which passengers would be immune from injuries. Volvo also claim vehicles will effectively be “crash free.”
  • By 2020, GM, Mercedes-Benz, Audi, Nissan, BMW and Renault all expect to sell vehicles that can drive themselves at least part of the time.
  • By 2024, Jaguar expects to release an autonomous car.
  • By 2025, Daimler and Ford expect autonomous vehicles on the market.
  • By 2025, most new GM vehicles will have automated driving functions as well as vehicle-to-vehicle communication technology.
  • By 2035, IHS Automotive report says will be the year most self-driving vehicles will be operated completely independent from a human occupant’s control.

As of May 14, 2016

  • In 2014 Raj Rajkumar, director of autonomous driving research at Carnegie-Mellon University said that the artificial intelligence necessary for a driverless car would not be available “anytime soon” and that Detroit car makers believe “the prospect of a fully self-driving car arriving anytime soon is ‘pure science fiction.'” – Slate
  • By 2017, Mobileye expects to release autonomous capabilities for country roads. – YouTube
  • By 2018, Mobileye expects to release autonomous capabilities for city traffic as well as capabilities where driver is not required to be alert – YouTube
  • By 2018, Nissan anticipates to have a feature that can allow the vehicle manoeuvre its way on multi-lane highways. – ComputerWorld
  • By 2018, Baidu plans to release its fully autonomous system. – SCMP
  • By 2018, Elon Musk expects Tesla Motors to have developed mature serial production version of fully self-driving cars, where the driver can fall asleep. However, he expects they would be allowed only some years after that, due to regulatory issues. – CBC
  • By 2020, Volvo envisages having cars in which passengers would be immune from injuries. – Volvo
  • By 2020, Audi, BMW, Daimler AG, Ford Motor Company, GM, Google, Kia, Mercedes-Benz, Nissan, Renault, Tesla, and Toyota all expect to sell vehicles that can drive themselves at least part of the time. – Auto Guide

External Links Dec 10, 2012


open source hardware-based drone autonomously delivers Mexican food The good folks at Darwin Aerospace have figured out how to use drones to parachute burritos directly onto your property. They await pending FAA reforms before they can go into business

The Car Connection Jul 17, 2013

According to AutoNews, most of the experts on that panel — including representatives from Honda, Nissan, and the University of Michigan — agree that the technology to create self-driving vehicles already exists. We would agree.
Many of the systems crucial to autonomous vehicles — systems like brake-assist, lane-assist, and adaptive cruise control — can be found on many of today’s cars. Vehicle-to-vehicle technology isn’t available just yet, but it’s evolving rapidly — and Google’s autonomous car has done just fine without it anyway.
What’s lacking is public trust, and frankly, that’s unlikely to exist until everyday consumers
(a) become aware of autonomous vehicles and
(b) become convinced of their reliability
May 3, 2013:
On the consumer-acceptance front, Continental plans to introduce automated systems gradually, with fully autonomous driving by around 2025

Gizmodo Nov 13, 2013

Lettuce Gaze Upon the Future of Agriculture The Lettuce Bot is a tractor-towed device that images a row of plants as it rolls past and compares the visual data against a million-point database of other pictures of lettuce (which must have been super exciting to compile) using a custom designed computer-vision algorithm. It’s reportedly 98 percent accurate


These Autonomous Dump Trucks Let Mines Operate Around the Clock At Suncor Energy’s open pit Steepbank mine north of Fort McMurray in Alberta, at least one automated heavy hauler—similar to the unit Komatsu sells below—has already begun operating as part of a limited test. Instead of a driver, the massive truck relies on an array of wireless networks, laser rangefinders and GPS tracking to stay on course.

pre-WWDC 2014 wishlist

  • Last year Apple released a new SDK for games, GameKit. This year I’m hoping they will announce either an update to Interface Builder for game-building, or a new separate utility with which to design levels etc, akin to SpriteBuilder.
  • An upgrade to Xcode’s Edit->Refactor->Rename functionality, perhaps allowing a change to the types in the signature of the method/property in question would be welcome.
  • Integration of TestFlight capabilities into Xcode, given the recent purchase of TestFlight.
  • Perhaps upgrade the Xcode iOS Simulator to use a laptop’s webcam when simulating the iPhone camera
  • Better git integration, a la SourceTree

Bart’s article “svn-branches-in-git”

The original URL of Bart Trojanowski’s article is www.jukie.net/~bart/blog/svn-branches-in-git, but that site now seems permanently gone, so this version of that post is copied from the Internet Archive at web.archive.org/web/20130119234635/http://www.jukie.net/~bart/blog/svn-branches-in-git.

I must say that I am no fan of SVN, but SVN and I get a long a lot better since I started
using git-svn. Long ago a good friend of mine, Dave O’Neill, taught me how to handle
multiple branches using git-svn. I had used that technique until Dave taught me how to do it better.

Recently I saw this blog post which referenced Dave’s article talking about the first method. I guess Dave never got around to updating his blog with the better way. So I am going to do that here:

A few of my clients use SVN. Some I am guilty of introducing to SVN. But for this post
I need to give you an example that you can follow along with. So let’s use
shell-fm — my favorite last.fm
client — with an SVN repo located at svn://nex.scrapping.cc/shell-fm.

NOTE: You should use a modern git release. If git --version is older then 1.5.3, you need to upgrade.

Let’s start by cloning this repository using git-svn:

    $ git svn clone svn://nex.scrapping.cc/shell-fm -T trunk -b branches -t tags

NOTE: if you have commit access you may want to modify your svn:// url appropriately.

UPDATE: --stdlayout is a short form for -T trunk -b branches -t tags, and new versions of git-svn support it.

This process will take longer then an svn checkout would… a lot longer. There
are two reasons for this. (1) you are getting all the history of the project, and
(2) SVN has a very slow protocol for this purpose.

Anyway, once it’s done (it took me about 5 minutes) you will have a directory called
shell-fm with the contents of trunk checked out in it. If not for the fact that the
.svn directory is replaced with a .git directory you would have thought that you were
using a slower SVN.

Enter into your new repository and you will see that you have a master branch that is,
by default, following trunk.

    $ git branch
    * master

This is not a git tutorial
or a git svn tutorial; but I should at least show
how to update your tree, and commit to upstream.

I would like to insert here an advanced topic of packing your repository. I don’t want to explain
it here, see the [man page], but trust me it will make your git experience much more enjoyable
if you run the following once in a while:

    $ git gc

Now, to update your working tree to the latest of the branch you are currently tracking, you would run:

    $ git svn rebase

This is similar to svn update. There are likely no updates available now, so this will
do nothing.

Next, if you want to share something with the upstream svn server you would run:

    $ vim source/main.c
    $ git commit -m"this is a test" source/main.c
    $ git svn dcommit

This is similar to svn commit.

Now, let’s look at these branches I was promising:

    $ git branch -r

Each of the above is tracking a remote branch in SVN, except for trunk which is tracking trunk.
When you run git svn fetch all branches will be updated, and new branches on the remote
will be added. git svn fetch fetches the updates with out modifying the local working files
(which git svn rebase would). git svn fetch mimics standard git fetch behaviour with an
upstream git server.

Working off remote branches is usually done on local topic branches — that is to say, not
on master — but you can use whatever you want as git-svn doesn’t care.

Let’s thus create a new branch for fixing a mythical bug on the 1.2 branch.

    $ git checkout -b fixing-bad-1.2-bug 1.2

Almost immediately, and without server interaction, we get a checkout of branch 1.2
contents. You can see where you are with:

    $ git branch
    * fixing-bad-1.2-bug

If you carefully inspect output of git log you can see that git-svn reveals
the branch name and upstream SVN commit ID on the last line of each commit:

    $ git log -1
    commit 308244b0d275db460e3b4527afd51258cece4d33
    Author: strogg <strogg@7df44517-d413-0410-91cf-82ca28b36b55>
    Date:   Thu Sep 13 19:39:51 2007 +0000

        This is a patch from Wisq to make shell-fm accept 302 redirects as well as 301.

        git-svn-id: svn://nex.scrapping.cc/shell-fm/branches/1.2@252 7df44517-d413-0410-91cf-82ca28b36b55

We are on branches/1.2 commit id 252. If you prefer it, you can even get the
svn style log output with git svn logbut why?

Working on this branch is as easy as working off trunk. You edit, commit, and git svn dcommit to upstream.

Switching between your local branches is easy…

    $ git checkout -f master
    $ hack hack hack
    $ git commit

    $ git checkout -f fixing-bad-1.2-bug
    # and we're back on 1.2 bug fixing

Note that you don’t have to push your commits back to upstream immediately, or ever for that matter, to
make use of the git repository to store your local changes. But if you do decide to you just need to
run git svn dcommit.

If you’re interesting in migrating CVS to git, have a look at the CVS to git Transition Guide.

iOS 4.2.1 Download links

Handy for people jailbreaking with the Greenpois0n..

These are the Apple links to iOS 4.2.1 for each specific device.

If you wanted to upgrade to these, you would hold down the alt/option key when clicking on the “Upgrade” / “Restore” button in iTunes. This brings up a file dialog where you can choose the file to be used.

Best of Breed

At work I’m involved with setting up some new infrastructure, and I thought I’d write up what I am finding as well as solicit advice from others. We need what most development shops need, all of it company-wide and cross-platform (Mac, Windows):

Source Control — Git

This is pretty straightforward. We were using Subversion and are moving to Git.
There are other distributed source systems around like
etc. but git is the clear winner in terms of power, extensibility, space and speed.

Source Hosting — Gitorious / GitHub

A little less straightforward. I honestly thought Github was a good choice, but an almost-as-good choice if you want to keep your code inside the company firewall is Gitorious, which is kind of an open-sourced Github that you can deploy for free.

Unfortunately, Gitorious is a beast to set up, with its many dependencies, some at specific versions.

Fortunately, TurnKeyLinux is on the verge of releasing a Gitorious VM appliancet. I’ve gotten a server running using some pre-release patches (you can see progress on the TurnKey Linux forums).

Bug Database

No clear winner here.

  • Bugzilla is a mainstay, but can be a beast to administer.
  • Trac has great integration with source and wiki, but is a bit limited.
  • Redmine seems ok, but has a very busy interface (all those fields!).
  • Mantis isn’t bad.

Build Machine

Every time someone checks code in, a build should kick off.
Additionally, some testing should be done.
If checkins are frequent enough, simple unit test are enough,
with full regression tests saved for the nightly builds.

Code Review

Ideally, code checked in must be reviewed before it is accepted into the tree.

  • Gerrit is often mentioned, but it runs on Java.
  • CodeCollab is really good, but commercial.
  • Gitorious has a method involving checking code into a temporary branch, which is reviewed and then merged with the trunk/current branch if it passes muster. Haven’t tried this much though.


Having a central wiki, editable by all the developers is essential to a good dev community, even within a company.

  • MediaWiki, the heavy hitter.
  • Twiki, a popular, light-weight wiki.
  • Gitorious has a built-in wiki.
  • Redmine has a wiki.
  • Trac has a wiki with good source integration

dealing with git on Windows

I am using git
under Cygwin,
and have both the Cygwin version of Git and the more broad,
Windows version of git installed.

Why have both?
Mostly because each has a problem that the other does not.
Cygwin git (as of version crashes when I do a
git svn rebase“,
while Windows git cannot do
git instaweb“.

Maybe Cygwin git will get updated to not crash, or someone will add “instaweb” to Windows git. Until then, I use both. I differentiate by typing “git.cmd” when I want to use Windows git, and just “git” for Cygwin git.

Maybe I should just make a nice short alias to do “git.cmd svn rebase” for me..

Rogers & bandwidth

A quick note about Rogers bandwidth restrictions. Here’s what you get:

Rogers bandwidth rates as of January 2010
kbps down kbps up GB cap effective
cap as % of
Ultra-Lite 500 256 2 6.1 1.22%
Lite 3000 256 25 76 2.53%
Express 10000 512 60 182.4 1.82%
Extreme 10000 1000 95 288.8 2.89%
Extreme Plus 25000 1000 125 380 1.52%
Ultimate 50000 2000 175 558.4 1.12%

Now if you’re using Tek Savvy, and use their unlimited package, you don’t quite get 100% in that last column, but you get a damned site more than you do with Rogers or Bell and their hellish bandwidth caps.

They say you get what you pay for. With Bell & Rogers you get a whole lot less than you do with other providers..