Hacking at Dartmouth in 1969

It probably doesn’t say much about my character that when I first encountered the world of computers back in 1969 at Dartmouth College, my thoughts quickly turned to how I could use them for my own subversive goals. Yes, I was an early hacker. This was in the days before Microsoft, before Apple, even before Unix and the C programming language.  And now that there is no doubt that the statue of limitations applies (it’s been 45 years), I am ready to come clean.

Kiewit Computer Center
Kiewit Computer Center

Sitting in a corner of the campus in those days was a low, concrete, windowless, almost bunker-like building whose architecture appeared out of place amongst the Georgian style of most of the other structures. This was the Kiewit Computer Center. Inside was a GE-635 computer, a behemoth that took up a large part of the building. Per the specs on the Dartmouth College site the CPU had a speed of 300 KHz and the storage was on the order of 340 MB. This beast was tended by a group of computer science majors, headed by the two resident computer gods, Tom Kurtz and John Kemeny, the inventors of the BASIC programming language and both professors at Dartmouth (Kemeny later became president of the college).

Inside Kiewit
Inside Kiewit

The operating system was the Dartmouth Time Sharing System (DTSS), an early example of a multi-user OS that allowed the computer to be shared simultaneously among lots of users. I remember entering the Kiewit Center and then turning to the right, where there was a room full of teletypes for students to use. Each teletype printed on a roll of yellow paper. There were no monitors in those days. Each student had access to 2KB of memory and could log on with their student ID number and first 3 letters of their last name as their default password. Computer usage was very much encouraged at Dartmouth. I remember doing Physics homework on the computer. There were also a number of entertainment programs. One was called DATE and was smart-alacky attempt at an artificial intelligence program designed to entertain your date. Dartmouth was all male at the time and dates had to be imported from neighboring New England schools.

Teletype
Teletype

Compared to modern programming languages, BASIC was torture, but we didn’t know any better. Single letter variables, line numbers, no source code formatting, GOTOs — ugh! Nevertheless it was easy to learn and write, if not to read. I wrote some BASIC programs, but soon even the at-the-time huge memory space of 2KB began to seem cramped. It was at this point that I decided to turn to a life of crime and figure out how to steal some passwords.

I wrote a program that emulated the sign-on to the the system and left it running on a teletype. The next person who sat down at that teletype would write in his user ID and password, at which point the teletype would turn off, after having written the information to a data file. Sneaky! Doing this I collected a number of passwords, including some from the systems programmers. One fellow even had 307KB of memory!

Part of the Password Stealing Code
Part of the Password Stealing Code

Looking over the program listing (yes I did keep the original listing all these years — chalk it up to a guilty conscience), the code is pretty simple. The DTSS log on message with current date and time are printed out. After entering the user ID, the user types in the password on a line that was previously overprinted with different characters. The log on screen looked like this:

DARTMOUTH TIME-SHARING
TERMINAL 130 ON AT 13:48 14 JAN 70, 078 USERS
DTSS TILL 20:00. LIST CNEWS*** 13 JAN70.
USER NUMBER --
XXXXXXXX <--PASSWORD

The clever part of the code is this:

570 LET Q(0)=1
580 LET Q(1)=4
590 CHANGE Q TO Q$
600 PRINT Q$
620 STOP

I discovered empirically that ASCII 4, which is End of Transmission or EOT, would turn off the teletype if printed. In that early BASIC you would define a string as an array, with the first value the length of the string, and then convert the array to a string (indicated by a value terminated by “$”). So, after my victim entered his password, the teletype would die. Since teletypes tended to die randomly anyway in those days, no one though much of it. They would just turn it back on and start over.

Hacked Passwords from 1970
Hacked Passwords from 1970

Looking at the list of passwords, they are not much worse than those exposed through today’s password security breaches.  Most people didn’t bother changing their default 3 letters of their last name password.  Of course when the default password is known to be the first 3 letters of your last name, it’s clear there was not a lot of concern about security in those days. It was a simpler era, minus the Internet, viruses, worms and Trojan Horses (excepting my little malignant program). Nevertheless, if you, C42769, are still using “TRACE” as your password, I urge you to change it now.

Besides just demonstrating proof of concept, I didn’t really make use of my hacking results. There were no credit cards to steal in those days, and snooping around files containing other students’ Physics homework proved to be unexciting. Sobered by this, I turned away from a life of computer crime and instead became a doctor, though I have maintained my interest in computers and hacking in the non-evil sense of the word .

Yet as I sit here typing this on a portable computer far more powerful than that which filled a whole building at Dartmouth in the 1970s, I still get nostalgic for those cold, snowy New Hampshire days, and the clatter of teletypes.

The Demise of the Desktop

IMG_20130710_234939
The Heyday of the Desktop Computer

