Monday, June 29, 2009

Making music with Apple IIgs technology


Over the weekend I found myself using floppy disks for the first time in I-don't-know-how-many Moore epochs. It was a brain-bending reminder of how much great technology was built atop operating systems that fit into a few K of memory and Mylar storage media.

Back in the mid-1980s, Bob Yannes, the guy responsible for the MOS Technology SID (Sound Interface Device) chip in the Commodore 64 and the Ensoniq Digital Oscillator Chip (Ensoniq ES5503 DOC) that powered the Apple IIGS computer's audio system, introduced the first low-cost digital sound-sampling keyboard, the Ensoniq Mirage. At $2000 (in 1985 dollars!), it might not seem low-cost, but you have to realize that the Mirage's main competition at the time was the Fairlight CMI Series II, which, at ~£27,000, only very successful musicians could afford.

The Mirage was an incredibly versatile (and for its day, quite impressive-sounding) MIDI keyboard, with a 333-note sequencer (big stuff back then!), velocity-sensitive keys, and of course, the ability to use sampled sound. It loaded sound samples from 128K single-sided double-density floppy disks. Each disk held six 32-note "voices" plus a copy of the operating system.

In my case, I couldn't afford a Mirage keyboard ($2000 was too steep for me), but around 1987 Ensoniq came out with a rack-mount (keyboardless) version of the Mirage that was much cheaper (~$1300). Once it became "last year's model," I picked one up, new, at Sam Ash for $1000. The rack-mount unit (exactly the same as what I have) is pictured above.

My Mirage box had collected so much dust in the basement that I had to spend 5 minutes just cleaning the chassis exterior. I was very worried, of course, that the accompanying floppy disks (without which the device is useless), now 20 years old, would be so corrupted with flipped bits that I wouldn't even be able to boot the machine. Cheap floppies always seemed to go bad on me in two or three years. Could these still be good after 20 years?

Yes. Amazingly, I was able to boot the Mirage and load sound samples from disk. And just as amazingly, everything else worked -- MIDI in/out/thru, all the front panel buttons, etc. What had me challenged was the fact that I couldn't find the user's manual -- and this was a complex box to operate. Not really complex, just a poor user interface. Many buttons, many numeric inputs, no text messages whatsoever. It's a matter of knowing which buttons to push in which order.

I looked online for a user's manual, assuming there would be one. There wasn't. Instead, it turns out there's a lively aftermarket in Mirage user manuals, which often sell for more than used Mirage boxes themselves! But I did finally find a "cheat sheet" showing all the parameter codes. From there, I figured out the button-combos myself.

I wired the MIDI-in port to my Yamaha DX-7's MIDI-out, and lo! There was sound coming out the Mirage's mono output jack. And the layered sound (Mirage over DX-7) was actually quite marvelous, especially when piped through Cakewalk's digital effects (running on my Compaq Presario).

I often wonder if we really need the 120 gigabyte drives and 2GHz CPUs and mega-ginormous "operating systems" (so-called) on which we so slavishly rely today. Do we need to live in such digital squalor, really?

I look at the Mirage and think: "Not."

Friday, June 26, 2009

Google Voice: Cloud Meets Cell

Yesterday, to surprisingly little fanfare, Google started fulfilling invites to its new Google Voice service, which was announced back in March. This is essentially the culmination of Google's GrandCentral acquisition of 2007, but have no doubt, it's not the end of the story. It's the beginning of one.

It's hard to sound-bite Gvox. Ostensibly, it's a way to sign up for a single vanity phone number that lets you do voicemail and SMS text retrieval using VoIP from any device. According to Google:
[ Google Voice ] improves the way you use your phone. You can get transcripts of your voicemail and archive and search all of the SMS text messages you send and receive. You can also use the service to make low-priced international calls and easily access Goog-411 directory assistance.
If that sounds boring, it's because it is. But I think it may be a handful of frost scraped off the tip of a big icy thing floating in the ocean. If all Gvox did were to offer superior service to Verizon's Visual Voicemail, it would be a significant advance. But there's the potential for more. Much more.

Even before the GrandCentral acquisition, Google had big plans in the VoIP and mobile domains. You have to look no farther than United States Patent Application 20080232574 to get a hint of what I mean.

