Preventing “Forgotten Baby” Deaths

Maybe being a father of a couple of young kids, one of whom is still riding in the rear facing infant car seat makes the recent stories of babies dying when they were accidentally left in the car all day when their parent (apparently most often their father) forgets to drop them at the day care in the morning worse, but it strikes me there ought to be something that technology can do to make this less likely. 

Low Tech Ideas

I read about the shoe trick the other day, and while it is clever, I don’t see it being foolproof. The one day you are rushing you will forget to place the shoe in the back too, and those are the most likely days you will forget the baby. Not to mention that it relies on you driving an automatic car. Those with a clutch pedal, will probably want to keep their left shoe on as well while driving.

Similar ideas exist using bags, or other items you are likely to remember, but realistically I think they all suffer from the same flaw, that they will be forgetten on the days when they are most needed.

I am also mystified why day care places don’t call to find out where their charges are when they don’t arrive on time and they haven’t been told not to expect them that day (I should actually check what my toddler’s preschool would do if he didn’t turn up and we hadn’t called to let them know).

Finally, for the low tech options, I read another suggestion that doesn’t rely on the day care place calling, but instead just has the parent who drops the kid off call (or I guess text if you prefer) their spouse to confirm the drop off. If the spouse doesn’t get the message at the expected time they can call to find out why.

A High Tech Idea

I have this little red low energy Bluetooth (BLE) device at home that is a demo/developer device for the Texas Instruments BLE chipset contained within it. This little gadget comes with a number of features that would be useful for building a baby seat alarm.

The basic idea is simple:

The device beacons continually indicating whether or not it detects a baby in the car seat. Any nearby BLE device can hear those beacons and will be able to react to them.

The parent either has an app on their BLE enabled smartphone (all recent iPhones and most, if not all, recent Android phones have support for this) that can listen for these beacons, or they have a complementary BLE gadget on their car keys that is paired with the baby sensor.

Now the clever part. One feature of the BLE spec is the ability to determine the approximate distance between the two devices. If the parent unit (app or key fob), detects the distance between it and the beaconing car seat increasing while the seat is occupied it can sound the alarm. Immediately reminding the parent that the child is still in the car seat.

Sensing the Child

There are baby seat alarms already on the market, but a study by the National Highway Traffic Safety Administration in July 2012 found none were that reliable. The devices in the study that sensed the child were mostly based on either a pressure pad under the car seat cushion, or a replacement chest clip for the car seat’s restraint. One was using carbon dioxide sensors integrated into the car to sense a breathing baby (or animal) left in the vehicle.

The pressure pads all suffer from being able to move, or having the child move off of them by shifting in the seat. The clips seem like they should be better but in the NHTSA testing seemed to have problems staying synchronized with the parent module. Also, as the report indicates, not all the deaths are from children in car seats. Some are from children who climb into the car themselves to play and then get stuck inside.

The TI Sensortag contains an array of sensors, most of which are irrelevant for this application (barometer, gyroscope etc). But, there is an IR temperature sensor behind that opening in the front of the device which functions a bit like the IR motion sensors username alarm applications. If the sensor is positioned where it can “see” the child, the IR sensor should be usable to indicate the presence of the child in the seat. The parent app can then arm itself and alert when it moves too far from the seat sensor.

Just an idea, and clearly it needs a little more experimentation and even a prototype. And then I think it would make an awesome Kickstarter/IndieGoGo crowd funded project.

An Alternative

If the IR sensor proves to be too difficult to make reliable, there is perhaps a simpler option: a tag bracelet that the baby wears and another that stays in the car. When the phone sees both tags, it arms. When the baby is dropped off, there will be a period of time when it sees just the baby tag, and then just the car tag again. If it starts moving away from the car tag and the baby tag at the same time, it can sound the alarm.

To avoid forgetting the baby tag, the app can also alert the user when it sees the car tag and not the baby tag; forcing the parent to confirm that the baby is not in the car for this trip before they set off.

United In-Flight Entertainment

Two planes, two different in flight entertainment systems, and two completely different experiences. On the way from San Francisco to Houston last week our flight was on a new 787 Dreamliner. Today’s return (where I am writing this) is on what appears to be a relative new 737. The in flight entertainment systems on the two aircraft were completely different.


The 787 is obviously designed as an international route aircraft, and its in flight system was filled with a great selection of movies, new and old, as well as TV programs. While there was also audio, I did not check that out on our flight.

