The State of the Patent System

Next, by Michael Crichton carries a profound message about the state of the patent system. The end of the book offers an “Author’s Note” that outlines what Dr. Crichton proposed to mitigate the issues he outlines in his novel. Namely, he argues to stop patenting genes:

“Genes are facts of nature. Like gravity, sunlight, and leaves on trees, genes exist in the natural world. Facts of nature can’t be owned. You can own a test for a gene, or a drug that affects a gene, but not the gene itself. You can own a treatment for a disease, but not the disease itself. Gene patents break that fundamental rule.”

We could argue that genes are a fundamental element to life. It is the most basic information structure that instructs cells how to replicate. Without genes, no higher organization of cellular activity can exist because the “blueprints” are missing. I find this to have parallels with patents being held on basic computing operations. If we view the gene as a lower level mechanism that is used in the higher operations of a cell’s reproduction, then it is similar to basic lower level hardware and software operations that are used in a higher level computing devices.

Take for example patent #5,455,599: Object-Oriented Graphic System. Apple was issued this patent in 1995 and is very technical to the point that Engadget doesn’t even feel comfortable explaining it, but it covers a graphical system that is manipulated in an object oriented fashion. This is a basic mechanism of graphical interfaces. Patents #5,519,867 and #6,275,983: Object Oriented Multitasking System and Object-Oriented Operating System cover accessing OS services in a multi-threaded way. Basically, these patents would be impossible not to infringe on if you are building a computer today. These patents were issued to Apple, and were used in court against HTC for patent infringement on the Android OS. This is just the tip of the iceberg. Apple is not alone in using heavy handed litigation involving unavoidable actions in computing that are patented. Microsoft recently struck a deal with phone maker LG to pay royalties on the Android platform because of patents Microsoft claims they have against Google. Its simply “protection money”, and a way to abuse the legal system to slow down competition. Microsoft is now making royalties from 70% of Android devices being sold in the US. What if the patent on using a mouse to interface with a computer was still being used? What about displaying text on a screen for the user to read?

I would hate to think that my medical research is being inhibited in the same manner as the technology industry. Consider Crichton’s observation on the progress of the SARS vaccine:

“In its heyday, research on SARS (Severe Acute Respiratory Syndrome) was inhibited because scientists were unsure who owned the genome – three simultaneous patent claims had been filed. As a result, research on SARS wasn’t as vigorous as it might have been. That should scare every sensible person. Here was a contagious disease with a 10 percent death rate that had spread to two dozen countries around the world. Yet scientific research to combat the disease was inhibited-because of patent fears.”

Imagine if cures for cancer, or the common cold were being held up in the same such legal nonsense. I think the absurdity of patenting genes is best illustrated by Crichton in the following scenario:

“The patent consists of pure information already existing in nature. Because there has been no invention, no one can innovate any other use of the patent without violating the patent itself, so further innovation is closed. Its like allowing someone to patent noses. You couldn’t make Kleenex, nasal sprays, masks, makeup or perfume because they all rely on some aspect of noses. You could put suntan on your body, but not on your nose, because any modification of your nose would violate the patent on noses. Chefs could be sued for making fragrant dishes unless they paid the nose royalty. And so on…It takes little imagination to see the monopolistic patenting inhibits creation and productivity.”

This novel was revealing in its description of the same broken patent system in medicine that is facing the technology sector. Crichton aimed to illustrate the need for reform in this system, and I think he accomplished that mission by starting a dialog. What are your thoughts on patenting software and hardware operations? How far should these patents extend? How common an operation can be patent-able?

Another Helping of Abstraction, Please

Rails 3.1 is soon to be released, and with it comes two new abstraction libraries – CoffeeScript, and S(ass)CSS. These libraries are used to generate Javascript code, and CSS definitions respectively. While abstraction libraries are nothing new to Rails, the inclusion of two more got me thinking about the direction that Rails stack is heading.

