Author Michael

Innovation happens in the gaps and voids: Open Source vs. “open source”

I got an interesting form submission this Saturday evening apparently from (someone who didn’t name themselves at) the Open Source Initiative. They filled out the Timeglider JS license registration form (here), but he or she was really just sending a message:

You can not call this software open source if you are charging for a license to use it.

Nobody signed the note, and there was a general-box email address left in the email field (osi@opensource.org). This is how I responded:

Greetings

I appreciate your feedback.

First, I ask that you continue this correspondence
in person so I know whom I’m talking to.

I think you’re right that Timeglider probably shouldn’t
present itself as “open source” in that many developers
could end up with the false impression that we’re
using the MIT or GNU licenses.

However, one can call one’s product whatever one
wants — as long as it infringes no copyright or trademark.
No one (and especially not OSI) has ownership of
the phrase “open source”, so I think you’re wrong that
one “can’t” use that term. If one were to be diplomatic,
one might say that by using the term, while not meeting
conventional criteria, it could lead to misunderstanding.

I’ve removed reference to “open source” on our site,
just to be clear. We originally did place our jQuery
component under the MIT license, yet since turning
to a “dual license” have been trying to figure out how
to present the fact that the source code is open for
inspection and free (as in beer) in many situations.

We rely on open-source software for our product, and
also plan to offer many parts of our code as “open source”
according to the MIT or GNU Licenses, so
I’m a big fan of the work of the open source community.
Still, the term is itself not a matter of intellectual property.

This is an important dialog which I’m sure is pertinent
to many companies and developers. I’d like to hear back
how it is that you feel you can enforce a rule (or law?)
under which one cannot present something as “open source”.

If you see other references to “open source” anywhere
on timeglider.com which I’ve missed, please let me know.

I thought it would be worth spelling out here on the blog why Timeglider is not currently “Open Source” (under any OSI-approved licenses) — even as we did for a while have it under the MIT Open Source license, from March until September of 2011.

The Open Source Initiative (here) defines “open source” in a manifesto here: It begins:  “Open source doesn’t just mean access to the source code.” It lays out reasonable criteria that should be met, they believe, if one is to call a product “open source.” (The phrase, by the way,  was coined in 1998 by some early web pioneers at Netscape — as Netscape became the first large company to offer it’s own source code out to the world at large. This was indeed a pivotal moment in technological history).

It makes sense that the rather vague concept would need some pinning down. Sometimes important ideas in a community need vanguards. Yet it seems that the OSI has given itself the paradoxical role of enforcing a strict meaning on a “fair use” phrase as if it were their own intellectual property. Their criteria frequently use phrases like “must include”, “shall not”, and “not allowed”. What is between the lines is this: “The meaning of Open Source shall not be open source”.  This type of contradiction — between freedom and restriction — is the hallmark, come to think of it, of government.

The polarization of creativity and “property” (not just software) between two extremes — free and commercial — is a corrosive binary seizure happening these days that is on par with the conflicts between “communism vs. capitalism”, and “liberal vs. conservative” ideologies. It makes for an numbing system under which to create code, do business, and simply to think. The void-gap in this binary is probably the reason why people in Hollywood can’t innovate their commercial products, and why on the other hand, so many people feel that piracy of electronic products is some revolutionary force.

We (still) live in a free society. How we frame our businesses and how we distribute our intellectual property is one of the creative freedoms we need to exercise — with attention to the complexities and nuances of the real world. I made the mistake of feeling that I had to jump on the Open Source bandwagon: After some testing of the waters, it became clear that the “pure” Open Source model doesn’t benefit us — and presents serious hazards.  Business patterns differ as much as design patterns in software. One has to use the tools for the job. Timeglider being minuscule, and yet offering something unique that has demand in the market, we need to make sure we survive and still serve and connect with our customer.

So, just to clarify: The code of Timeglider’s JS component is freely available for looking at and downloading (on Github here), and non-commercial use is free, but there is a $500 commercial license fee for it if it’s used in a commercial context (or $1500 if the application has more than 10 authoring users). The core idea is: “If you use our code in a commercial context, it probably helps you make money, so pay us some money; if you use it in an non-commercial context, use it for free — we want to help. If you want to redistribute it, we’ll work out an arrangement, because every use case is different.”  Our license will evolve as the business does.  So far, dozens of non-profits, historians, educators, and others have used the non-commercial face of the license with great success, and we’ve worked out several commercial licenses, too.

I’m rubbing my eyes. Does the OSI really enforce their rules with anonymous form submissions? I think probably the person who filled out my form wasn’t really from OSI, but was an irritated Open Source adherent who just wanted to throw a brick through my window with a note taped to it. It did get me thinking.

If you have any thoughts on the matter, I’ve opened comments up — or drop me a line at michael at timeglider dot com.

Timeglider 2.0, coming in April!

I’ve been getting emails from people wondering “Is Timeglider still being developed?” A clear sign of “blog anemia”…