The large seat back touch screens made for a very simple selection process and there was no fee for any of the programming, or the flight information/map. There was also a USB power outlet right there under the screen in case you needed to charge anything up (as well as 110VAC outlets between the seats).

The only real negatives I have for the system were the headphone jack being located under the screen instead of in the armrest, leaving the wire permanently in the way, and the lack of any tilt option left the screen at an angle when the person in front reclined their seat. It was still viewable at that angle unlike some of the earlier seat back screens which suffered from very limited viewing angles.

B737 DirecTV

The system on today’s 737 is a DirecTV one. As on the Dreamliner, there are reasonably large seat back screens, which tilt in this case, but they are not touch screens. The controls are located in the arm rest. In addition to a range of DirecTV satellite TV (live), there were also a handful of current movies and an in flight map channel on the system.

Unlike the Dreamliner system though, this one would have cost us around $8 to enable for our almost 4 hour flight (over $2/hour). There is a discount for enabling three or more screens, but still that is an expensive option for some in flight TV. Even more bizarre, the map is not available unless you pay the fee either; only the United Welcome channel, essentially a stream of ads, is available without payment.

The other negative, and I can only assume they never tested this system with real passengers, is that the controls have been inexplicably installed on the top surface of the armrest, almost exactly where my elbow rests. That means I am frequently pressing one of the buttons on the controller. While having the controls on the side of the armrests is not idea from the perspective of people seeing them, placing them on the upper surface of an armrest is even worse. The controls themselves are tiny, and could easily have been located next to the screen where they would be simple to use and not vulnerable to accidental elbow presses.

We do also have power outlets located between the seats on this aircraft, though no USB outlet under the screen, so you’ll need to pack the USB charger too if you want an in flight refueling for your electronics.

Everybody Needs a Nudge Occasionally

For many a journey is about the destination. If ever there was proof that the destination is not really the main point though it is the journey called life; the destination of that particular journey is far from its highlight. Indeed, most of us would like that particular ETA to be as far out as possible.


This weekend I have been away from home, suffering in the heat of Texas (although from what I can tell Alameda was not much cooler) to attend a high school graduation ceremony. While that might seem like the destination of a kid’s school life, not to mention a more meaningful transition from child to adult than perhaps the 18th birthday that almost always predates it, really it is just another waypoint in a much longer journey. The day’s ceremony, and the parties after it, represent something of a stop over on their journey, but when they (eventually) wake up the next day, the unrelenting journey of life continues.

Early Arrival

Tonight I was surfing social networks looking for things to read, when I chanced upon a retweet that almost brought tears to my eyes. Tapping into the author’s stream revealed an outpouring of emotion that I am not sure I could ever send to Twitter, about something that every parent would dread: losing a child. I don’t know the author of those tweets, I don’t even follow him on Twitter (I saw his tweet as a retweet), but I immediately felt for him and his family’s loss. I cannot even begin to imagine what that must be like; I just know his words, limited to tweet-length bursts, touched a nerve.


So, how does any of that fit with the title of this post? On Saturday, at the graduation ceremony, it occurred to me that I have another 15 years before the little boy lying here next to me as I write this will be in that same place. That seemed like a long time while sitting there, but reading those tweets tonight reminded me that the graduation ceremony was not important; being present, and being a real part of those 15 years was.

This year, more than ever before, I really want to get to a place where I am not missing any of their growing up. Of course, the challenge there is also being able to provide for them, but solving problems is perhaps my strongest skill, and that seems to me, at least at 3am here in Texas as I struggle to sleep in the heat, like a problem well worth solving. Maybe those tweets were just the nudge I needed; though I still wish they had never needed to be written. RIP Rebecca.


More than any, one tweet in the stream, and the photo attached to it, kept tugging on my heart:

Toddler Book: B Is For Bulldozer

Purchased at the same time as My Truck Is Stuck, B Is For Bulldozer by June Sobel & Melissa Iwai, also made it into the nightly reading list on a regular basis for our little boy.

Cleverly designed such that each page represents a letter of the alphabet, the book describes the construction and opening of a new theme park. Most of the time the rhyming works well, and this book was also a firm favourite.

Adult Opinion

Personally, while I like the overall concept, the title is a little misleading (the bulldozer only appears on the one page!) and I think the highlighted letter for each page is totally lost on our little one right now. 