But use your imagination. If your cell phone becomes a gateway to Android cloud apps, you've essentially got the power to retool your phone with a virtualized OS, and obtain access to web apps galore. In fact, with a little sleight-of-hand, Gvox can give the appearance of completely reskinning your phone and offering a whole new menu system. Want to store your address book in the Gvox cloud? Done. Get auto-complete as you enter phone numbers? Do Google white-pages 411 lookups? Do reverse phone lookups? Record a podcast (and store it in the cloud)? Upload a cell-phone video to YouTube in a single speed-dial click? You get the idea. Let your imagination (ahem...) roam.

One thing I wish Gvox would do that I don't think it does (yet) is full many-to-many mappings of phone numbers. Right now you just get a one-to-many mapping of a vanity number to all your other numbers, which is handy enough because it means people can always reach you with just a single phone number, but I think it would be cool (especially if you're a marketer) to have the ability to map many phone-number aliases to a single target number and get advanced analytics for the resultant traffic. Who called from which number? Which ad or blog placement or campaign was the number associated with? Etc. etc.

We'll probably get all that -- and more. As I say, right now, on the surface, Google Voice doesn't sound all that exciting. But under the surface, there's a whole new world waiting. The Internet is your new dial tone.

Thursday, June 25, 2009

Java app server popularity wanes, except for one



Java app server popularity is on the decline -- if Google search volume is any indication. The above graphic (from Google Trends) shows five years of data representing search volume (upper portion) and news-citation volume (lower) for keywords "apache tomcat","websphere","jboss," and (just for fun) "weblogic." The trend lines are pretty convincing, it seems to me. Only Tomcat (which of course lacks full-blown app server status and is the orange in this apples-to-apples comparison) has a relatively steady trend line. The trajectory for all others is about the same as that of the U.S. Airways jet that landed in the Hudson.

In recent years, some of the lack of app-server-targeted new development has shifted to development that targets runtime frameworks like Spring. But it appears even interest in Spring has peaked.



The news for Java runtime containers is not all bad, however. One open-source application server -- namely Glassfish -- has been coming on strong.



What's interesting about Glassfish, of course (aside from the fact that it has a microkernel based on OSGi), is that it's a Sun Microsystems-backed project, with Sun providing commercial support for the enterprise version of the server. That means the future of the enterprise version rests with Oracle. One wonders what, if anything, Oracle will do with it.

Sunday, June 21, 2009

I thunk, therefore I am

Every once in a while I'm humbled to find that there's a word, in computer science, for something fairly common, that I've never heard of before. Today's word? Thunk.

According to Wikipedia, "thunk" may refer to:
  • a piece of code to perform a delayed computation (similar to a closure)
  • a feature of some virtual function table implementations (similar to a wrapper function)
  • a mapping of machine data from one system-specific form to another, usually for compatibility reasons
The original paper on thunks was P.Z. Ingerman's somewhat inscrutable (to me, at least) piece in Communications of the ACM, Vol. 4, No. 1 (1961).

I am, as I say, humbled to find that I did not know the term thunk. All this time, I thought it was the past tense of think.

Wednesday, June 17, 2009

How do you get 10K Twitter-followers legitimately?

NOTE: This post is obsolete. You want this one instead.

I explained yesterday why it's important, professionally, for me to have a large number of Twitter followers, and I pointed out that having quality followers is important: What good is it to have 10K followers if they're all trying to sell you a MLM scam?

I also promised that today, I'd tell you how I got to the 10K Twitter-follower mark legitimately, without sacrificing quality, which is to say without resorting to the sleazy list-juicing tricks that so many "marketing experts" seem to use on Twitter to gain followers.

Here is what worked for me.

I'm in the analyst business. My company doesn't compete directly with Gartner or Forrester or any of the other big analyst firms, but some of Gartner's (and Forrester's, etc.) customers do have an interest in some of the areas we cover. Thus it stands to reason that if someone (a given Twitter user) is following the Twitterstream of a particular analyst working for XYZ Group, that person might very well be interested in following my stream.

So imagine this scenario. Joe Twitter-user works in IT for a big company. He has decided to follow Analyst Linda Lou's Twitterstream because she covers content technology at XYG Group.

I decide to follow Joe Twitter-user on Twitter -- and Joe notices that someone named @kasthomas has decided to follow him. He says: "Hmm, who is this @kasthomas character? I better go check him out." Joe arrives at my Twitter page and sees from my Bio that I'm a content-technology analyst. He scratches his chin, shrugs, and says "Okay, maybe I'll follow this guy and compare what he has to say with what Linda Lou has to say."

