Timeglider is for sale

It’s been a wonderful, long haul, but life moves on. Originally conceived in 2004, I launched Timeglider in 2008, with invaluable assistance from my friend Will Reilly, as a Flash-based application. In 2011, I rewrote the app to be iPad friendly, in JavaScript. In 2013, another friend, Justin Kuntz jumped in to help give the app it’s current design. All along, we’ve offered Timeglider for free to students, without ads, and at reasonable rates for professional users.

To date, about 250,000 people have used the Timeglider authoring tool, and many millions have experienced our timelines on news outlets from the BBC to NBC News.  We’ve achieved huge success despite having spent zero on marketing; all our traffic is based on Google and word-of-mouth interest and excitement in the product.

The Timeglider JS widget has also been a huge hit. We’ve sold licenses to federal agencies, healthcare organizations, insurance companies, and other software makers so that the clear, intuitive Timeglider interface can be integrated into other HTML-based applications.

Timeglider is a seasoned, low-maintenance web application — an authoring and publishing tool for making the most visually compelling timelines on the web. It’s russian-doll design (core timeline widget in the middle) makes for a highly flexible business model  — both SaSS subscription users and OEM software licensing. On the front-end, it’s built chiefly with JavaScript (jQuery, Backbone), and there is a lightweight PHP JSON API-based back-end. I’ve always tried to keep it as robust for users, but as simple for administrators (me) as possible.

I will prioritize offers wherein Timeglider can continue to be maintained and operated as it has for the last seven years and will accept the first serious offer that is made at $90,000. This includes all code, the Timeglider trademark, domain, etc. Right now, Timeglider grosses about $2500 per month; expenses are very low (hosting, a few API services).

I’m in no hurry; I’d rather see Timeglider, my baby, in the right home. Please contact me by email, at michael (at) timeglider.com with serious inquiries.

Topical or Super-Event Lanes


The feature request that comes at us the most — and yet the one that is most vexing — is the idea of having horizontal lanes (or bands, strips, etc) reserved for certain topics.

We avoided this because it’s complicated— especially where you have a zooming interface, and where, therefore, events can pile up. If things pile up within a band, the band would need to get taller automatically; if just a couple bands had a few stacking events, it would exclude a huge amount of space for organizing other events. So we’ve avoided trying to tackle this, and have emphasized to people the possibilities of using icons to represent topics (which can be toggled with the legend).

The truth is, however, that certain kinds of events aren’t just “topical”, but belong to a sort of “super event” or continuity. A fellow named Glenn recently sent me a question relating to this (non) feature, and pointed me to this Google timeline component.  This might have been the straw that broke the camel’s (or mule’s) back). What really struck me about this type of data (presidencies) is that it’s a continuity of mutually time-exclusive “events” being each president — and therefore perfect for a “lane” since things will not tend to stack.  If we can convey to our users the best way to use a feature like this, it could really add a ton of value to a timeline. Other lane topics might include “number 1 on the charts”, “crop planted in field A” or “my vacation times”.

So, in the widget workshop here in Boise, we’re working on a Lanes feature (in widget version 1.0.1), and see rolling this out by the end of the summer. One will be able to create and name lanes, assign a color, and then one will have the option to assign events to a lane.  We’ll try to create a clear understanding of how to best use lanes — and what not to do (place tons of simultaneous events in them, etc.). A side-effect of this feature will be a 2nd (and our 2nd most requested) feature: being able to custom-color event spans. Stay tuned and let me know any thoughts you might have.

TG Free is now Free*

We’ve been at it here at Timeglider for a long time, in the scheme of things. Timeglider turned 5 years old this year, having been launched in 2008.

From the get-go, we’ve offered a free account to anyone, with special attention being paid to students.  Since then we’ve had about 100,000 users sign up, the vast majority of whom have been students from around the world. In addition to the U.S., Canada, and the U.K., we have students using the app from Colombia, Cambodia, Nigeria, China, Poland… just to name the first ones that come to mind.

With the educational ethic in mind, we don’t badger Free users to upgrade, either in the app or with emails; rather, we simply leave indication here and there that certain features are only for Plus (now called “Basic”) users and higher. Likewise, feeling that it’s unctuous, we do not host advertising on the app or on published timelines.