Again, I would give this a three star rating if it wasn’t for the number of times it was requested by our little boy for his evening reading. So, on the basis of that, I think it too gets a four star rating.

Pebble Update

A couple of updates on my communications with Pebble about the audio interference, especially the A2DP but also the handsfree interference (which makes handsfree calls in my car near impossible most of the time).

I also get a response to a tweet about Pebble not really being ready for mass consumer use:

@bluedonkey We're proud of our approach. Shooting to be the best wearable out there.

I am happy that they are shooting to be the best, but I still don’t think they are quite there yet (and to be honest the recent versions have been going backwards IMHO).

Battery Issue
The latest on the battery issues I am seeing with the latest firmware came in the form of this email from their support team:

The logs I referenced were from 1 charge cycle, which did not reveal the substantial drop in battery life that you experienced in the aforementioned charge cycles.

Since we’ve verified the issue, let’s get you Pebbled again as soon as possible!

To make sure I fill out your Replacement Authorization with the correct information, could you please confirm the following:

Please also include a picture of the back of your Pebble with the Serial Number clearly shown and “Case # 239312 ” written beneath it on a slip of paper.

Once you have confirmed the above, I will fill out your Replacement Authorization and get you set up with a new Pebble!

So, aside from the fact that seeing one charge cycle that looked OK was enough for them to dismiss the issue initially (even though the report clearly stated that the battery issue was somewhat random), now their answer is to swap the hardware without any explanation. Since the watch is clearly operating normally, and some of the time has a very acceptable 10% per day battery consumption rate, I don’t see this being hardware. Seems far more likely that the problem is a software issue with something getting stuck in a state where the radio is on more than it should be.

Audio Issues
On the audio issues, I am not getting far either. The best response I got was to the update I sent their support organization with two 30 second samples recorded from an external Bluetooth speaker with and without the Pebble connected to the phone too:

With Pebble Connected:

Without Pebble Connected:

The drop outs you hear in those happen on all the A2DP playback devices I have tried so far, and only with the latest firmware (previously music playback to Bluetooth devices was fine). That got this reply from support which I take as progress:

Thank you for your e-mail and demonstration. The engineers have been made aware of this issue and are working on a fix for future updates.

I should probably try to record some samples of a phone call too so that they can hear how bad that is (it is much worse than the A2DP).

Pebble Battery Life

Given how random my Pebble’s battery life can be these days,I thought I would extract the battery level information from the logs they keep (tip: if you want to see these, just start the process to generate a support request but when the email editor opens change the recipient to your own address before sending).

The graph is quite telling:

That is a little over 6 days worth of data and clearly shows periods where the consumption is far faster than it should be to allow for several days of battery life. The last two days, I have had to charge the watch every night or risk having it run out mid way through the day (and I don’t want to carry the charging cable with me everywhere I go).

The most recent firmware was meant to address the crazy power consumption issue, but it looks from this chart as though their fix doesn’t change anything.

Pebble: Still Not Ready

Sadly, I have to say the Pebble smart watch is still not ready for general use. There are still too many bugs in the firmware, and too many limitations for it to be acceptable to anyone outside of the early adopter crowd. Even a year after they initially shipped.

In the early days, the regular firmware updates seemed to improve things. Unfortunately, the most recent updates seem to have made things worse. 

Battery Issues

The new stainless steel watches were launched with version 2 firmware and the Pebble App Store all of which seemed great. Except that the battery life of the watch could suddenly drop from the several days normally achieved to just a few hours. And it could go from super efficient to super inefficient at any time. Given that battery life is one of their key advantages, this was a pretty serious regression. Something that should have been caught during testing.

The fixed firmware was released recently, but apparently it is still not really fixed. My watch took around 24 hours to drop from fully charged to 89% (that is pretty much the normal rate I have observed – around 10% a day).

2014-05-18 04:48:27:000 ttery_monitor.c:204 Batt state: 4224mV 99% hardware charging 0 plugged 0
2014-05-19 02:55:26:000 ttery_monitor.c:204 Batt state: 4095mV 90% hardware charging 0 plugged 0 
2014-05-19 03:00:26:000 ttery_monitor.c:204 Batt state: 4086mV 89% hardware charging 0 plugged 0 
2014-05-19 05:41:26:000 ttery_monitor.c:204 Batt state: 3994mV 79% hardware charging 0 plugged 0 
2014-05-19 08:19:26:000 ttery_monitor.c:204 Batt state: 3927mV 69% hardware charging 0 plugged 0 
2014-05-19 09:44:26:000 ttery_monitor.c:204 Batt state: 3869mV 59% hardware charging 0 plugged 0