When based in Louisville, Kentucky, my wife and I each had big, bulky, homemade tower desktop computers. These ran versions of Linux and Windows. I also had an Apple Mac Mini to use for developing iOS apps, as it isn’t possible to develop for Apple without an Apple machine. Occasionally I used a laptop (a Lenovo X220) primarily to run EPIC electronic health record software for when I was rounding in the hospital. I found it easier to carry around my own computer rather than to log on and off of the desktop computers at each nursing station. Nevertheless for the majority of work I preferred my desktop setup, with its large screen, clickety-clackety Unicomp keyboard, and mouse.

On January 1, 2014 this all changed. I retired and moved to Paris, France. I purchased a 15″ Macbook Pro (MBP) for myself and a 13″ Macbook Air for my wife. The desktops were left behind in Lousiville. Any and all work I needed to do on the computer had to be done on the MBP. At first I wondered how I would get by with the smaller screen and without using a mouse. Needless to say I soon adjusted and found that the advantages of a well-build portable machine outweighed the disadvantages.

We returned to America in July, and are now primarily based in Parker, Colorado, a small town that became a large town over the years as the Denver metro area expanded. A couple weeks ago we moved all our stuff from our condo in Louisville back to Colorado. This stuff included the several desktop computers mentioned above. In our house in Parker I have a “Man Cave” (or perhaps it should be “Mann Cave”) that is a converted storage room. My plan was to set up my desktop computers in the Man Cave, network them together, and use them for all my computer activities (programming, writing, gaming, etc.).

I hooked up my wife’s old desktop box to my keyboard, mouse, and screen. I switched it on. Immediately I was greeted with the sound of several large fans moaning away in the box. Wow! How did I ever put up with that noise? My laptop makes no noise.

After a excruciatingly long boot process, I was greeted with the login screen to — Windows Vista!?! I had forgotten that was the operating system on the machine. How quaint. How sad. Well, it probably didn’t matter. I justed wanted to run Steam on this machine so I could play some games. I don’t use Microsoft for programming. I would set up my Mac Mini for that.

I double-clicked Steam, but, of course, there was no Internet connection. In Louisville I had everything connected by Ethernet, but in Parker everything was connected by wifi. It took me a few moments to realize that this home-made desktop had no builtin wifi. Well, surely I had a USB wifi dongle somewhere. I rustled through my old computer equipment, found a Netgear wifi adapter and plugged it in.

Windows Vista had no driver for the wifi adapter. And, in a classic chicken versus egg dilemma, there was no way to download the driver over the Internet. Well, the next step was to use my MBP to download the driver, copy it to a USB stick, and then copy it to the desktop. After these steps, Vista was able to install the driver. But it still didn’t work. The error message read “the capability of your network adapter does not match the requirements of this network.” After some troubleshooting (installing and uninstalling the driver), it still didn’t work. Suddenly, playing “Deadly Premonition” on this old desktop no longer seemed to be as desirable as it had been an hour or so ago. Maybe if I wanted to play games I should get a Playstation or Xbox.

So I gave up on setting up the Windows box and decided to set up my Mac Mini. At least I could use that for my programming. Of course the Mac Mini had had no software updates for almost a year. I would have to download Android Studio, which I was now using instead of Eclipse for Android development. I would have to update Xcode, a multi-gigabyte download. I would have to update my local repositories from GitHub. And all this over my pathetic 1.5 Mbps Internet connection. I was facing days of downloading.

I looked at my nice widescreen monitor, my cool keyboard, my fairly plain vanilla mouse, and my over-the-top sound system. My Macbook Pro was sitting there, with its USB ports and HDMI port. I plugged all the peripherals into the MBP and started it up.  Everything worked. I could use a keyboard and mouse and have a widescreen display just by hooking everything to my MBP. I didn’t have to duplicate my data and programming environment on another computer. I didn’t have to waste energy powering up more devices or waste precious bandwidth between multiple machines.

As I worked with this setup, I noticed the screen, though large, had lower resolution than my MBP’s retina display screen. I was stymied on how to do a 3 finger swipe with a mouse. After a while I unplugged all the peripherals and went back to just using my MBP as is.

I had resisted the prevailing notion that the desktop was dead. Having gone through the denial phase, I am now ready for acceptance. The desktop is dead, long live the desktop.

EP Studios Status Report

Return to Paris
Return to Paris

I’ve been a bit lax on the social media front recently.  In fact, there are some days that I forget that there is such a thing as social media — that is, if it were not for my phone’s frequent pinging and buzzing to remind me of its existence.  Truth is, I’ve been busy with other matters.

My wife and I just finished moving the contents of our condo in Louisville, Kentucky (a.k.a. EP Studios, Eastern Headquarters) back to Colorado.  This was a major undertaking.  We were in Louisville over the Thanksgiving holiday, but had to spend our 4 day stay packing up our stuff in boxes.  We then had to drive back to Colorado in time to beat the moving truck.  We have been unpacking since then, with only a few boxes left to go.  Sadly, there was no time during this hectic visit to Louisville to visit my old friends there.  We’ll be back though, as my son and 3 grandchildren live there.