To keep this app going for a long time — and to keep growing it so that there are more features, devices, and so forth — we need to start charging non-student users.  You’ll notice on our sign-up page now that we’ve renamed “Free”, “Plus”, and “Pro” accounts to “Student”, “Basic”, and “Group” — with a checkbox being required for the free, student version indicating that one is an undergraduate or younger student.

To make it possible to test the app under the rubric of the Basic (formerly Plus) account, that account now has a 7-day trial period.

For a long time, we’ve been planning a “Pro” account, but as it was finally baked, we saw that it offered no additional features except for an administrative dashboard. Clearly, this was an account meant for schools or companies needing multiple Basic users; hence the “Group” name. Rather than having “Pro” accounts, we’re looking into “feature packs” that will exist as separate subscriptions –add-ons, if you will, for the Basic account. This might entail extra bandwidth, mapping or graphing capabilities, or access to APIs such as Basecamp or Twitter. We can also create custom-tailored plans to meet specific needs (users, features, bandwidth, images, etc).

There’s a lot on the proverbial stovetop that we’re excited about: a freestanding version (for self-hosting); a huge U.S. History timeline that will be the basis of a larger offering of content; more features like drilling-down, themes, mobile views, and more.

Honeymoon in the Cloud

Our erstwhile PHP hosting service (PHPfog) is the subject of this timely news story: “What happens if your PaaS passes?”.  (This post is a spin-off of a comment I made on that article). Within hours of their shuttering, we succeeding in moving Timeglider back to a “traditional” LAMP (Linux, Apache, MySQL, PHP) Stack hosting company, ServInt.

PHPfog itself represented a serious milestone in hosting, but I think a certain idealism proved to be unsustainable. They created a service that magnetized a common profile in the LAMP-stack development world: using Git; having no interest in or need for complex server management; using phpMyAdmin right away. They also had a dreamy live chat support system, it was affordable and scalable.

But not everyone uses Git — and might have to unbuild an existing repository and learn Git. The population of non-PHP developers (or those with apps that include other back-end languages) is significant. And at a certain point, you can’t have your staff chatting with the long tail of issues all day.

The pivot was a necessary one, but the remainder or “common denominator” has meant: not using Git, letting go of PHP-specific services like phpMyAdmin out of the box. Most critically, having the service level go back to a typical ticketing system.

Scalability is the main advantage of using “cloud” systems, in that it’s inherently distributed and portable. But there are serious disadvantages. Being distributed also means there are more possible points of failure. AppFog discourages storing large amounts of files; you need to use something like Amazon’s S3; They don’t have a robust MySQL service; rather one would be better off using a 3rd party;

They don’t host mail servers; you use Google and services like SendGrid. Now you’re relying on all those companies to stay online and in business. AppFog’s two MySQL partners are startups that may or may not survive the next couple of years.

All hosting operations will eventually use hybrids of localized-virtualized and distributed (3rd party) cloud systems. The main differentiating factor will be service, and the degree to which you can help developers quickly work out specific issues and crises with a high level of expertise. I think this will be called “Service as a Service” — SaaS.

We’ve found an excellent (I believe!) new home at ServInt, which hosts “virtualized” servers that provide a great deal of bandwidth and freedom to work under the hood.  I’ll knock on wood that this will be a suitable home for at least a couple years! So far, the service — where they’re willing to get under the hood of the server — has been better than any I’ve experienced, even from PHPfog.

Happy 2013 — or 224 of the French Republic…

I grew up learning French in grade school, from the 3rd to 11th grade, and in 11th grade read chapters of Molière, Rousseau, and Victor Hugo. Unfortunately, I now probably only have a French two-year-old’s fluency, and I certainly didn’t retain any serious grasp of the French Revolution because as I read Hibbert’s The Days of the French Revolution je suis completement sidéré (flabbergasted)!

Tennis Court OathIt’s fair enough to call those events a revolution, but it was more like a horriffic conflagration burning across a dry forest, pushed along by wind and fuel and explosions. Wishfully, I have always pictured the American Revolution as something of a template that the French followed — with less war. Apparently, the more apt comparison is to the Russian Revolution (about which I know very little!!) — but with quite a bit of the bloody steel and mania of 1994 Rwanda thrown in. A perfectly entrenched feudal system and a national pride in the French royal line made things much more complicated; crassly, one might say that France was a demo and remodel, whereas in the U.S. we were able to build on terres nouvelles. Of course, on the other hand, the American framers like Jefferson had been deeply influenced by French philosophes like Voltaire and Rousseau who had laid much of the humanist groundwork of the Enlightenment — and of both revolutions.