But then look at what happened. The next 30% drop took less than 7 hours. And for most of that time I was asleep and very few notifications were being delivered (I get far more during the day when all my calendar event reminders are firing off).

Seems the issue with the battery is still not fixed. I have submitted the logs, but at this point I am losing confidence in Pebble’s ability to fix these serious firmware issues.

Audio Interference

For the longest time the audio quality I have experienced when using my car’s hands free telephone system has been terrible. Very occasionally it would be crystal clear, but most of the time it was crackly, sometimes to the point where I would need to hang up and redial in hopes of getting better quality. It never occurred to me that the cause of this noise was the Pebble. 

Last week though I was driving back home after going to pick up some paperwork and I was stuck in traffic listening to music from my phone connected via the car’s A2DP connection. This had always been good quality (further confusing me as to why the telephone audio should be so bad), but now it was experiencing periodic drop outs. Very short times in the music when there was silence, but easily noticeable. Since I was stuck in traffic, often not moving at all for several minutes, I had time to trace the cause.

Remembering that the Pebble had just updated its firmware, that was an obvious place to start. Turning off the Bluetooth on the watch didn’t impact anything immediately but right then the traffic moved, so I turned my attention back to the road; leaving the Pebble’s Bluetooth off. Perhaps 30 seconds or so after I switched it off, the dropouts stopped. The next time I stopped, I turned Bluetooth back on and sure enough the drop outs re-appeared. So now, the Pebble interferes with A2DP music streams (a clear, and serious regression).

Even more interesting, during one of the times I had Bluetooth off I received a call. It was crystal clear. More experimenting with that showed that the interference I had long put down to an incompatibility between my car and iPhone was in fact also being caused by the Pebble. That is not a regression in the latest firmware though; that has always been there.

Some searching online revealed a thread on their support forums describing the hands free audio interference that is happening in lots of cars. And yet the support response I got merely shrugged it off with the advice that I should disable Bluetooth on my watch when in the car & there was no way they could test all cars. Obviously, nobody would expect them to test all cars, but it doesn’t seem hard to find some that show the problem. And there is even a detailed post in that thread stating the problem can be reproduced on Bluetooth audio quality measurement test equipment:

The Voice Quality algorithm used for this test was ITU-T P.862.1 (PESQ). The scale for the PESQ algorithm is 1-5 (5 being perfect). For all tests, the iPhone is on ATT network whereas the far-end is Verizon PSTN. Each test consisted of 3 different calls, each call sending/recordng 4 voice files. After each test i averaged all PESQ scores.
The average score for iPhone5 without Pebble was 2.71. This is average for mobile to PSTN.
The average score for iPhone5 with Pebble was 1.36. This is considered extremely low.
The average score for iPhone4 without Pebble was 2.40. 
The average score for iPhone4 with Pebble was 1.22.

That makes it pretty clear that the Pebble is interfering with the audio quality on iOS devices at least. Again, this should really have been caught during testing.


At this point in time, if you asked me whether you should buy a Pebble I would have to say no. Not unless you are willing to live with pre-alpha quality software, potentially abysmal battery life, poor quality Bluetooth audio connections and relatively little support. When it is working well, the Pebble is a great smart watch, but the ongoing software quality issues are really letting it down right now.

United Accounting

We recently called United Airlines to see if there was any way to get an award ticket that had been issued with a return via LA changed to one that was a direct flight since the traveller was a teenager who has never flown alone before & was not confident of changing planes in an unknown airport.

The representative we spoke with was very helpful, and said he had managed to move her return to the direct flight without it costing any more money or additional miles (something we had asked several times). He confirmed that the total number of miles needed for her round trip would still be 25,000. The same as the original booking with the plane change.

We also received a receipt confirming the booking, the direct flights and the cost (both the $5 fee and 25,000 miles) just as the representative had stated on the telephone. That receipt is still visible in the web portal too (I have blocked out all the personal info):

