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.

Preview of JS: Datepicker and Timepicker

Sawdust flying in JS Shop

(Sounds of saws sawing, chisels chiseling, #220 grit sandpaper on wood edges)

We’re still working away on our new Javascript version of Timeglider! It would seem to be a law of nature that once you start pronouncing dates related to a project, the floating properties of that project increase in proportion. Back in the Fall, I anticipated being ready by April of 2012.  In fact, we’ve floated a little farther around the sun, and are now working very hard to launch the JS version (which will replace our Flash interface) by September. Exclamation point.

There are some good reasons for the delay. First, our JS viewer component (the heart of the new app) is being used by more companies in their data-visualization applications (mostly in-house) and we’ve been able to improve the core application in the course of related contract work.

We’ve also taken extra time to study timelines that have been produced, to see how we can improve the overall experience and end results. Many many timelines would have benefitted from a clearer “assistive” process, and one that is more graphically constrained.  It originally seemed crucial to allow for placing images “inline” inside of the timeline space, and to allow for absolute positioning of events (vertically), including image-containing events, in the timeline; but when one does this (say, setting the vertical position of an event at 150 pixels), it’s very hard to anticipate what will happen when the zoom level of the timeline changes: Basically when you zoom _out_ a timeline with vertically-fixed events, collisions can make the timeline unusable.  When too many images are used, stacking happens very quickly — and this is both bad for viewers and bad for processors as collision detection can start to make your computer’s fan start to whir considerably.

An app like Timeglider is a “data visualization platform”, but it can also be used as a “presentation tool”.  In the former case, one doesn’t worry about how certain things “look” at certain points; the automatic placements of events are what allows the data to “flow” between various scoped views; one is curious to see how things look — it’s sort of a mystery being unravelled. But in a mode of visual presentation, one is thinking harder about positioning in advance, the experience of the viewer — perhaps as you are trying to make a certain argument, highlight certain topics, and so forth; design is the priority.  So there are conflicts between these two “jobs”.

With this in mind, we’re going to introduce a choice to present timelines as EITHER fixed-zoom level (presentation mode, with absolute vertical positioning, inline images, and so forth) OR flexible zooming (data-visualization mode) wherein absolute positioning values will be “ignorred” and images will be kept in a special “lane” just for images.  You will be able to switch between the two modes, and you will also be _able_ to use “both modes” wherein absolute positioning and inline images will be allowed along with flexible zooming — but warnings will be aplenty, to make sure that users understand the possible risks.  Freedom is critical, but guidance and good constraints are too.

Also: We’re still offering Timeglider Plus for $75 for a lifetime account: This will only last through the summer, at which point it will cost $120. Make sure to upgrade soon to take advantage of this.

That’s the news. Please comment below or email me at michael (at) timeglider.com to share your thoughts.