Interestingly, the French zealots were so full of hubris that they wanted to throw out the Gregorian calendar (true, only followed by European countries at the time) and create their own Year I, and a new calendar with 12 30-day months (with a 10 day period of national celebration). Today would only half way into 224 of the French Republic.

I can’t avoid thinking of Egypt, where revolutionary excitement seemed to be such a determined force in the spring of 2011. Like France, there was an initial explosive toppling of “royalty”, but now, sadly, they seem to be looking at a series of conflagrations. Like the Jacobin Club of revolutionary France, the Muslim Brotherhood has been waiting in the wings for a long time.

After I shut down my Kindle app on my iPad this morning, I opened up Flipboard to read across some headlines, and was amused to find something uncannily pertinent: Mummified head and bloody old gourd used to identify Louis XVI DNA. Zut alors! I had literally just been reading about how French onlookers at the king’s beheading had dipped pieces of newspaper or handkerchiefs into the man’s spouting neck-stump at the foot of the guillotine, and saved them as souvenirs. One of these has turned up preserved inside an ornately carved gourd — with blood cells in good enough shape to prove their provenance (to an older French king) with DNA.

Oh, right, so I was driven to read this book because, having seen Les Miserables (do see it), I wanted to get a grasp on French history leading to the setting of that story. I’m just now starting an epilogue on Napoleon’s rise to power from the ranks of the French army, not long after the execution of Robespierre, in 1795. Apparently, Les Mis takes place 20 years hence, near the end of Napoleon’s reign. Respecting Napoleon, I’m also pathetically informed only by a rough understanding overly colored by clichés. Thus I’m perusing Amazon as we speak, reading reviews, ready for the next episode in my re-education.

shift key and spacebar for selecting and editing, command-a

shift selecting eventsTHE SHIFT KEY

Timeglider can handle a lot of data — timelines with thousands of events — but until now we haven’t provided for a way to edit hundreds of events simultaneously. In serious applications, one can usually use the command or shift keys to “shift-select” many data points. Now with a Timeglider Plus account, you can do this in order to “batch edit” the selected events.

Once you have two or more events selected, a “with selected…” button appears in the header of the application (alongside “filters” and “preview mode”).  Once you click on this, a version of our event editor pops up that gives you the ability to selectively batch-edit certain properties: the icon, date display, importance, tags, and thresholds. With importance, once can adjust the relative values so that a chosen value gets added or subtracted to the existing value; or, one can set it absolutely.

batch editing optionsThis allows you to tweak the visibility up or down of a set of events.  You can also “select all” (on a Mac, it’s command-a, and on a Windows machine, it’s control-a) and then batch-edit an entire timeline.

If you’re the tagging sort, this is serious productivity tool: You can easily add one or more tags to the existing tags of selected events, or you can wholesale change the tags of what you’ve selected. It makes tagging _way_ easier to be able to do it in batches.

spacebar to edit event dateTHE SPACEBAR
In our older Flash version, one could use the spacebar to edit an event’s date/time by (with spacebar pressed) dragging the event left and right: We’ve just re-built this functionality, too.

We’re excited about these features in part because it’s creating the ability to build bigger and better timelines — including a huge U.S. History Timeline that I’ve been working on. Being able to tweak and quickly make sensible changes to a large set of data will make for better experiences. As always, let us know what you think!

Tags Power!

We’re pleased to announce that we have a whole slew of functionality for tagging events in Timeglider now — something that has been much requested. Plus users can now add tags to events, and then use a search interface to filter down a timeline accordingly.

choosing a tag

If you’re not familiar with “tagging”, basically it means giving any record (in our case an event) a set of hidden, non-ordered keywords that can serve to pick out that record in a search.  An event called “Thomas Edison invents the lightbulb” in a larger U.S. history timeline might have these tags: invention, technolgy, edison. Having the “invention” tag means that one could easily create a “sub-timeline” of great inventions in the U.S. from this broader timeline.

