Why Google Apps Fail
July 15th, 2008
Google Apps is(are) the new MS Office complete with spreadsheet, slide presenter, database, and word processor. They all suck. Commonly cited reasons for failure are that the browser is not an OS, Javascript lacks support for concurrency, Javascript is slow, businesses are slow to adapt to new technology, community authorship is already solved by VCS and wikis, etc. Here’s the real reason they fail: fighting the last war. Word processors and spreadsheets are generic, where “generic” carries the same negative connotation as when applied to performance art.
Google shouldn’t be trying to make generic apps easier to use on the web. Email, IRC, IM, wikis, forums, and social bookmarking have an evolved interface balancing generality with complexity. They are also not stand alone programs that can have the network part removed like a word processor. Even if all the technical browser/script problems are solved, what will Google Apps offer other than a plethora of features bolted on to something resembling a wiki? It’s generic.
Features can increase generality, but at some level of generality the competing technology becomes Sqlite, Linux, or Java; not MS Word. I’ve witnessed the humor of a Salesforce tech-support conference call. My client was using a form that posted to Salesforce and was trying to add some work-flow features on the Salesforce end. What I heard astounded me, the client was getting a lesson in scripting from the tech. I left the call early, glad my part was limited to creating the form. A solution can go in two directions as it becomes more general; more abstract, or more complex. MS Word and Powerpoint embrace complexity. Programming languages lean toward abstraction. Either way, generic solutions are always harder to use.
The MS Office suite thrived because it made it easy to share. Embrace, extend, extinguish. One app to open them all! The complexity was necessary for generality, and generality was necessary for sharing. On the isolated PC there wasn’t room for a special version of Powerpoint for teaching with another for pitching sales. Word had to handle letters, resumes, and instruction manuals, in formats including HTML, text, and binary. It had to interface with Access and embed Excel documents, and each of those programs had to share well with others in the suite. It was a very capable one-size-fits-all solution that was very complex as a result.
With the web offering effectively unlimited storage on top of easy distribution and sharing, there is no longer a need for one-size-fits-all suites. New apps can depart from the generic view of the suite and approach problems directly. There should not be a Powerpoint of the Web . Instead, applications should specialize so that one for e.g. teaching aircraft systems or training sales reps will bundle a tailored likeness of Powerpoint. Slides in this new hypothetical software might pull facts from manuals or link to simulations, each of which is another specialized application, reiterating the importance of sharing. Thus, The Web
Google Apps solve the problem of sharing by offering a uniform API (so 1990), on the web (so 2000). In contrast the new application suite will have as many APIs as there are applications, and as many applications as there are problems to solve. Google Apps are generic and lame.
"Missing the point", Misses the Point!
February 7th, 2008
If there was ever a phrase which should be banned from all discourse it is “missing the point”. Missing the point means making an irrelevant conclusion. It’s similar to a non-sequitur with emphasis on the conclusion rather than the evidence. Instead of saying a conclusion is wrong because the evidence is irrelevant (non sequitur – does not follow), “missing the point” directly attacks the conclusion as irrelevant and therefore wrong.
Many Internet discussions have no point and therefore none to miss. Good discussions have many points and that’s why most comment systems are threaded – so different points can be clearly discussed! Don’t tell me I’m missing the point because I introduce a new spin on things. Instead, be a genius and fork the thread. If you disagree then say so, but how could you disagree if I was truly missing the point? If you rebut irrelevance with anything other than an explanation of why something is irrelevant then your clever rebuttal is non-sequitur since the chain of logic is broken. This is what downmods are for. Use them. “You’re missing the point”, is just a red flag that means irrelevant, obvious, or arrogant statements follow.
Which brings me to arrogance. By claiming that I am missing the point you have implied that there is some “one true” point that I have missed. How is that even possible? Does each cause have one and only one effect, and vice versa? It’s nearly the definition of simple-mindedness. Like thought police you seek to limit the scope of discussion to protect the logical purity of your narrow, self-idolizing views though mindlessly repeated idioms. It’s doubleplus ungood for real discussion.
Think I’m missing the point or full of shit? Consider that Google claims over three times the number of hits for missing the point then for the overused phrases full of shit and full of crap combined. Please stop polluting discussions with this trash.
Six Weeks of Appendicitis
January 9th, 2008
On January 7, 2008 I had my appendix removed more than six weeks after initial symptoms.
I began feeling fatigued during a trip on Nov. 22nd. With symptoms of fever, extreme fatigue, and abdominal pain I called in sick and went home on the 24th. On the 26th I went to a primary care provider and was diagnosed with hematuria caused by a possible kidney infection or stone. I left with a prescription for seven days of steroids and ten days of antibiotics. Ten days later I still felt ill so I returned to the clinic where I again tested positive for hematuria and got a referral to a urologist. The urologist referred me to a CT scan where finally, on the 10th of December, I found the cause of my sickness to be an enlarged appendix. The urologist referred me back to primary care where I received a referral to a surgeon. The surgeon reviewed the CT scan and decided to remove the appendix but advised that since my condition was improving it would be best to allow some healing to occur before cutting. He prescribed some antibiotics and said it would be okay to work but agreed it would be best to consult an aviation medical examiner. The aviation doctor also said that I could work until surgery but cautioned me that I should not work with pain since it was a distraction. Since I was pain free for three days I returned to work on the 17th of December but the altitude changes and turbulence caused my abdominal pain to return. As should be expected the aviation doctor was right, pain is really distracting. I called in sick again and decided to wait until I had recovered from surgery to return to work. The surgeon did a great job and I have had less pain during recovery than I did during much of December. I don’t need pain medication but I have been using one dose at night to sleep through the minor discomfort of three incisions in my stomach. Finally, almost two months after beginning sick leave I will be fit to return to work. I have used the majority of my sick bank and filed for FMLA. What should have caused me to miss three weeks of work turned in to seven and a half. The hospital staff, surgeon, urologist, and CT scan folks were excellent and I have great respect for them and their profession.
As for so-called primary care, this is not the health care I grew up with and I don’t really know where to point my finger. The primary care PAC and her doctor focused on kidney issues due to hematuria and assumed the abdominal pain was associated. Blood and urine were taken for additional testing but the blood results took days to complete. Blood tests confirmed I had an infection of some sort. There was no X-ray, CT, ultrasound, MRI, or any imaging in the office. Getting imaging done takes a referral and an appointment several days away. A CT scan would have removed the possibility of a kidney infection or stone. I can only assume that if there was imaging equipment in the office I would have been referred to a surgeon two weeks earlier than I was, maybe even had my appendix removed that same day. Since it takes three to five days to schedule a CT scan it would seem reasonable to begin taking drugs for the most likely problem until the scan could be completed. Even then, I would most likely need a specialist referral and that can take even longer to schedule than a scan. Why can’t I go to the doctor and get some real tests done so I can get a diagnosis? Do I blame the system or just assume I chose bad primary care? This isn’t the first clinic I have found in the area. I have been to a few and shopped around. They are all in professional buildings and are staffed by approximately ten doctors and nurses. They have a microscope and a stack of magazines. Any real tests require a referral. I personally think primary care has become nothing more than a sales outlet for pharmaceuticals.
While at the hospital I told the nurse about my referral saga and asked if she knew of a primary care clinic that had at least an X-ray machine. She advised that she was not allowed to give recommendations. Fair enough, but she also said the care I received seemed standard. Usually primary care, the place I go with symptoms, is a professional building with very limited equipment. What are these places? All they can do is prescribe drugs and when I’m sick I may need more than drugs. The hospital is where the real care is but unfortunately I don’t qualify for that clinic since I actually have insurance and I’m not a senior citizen. In the end I paid more in co-pays than an emergency room would have cost. My profession as an airline pilot is also incompatible with referrals and waiting since I am essentially grounded until I know what’s wrong. I can’t just go to work while I wait for test results for documented symptoms. I am required to have a medical exam every six months and it is clear that going to work sick is illegal, stupid, and a willful violation of the law. Despite the cost I am considering skipping the bullshit and going to a real hospital with real equipment next time I have symptoms.
This leads to billing. I have great insurance. It’s a 90/10 plan with no deductible and a reasonable out-of-pocket maximum. I chose this plan over 100% coverage because even with my surgery the total cost in premiums and coinsurance is about equal to the cost of 100% coverage. These are the benefits of working for a good company and being part of a strong union like ALPA. I lost no pay since I had time in my sick bank and FMLA will keep me in good standing with my employer. This is to say, I am not forgetting to count my blessings.
I do, however, have some issues with the billing which make me worry for the day when I have no insurance. A typical test for blood or urine might be billed at six times what the insurance company actually pays. A $380 lab test gets covered at $60 by BCBS. When I asked how much my CT scan would cost I was told $2000. They billed BCBS for $850 and BCBS paid around $500. My bills all share this trait with lab work having by far the greatest discrepancy between what is billed vs. paid. Before the surgery I tried to find out what it would cost but no one could tell me. I signed that I would pay the bill if the insurance company denied my claim without a clue what it would cost. I know it depends on the resources and time used. If I had to stay additional nights in the hospital or have more surgery and blood transfusions it would cost more. Still, why can’t I get an itemized estimate ahead of time? An accurate estimate would be nice. Don’t tell me it’s going to cost $30,000 and then bill the insurance for $6500 while getting paid $4000. This is exactly what would have happened so I didn’t really mind not having an itemized bill.
I have it better than most people in America. Many folks pay larger premiums and have per-person deductibles which for a family can lead to terrible cost. Others have no insurance. Do they pay the full 600% markup on lab work? Primary care is a WTF. Billing is a WTF. At least I am alive. Thanks also to my wife for helping me with the innumerable pains and annoyances that happen during illness.
My Documents
December 26th, 2007
Music Patents
September 2nd, 2007
I discovered something sort of neat today while strumming guitar. Being a neophyte in music theory I’ll describe it like this, the major chord is on the left and the melody note is on the right.
D D
A C#
C C
G B
The melody walks down in half-steps while the chords progress down in full-steps interspersed with fifths.
I suppose I could continue this progression forever but I am less skilled on guitar than keyboard so I have no idea what it sounds like. Continuing. . .
A# A#
F A
G# G#
D# G
Playing with this idea led to a nice sounding and beginner friendly D A C E major chord progression. A random thought about software patents was enough to get me dwelling on the similarities of music and software.
An algorithm is usually defined as a set of steps or rules to solve a problem. A chord progressions obviously fits this definition since it is a sequence which solves the problem of harmonizing a scale or modulating tension through consonance and dissonance. If we consider the following analogies it becomes evident that (chord progression -> algorithm) is the only one that fails in the legal sense even though a chord progression is an algorithm.
- sheet music -> source code :: (ideas on paper, copyright)
- recording -> forked binary code :: (derivative work, copyright, reverse engineering)
- music theory -> computer science :: (math, unpatentable)
- instrument -> hardware :: (identity)
- chord progression -> algorithm :: (uh…?)
I have never heard of a patent on a chord progression. Google Patent Search for chord progression returns patents for algorithms which derive progressions from melodies but not the progressions themselves. A method can be patented and algorithms are methods, therefore algorithms can be patented.
If my problem was not to generate algorithmic music but instead to arrive at the tonic chord from a particular note in the melody the method would naturally describe a progression of chords. Suppose I worded my patent like this: A method to arrive at the tonic triad from the ninth note of a major scale. For some idiotic and historical reason a software patent must include a description of computer hardware. I would assume that my chord progression patent would require similar wording requiring it to be played on a physical instrument. The revised title might begin: Apparatus and technique to arrive. . .
Other musical methods that seem patentable include finger tapping a guitar, overdriven amplifiers, and strumming piano strings since these things were novel at one time. The patent system is opaque and arbitrary. It’s like a poker game where the players are allowed to edit their hand, but with an infinite number of suites and face cards. The game destroys innovation and transforms productivity into litigation.
I’ve never applied for a patent or been sued for infringement so it would seem that I’m either an arbitrary complainer or a disinterested third party. Unfortunately we are all hurt by the loss in market competition, increased litigation, and stifled innovation that is the direct result of frivolous software patents.
Why is it Nearly Impossible to Fill a Clothes-Iron with Water?
August 27th, 2007
Duck Typed Declarations of War
August 21st, 2007
Lessons from computer programming for U.S. government.
Duck-typing has gained a lot of prominence as a means to facilitate code reuse and refactoring. Proponents argue that the absence of type declarations results in shorter, easier to understand code that is simpler to maintain. For example, an objects which prints a list of it’s members names need not concern itself with the type of those members as long as each member has a name. If the object walks like a duck and talks like a duck, it’s a duck and it can be used and abused anywhere a duck might be needed.
Most statutory law code is duck-typed. A felon is someone who as been convicted of a felony and so on. There is no law that says John Doe must go to jail. John Doe only goes to jail if he is a criminal as declared in the statutes and implemented in precedent. Why then should the executive have a law that directs it to attack Iraq or Iran when what it really needs is a law that says attack Our Enemies? Despite the current limitations and red tape, it is possible to wage war to an interface. This benefits in a code of law that is easier to modify in the face of changing and conflicting requirements such as finding evidence of WMD, spreading democracy, stopping nuclear proliferation, bringing justice to Sadam, retaliation for Sept. 11, preventing terrorism, controlling oil supply, stabilization in the region, world peace, religious freedom, etc.
Rather than obtain a declaration of war from congress against a specific nation, a prudent executive should obtain permission to wage war on an abstract entity. Good picks include Terrorists and “Evildoersh” but even these may prove too constrictive for later refactoring. Goals always tend to change in any large project so it would be ideal to get a war declaration on the super, Our Enemies. Future implementations of democratic government should have better support for waging war directly on Our Enemies. Until then it’s possible to wage war on The Terrorists while raising few public exceptions.
Of course this is only proof of concept material and you shouldn’t trust it until TestCase::Iran is merged.
Get the source!
Making a Better Wmii Machine
August 14th, 2007
After using the wmii-3 window manager for a while I began to notice that I really didn’t use very many kde-suite applications. The notable exception was konqueror but I have found that I now prefer nautilus (with the—no-desktop option) for its speed. Opening documents in new windows also lets me leverage wmii’s dynamic window management better. I used to hate it when apps opened new windows, preferring tabs or almost any alternative besides having to manage another window on the desktop. Wmii made me realize that most window managers are broken. Apps shouldn’t have to manage tabs. Wmii isn’t perfect. It really needs a second level of tags or perhaps a tree style setup to really be able to replace tabs in the browser. I’ve read Xmonad does something like that. I’ll have to get around to installing that one day.
I’ve also given up konsole for gnome-terminal because it loads as fast as xterm and I really like the highlighting feature for copying or opening urls.
All this gnome love provoked me to start with a fresh install of Ubuntu. I later found a coffee shop in Montreal that had free wifi so I could get my favorite apps up and running. Why do hotels always have unusable Internet connections? Anyway, I can’t think of anything else I need to install for the moment so I figured I kill some time with this post.
PS. I forgot to plug the cafe with complementary wifi. It’s called Pause Cafe. Google it.
Automagically Considered Harmful
March 21st, 2007
Computers are good at automation. They’ve been doing it for years. The B-29, in the second world war for example, had computer controlled gun turrets that automagically set the convergence based on input from one gunner and radar derived range. That was over fifty years ago. Please do not use ‘automagically’ to describe anything a computer does. I will now push this ‘Save Article’ button and automagically publish to the “inter-net”, or “cyber-space” if you will.
Cursive to Word Processor to HTML in School
March 9th, 2007
I’m out of touch with what’s going on in public schools. I believe they have stopped teaching cursive writing, which I now only use to sign my name in a very illegible way. I could have done that without learning cursive. We were beginning to learn Word Processing on the Apple 2 computers when I was in elementary. It was all very painful and useless, since the word processors I used in college were incomparable to the one I used in elementary school. Logo was more worthwhile, FWIW.
Now, as the trend to publish on the web continues we are seeing an increased need for HTML skills. Look at all the fun kids are having on MySpace. We need to teach them to do it right and put an end to their fun! But seriously, this IS the new business communication. HTML is a mature and royalty free standard. Why are some schools teaching MS Word or OpenOffice? These will be extinct or totally revamped in a few years anyway. The complex and feature rich software will die like the dinosaurs. Simple standards like HTML will live through change like bacteria.
Intellectual Property Laws are Evil
March 3rd, 2007
“Give a man a fish, and you feed him for a day. Teach a man to fish, and you feed him for life.”So goes the worthy old saw. Good in its day, more than likely, but completely inappropriate for the thrusting, cut-throat, dog eat dog world of modern commerce. I would suggest an alternative version:
“Teach a man to fish, and you introduce another competitor into the overcrowded fishing industry. Give a man a fish, and you stimulate demand for your product”
Mickey the Fish, Sep 04 2000
Taken from Halfbakery
Bingo. I was struggling to cast into words the difference between free software and free service and this munging of a classic meme fits the bill perfectly.
The Golden Rule
The code is the teacher. To hide the code is to keep the knowledge, and with it the power. All the zeefoos, nipees, pangos, (insert cutesy web 2.0 sounding name), have one thing in common. They exists because of open-source software and royalty free standards.
The FLOSS licenses restrict the use of the code but they do not prohibit the use of knowledge gained from that code (leave that to software patents). Even placing restrictions on the use of the code is a little paranoid. Is your code that special? Is your in-house framework so incredibly perfect that if you release the source someone might use it to build an empire and crush you? C’mon. If it’s that good there will be more than one empire built with your code and you will at least be a well paid white-beard for one of them.
The only good reason to hide code is that it is imperfect. Exposing code exposes bugs that could be used by spammers and other generally evil people.
That brings me to the multitude of free services built with free code. For the most part they empower people to communicate and find things. Google helped me find the opening quote for this article. The “don’t be evil” manifesto is a good one. Democracy, monarchy, monopoly, anarchy, aristocracy, etc; the best times occur when an entity with enormous power wields it in a non-evil way. The non-evil quality is an elusive one but we tend to know it when we see it. Perhaps a more specific version of ‘don’t be evil’ is ‘follow the golden rule’.
Did you properly license your DNA?
Imagine what could happen with a proprietary human genome. The copies and derivative works of this genome would be restricted as to how many copies they could make themselves and with whom they could recombine their genes. One would need to check their EULA before sex and use contraceptives if necessary. If any illegal children were born they would either have to be destroyed or become the property of the genome owner. It is my understanding that the genome is currently public domain, a license which does not prohibit proprietary derivative works. It may behoove us to license our genome under GPL, LGPL, or some other open source license. The license must also allow the gemone owner to restrict its use or we would have compulsory free sex, so GPL is not the answer. It sounds crazy and it is.
KISS license
Here is my license. No legal (government) intervention required.- I have a right to say and copy what I know and have, no matter what the source.
- I have a right to keep a secret but it’s my own fault, and therefore my loss, if the secret is revealed.
The success of the Internet is due to the implicit use of the simple license. I can’t read all the source belonging to Amazon, Ebay, Yahoo, Google, Flickr, Digg, Reddit. . . That’s theirs and they keep it secret for their own reasons, as is their right. I can learn all I want about DNS, HTTP, STMP, Ruby, PHP, C, Linux, etc.
Rights and Responsibilities
It’s not my, or your, problem if someone at Google gives out company secrets. We should be entitled to use the information we have as we see fit. I can already hear it, “Gee, we can’t do that. . . How would a big company ever keep secrets?” So what? Sergey Brin and Lawrence Page wrote the core algorithms of Google long before they even had a company. FWIW, they also published the main idea.
The Internet allows us to keep certain things secret while simultaneously delivering a product. It also enables individuals to publish their own works in a very accessable way. The music industry, for example, is a middle-man that will be eliminated by technology. The RIAA’s wild grasps for power are clearly the desperation of impending death.
Personal information like credit cards and SSN’s are of the same nature. The question is not whether the information owner should bear the responsibility of an uncovered secret, but who the owner is. Since the credit card industry has total control over the security design we tend to view them as the owner, and it is their fault when the system breaks.
Conclusion
I feel we have arrived at a fork similar to the division between mercantilism and free trade. If secrets are viewed the responsibility of the owner our information culture will continue to flourish. The public should not be burdened with the individuals inability to hide sensitive information. Free of this burden we can spend our efforts on more noble things like fishing.
100% Uptime?
February 13th, 2007
It’s been over 10 years since Al Gore invented the Internet and named it Information Super Highway RC1, which later became Web 1.0. Now, in the world of Web 2.0, we still lack 100% uptime of all services. As I sit at the library typing this, because the power is again out at my house, I am forced to realize that electricity, like DNS, is a 100% uptime service.
Of course the main thing I host at home is my subversion repository and a user at ListDC just informed me of a bug, which I was trying to fix this morning when the lights went out. My laptop is five revisions behind HEAD but the only things I’ve been working on since I updated the laptop is experimental stuff for Web 3.0 so I think I’ll be fine when it’s time to commit the fixes.
I’ll plan to move my repository to a remote box in the future. They have better uptime and the upload speed is better. I wouldn’t doubt it if this is the norm in the future. Folks will host ALL of their info remotely on a stable OS and put the fancy new stuff (like Compiz/Beryl) on their home PC and laptops.
How to destroy Ubuntu
February 7th, 2007
The best way to destroy an Ubuntu installation is to follow various guides on the Internet that require you to drastically change /etc/apt/sources.list, then at any time run apt-get upgrade or worse yet, dist-upgrade. Flaky sources lead to a flaky installation and my favorite is watching connections time out with apt-get update. On top of all that, when it becomes necessary to revert to more stable sources I wind up with a bunch of broken packages with no way to fix them. Well, no way except uninstalling everything and then reinstalling. Of course the reinstalling is fraught with peril because of all the broken packages.
It all started when I become enamored with installing compiz. I basically made a deal with the devil and followed a guide (which I can no longer find). When that didn’t work I signed on the dotted line with Satan’s quill and ran a script (which I can no longer find) that ‘updated’ my sources.list, xorg.conf, display manger configurations, installed Windows codecs, sound drivers, and you name it, to make Ubuntu more usable as a general purpose desktop. It sort of worked.
I can’t remember the details but it was sort of like this.
bash# sudo ./pimp-ubuntu-and-use-shotgun-to-untie-shoes.sh
Sign deal with devil [Y|n]? Y
In trying to fix this at 3:00am I royally screwed up and pasted in the edgy sources with dapper installed. That, like the upgrade that followed, is user-error. “Wow”, I thought, “Look at all this stuff getting fixed! I gave up when g++ could not be reinstalled due to three dependency issues, and that’s just the tip of the is-not-going-to-be-installed iceberg. Never again, I say again.
Ubuntu is good. I plan to stick with this guide from now on. It’s the only one I still trust. If only I were a guru. . .
Only losers flame with their real name!
December 27th, 2006
I spend some time lurking on forums and I have found that there are actually meta-levels of flamewar, or flames about flames. One particularly interesting level is the "USE YOUR REAL NAME ASSHOLE" (UYRNA) argument. The real-name-user (RNU) is almost always responding to a personal attack from an anonymous user (AU) and is usually justified in their response. I don't question the RNU's right to self defense but it is bewildering that anyone would engage an enemy on such impossible terms.
Read the rest of this entry