The Bumpy Road to a New Development Laptop

My 6 year old Lenovo T400 finally gave up the ghost. It didn't totally die (it probably never will, thank you IBM), but the screen was starting to flicker and it reliably rebooted itself whenever I was doing something useful. Very annoying.

Grief

I went though the standard 5 stages of grief:

  1. Denial: All T400's do this.
  2. Anger: "Damn it, why does this thing keep crashing? I'm sick of this sh*t!".
  3. Bargaining: Maybe if I update to 14.04 it will stop doing this.
  4. Depression: "This sucks!"
  5. Acceptance: OK, time to buy a new laptop.

I'm fine now, but that was a rough 30 minutes!

Decision Process

I'm not going to detail all of my system requirements or decision making process, but here's a high level outline:

  • I primarily need a Ubuntu development machine. My T400 is a dual boot 12.04/XP.  In recent years I've rarely used Windows, but there are some tools that are nice to have around (e.g. Visual Studio).
  • I looked hard at the MacBook Pro but at the end of the day I just couldn't bring myself to go that route. Besides the higher hardware cost/performance ratio re: the alternatives, I guess I'm just not a Mac person.
  • I really wanted to get an Ultrabook form factor. Not only for the portability, but I'm not ashamed to say that the 'cool factor' played a part in the decision.
  • I looked at all of the standard Ultrabook offerings: Lenovo, ASUS, Dell, System76, Acer, etc. No touch, no 'convertible' (if you need a tablet, buy a tablet), no Windows 8. The deciding factor for me was reliability. Besides the T400, I have a T60 in the closet that still runs fine.
  • So Lenovo it is. The history of the X1 Carbon (see The 2014 Lenovo X1 Carbon: Lenovo Giveth, And Lenovo Taketh Away and Lenovo ThinkPad X1 Carbon 2014 review)  goes back to 2011. The latest version (2014, or Carbon 2) has taken a lot of heat over the keyboard, function keys, and trackpad changes. I'm sure these opinions have merit, but I just want a fast machine that works!

Buying Experience (not good!)

Beware of the Lenovo Outlet. I purchased a 'ThinkPad X1 Carbon 2 - New':

x1-carbon-2-new

Here's the condition definition (my highlight):

Products that are discontinued, overstocked, or returned unopened. These items are in their original factory sealed packaging and have never been used or opened.

Boy was I disappointed when the package arrived! First, the only thing in the box was the laptop. No AC power adapter, no docs, no nothing. To my amazement, the machine was in suspend mode. When I opened the lid it came out of hibernation to a Win7 user password prompt! I didn't even try to guess a password. I couldn't believe it!

The machine was in pretty good shape physically, a little dirty and missing a foot pad, but no dents or scratches. Certainly opened and used!  At least the BIOS confirmed that I got the correct hardware (i7, 8G RAM, 256G SSD).

After many calls to multiple Lenovo service centers I got nowhere. No return, no exchange. Maybe I should write a letter to The Haggler, but even then I probably wouldn't return the machine anyway. I got a great price (much better than what I could find on eBay) and the Lenovo Outlet no longer has any i7 X1 Carbon's listed.  Also, I'm a techie so disk partitioning and re-installed OS's is not a problem.

I'm thinking now that Lenovo might have screwed up a repair shipment and I ended up wiping some poor schmuck's SSD. Oh well.

Anyway, as unpleasant as this was, I now have a development laptop that should meet my needs for many years to come.

Installation Notes

  • Dual boot. Here's the right way: WindowsDualBoot, but because I installed Ubuntu first (mistake) here's what I did:
    1. Used GParted  to partition the disk to my liking. Don't forget to add a Linux swap partition (8G for me). The Ubuntu installer will complain if it's not there and find it automatically if it is.
    2. Created a Ubuntu 14.04 bootable USB stick: How to create a bootable USB stick on Windows. Install Ubuntu on the ext4 partition.
    3. Created a bootable Windows 7 USB stick. The Universal USB Installer above works fine for this. Install Windows 7 on the Windows partition.
    4. After Step #3 the system will only boot Windows. Use Boot-Repair (option #2) to re-install GRUB.
  • Ubuntu 14.04 seems to work flawlessly on the X1. There were only two hardware compatibility issues that I read about:
    1. Not waking up from suspend mode. This is resolved by updating the BIOS firmware.  Upgrading from v1.09 to v1.15 fixed it for me. The Lenovo firmware only comes as a CD image (.iso) or a Windows update application. Because the X1 does not have a CDROM drive the only reasonable way to upgrade is via Windows. People have upgraded the firmware via USB (see BIOS Upgrade/X Series), but it's really ugly.
    2. Fingerprint reader. Haven't tried to use it, and probably won't.

Happy Ending (I hope)

Like most things in life, nothing is ever perfect. This experience was no exception.

I have a JRuby/Rails project with some Rspec tests that take 80 seconds to complete on the T400 and 20 seconds on the X1. I can live with that improvement. 🙂