We’ll be returning to the European Headquarters of EP Studios in Paris, France for another 6 month stint in January.  There are a host of projects that I will be working on there, in between classes at Alliance Française, visits to art galleries, and glasses of wine.  I have a backlog of blog topics that I need to write about.  Probably fewer of these posts will be on medical topics, for reasons I have already explicated.  As I get further into my retirement, I feel less like a doctor and more like a human being (sorry, just a joke!  Hopefully a false dichotomy!).  On the programming front, I will be updating the EP Coding app with the new 2015 CPT codes.  I have already updated both my medical apps to use Android’s new Material Design theme.  I am also working on a simulator app based on Edward E. Smith’s Lensman books.   There are also a number of hush-hush top secret projects in their early stages here at EP Studios.

Gigliola Cinquetti and composer Domenico Modugno in 1966
Gigliola Cinquetti and composer Domenico Modugno in 1966

On the writing front, I have not been completely non-productive (I believe a legal use of a double negative, or maybe French is corrupting my English).  Here is a post I wrote for the Chicago Schlager Music Review on singer Gigliola Cinquetti.  If you don’t know what Schlager means, it is German pop music.  It’s one of my interests though admittedly not a very well known musical genre in America.  It’s big in Germany and the Chicago Schlager Music Review is a great introduction to this type of music.

As any regular reader of my blog knows, I like posting on non-medical topics and will continue to do so.

Happy Holidays!

Retrofitting Material Design to Pre-Lollipop Android

lollipopAndroid 5.0 Lollipop comes with a complete makeover of the Android user interface. Called Material Design, the new UI replaces the old Holo Light and Dark themes used since Android 4.0. Continuing a trend that started with Microsoft and the flat tiles of their Modern UI, later adapted by Apple with iOS 7 and 8, Material Design flattens out the elements of the UI, though not completely. Instead the UI replicates the illusion of pieces of paper sliding over surfaces within the device, and does so by the subtle use of tinting and shadows. Material Design is more than this: it includes brightly colored elements, logical transitions and other features.  Google is attempting to develop precise guidelines for UI design that can extend from small phones, to desktop computer screens.  The philosophy of Material Design is laid out here. The full panoply of Material Design is only available on the just released Nexus 6 and Nexus 9 devices, though it should come to other devices eventually (soon?). Nevertheless, Google has provided a glimpse of Material Design over the last several months by releasing revamped versions of their standard apps like Gmail and Newsstand with Material Design themes.  Now it is finally possible for developers to create versions of their own apps using some but not all features of Material Design. Google now supplies the appcompat-v7:21 support library to accomplish this.

I decided to upgrade my app EP Coding to material design. The app is based on the master-detail template included with the Android SDK, and uses an ActionBar (the menu bar with icons and text at the top of the screen). If you are designing apps only for Android 5.0 and higher, or if you don’t care about using Material Design in older versions of Android, you can continue to use the ActionBar by just having your theme in the res/values-v21 directory derive from one of the new Material Design themes, such as Theme.Material.Light.DarkActionBar. However if you want to use a Material Design theme for pre-Lollipop Android, then you can’t use the built-in ActionBar. Instead you must use the new Toolbar widget that is included in the AppCompat library. The Google docs proclaim how much more flexible the Toolbar is compared with the old ActionBar. Unfortunately with flexibility comes extra work.

It is necessary to include the Toolbar in each layout in which you want to use it as an ActionBar. The master-detail template used in my app makes heavy use of fragments, so it was necessary to make some major changes to my layouts in order to use the Toolbar.

The first step is derive your app theme from a non-ActionBar Material Design theme. You don’t want your Toolbar colliding with the old ActionBar. Thus in themes.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
 <!-- Application theme. -->
 <style name="AppTheme" parent="AppTheme.Base">
 </style>

 <style name="AppTheme.Base"
parent="Theme.AppCompat.Light.NoActionBar">
   <item name="colorPrimary">@color/primary</item>
   <item name="colorPrimary">@color/primary</item>
   <item name="colorPrimaryDark">@color/primary_dark</item>
   <item name="colorAccent">@android:color/black</item>
   <item name="android:windowNoTitle">true</item>
   <item name="windowActionBar">false</item>
 </style>
</resources>

Note that here we also define some colors for the ActionBar Toolbar. colorPrimary is the color of the Toolbar, and colorPrimaryDark is the color of the status bar above the Toolbar (the bar with notifications, the time, number of bars, etc.). It is actually only colored on Android 5.0, and remains black on pre-5.0 Android. colorAccent is used to highlight text and checked checkboxes and radio buttons (but see further below).

I defined the Toolbar in a separate file, and then included this in the layout files when needed. The Toolbar:

<?xml version="1.0" encoding="utf-8"?>
 <android.support.v7.widget.Toolbar
 xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:app="http://schemas.android.com/apk/res-auto"
 xmlns:tools="http://schemas.android.com/tools"
 android:id="@+id/toolbar"
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:background="?attr/colorPrimary"
 android:elevation="4dp"
 app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
 app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
 tools:ignore="UnusedAttribute" />

I wanted the equivalent of Holo.Light.DarkActionBar, so the toolbar uses the ThemeOverlay.AppCompat.Dark.ActionBar theme. The app:popupTheme style used here ensures the text and icons on the Toolbar are white instead of black. It seems redundant, but the android:background has to be defined as the colorPrimary here, despite it being defined in the theme. Finally I set an elevation for the Toolbar of 4 dp, which is what the Material Design guidelines suggest for ActionBars/Toolbars. This casts a small shadow below the Toolbar, giving it a 3D look. Unfortunately this attribute is only used in Android 5.0, and is ignored otherwise.

In the master-detail template in my app there are two main components: a list view of procedures which is used to select an individual procedure. The detail view shows the details of the billing codes for the procedure. On a phone the list appears full screen and is replaced by the detail screen when a procedure is selected. On a tablet, the list appears along the left border, and the details appear on the right side of the screen. The procedure list and procedure details are therefore not implemented as Activities, rather they are Fragments that can either be included in a layout alone as an Activity (for phones) or combined into two views in the same Activity (for tablets). The original procedure list fragment looked like this:

<?xml version="1.0" encoding="utf-8"?>
 <fragment
    android:id="@+id/procedure_list"
    android:name="org.epstudios.epcoding.ProcedureListFragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_marginRight="16dip"
    android:layout_marginLeft="16dip"
    tools:context=".ProcedureListActivity"
    tools:layout="@android:layout/list_content">
 </fragment>

In order to use the Toolbar, it is necessary to turn this into a LinearLayout containing the Toolbar and the Fragment. The Activity displaying the list can then use the entire Activity (for a phone’s screen) or just the Fragment (for a tablet’s screen). Note that the Toolbar is included using the <include> tag.

<?xml version="1.0" encoding="utf-8"?>
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:tools="http://schemas.android.com/tools"
 android:layout_height="match_parent"
 android:layout_width="match_parent"
 android:orientation="vertical" >
 <include layout="@layout/toolbar" />
 <fragment
   android:id="@+id/procedure_list"
   android:name="org.epstudios.epcoding.ProcedureListFragment"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:layout_marginRight="16dip"
   android:layout_marginLeft="16dip"
   tools:context=".ProcedureListActivity"
  tools:layout="@android:layout/list_content">
 </fragment>
 </LinearLayout>

In order to use the toolbar, the Activity class has to extend ActionBarActivity (which is a subclass of FragmentActivity). You set the Toolbar as the ActionBar by code like the following:

protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_procedure_list);
 Toolbar toolbar = (Toolbar)findViewById(R.id.toolbar);
 setSupportActionBar(toolbar);
}

After this, the Toolbar will behave like the ActionBar.

There are some other nuances, however. I had trouble get my SearchView to work. This was corrected by referencing the support Searchview in my menu.xml file. Note also that you must define an app namespace, and use this namespace, not the android namespace for defining the actionViewClass and showAsAction.

<?xml version="1.0" encoding="utf-8"?>
 <menu xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:app="http://schemas.android.com/apk/res-auto">
<item
 android:id="@+id/search"
 app:actionViewClass="android.support.v7.widget.SearchView"
 android:icon="@drawable/ic_search_white_24dp"
 android:orderInCategory="10"
 app:showAsAction="ifRoom|collapseActionView"
 android:title="@string/search_title">
 </item>
 <item
 android:id="@+id/wizard"
 android:icon="@drawable/ic_directions_white_24dp"
 android:orderInCategory="90"
 app:showAsAction="ifRoom"
 android:title="@string/wizard_title">
 </item>
 ...
 </menu>

I also had trouble implementing my PreferencesActivity. Rather than go into detail, this post on Stackoverflow shows how it is done. You can also checkout the source code of my app at GitHub.

The old icons look clunky with Material Design. Android has released a complete set of standard icons, including ActionBar icons, that are very useful.

Finally not everything is perfect with backporting Material Design to “old” Android. I had one particular vexing problem with tinting of checkboxes. The AppCompat support library is supposed to use the defined colorAccent to color checkboxes when checked. However most of my checkboxes were being colored black instead of the light blue of my colorAccent. Worse, the checkboxes in my Preferences Activity were being colored blue as they were supposed to be. Worse still, when I went from the Preferences Activity back to one of my my detail screens, some of the checkboxes would be tinted blue and some remained black. For example:

device-2014-11-11-224026