However, when we next happened to be logged in to the MileagePlus website, we noticed they had refunded the 25,000 miles for the original booking and debited 37,500 for the new itinerary – taking 50% more miles from the account than their customer service representative had stated, and 50% more than the receipt / confirmation they had issued for the booking stated the trip would cost:


OK, thinking it must have been a misunderstanding, we called, only to be told there was nothing they could do. It was a mistake they had corrected. You might expect somebody to call and confirm that deducting more miles was OK, or at least send an email. Or even issue a new receipt with the corrected amount. But, no. They did none of those things. They just took the extra miles, presumably hoping we wouldn’t notice? Also notice the activity doesn’t show the correction as a separate transaction – it seems to suggest that they actually deducted 37,500 at the same time they issued a receipt for just 25,000. I wonder if they are that lax with all their financials? If we’d been paying money for this, could they have just billed the credit card 50% more than they show on the receipt?

Anyway, I contacted the Twitter support team (having found that social media support groups are generally more responsive at other companies). They took all the info (over private DMs) and after a bit of back & forth, came back with this:

Sounds promising. At least they can see that the receipt still shows 25,000 and something is amiss. But then, 21 minutes later, they came back with this:

No explanation for the mismatch between the receipt and the amount debited from the account. Just a repeat of the statement that they can’t honor the receipt / confirmation they issued (and still show online). Wonder what would have happened if the miles were not there. Would they have called, or just quietly canceled the ticket and let us find that out at check in time?

Customer Service

Most companies, if they made a mistake like this would simply apologize and refund the difference. But not United it seems. They would prefer to upset a customer (and I should note that the customer who booked the flight in this case is a gold card holder who travels all over the world with United for work) over 12,500 miles.

Of course, you could argue that we are still getting a free flight, and the miles were in the account, but the miles in question were coming from another family member’s account as a favour & he only had 25,000 spare (the remainder being ‘reserved’ for a trip later in the year). Now we are left trying to sort this out; most likely we will just cancel the ticket entirely and see what other options there are. Ideally that would be on an airline that actually cares about their customers, and especially their most loyal ones, and doesn’t make promises they can’t keep. Can’t see myself trusting United again after this.

Successful People & Early Mornings

I keep reading articles like this one on today telling me all these things that successful people do before breakfast, or how successful people are up every day before the sun working etc, etc. But I am very definitely not a morning person! Waking up at 5am every day would, I am certain, shorten my life (and perhaps it is also shortening theirs).

Currently, the days when I am going in to the office start around 7:30am. My goal is to be out of the house at 8am and to walk to the ferry terminal (about 10-15 minutes walking). The 20 minute ride to San Francisco is mostly social time for me – chatting with the other regulars on the boat. My 30 minute BART ride from San Francisco down to San Bruno is my time to read emails and catch up on overnight Facebook, Twitter etc. My walk to the office is usually time for a phone call (yay for bluetooth headphones!), but it also gets me some more walking time.