The nice thing about Twitter is that people's follower lists are public. I can get the Twitter usernames of all of, say, Forrester's list of 18K+ followers. I can inspect that list by going directly to http://twitter.com/forrester/followers, or I can harvest the list programmatically by using the Twitter API and a little Javascript.

I have written various scripts (most of which run in the Firebug console; some are Greasemonkey scripts) that do things like harvest a given account's followers, do a diff between my follower list and another list, and batch-follow a given group of IDs. I also have scripts for finding out who I'm following that is not following me back, and purging those people from my Following list. I've blogged before about some of these scripting techniques, which (as I say) often involve only a few lines of code that can be run in the Firefox/Firebug console.

Bottom line, it's not rocket science. You follow people with common interests. They follow you back. Or not.

Now as to how you can meaningfully follow and process incoming tweets from thousands of followees, that's another story. And another blog, for another day.

For more on this, see my 99-cent e-book.

Tuesday, June 16, 2009

Opera unveils just what I said they would

A few days ago, I predicted (based on no inside information whatsoever; strictly an educated guess) that Opera would today unveil just exactly what it today unveiled: http://unite.opera.com/.

What can I say? Once in a while you get lucky.

Monday, June 15, 2009

What does it mean to have 10K Twitter followers?

NOTE: This post, about how I do Twitter, is obsolete now, in that I currently have well over 300,000 followers, not 10K, and I've learned a lot about Twitter in the four years since this post was written. See this 2013 post for more up-to-date info. 

NOTE: If you came here wanting to know what "+K" means in a tweet, it refers to Klout.com kred points. If you came here to learn what the 'K' means in 10K, it means thousand. Lots of people Google it, apparently.

Somebody on Twitter asked me over the weekend what it means to have 10K Twitter followers. Since most people learn in grade school that 'K' used in a numeric context means "thousand," I have to assume that the person's question was rhetorical in nature rather than numerical. Either that, or he failed 5th grade.

Still, let me make it perfectly clear. Having 10K Twitter followers means just one thing. It means you have ten times more than 1K Twitter followers.

It's important for me to have an audience, because by profession I'm a person who transfers knowledge and influences opinion. If I have a larger audience, I'm more effective at what I do. That's fundamentally why I went about the six-month-long task of trying to attract and keep ten thousand Twitter followers, a goal I reached on Sunday.

Of course, it doesn't help to have followers if they are all robots, nut cases, and mouthbreathers. Quality counts. Unfortunately, Twitter attracts its share of hucksters, scammers, lamers, and marketing hangers-on, and many of them spend their days and nights trying to follow people in hopes of a pingback of some kind. I have some of those people in my 10K, but not so many as to make the remainder not worth having. In fact, I count the quality of my follower list to be extremely high, and I'll explain why I think that -- and just how I got to the 10K mark, incidentally -- tomorrow.

For more on this subject, see my 99-cent e-book.

Saturday, June 13, 2009

Here's what Opera is about to unveil

I love a good mystery as much as the next guy, but many people (myself included) are finding Opera's latest mysterious claim a bit over-the-top. In case you haven't been following this story, the Opera folks are saying that on June 16 they will unveil something that will "reinvent the Web."

Many people have speculated as to what it could be (I will tell you what I think it is in a moment). Some have said, based on a tantalizing tweet by Hicksdesign, that Opera has found a way to put the Internet on a USB stick. However, that's (yawn) been done.