It turns out the AppCompat tints the checkboxes after they are drawn, but only checkboxes that are in a layout. The checkboxes on my screen were all created via programming, so they were not tinted. But, when I went to the Preferences Activity, Android must behind the scenes save the layout of the previous screen. When that screen returns, AppCompat is able to tint the checkboxes, though the newly checked ones after that revert to black. (At least that’s my theory as to what’s happening.) Ugh! Hopefully an update will fix this issue. For now, I set my colorAccent to black to avoid having multicolored checkboxes in pre-5.0 Android, and set colorAccent to blue for Android 5.0.

Wrap-up

So the end result is something approaching Material Design on current Android devices (I’ve yet to see Lollipop up and running on a real device). It is not easy converting from the ActionBar motif to Toolbars. Android documentation could be better — a lot better! Many of the Android online documents still retain instructions pertinent to the old Holo themes which is confusing. There are a lot of subtleties and poorly documented techniques that make it difficult to realize Google’s goal of “Material Design Everywhere.” But at least I’ve got the transition done on one of my apps. Now on to the next!

Weekdays with Maury

The Maury Povich Show
The Maury Povich Show

When I was working I never watched daytime TV. Even now I don’t watch much TV, usually just some news shows. Nevertheless recently I had occasion to watch some daytime television and I happened on the Maury Povich Show. Disobeying my better instincts to change the channel, I spent some time watching it, and the similar show that followed, the Steve Wilkos Show. I found both shows disturbing but oddly fascinating, probably the same mixture of emotions that kept the Roman peasants coming back to the Circus Maximus to watch people being torn apart by lions. Here on TV I was watching peoples’ lives being torn apart in a horrifying if less bloody fashion. Though I was disgusted with myself for watching, it was hard to turn it off.

If you are not familiar with the concept of these shows, it is rather simple. There is a woman, her child, and a boyfriend or spouse. The paternity of the child is in question. Rather than attempt to answer this question in private with DNA testing, the involved parties come on TV where they tell their stories and usually end up yelling at each other, accompanied by whoops, cheers and jeers from the studio audience. The moderator, Maury or Steve (Jerry Springer I believe was the first to have this kind of show) asks questions and makes some token attempt to keep the “contestants” in line, though a few thrown chairs and bleeped-out cuss words are par for the course and add to the drama. Finally the truth is revealed, both by the results of lie detector tests that the warring parties have taken before the show, and ultimately by the DNA test. At that point the man who thinks he is the father of the child finds out either he really is, or that his wife cheated on him and the kid isn’t his. There are variants on this theme, such as the freeloader who doesn’t want to support a child but finds out it is his kid after all, or the black couple with the light-skinned baby who everyone knows can’t be from the husband but the husband refuses to believe it until the DNA results come in. After the denouement there is a lot of crying or screaming or both. And then on to the next story.

Is this exploitative? Is the Pope Catholic? I did not watch long enough to prove this, but from what I watched and what I have read these shows have on poorly educated, low-income, often black couples who behave in a way that reinforces all the negative stereotypes we have of poor uneducated people. I don’t know why they come on the show. Sure they get a free DNA test, but at the cost of exposing the most private secrets of their lives to the world. The fact that they are willing to do this makes their participation even sader and more pathetic. But worse by far are the people who created the show and decided to exploit them in this way.

Back in the 1950s when I was growing up there was a show called Queen for A Day. Women would come on the show and tell stories about how they had lost all their money or had a handicapped child and couldn’t afford medical treatment. Using an applause meter, the audience would vote on which story was most pathetic. The winner was dressed in a royal robe and received her prize, often something like a washer-dryer. An awful concept for a show, but no worse than what’s on daytime TV now.

After Maury’s show was over, the nearly identical Steve Wilkos Show came on.  A couple was introduced. Two young black people, who had a son 5 years old. I’m not sure if they were married, but I think they were and it’s easier to write their story as if they were.  In any case they had been together for over 5 years and the man considered the son his. But he wasn’t sure. The wife, at about the time the child was conceived, had gone to a party where she claimed she was drugged and raped. She said she awoke in the hospital the next day not remembering anything and was told she had cocaine and Ecstacy in her blood. She did not press charges. The husband was concerned that the child was not really his. He said he loved his son but really wanted to know if he was his and whether his wife was telling the truth. As usual on the show, the two spent some time hurling accusations back and forth to the delight of  the studio audience, and it looked like there wasn’t going to be much holding this relationship together if the DNA test didn’t come back the right way.

After a dramatic build-up (and several commercials), the results of the testing were delivered in a sealed envelope. The lie detector results were first. The woman had been telling the truth when she said she had awakened in the hospital with positive drug tests the morning after the party. But she had lied about being involuntarily drugged and raped. She had taken the drugs voluntarily and had “hooked up” with a guy at the party voluntarily. As the woman started breaking down on being confronted with these facts, the host, Steve Wilkos, read the results of the DNA testing. The man who had been with this woman for over 5 years and had served as a father to her son, was indeed NOT (emphasis per the show) the biological father of the child.