A full day at the office, leaving at 5:30pm for the return commute (BART & ferry again most days, with the walk home) getting me home at 7pm. Dinner, some playtime and bedtime for the toddler takes a while. So by midnight I am just getting ready to start work on my personal apps business. My goal is 2-3 hours on that before getting to bed at 3am. Only manage that a couple of times a week these days though :(

After reading Timothy Ferriss’ Four Hour Work Week and listening to a few podcasts in a similar vein (e.g. Solopreneur Hour), I am thinking that anybody working the sorts of hours these articles suggest is missing the point somewhat. I notice that a few did mention spending time with their families, but it didn’t seem like much time (45 minutes over breakfast, or some time in the evening).

If I could afford it, I would love to be at home all day with my kids; or, for the one in pre-school, be there to drop him off and pick him up every day. I guess success is measured in different ways. To me, not having to work for somebody else would be success enough!

Thoughts on git/DVCS

This has come up in a few different contexts recently, and while I understand that git is the current trendy choice for version control, I am not convinced that it is the best tool for every job. There are clearly places where a distributed version control system has advantages, and the most obvious of those is the one that git was designed for: a large open source software project with lots of independent contributors.

When working in a small company, with a group of engineers who are on the payroll, there doesn’t seem to me to be as much need for the additional complexity of a DVCS, even if those employees are distributed geographically.


It seems to me that there is a misunderstanding about the word distributed in DVCS. Being geographically distributed doesn’t mean your team can’t use Subversion or Perforce. As long as they are connected to the internet & able to connect to the server when needed, there should be little difference. And I pity the poor soul on a slow connection who is trying to clone a large git repository… Especially if they are just trying to look at the latest version of the source to learn!

What is being distributed is the entire repository. So rather than you checking out just the version you are interested in, when you clone a git repository you are (by default) getting every version and all the meta data. That’s great if you work offline a lot, or if you don’t have a trustworthy, backed up place to keep the repository, but if you are serious about software development, and especially if you are building a company on top of that software, you really should have a central repository anyway which is where you do your release builds from. And the repository you back up.

Linus Torvalds presented his case for distributed version control at a Google event, but almost all of his advantages are in the context of an open source project with contributors of unknown ability. In that environment, enabling all potential contributors to work on the project & track their changes locally and then submit them for review in a standardized way makes a lot of sense.

It should also be noted that he does maintain a central copy of the Linux source code at GitHub, so the idea that a git project can be managed without a central repository is myth. In open source even more than in a small startup, people need to know where they can go to get the latest official (trustworthy) version of the source. For that a central repository is pretty much essential. I am certain that nobody will be able to clone the git repository from Linus’ personal computer!

Software Core

One on the most recent discussions I have had about git started with this tweet:

What struck me about this post was that suggesting the choice of version control tool was as important as the other three seems wrong. So I responded to Mr Srinivasan with that comment. What came back surprised me even more:

If I am reading that correctly, he feels that using git implies that a software team is more sophisticated than if they used subversion (or presumably Perforce or some other non-distributed version control). I could understand the argument that not using version control at all was a concern, but the specific tool choice seems irrelevant. I wonder if the choice of editor matters too?

Complex By Design

There are several places on the web where it is claimed that the complexity in git is there by design and that spending time trying to master its arcane way of doing things is a rite of passage. As if to confirm this, one third party response to my discussion above said this:

I appreciate that studying the tool in great detail, perhaps even downloading the source and really trying to understand it might be an interesting academic exercise. But I would prefer in a corporate setting that the version control tool be as simple as possible to understand and use. If I need to train every new hire (or test their understanding of the VCS during the hiring process), I would say the tool has failed.

Of course, if we look back at git’s origins we can see why having a more complex tool might serve a purpose. In that unmanaged open source world, where contributors are not interviewed or hired, having a tool that can weed out the less committed might be seen as a good thing. Of course, it could also be off putting to a lot of talented engineers who would rather spend their time working on their passion instead of learning how an intentionally arcane tool works!


The workflow for a large open source project, with thousands of contributors is very different to the flow inside a small startup team. External contributors branch off of the approved mainline, make their changes there and then they send a request to the project’s owner to pull their changes back into the mainline. The project’s maintainers might receive tens or hundreds of those pull requests each week. Certainly, in that environment they wouldn’t want to just open the flood gates & let unknown developers commit their changes directly. 

While that flow could work in a corporate setting too (and I could easily build a peer review process around it), I would argue that a more typical workflow would be to allow your engineers to push their changes into the mainline once they happy with them. Having one person in a small team responsible for pulling everybody’s changes in to the mainline seems like an inefficient use of resources. Even more so if that person needs to keep pushing back changes to have conflicts resolved. IMHO, it is far better in a fast paced corporate environment to have each developer commit their changes to the central repository as soon as possible and have them resolve conflicts.

I am also a big believer in only having peer reviews happen for changes that are checked in. Not because I think anybody I work with would intentionally make a change post-review to slip something in to the code unnoticed, but simply because it is all too easy to forget to commit one file, especially when adding new files as part of a change. It is also easier for remote reviewers to get the code if it is checked in somewhere.


My own personal experience with git merge is something I would prefer to never repeat; two days lost to trying to repair the mess it made of a simple merge of more recent changes in the Android set of repositories into my own branch (the deltas from the release tag my branch forked from and a slightly newer tag on the same release branch).

That aside, Linus’ comparisons of git to CVS are somewhat unfair. Sure, git tracks merges better than CVS, but I doubt anybody would consider CVS to be the state of the art version control system. In fact, I don’t know anybody still using it. I would agree that Subversion is still weak in this area, but other options like Perforce or the crazily feature-rich ClearCase track every merge and are not tripped up by attempts to merge changes that have already been merged. 

And the tools for merging conflicting files in Perforce are far superior to anything I’ve seen available for git (or subversion for that matter).