CoffeeScript’s syntax seems to be to make Javascript as Ruby-ish as possible. It describes Javascript’s curly braces and semicolons as embarrassing.

SCSS aims to address some of the repetitive elements of CSS through the use of variables, nesting, and mixins. This feels more acceptable to me than CoffeeScript, but my first encounter left me burned.

A few other abstraction libraries of relevance: Haml aims to generate HTML without the use of HTML tags. Additionally, Squeel‘s (MetaWhere 2.0) aim is to remove all SQL from your projects.

So what am I bitching about? Abstraction is a good thing right? I see two categories of abstraction. The first being the “good” kind, that allow you to be completely ignorant of the underpinnings. For example, Ruby converting down into machine code.

The “bad” kind of abstraction are the substitution of a language with a DSL. This creates a lot of issues starting with development and debugging. In the case of CoffeeScript and SASS, you have to compile the DSL files into Javascript, and CSS files. I feel like this compile step is a step back from what we gain working with dynamic languages like Ruby, and Javascript to begin with.

Development in these libraries also requires that you understand both the DSL of the library, as well as being familiar with the language of the generated code. This additional skill requirement adds time to a project, and raises the entry bar for new developers. Its difficult to be proficient at a language, and a DSL that generates that language at the same time. A Ruby developer told me yesterday that he was surprised at how rusty his knowledge of SQL had gotten. Its shocking to me that a web developer would struggle with SQL, but I think its an accurate sentiment on which many Rails developers would agree.

Another casualty of abstraction is performance. Not only is the generated code sub-optimized relative to coding it by hand, it is also being run through through more system calls to get there. You can either compile up front (CoffeeScript, SASS), or you can incur this penalty on-the-fly (Haml, Squeel).

While none of the libraries are a requirement of web development, when working on a team that uses these technologies you are expected to produce consistent code. Even though these libraries let you execute “native” code, doing so is discouraged because of the availability of the DSL. The syntax for embedding native code (if its even allowed) is often cumbersome, and loses editor functionality such as syntax highlighting and parsing.

Since when did Ruby on Rails web developers stop working with SQL, CSS, HTML, and Javascript? I am beginning to feel like the Ruby camp is becoming the far left extremists of the web development world. The web is built on these core technologies, and the benefits of abstracting them doesn’t seem to outweigh the costs.

The Biggest Little State in the Union

After weeks of unpacking, building out shelves, replacing lighting fixtures, unpacking some more, organizing, selling our possessions, getting creative with storing what possessions we didn’t sell, and living off restaurant food, life is finally getting back to normal for me, the wife, and all the critters. Moving day came and went as smoothly as I could hope. Thanks to the blunder of the Warren property, we were overly prepared and living out of boxes for a week prior to the move. In eight hours time we went from being citizens of Braintree, Massachusetts to Barrington, Rhode Island. I was just getting the hang of spelling ‘Massachusetts’ too.

The new property is close to the bay, in a scenic suburb with lots of folks walking, biking, and taking the dogs out. While our street ends at the water’s edge, we did sacrifice quite a bit of space in the move. We have been power sellers on Craigslist, getting some liquidity for things we didn’t have room for in the new place.

Also on Craigslist, I picked up a 2008 Lemond Reno in gently used condition for a great bargin at $225. With a quick tune up, and a bike helmet I decided to bike into work on Friday. I haven’t been on a bike probably since I was in middle school sporting the Huffy around the cul-de-sac. I couldn’t believe how much fun it was to ride! I always found it obnoxious when bike people would talk bikes, but its different once the bike bug hits. All I have wanted to do since Friday is have my body heal enough so I can get back on the bike and ride into work again. We strategically picked this location because of its proximity to the bike path, and this will become my commute to work, as well as a fantastic workout. Its quite a scenic view on my way in, as the bike path follows the bay through Barrington, and down into Warren. Perhaps I can convince the wife to pick up a bike herself and we can venture down to Newport once we get conditioned.