This sent the wife running in tears backstage. But the husband, who had every reason to be disappointed and angry, did the unexpected thing. He ran after his spouse, followed by the cameras. He hugged his wife and comforted her, repeating “we’ll work it out. We’ll work it out.” And all the time the camera focussed in on this most private, human, touching moment.

I turned off the TV, feeling guilty at witnessing such a private moment, but at the same time uplifted by the capacity of humans to forgive, to love. I guess this is the essence and attraction of reality television. While exposing a lot of the bad side of humanity, it occasionally surprises us by showing us the good lying at the core of some people. But it’s strong stuff, even gut-wrenching, and fundamentally voyeuristic. Not my cup of tea.

Can Writing About Medicine Change Medicine?

I’m getting to the point where I think it might be time to stop or at least decelerate the pace of my writing on medicine. When I retired from medical practice almost a year ago there were a lot of pent up experiences that I felt a need write about. But now I have already written about almost everything that I wanted to and, as I am no longer a practicing physician, I lack the ongoing experiences and frustrations of day-to-day medical practice to replenish the store. Moreover I am having a growing sense of futility when writing about medicine.  Can writing about medicine change medicine for the better?  Is anyone listening to physicians’ voices?  Or are we all just grumbling to each other?

How many posts bashing electronic health record (EHR) systems does one need to read (or write)? I’m certainly not the only one writing on this topic.  Criticism of EHR systems is very popular amongst physician bloggers nowadays.  I hope someday the shear quantity (and quality) of these posts reaches a critical mass that results in the EHR companies paying attention and making some changes to their products — but I’m not holding my breath. Similarly a large number of physicians rail against the current Maintenance of Certification (MOC) process, yet I see no indications that anyone who can change MOC is listening. The negative effect of the Great Hospital Buy-Out of Physicians of the last decade is also a favorite topic, as are increasing regulations, the hegemony of insurance companies, and countless other annoyances, but what is the use of grousing about all this if no one is listening but our fellow physicians?

Despite voicing our concerns online, we physicians don’t seem to have a voice where it counts — politically.  We don’t have effective representation. Societies that are supposed to represent physicians such as the Heart Rhythm Society, the American Heart Association or the American Medical Association are beholden to groups other than physicians, i.e. drug and device companies — the same drugs and devices that they publish supposedly objective guidelines about. These medical societies also are in bed with the American Board of Internal Medicine, the progenitors of endless board recertification and MOC, and indeed have a nice side-business going on providing expensive board-review courses to prepare for these tests.  Corporate funding of these societies ranges from 20 to 50% of their total revenue (see here, here and here). Go to any big national meeting of these societies and wander through the acres of exhibits. Some of the exhibit booths are bigger than the home in Philadelphia that I spent my first years in. These glittery exhibit halls reek of money. Every time the pharmaceutical companies complain that they have to charge so much for their drugs because of the cost of R & D, I  recall these lavish exhibits as well as the constant TV commercials for erectile dysfunction products and drugs for quasi-diseases like short eyelashes.  It makes me sick! (Ah! New syndrome: TV drug commercialosis!) Money is power in politics, and physicians, despite being perceived as rich and even overpaid by the general public, are low down on the money totem pole compared to other facets of the health care system.

I’m not trying to be pessimistic, just realistic.  Yet if writing is the only weapon we have, what choice do we have but to continue to use it, blunt instrument though it may be?  The growing multitude of physician-bloggers and physician-commenters will continue to write, will continue to fight for changes in EHR systems, recertification requirements, and health care policies. Maybe we’ll get lucky and someone holding the purse strings will be swayed and do something to make the lives of physicians better. Possibly the decision-makers will come to realize that if our lives are better, our patients’ lives will be too. That’s important because everyone, whether politician, hospital administrator or EHR corporation CEO, will sooner or later be a patient in need of a good doctor.

Whatever Happened to Netiquette?

Anita Sarkeesian
Anita Sarkeesian

Let’s harken back to the early days of the Internet, say the 1990s. In those days of yore, characterized by limited bandwidth and lack of flash animations, people by trial and error attempted to work out the dos and don’ts of online communication. This was before Facebook messaging and tweeting, before SMS and MMS. Communication was via email, or Usenet, or IRC (you may have to look up the last two, but they still exist). Even in those days it was quickly recognized that communicating electronically was not the same as communicating face-to-face, or even via telephone. The impersonal nature of online communication tends to insulate those communicating from the emotional feedback that occurs naturally during face-to-face communication. We don’t see the anger, or embarrassment, or sadness in the faces or in the voices of those with whom we are communicating. Talking with someone face-to-face, we can see how our words are affecting them. We might change the course of the conversation when we see that our words are making someone angry, or sad, based on concern that we might end up with a bloody nose, or because we hate to see someone upset. With digital communication, especially the anonymous sort, we don’t have these checks and balances, so the sky’s the limit as to how much hateful speech we can spew out without regard to consequences.