Yes!  A brand new Timeglider is on track for release in April. We’re redesigning it from scratch, re-building the back-end, and making the HTML/Javascript front end as tablet-friendly (focusing on iPad compatibility now) as possible. Some highlights:

  • Most Plus features (like legend creation, calendar integration, and list editing) will be integrated into the app for a more seamless experience. (Importing data and managing users will remain as separate interfaces.)
  • One will be able to zoom much farther out, to the scale of millions and billions of years.
  • Published timelines will be able to limit the scope of  zooming or even hide the zoom-slider completely, opting for a “static”, non-zooming type of timeline.
  • Video and Audio files will play inside the timeline interface, and events will be able to have multiple web links (with custom labels) associated with them.
  • You’ll be able to create events from the legend by dragging a legend item onto the timeline interface.
  • Importantly, all customer data will move from “old” to “new” in a seamless fashion.
  • Later in 2012, the entire Timeglider app (front end, back end, database) will be available for purchase/download as a freestanding package.

If you’re interested in testing out the “alpha” version (which I’ll make available to a small list in March), please let me know: michael@timeglider.com

A Timeglider Milestone: Revenue

Today is a little historic milestone for Timeglider on the road to sustainability.

We (cough) here at Timeglider take the attitude of the Tortoise when it comes to generating revenue and, as you know, Tortoises do reach their goals. Today, after three years online, we’re asking customers to pay for Timeglider Plus. We’ve had our first paying subscriber sign up for this “SaaS” (software as a service) business, a fellow named John from Northampton, Massachusetts — auspiciously my former stomping ground — who decided it was worth $60 to pay for lifetime access to Timeglider Plus.

Those of you who have been using the Plus features for free since they were introduced can continue until the last day of June; after that, there will be reminders and prompts to ask you to pay either pay $5 per month, billed automatically; or a one-time $60 for permanent access (This $60 price for the lifetime account will go up after July 31).

Timeglider Free will continue to be available, of course, though there will be new limitations, especially for publishing, with a limit of 1000 visits per timeline per month. So, if you’ve got a timeline on your home page or a blog entry that gets a lot of hits, you’ll need to upgrade to a Plus account.

Why do we need money? So far, this has been a “midnight oil” project by a single developer: Having at least one full-time employee (yours truly) will make a huge difference; We would like to hire another part-time or full-time developer soon. As we grow, our server is often bursting at the seams. Being able to upgrade our hosting will also raise all customer boats.

It’s also important to realize that one of TImeglider’s chief missions is to provide rich versions of our software and support to educators and to nonprofit organizations for free. In another four-to-six months, we’ll introduce a downloadable package that will allow enterprise users and schools to install a complete version of Timeglider (including the Plus tools) on their own servers. For educators, this package will be free; enterprise users will have a commercial end-user license and costs will depend on the numbers of users and consumers involved. We’re also committed to having our product exist, and to generate revenue, without any advertising of any kind, anywhere. Basically, our revenue from paying accounts will help us underwrite software that we provide for free in the nonprofit sector.

As soon as I get more magenta ink for my printer, I’ll print out our first invoice from Authorize.net and mount it on the wall.

Kaizen

timeglider javascriptYes, we’re still hard at work here at Timeglider Industries, cranking out new javascript, css, and HTML on a daily basis!

Come on over to our new jQuery plugin page to see how that’s going.

Kaizen!

new site and components on their way

This blog, with its new WordPress theme (basic maths) is in transition to become the new timeglider.com site. You’ll start to see pages forming here, but in rough form.

In other news, progress is moving steadily forward on the new Javascript (jQuery) plugin, which you can see here. Soon, the developer documentation will expand with some information about the widget API, how to structure data, and how to work with things like customizing icons.  Meanwhile, I’m working slowly away on a new “slimmed down” API for timeglider (using the Slim PHP framework).  By early in 2011, there ought to be a javascript widget as well as an installation package (php/mysql) for creating a stand-alone timeline application on your server. This will be free for educational and nonprofit use, and there will be a license (in the works with legal team) for commercial/enterprise use.

Full Steam Ahead with Javascript

In just a few weeks, I’ve gone from being a staunch defender of Flash to a Javascript zealot. Thanks to jQuery, Raphael, and a few other fantastic code libraries, it seems clear that a new JS-based Timeglider will exceed the Flash application in many ways. Here are some things on the horizon for early 2011.

  • A jQuery plug-in for the Timeglider viewer that will make it possible to either load you own data (as XML or as JSON) from your site or from the Timeglider API.
  • Much more flexibility with language and icons. All languages and character sets will be supported and we’ll use the Unicode character library to make it possible to have any unicode glyph/character as an icon.
  • More HTML that can be added inside of event descriptions, including (html5) video and audio embeds.
  • The jQuery plug-in will be open-source. We’ll leverage the Javascript developer community to make the timeline viewer better, faster, and more feature-rich.

Importantly, until this new JS version is stable and meets the standards of the current Flash version (speed, usability, etc), things will remain as-is.  The Timeglider application will also continue to have a free version especially geared toward educational use and we’ll also offer an affordable monthly “Plus” version (now in perpetual beta!) for some added features like uploading data, managing larger sets of users, etc.