Our tag creation mechanism is a sweet piece of Javascript created by Igor Vaynberg called “Select2″. This input field allows the user to select from a list of tags that were already created, so it saves a lot of typing, and the narrows the possibility that you might mis-type a tag.

more about tagstags in published timelinesWhen a timeline is published, in the introductory modal that opens when a public timeline is loaded (if there are tags present in the timeline), you will now see a small tag icon at the bottom (see right). Clicking on that tag icon will indicate to the viewer what tags are available.

Also, on the lower right portion of any published timeline, there is a magnifying glass icon, too, and by clicking that icon, in the interface that pops up, one can search by keyword (in the title or description), and also search for tags.

We’ll keep refining these features, both from the authoring side, and from the publishing side too. There are other data-filtering features we’re looking at, but this one seemed to be the most requested. It’s super useful for creating “timelines in a timeline” where certain topics might apply to certain audiences, or simply allow for a cleaner viewing experience of a lot of data.

Of course, let us know what you think of this!

Seatbelt sign is still lit…

This is the captain speaking. We’ve just passed through the worst of the turbulence, but I’m going to keep the fasten seatbelt sign lit, just in case there are some pockets ahead…

Okay, so moving a fairly large and complex app, with about a million records, from one platform to another while also moving from one host (and hosting paradigm) to another isn’t something I would recommend doing. The apt analogy is to a new cruise ship — which has never sailed — sliding off dry dock with passengers on board, and with only a one, or maybe two, frantic crew members.

Here’s one thing that happened: As you might know, characters like the ø and even the curly quote ’ are actually not stored (by computers or by databases) as “single byte” characters in the same way that “a” or “3″ are. They’re called “multi-byte encodings” — better known as Unicode. When you move data that contains unicode around from place to place, you need to make sure that those encodings stay in the proper format. Because so many systems expect to receive the “typed characters as intended”, and yet store different characters to stand for them, importing data can mean that the unicode can get further and more complexly encoded — rendering it completely useless.

Normally, in a MySQL database, a curly quote looks like this: ’
After importing my data, I had this: ’

First, I didn’t even realize this had happened. After some early-to-board users told me that their accents and other special characters were gobbledygook, I spent two solid days backtracking and trying to figure out where things had gone wrong. Fortunately, the export of the data from the original database, I discovered, had left me with good data; it was the importing of the data that had scrambled everything. A degree of panic and fatigue made what would have been a one day project into a three day ordeal — the peak of a “passing a kidney stone” experience. Discovering that I actually had good data — and that I had not permanently destroyed over 100,000 records — was the onset of some relief.

There are still glitches here and there, and missing features, but for the most part, the transition to HTML5 from Flash, and to PHPFog from Media Temple, is mostly — mostly — through the worst parts.

Still missing:

    • password-protected presentations: I’ve just shut these off while I finish testing my password encryption routine
    • the “go to” button in the timeline, directing the timeline to focus to a date you enter
    • any kind of print option. This might take some time. Meanwhile, doing screen-shots is your best bet (and was basically all that our printing function was before…)

I really appreciate everyone’s patience throughout this. The feedback I receive (“Hey, what happened to all my umlauts?!”) has all be quite valuable, so keep it pouring in, either directly by email to michael@timeglider.com, or by using the feedback button in the app.

—– Michael

Still moving, but very close!

Just a quick update on our move to a new server & platform. This limbo period has been way trickier and more consumed with complicatedness than I had anticipated. So I beg your forgiveness and hope that you’ll hang in there and come on over on Friday.

If you truly need to log in and use the application, you can do it at this address: https://timeglider.phpfogapp.com/login.

Timelines are currently being published in our new Javascript framework.

All the data (about a million records) has been migrated, and all the images (about 100,000) have been moved to a new home on Amazon’s S3 platform . We mainly just need to tidy up the public-facing website and fix a couple minor bugs in publishing mode (like getting the mousewheel to work on zooming).

Again, I apologize for the delay.

— Michael Richardson

Timeglider 2.0 (JS/HTML) is imminent! Please Read this.