The new job is going very well. I read some materials on Job Characteristic Modeling, and I felt it did a great job at explaining why comparable work at my new employer has been drastically different for me than previous work. I struggled with task variety, identity, significance, and autonomy, which was a recipe for unsatisfaction. Government contracts are hard, and I have a new respect for the people that can do it. Mojo Tech is reminiscent of my time at Clayton State where I was given large problems to work through (some running for weeks at a time) and a full spectrum of disciplines needed to solve them. I guess the moral of the story is experiment with different company styles until you find one that pairs well with the way you work.

In other exciting news, I will be doing a presentation on the Rubymine IDE this Wednesday at the Rhode Island Ruby Users Group. Look forward to meeting the other Ruby developers here in the state of Rhode Island.

Pictures of the house are coming soon, as we prepare the last of the decorations. We are having a house party this Saturday, and any co-workers, past and present are invited. Come meet, mingle, and check out our new pad!

My House By the Sea

Last week I received an email from a recruiter looking to staff a Ruby on Rails development shop in Warren, RI. The job is 20 minutes away from Roger Williams Zoo (my wife’s future employer), and was in a quite, cheaper suburb right in the Bristol bay areas. The first house my wife showed me we mapped out directions for on Google, and the commute time was 25 seconds! This is a smaller salary, but I was weighing the trade-offs of salary, with quality of life. I would drastically reduce my commute, get to take my dogs into work, and work on projects that I feel I would be a better match for. For every reason to go, I could find an equally compelling reason not to go. I went in for an interview, and got a job offer. Inside of a week, I talked to my wife, my best friend, my parents, and myself. I wore myself down with little sleep. What I did get was restless, and the thought of switching consumed my every waking thought. Some folks at work lived in the area where this new employer was, and over the course of a few meals, I learned enough past experiences from them that I become convinced that this was where I wanted to be. I took confidence in someone from work who I consider very wise, and he took humor in the fact that this was such a struggle for me. I simply couldn’t see the forest through the trees. After assuring me that I would indeed take the job, and that I would love it, I went home that night on the train. From the time I got on the train, until the Taxi ride to my front door step, I noticed that my health had taken a turn for the worst. I had a heavy cough, I was sore, and I was freezing cold. After an unsatisfying dinner, I went into a sick, restless sleep. In the dreams I had (no doubt fueled by various crossings of medications) I saw my life staying at my current job, and my life at my new employer. I slept for what felt like days. When I woke up, backed with confidence by my wife and my co-worker confidant, I knew what the right decision was. I had just experienced a spiritual journey!

For those of you that are my current co-workers, I will genuinely miss you. It has been a hell of a good time at Beacon, and I feel lucky to have worked with such a great team. I hope that I got to share some of my Southernisms in your lives, as much as you have given me a perspective on the customs of New England. I will remember the lunches that I stuffed myself over, the great Android/iPhone debates, the pool games that I miserably lost, the new terms like ‘Ghabo‘ that are drilled into my vocabulary, new nautical terms learned navigating the Charles River, and tossing around the old pig skin. In the end, the commute, and the type of work was just too much for me to bare. I made it almost a full year, but it is time for me to move on and find my personal happiness. You are all invited down to the new house (wherever it may be). I know Kyle and Louis are in since its their old stomping ground. Fisher, and Josh are always up for a good time. Hoydis loves sailing, which Newport has plenty of. And lo and behold, an On The Border exists in Warwick, so I know Jeremy, the wife and kids are in. I wish I had more resolve to stay, but I know when its time to fold and go get my house by the sea.

Until we meet again!

You Found Me!

Sorry for any confusion to the few who read my slice of the web. My old DNS name, simpson.mine.nu provided to me through dyndns.org expired leaving me stranded. Looking back through my emails it seems that I had 5 days to reply to continue my account and I failed to do so. Instead of just being a simple fix of creating a new account, they have moved my domain name to a premium service. Instead of forking over my cash, I have decided to stop being lazy and buy a real domain name. So for all who have made it this far, welcome to my new home. The bathrooms are two doors down on the right.