I’ll be going to the jQuery Conference in Boston in mid-October. Please let me know if you’re going and want to talk about helping with the Timeglider plug-in, or if you have other ideas.

I’ll be updating this post every so often as more thoughts occur.

Flash in freezer, Javascript on cutting board

This is an important announcement: Development of TimeGlider in the Flash platform has stopped! The application will be in a state of suspended animation — and I will be less available for providing feedback and working out bugs — until a new HTML/Javascript version of the timeline interface is in running order.

I cut my teeth in programming in Flash by figuring out how to make games, widgets, and other fun, interactive stuff and witnessed the language evolve to become a world class object oriented language. But the death knell has sounded for Flash. For many reasons, it’s no longer fun, practical, or profitable to develop in Flash: Javascript libraries like jQuery are catching up with animation and other responsive user interface components; The iPhone/iPad won’t run flash content; Flash doesn’t allow one to easily work with HTML content; Video via sites like YouTube and Vimeo are turning to HTML5; Adobe’s responses to this imbroglio have had the ring of desperation . There’s a snowball effect: fewer developers are out there willing or excited to work on Flash, and so we’re now seeing the Flash ecosystem collapsing. It has saddened me, but continuing to work in AS3 has felt like digging myself into a hole.

The compiled nature of the SWF file makes Flash very fast —  The Flash plugin is like a little graphics card attached to a browser, and with this I’ve been spoiled. The challenge of reworking an application like TimeGlider in JS is how to organize events quickly on the timeline as one is zooming in and out. I’m pretty sure it’s possible. Pretty sure.

So I’m looking hard at various frameworks for Javascript like Sproutcore, Javascript MVC, and Dojo and toolsets like jQuery, YUI (Yahoo), Mootools, and others. Nothing is jumping out at me except jQuery. But jQuery isn’t a framework. Javascript, despite having been around since the web was an infant, is still young when it comes to manageable and intuitive frameworks.

So, lots of raw JS experimentation is under way here in Boise, and things are being rebuilt from the ground up starting with a new “RESTful” API that will be built using the Recess PHP framework.

I’m looking for an experienced Javascript developer or two to help out, by the way. Let me know if you know someone : )

Platform Battles!

As the dust was settling from recent Adobe / Apple skirmishes (relating to Flash and the iPhone/iPad devices), Steve Jobs issued a lengthy “blog post” about Flash on Apple’s site, and this seems to put another nail in the coffin of Adobe’s iPhone packager.

In case this is news to you, to review:

1. Apple’s Safari browser on the iPhone/iPad excludes the Flash plug-in.  Apple makes valid arguments against having Flash run on it’s devices, as well as questionable ones. Occam’s Razor: Apple needs to gatekeep the apps/games to guarantee revenues through their app store.

2. In an end-run move, Adobe created a “packager” for the Flash IDE that would let Flash developers output an iPhone-native-bytecode version of Flash apps.  This is not to be confused with running flash (or swf files) on the iPhone in the browser, or AIR apps, either. Adobe took a huge risk and produced a pretty astonishing piece of code translation software. I’ve tested it and it works pretty well, especially for simple “apps” or games.

I’m disappointed that I won’t be able to leverage TimeGlider’s code base (written in Actionscript/Flash) to create an iPad version of TimeGlider. I was on the home stretch of re-working code so that it could be tested with Adobe’s CS5 Packager. Within days of Adobe’s launch of the CS5 line (which includes the iP packager) Apple made it clear that Flash IDE-created iP apps would likely be kept out of Apple’s app store.

I’ve been looking closely at Javascript frameworks that can really achieve what we need for building a good timeline, and I’m even looking at the MIT Simile timeline widget as something that could be adapted and used in lieu of Flash. There isn’t an equivalent to Flash yet respecting key criteria for TimeGlider. Flash is especially good (albeit less so on the Mac) at animation and other high framerate features. The Javascript platforms are catching up: When JQuery or Sproutcore or Capuccino produce frame-oriented features and good visual IDEs that make development easier, Flash could be in trouble. Meanwhile, I’m sure Adobe is working on Dreamweaver to be the IDE for these platforms.

Just this morning, there’s news of Flash running “flawlessly” on a Google-Android tablet prototype.  There’s every indication that the Android/Flash partnership will evolve nicely.  My vote is for Adobe to transform as much of AS3 into a Javascript library and marry it to JQuery DOM selectors.

An experiment with the NYT data API

We’ve built the start of a timeline explorer using the New York Times Article Search API.  It’s pretty fun, especially since you can search for, say, Mark Bittman’s seafood recipes. Please let  us know what you think at feedback [at] timeglider.com.

in progress: calendar importing

Thanks to TG user Steve Duncan (and other earlier feedbackers), I finally embarked on creating an importing system for iCal (Google and Apple calendars mainly). From the Plus tools, you’ll be able to sync multiple calendars onto a timeline, each calendar with its own assigned icon. The first stages are mostly complete: a decent parser of the iCal format, and a little management tool for adding/editing.  Now, if there was only a way to build “importance” into this… Stay tuned for more developments about calendars. After this, a better way to sync timelines to RSS feeds…