We’re on the brink of introducing Timeglider 2.0 — and transitioning the app ENTIRELY away from its current Flash version. There will be many important changes, so please read this to understand how our transition will happen. Timeglider will be down/closed the weekend of August 25th as we move servers, make major adjustments to our database, and so forth.

Your data will remain intact! You do not need to do anything except provide feedback where you see the need. When we’re back up-and-running on Monday August 27, you’ll be able to log in and have a very similar experience.

before:


after:

First, in case you’re not familiar with why this is happening: Flash (our current platform) has been dying a slow, painful death for at least a couple years (Read this post to learn more). Switching to an HTML-based app is for Timeglider a matter of survival and relevance. The actual change will begin exactly two years to the day after declaring our intention to move.

In about a week, we’re introducing the app to a group of beta testers so we can work out the kinks and bugs. By the 25th, come what may, we expect to transition the app entirely to its new Javascript incarnation.

There will be no “grandfathered” uses of Flash at all!

The vast majority of the features of the original app are in the new version — and we’ve made many great improvements and enhancements. But there are also going to be major differences. Please do read over this to learn more about what’s ahead.

  • There will no longer be “north” and “south” timelines above and below a movable timeline ruler. Instead, you will be able to open multiple timelines (2 or more) in a single view, with the timeline ruler fixed at the bottom. Most importantly, this allows you to open 3 or more timelines at a time (though admittedly, there are still challenges to making this work well!)
  • Free accounts will be limited to 3 timelines and 16 images. If you need more than 3 timelines you will be able to upgrade to a Plus account ($5/month or $50/year). Soon, we’ll also have a “Pro” account that will allow for more bandwidth and even more features.
  • Almost all the functions that were in the separate “Plus tools” will be integrated into the HTML application: creating legends, managing users, importing and exporting data, and so forth. One holdout might be doing batch-editing of events.
  • Images timelines will be default live inside an “image lane” above the timeline. If you want to place images “inline” you can, but we will warn you against it: inline-images stack horribly!
  • Related to the positioning of images is “absolute positioning” of events or images inside the timeline. This will still be possible, but those positions will only be used when the timeline is at its “initial zoom” — the zoom level at which it first loads (essentially the best possible zoom level). You’ll also have the option to publish timelines with a fixed zoom level, “non-zooming” timeline. In this case, the zoom slider will disappear. This will also provide the best situation in which to have absolutely positioned events/images. Down the road, we plan to offer more features for this type of “graphically rich” timeline.
  • The in-app list view is hugely improved, and allows for better editing, filtering, sorting, and so forth. Along with this, we have a new search/filter panel that will allow you to quickly filter events in both the timeline view and list view (even simultaneously).
  • The app will operate on iPads (in the Safari browser). You’ll be able to save an icon to your iPad home screen, and open it up without browser chrome, too. It will not have the responsiveness of a native iOS app — and a desktop computer with a mouse is still a lot more productive than a tablet — but you’ll be able to do everything. Most importanly, published/embedded timelines will appear in mobile devices. We’re working on a view-mode for phone-sized devices too that will move everything into a list-type of view.

There are dozens of other improvements. For example (see image here), the context menu for deciding what to do with a given timeline is much easier to understand. You’ll notice that there is a “snapshot” option there; this gives you the ability to instantly set the focus date and zoom level of the timeline to the current settings rather than needing to open the editor and hand-edit these values.

We’re also incredibly excited to be moving to phpFog, a scaling cloud-based “platform as a service” based in Portland. Developing for phpFog has been effortless, and the fact that it will be able to scale for us so well is a huge relief — because we’re planning on growing a lot in 2012! As we shift hosting platforms, we’re also going to be shifting from one subscription management service (Recurly) to another, more streamlined process: Stripe. We’ve appreciated Recurly, but the fact that we can avoid gateway and processor fees (on top of the initial subscription management service) makes Stripe a no-brainer.

Credit for the design of the new app — and a brand new website for Timeglider — goes Justin Kuntz, our new co-founder and design chef. Send this man kudos when you can.

We’ll be updating this blog entry with more images, updates, etc. Again, our goal is to do the “big switch” on the weekend of August 25th. The site will be down for most of the weekend, starting on Saturday morning as we move data, servers, and clumps of brain matter.

If you would like to have the chance to test-drive the new app before our official switch-over, please let Michael know: michael@timeglider.com.