In response to this, rules of Netiquette were developed. Today these rules sound quaint, much like Emily Post’s rules of etiquette (do you remember to always leave a calling card after dining at a lady’s house?). Rules like: don’t make a big deal of spelling mistakes, or don’t post in all capital letters, or avoid off-topic posting. If only these were the worst of the problems we face when surfing the Internet today!

Online communication, if you still want to dignify the process with that term, has changed for the worse, with no end in sight. If you feel it’s always been this bad, I disagree.  It is getting worse.  Online rudeness has even spilled over into everyday life. How many times a day do you see some self-important jackass (see it’s affected even me) sitting in a public place (like an airport terminal) holding a loud conversation on his (I won’t neutralize the pronoun here, it’s usually a man) cell phone over his bluetooth headset? I remember the very first time I saw this happen, years ago in a train station. I was convinced the person was schizophrenic and talking to imaginary friends.

There is no civility online anymore. Accounts are hacked and private photos are leaked. Men post naked photos of ex-girlfriends online, where they circulate forever between Tumblr sites (links withheld intentionally). Poor Anita Sarkeesian, whose “crime” was that she produced a set of YouTube videos detailing the very stereotypical way women are depicted in many video games (as if that should be a shock to anyone) is the constant victim of rape and death threats (NSFW link). Nothing proves her thesis more than the response to her videos. And if you want to see for yourself how wild it is out there (on the Internet), go ahead and tweet something even mildly controversial, such as something about gun control, or Islam, or the depiction of women in games. Then sit back and wait for the barrage of ad-hominem attacks. Sure, with a 140 character limit in Twitter, it’s probably easier to launch an ad-hominem attack than to have a rational discussion. But there’s more going on here than just too limited space for a rebuttal. Trashing people online has become a sport that is increasing in popularity. And that’s sad.

I just hope that if there is ever an alien race investigating our world to see if we are worthy of joining the inter-galactic community they don’t base their judgment on reading the comments section to the Fox News website, or the Twitter posts with the #GamerGate hashtag. If they do, we’re in big trouble.

Lost in EPIC Land

One of the many unanswered questions about the handling of the first Ebola case in the United States is the role of the Electronic Health Record (EHR).  Initial reports put at least some of the blame for the patient’s being sent home from the hospital despite a high risk travel history on a failure of communication between the triage nurse and the emergency room doctor, aided and abetted by the EHR system.  Very quickly this story was altered.  On October 2 Texas Health officials were blaming the EHR, stating that “[a]s designed, the travel history would not automatically appear in the physician’s standard workflow.”  The next day, the same officials changed their tune, stating “[t]here was no flaw in the EHR in the way the physician and nursing portions interacted related to this event.” Texas Health Presbyterian Hospital in Dallas uses the EPIC EHR system.  Texas Health officials and EPIC deny that the reversal was related to any “gag order” in the hospital contract with EPIC.  It is not clear (to me at least) if these statements imply that there actually is no gag order in the contract, or the gag order is there but was not a factor in the changed story.  It should be noted that such gag orders are apparently common in contracts with EHR systems.  It should also be noted that EHR systems are very powerful companies.  EPIC’s CEO’s net worth in 2012 was estimated by Forbes to be $1.7 billion.  EPIC has benefited immensely from government largesse in the form of the taxpayer subsidies and mandates requiring physicians and hospitals to purchase EHR systems or risk losing Medicare dollars.  Politicians (especially Democrats) have also benefited from EPIC, with hundreds of thousands of dollars donated to political campaigns.  EPIC is in the running for a huge government contract to provide EHR services to the Department of Defense.  They certainly wouldn’t want the Texas Ebola snafu to sidetrack this.

Could the EHR have played a role in the confusion in the Dallas emergency room the day Thomas Eric Duncan was sent home with some oral antibiotics?  Perhaps we could understand better how communication failures between nurses and doctors using the EPIC EHR might arise if we could look at relevant screenshots.  When a nurse enters a travel history into EPIC, what then appears on the doctor’s screen?  How easy is it to see?  How easy could it be to miss?  Where does it appear on the screen?  How big is the font?  Does it even show up on the screens the emergency room doctor is usually looking at?

One can argue that it shouldn’t matter.  The nurse should have verbally communicated with the doctor the travel history, or the doctor should have taken his own travel history.  This is all true, but remember, EHR systems were supposed to make medicine better.  They were supposed to make sure everything was documented and nothing would fall between the cracks.  So it would be useful to see some screenshots to understand why something entered by the nurse into EPIC was not seen by the doctor.