Hopefully the X1 will last as long the T400 did.

Posted in Programming, Technology, Tools | Tagged , | Leave a comment

Brain-Like Chip With 4000 Processor Cores

left-right-brainIBM Unveils a ‘Brain-Like’ Chip With 4,000 Processor Cores. The TrueNorth chip mimics 1 million neurons and 256 million synapses that IBM calls “spiking neurons.”

...the chip can encode data as patterns of pulses, which is similar to one of the many ways neuroscientists think the brain stores information.

IBM Research: Neurosynaptic chips provides more information on the low power system architecture and potential applications:

Neurosynaptic-chips

This is similar to Qualcomm's Brain-Inspired Computing effort.

Posted in Robotics, Technology | Tagged , , | Leave a comment

Connectivity Standards

I had been reading about "internet of things" (IoT) connectivity standards groups (links below) when I came across Bridget Moorman's post Connectivity Standards Adoption Over Time.

I made an off-the-cuff comment because of the contrast I saw between the way other industries approach standards vs. the medical device industry.  Bridget and Tim kindly responded with informative feedback.

Standards are hard, so I guess it's not easy for anyone.

 

Posted in Interoperability | Leave a comment

An Unhealthy Lack Of Standards

apple-healthkitThe reality of healthcare interoperabilty is going mainstream: Apple Launches HealthKit To Share Vital Stats With Nike, Mayo Clinic:

The problem Apple will run into: No one agrees on how to measure even very simple health metrics, ...

TL;DR:  iOS 7.1 to iOS 8.0 API Differences (search for 'HealthKit' on the page).

UPDATE (8/18/14);  Apple - iOS 8 - Health

Posted in Interoperability, Medical Devices | Tagged , | Leave a comment

FDASIA Health IT Report

health-it-catagoriesThe Food and Drug Administration Safety and Innovation Act (FDASIA) required the FDA to develop:

a report that contains a proposed strategy and recommendations on an appropriate, risk-based regulatory framework pertaining to health information technology, including mobile medical applications, that promotes innovation, protects patient safety, and avoids regulatory duplication.

Here's the report: FDASIA Health IT Report (warning: PDF).

It looks like EMR/EHR vendors (administrative and health management functionality) don't have to worry about FDA regulatory oversight. The medical device category (of course) does:

FDA would focus its oversight on medical device functionality because, in general, these functions, such as computer aided detection software and remote display or notification of real-time alarms from bedside monitors, present greater risks to patient safety than health IT with administrative or health management functionality.

 

Posted in FDA | Leave a comment

Interoperable Healthcare

icu-interopThis is a good read: Healthcare Innovation Day 2014: Igniting an Interoperable Healthcare System (warning: PDF).

Healthcare is the one industry that’s been the slowest to adopt the intelligent methods we have in most other parts of our lives. How did the communications revolution that transformed industries such as banking, entertainment and telecom somehow leave healthcare behind?

Great question!

Here's the 'Call to Action' list:

  1. Recognize that the lack of interoperability is a crisis and advocate for rapid change.
  2. Frame the interoperability problem correctly: Everyone is in the business of gathering and sharing data to best serve patients.
  3. Accelerate the full adoption of unambiguous, open standards for interoperability.
  4. Align stakeholder incentives to drive interoperability.
  5. Ensure validity, privacy, and security of data.
  6. Reduce technical complexity for hospitals, health systems, and healthcare workers.
  7. Develop new ways to use data streams that will result from interoperability to drive an adaptive system that will improve patient health.
  8. Guarantee secure access to data for patients, researchers.

There is a lot to do...

Posted in Interoperability, Medical Devices | Tagged | Leave a comment

Services, Not Sensors

internetofthingsThe Internet Of Things: The Real Money Is The Internet, Not The Things (my highlight):

The trick will be whether hardware companies will push hard enough for standardization so they can capitalize on services revenue. Companies that see themselves as pure hardware manufacturers are likely doomed, but those that see beyond the "things" to instead focus on the services built on the "Internet," the future is very bright.

Is this the new reality for the medical device industry as well?  If data and interoperability are the future, maybe it should be!

Posted in Interoperability, Medical Devices | Leave a comment

Predicting Heart Attacks and Electric Cars

tesla_model_sWhat do these two things have in common? Apple exploring cars, medical devices to reignite growth. That's right, Apple!

... Apple is exploring ways to measure noise "turbulence" as it applies to blood flow. The company wants to develop software and sensors that can predict heart attacks by identifying the sound blood makes as it tries to move through an artery clogged with plaque, ...

The first 5 pages of search result on this topic turn up the above quote and Elon Musk. And of course the media hype kicks into full gear: Apple's iWatch could save your life.

Fortunately, sanity does prevail: No, An Apple Device Won't Tell You If You're Having A Heart Attack.  Even Eric Topol weighs in:

eric-topol-tweet

Posted in Uncategorized | Leave a comment

The Internet of Medical Devices

iotThe Internet of Things (IoT) is being propelled by the dramatic reduction in size, power consumption, and cost of networking and computing capability.  Many of the devices listed in the Wolfram Connected Devices Project are health related. "Things" like weight scales and thermometers can make measurements from many objects, but when that object is a human body, they effectively become medical devices. The sensors that come standard on smart phones also fit into this category. All of these network-connected devices that record data from humans make up the Internet of Medical Devices (IoMD).

In most ways the invasion of technology in Healthcare is no different than how mobile digital capability is changing that way we all live. For Healthcare though, the potential benefits of applying these technologies to solve both the cost problem and to improve patient safety and outcomes are tremendous.

The number of technologies and innovations (health tracking apps and devices, home monitoring, medication management, etc.) that are contributing to these goals are too numerous to count. From a medical device perspective there are four primary areas of concern that need to be addressed as the IoMD grows.

1. Interoperability
As I've written about many times (e.g. Interoperability: Arrested Progress), health data interoperability is a key factor in realizing both cost reductions and improved patient outcomes. Unfortunately, medical data is notoriously complex, which makes effective communication between systems very difficult.

Another significant barrier to interoperability are EHR interfaces. The issue is that each EMR vendor has a propitiatory interface for consuming device data and associating it with a patient record.  Without a direct device interface, data has to be manually transcribed into the record which is expensive and error prone.

This is a particular problem in the ambulatory EMR market because there are literally hundreds of vendors.  Even if they all used a standard like HL7 there is still interfacing work that has to be done for each one.  It is prohibitively expensive for any device company to develop and maintain that many interfaces.

2. Patient Safety
Because proper handling and presentation of medical data pose a safety risk the FDA has recently stepped in:

Most medical software applications, like the ones you might download to your Apple or Android phone, will not be affected by these regulations.

3. Privacy
Even though PHI (Protected Health Information) is protected by Health Information Privacy (HIPAA) laws most people consider their health a very private issue.  Privacy concerns are a significant psychological barrier that must be overcome before sharing of medical data becomes commonplace.

4. Security

Reports like the one described in The Internet Of Things Has Been Hacked, And It's Turning Nasty are not encouraging:

Pinging one device brought up a login screen that said: Welcome To Your Fridge. She typed in a default password—something like “admin” or "adminadmin," Knight said—and suddenly had access to the heart of someone's kitchen.

The IoMD is not immune from this. Hacking Insulin Pumps And Other Medical Devices From Black Hat was big news last year. <TongueInCheek>If we're not careful search engines like Shodan will soon be discovering pace makers near real hearts!</TongueInCheek>

Final Notes

  1. The interoperability issue is not a technical problem per se. It reminds me of the challenges associated with an object-relational impedance mismatch ("Deceptive Similarities, Subtle Differences").  Also, not only are our models of human-derived data imperfect, but two models created for the same thing will most likely be different.
  2. The IoMD must convince the public that their data is safe and secure.
  3. If mobile medical applications and connected health monitoring devices are going to contribute to a more effective Healthcare delivery system they must be able to reliably and securely communicate the data they collect to an appropriate care provider.

UPDATE (1/25/14): Also see: Digital Health In 2014: The Imperative Of Connectivity

UPDATE (2/19/14): I like “Medical Internet of Things” (mIOT) too: Keeping medical device designs relevant in a big data world migrating to outcomes-driven payment models.

Posted in Interoperability, Medical Devices | Tagged , | Leave a comment

The Zigzag Career

I agree with Udi Dahan's Thoughts on a career in software development premise that developers will eventually be faced with a management "opportunity" at some point in their career.

It's too bad that this is usually a "fork in the road" decision. I don't think companies are necessarily trying to pigeonhole developers, but they certainly have specific roles (with associated job descriptions) they are trying to fill.  It makes sense though. For large software projects, being a manager (and probably a scrum master) is a full time job.  Put another way, if you try to split your time between being a contributor and a manager, you'll probably do both jobs poorly.

My advise is to make this type of decision with your eyes open. If you have a management opportunity and it's something you're interested in, take it. Treat it like the career change that it is. Get the additional training and improve your skills just like you would be doing if you were learning a new technology. Management isn't easy. It takes time and work get good at it.

Also, good companies do not pigeonhole technical managers. You will probably have the ability to switch back to a development or architect role as business needs and priorities change in the future.  This could mean moving to a different company, but both you and your current employer know this.  Switching from management back to a technical track will require yet another skills learning curve and a mindset change.

The way to create a Zigzag career is to go with the flow.

Whether you experience success, failure, or somewhere in between, each one of these transformations involves significant personal and professional growth.  Also, no matter what you do always stay at the top of your game: Continuous Learning: 14 Ways to Stay at the Top of Your Profession.

Posted in Programming | Tagged | Leave a comment