Others have suggested that the new Opera will offer a seamless (don't you hate that word now?) way to sync everything to everything, so that all your contact info, e-mail archives, cached web pages, notes-to-self, car keys, and loose pocket change are synchronized across all your devices, including your refrigerators, all the time.

That's been done too. More or less.

Folks, let me tell you what's going to happen. I have a pretty strong hunch (but no inside info, I assure you) on this one. This is something I've thought about for years -- it has needed to happen for years -- and I'll be thrilled if Opera pulls it off, although whether people will flock to adopt it is another question.

The answer is that Opera is going to embed a web server in itself.

When you fire up Opera, you'll be operating a secure server and you will be able to serve all kinds of content (whatever you want, basically: bookmarks, contacts, cached content, arbitrary files from a roped-off area of your local storage, web pages of your own) to other Opera users, at the very least, and maybe all browser users, at the very most. The security aspects will be interesting, but presumably they've got a solution there, too.

Such a trick would solve the sync-anything problem trivially, as a side benefit. The more interesting question is what kind of two-way AJAX apps and mashups people will be able to write when they can use each other's browser as a web server. The Web goes from being a bunch of big public servers plugged into a common backbone, to a confederation of micro-servers distributed across individual devices running Opera -- a Web within a Web, the peer-to-peer Web. Except instead of running a P2P protocol, you'll be running good old HTTP.

The embedded-server browser (possibly with embedded Derby or other database) is what I see coming on the 16th. Or something like it.

Anyone got a better guess?

Wednesday, June 10, 2009

What has become of the old-fashioned Encyclopædia?

Answer:

Photo courtesy http://www.rob-matthews.com

This bound version of Wikipedia contains only the featured articles from Wikipedia. It obviously does not encompass all of Wikipedia. If it did, it would stand as tall as . . .well, a tree.

Monday, June 08, 2009

CMIS, or DMIS?

It occurred to me the other day that CMIS (Content Management Interoperability Services, the proposed OASIS "common protocol" for Enterprise Content Management) is actually a Document Management standard, not a Content Management standard. Its name should therefore be DMIS.

For proof, one need look no further than the data model. "Document" and "Folder" are the principal first-class objects in the CMIS model. Thus, "content" (the 'C' in 'CMIS') is assumed, by the authors of the standard, to mean "document."

The CMIS data model is also RDBMS-centric and SQL-friendly (as it is in all good DM systems). It follows the tried-and-true relational model of every respected legacy DM system.

I might add that the authors of the standard have basically declared WCM to be out of scope.

Basically, anything that doesn't fit the "everything is a document or a folder" model is either out of scope or will be extremely difficult to force-fit into the CMIS mold. At least, that's how it's starting to look to me.

I can't see WCM or DAM fitting easily into the CMIS worldview (which is a 1999 worldview, in terms of content being nothing more than documents and folders). What do you do with XMP in a CMIS world? Indeed, what do you do with unstructured content, in general? CMIS looks for content that's structured. That's not today's world. Sorry.

So CMIS is, for all practical purposes, a document-management standard -- a way to let DM systems (mostly legacy DM systems) talk to each other. There's nothing at all wrong with that. DM is still a critical piece of the ECM puzzle. But it's important not to mistake CMIS for what it is not and can never be: a universal content management API.

Sunday, June 07, 2009

WCM and ECM vendor home-page loadability: a quick followup

Back in April, you may recall, I ran a quick performance test on the home pages of various WCM and ECM software vendors using the popular YSlow tool. I blogged the results and compiled the test data into a 121-page PDF ("A Comparison of Home Page Loadability Scores for Major WCM and ECM Vendors") that can be downloaded (free) here.

I checked the download page's stats today and was surprised to find that the report has been seen by 360 visitors since I posted it on April 23. I don't know how many downloads it has had, but it doesn't really matter since the download page has a PDF viewer built in, and you can just peruse the document online.

For such an obscure, technical, narrowly conceived document, I think 360 views is pretty remarkable. I had expected about 40 views (corresponding to the number of vendors tested).

What will be interesting is to run the same battery of tests again in a month or two, to see who has tried to restructure their pages to improve their YSlow rankings.

Note-to-Self: Run YSlow on all the big-WCM/ECM-vendor web sites again soon. And this time, add a few more vendors.

Thursday, June 04, 2009

StreamGraphs are neat


Twitter StreamGraph for the last 1000 occurrences of 'CMS'.

As an unrepentent eye-candyholic, I love to stumble across things like the Twitter StreamGraphs from Neoformix. What the graph plots is the instantaneous volume, over time, of the most recent 1000 occurrences a given keyword or hashtag in the twitstream. There's nothing special about plotting the data in abscissa-symmetric fashion; it just looks neat and is cognitively "easy."

The plot shown above (click on it to enlarge it) shows the last 1000 occurrences of "CMS" in the twitstream. If you go to the link shown given earlier, you can generate your own StreamGraph for any keyword of your choice.

I might add that the Neoformix site itself is a great place to learn about novel data-visualization techniques (and new twists on existing techniques). Lots of eye-candy to be had there. I say drop what you're doing and go there now. You deserve a snack.