Don’t hold your breath waiting for the screenshots.  Whether or not EPIC has gag orders in their contracts, they definitely do not allow posting of screenshots.  I found this out personally when I tried to post some EPIC screenshots in the past.  EPIC has a group of people whose job is to be on the lookout for EPIC screenshots on the internet.  When they find them, they contact the offending party and demand their removal.  I had prepared a screenshot with annotations to show how confusing the EPIC user interface is, and how easily one simple fact (Travel History: recent travel to Liberia) could be lost in the morass of toolbars, sidebars, tabs, and menus that is the EPIC user interface, but I can’t chance having the EPIC SWAT Team descend on my house.  So I have attached a blurred redacted screenshot.  If a news agency wants to take on EPIC, I would be happy to provide an unblurred screenshot.  I’m not willing to take the chance, but somebody should.

 

The EPIC UI, hopefully blurred sufficiently for the EPIC Screenshot Police (click to enlarge)
The EPIC UI, hopefully blurred sufficiently for the EPIC Screenshot Police (click to enlarge)

How Much Money Do Academic Experts Get From Drug and Device Companies?

Screen Shot 2014-10-09 at 9.50.04 AMNow that Open Payments data is available to the public I decided to do some snooping around.  It’s not hard to do.  I was curious as to how much drug and device company money academic experts receive.  As a cardiologist specializing in electrophysiology I have been to many national meetings, and it is always the same people year after year who chair the sessions, are on the policy committees, and write the guidelines.  If you are an electrophysiologist you know whom I am talking about.  I suppose every specialty has its own cadre of experts: the 1% who set the agenda for the rest of the us.  The big names in our respective fields.

So I picked 3 names at random and downloaded their Open Payments data.  Keep in mind that there are only 6 months of payment data available, and a third or more of the data has been withheld including most of the research payments.  I only included data from the general payments database and excluded the research payments.  I just picked the first 3 names that popped into my head, and won’t identify who these doctors are.  My intent isn’t to embarrass anyone.  They are all well known and meet the criteria for being an expert given above.

Expert A had 91 payments made over 6 months totaling $58,101.  Most of the payments were from Medtronic and Boston Scientific.  The majority of payments were listed under the categories of Food and Beverage or Travel and Lodging, but the larger payments were for Consulting Fees or speakers fees.  The largest individual payment though was for travel, at just over $6000 from Medtronic.

Expert B had fewer payments (34) but a larger total.  Over 6 months this expert was paid $112,115.  The majority of payments were by Medtronic, with individual payments as high as $24,500.  The description for one of these large payments was “Compensation for services other than consulting, including serving as faculty or as a speaker at a venue other than a continuing education program.”

Screen Shot 2014-10-09 at 9.45.58 AM
A sample from Expert B

Expert C had absolutely no entries in the database.  Zero.  Good for him!  Or should we wait until the full dataset is released before coming to conclusions?

In this extremely unscientific sampling of 3 experts, compensation from drug and device companies ranged from zero to 6 digits in 6 months.  Certainly one shouldn’t draw any firm conclusions from this.  Nevertheless, the fact that money changes hands between drug and device companies and the experts who help write guidelines and lecture about these drugs and devices is concerning.  Actual dollar amounts seem more stark and disconcerting than bland statements like Doctor X serves as a consultant for Company Y. Perhaps the Open Payments dollar amounts should be added to the disclosure slides that are shown at national meetings.  A more thorough look at this data is warranted.

How to View Your Doctor’s Drug Company Payments

The CMS Open Payments database is up for the public to view, but the site is difficult to navigate.  Here is a step by step guide to using the site.

  1. Go to openpaymentsdata.cms.gov
  2. From the list of databases, click on the General Payment Data with Identifying Recipient Information – Detailed Dataset 2013 Reporting Year (or skip step one and just click on the link) as in the image.

    Click on the highlighted database link.
    Click on the highlighted database link.
  3. The page opens with a spreadsheet and a number of filter conditions.  Write in how you want to filter the spreadsheet (e.g. filter for last name and city/state).  You can add filters, such as the first name on the page too (see Add A New Filter Condition in lower right corner).

    Filter the spreadsheet data.
    Filter the spreadsheet data.
  4. Horizontally scroll the spreadsheet to see the columns you are interested in.  There are a lot of blank or useless columns.  You can remove unwanted columns by clicking on the Manage button (brown button with a gear).

    The money column.  You can exclude columns using the Manage button.
    The money column. You can exclude columns using the Manage button.
  5. Make sure you are looking at just one physician’s data.  In the figure below I have horizontally scrolled to the list of physician names.  Note that there is a Physician_Profile_ID with a unique ID number for each physician.  Pick out the physician you want to look at and add a filter for that ID number.  Remove other filters.  This should give you the data you want on an individual physician.

    Screen Shot 2014-10-08 at 12.05.46 PM
    Physician names and ID numbers. Filter on a specific ID number to get all that physician’s data.

And that’s it.  I haven’t explored the other databases.  I haven’t found any tool (other than a calculator) to sum the dollar amounts.   [ADDENDUM: Use the Export button to export the data in a form compatible with your spreadsheet.  Options include Excel and CSV formats.] This information should be enough to get you started with the Open Payments database.