what year is it? let me check the calendar.

Great news everybody! The new Mozilla Calendar stores its calendar files in a local SQL database instead of ICS files, ensuring that the only way to actually get your data back out will be to use some Mozilla tool that understands their private database schema, instead of just copying the file! Why? Because, much like mbox files, ICS files have...

wait for it...
wait for it...

poor performance characteristics! Bwaaahahaha!

It's like watching an infant totter toward a porcupine. Again.

You may recall that my inability to get any of the three disjoint, out-of-sync, perma-alpha Mozilla Calendar codebases ("Calendar Mozilla plugin", "Calendar Firefox plugin", and "Sunbird") to function at all was one of the primary reasons I finally gave up and bought a Mac. I must say, even with all the hardware trouble I've been having, this news made me so very glad I made that decision, because it means that their fourth attempt to reconstruct the calendar and finally get it out of alpha is something I'll never have to even think about the possibility of ever trying to run.

Shame about the Google Hegemon eating their lunch, too.

Tags: , ,

79 Responses:

  1. fo0bar says:

    I believe Firefox 2.omg will be storing bookmarks in the SQL dealie too. Because 10 years of a consistent, easily-parsable file format was WAY too long.

    • zimzat says:

      I've read about that.
      They're going to keep it stored in an html file as well but it will only be updated when the program is opened/close.

      Go away.

      By the way, "easily-parsable" doesn't beat the raw power of a database. DB>TXT any day.

      • jes5199 says:

        if an update only happens when a program shuts down gracefully, then it will never happen at all.

        • zimzat says:

          Oh, you always crash your programs I take it?

          I don't see any reason why you couldn't specifically instruct the program to generate the backup/human-readable file on demand rather than always have it self-generated.

          • darkengobot says:

            Are you kidding?

          • jes5199 says:

            Oh, you always crash your programs I take it?

            Well, yes! eventually!
            the fact of the matter is, in 2006, we have enough RAM in our desktop boxes that we don't have to close apps. Firefox stays open for days, except sometimes it crashes. Thunderbird? I leave it open. Gaim? I leave it open. My terminal and my SSH connection? I leave them open. XMMS? I've gotten in the habit of closing it every couple days so it saves my current playlist.
            Why would I ever close things? I lock my session, I turn off my monitor, and I go home. Shit, on my windows box sometimes I even hit "hibernate".

            • hadlock says:

              agreed. countless aim logs have been lost due to the fact that adium only saves aim logs at the close of a conversation... which in tabbed mode, never happens for the 10-15 most talked-to people, which, not coincidentally are the most important chat logs to save. adium (aim client) stays on for weeks at a time.

            • fantasygoat says:

              Funny you should mention this.

              At work, we recently implemented a backup system that uses the Apple version of rsync - Mobile User - to store home directories on a file server. We configured it to update every 20 minutes, and also sync the Library at login/logout. We then backup just the single file server.

              Yesterday a developer came to me to get some files restored, and when I looked at his directory in the backup, it hadn't refreshed since mid-March.

              Turns out when he was logging in, he'd logged in, hit "Cancel" at the sync, and never logged out or shut down the computer - he'd only hibernate at night. So, no sync, no backups.

          • Have you ever actually, y'know, USED a computer?

            My favorite is the "Mozilla Qualify Feedback" thingamajiggy. It crashes Firefox EVERY TIME. And it never listens to the "don't run me again" setting, AND there's no option to NOT install it.

            It's just a random time bomb, waiting to pop up and crash your browser.

            • grahams says:

              This is a joke, right? The Quality Feedback program runs WHEN there is a crash, it doesn't CAUSE a crash. ANY time Firefox crashes, it (hopefully) launches to send back post-mortem debugging information back to Mozilla.

              • Yes, but (at least for me), the Feedback program then proceeds to crash as well.

                Happens to me every time it shows up.

              • HAH.

                Wow, that just makes it even more sucktastic. When it appears, NOWHERE does it tell you that it's in response to a crash. From the user perspective (mine) it appears to cause crashes.


                Sitting there idle.
                Non-quality Agent pops up telling how great it is.
                3 seconds later, Firefox gets a windows crash dialog and exits.

                See how it looks?

      • ctd says:

        Who has so many bookmarks that they need "raw power" anyway?

        My guess is that the percentage is even lower than the percentage who care about SQL vs. TXT, and way lower than the percentage that hates bloat.

        • When even my MOM has 10,000 bookmarks, that percentage is bound to be very high indeed. I have yet to meet a bookmark management system that did not suck. Some just suck slightly less than others. Anything that doesn't let you view your bookmarks with nothing more than a text editor sucks very hard indeed, because losing 10K bookmarks is the only thing worse than thinking about how to find something in them.

          • ctd says:

            >Anything that doesn't let you view your bookmarks with nothing more than a text editor sucks very hard indeed

            Exactly my point - thanking you OK!

        • kfringe says:

          Who has so many bookmarks that they need "raw power" anyway?

          Hello. Nice to meet you. I'm the target audience. I'm not happy.

        • grok_mctanys says:


          Most bookmark management systems suck. The idea is that instead of a tree-based (or "flat" if you don't organise your bookmarks, or if you try to but give up after a while) folder system, they're going to try to extract keywords (probably from meta tags, h[1-6], etc...) from the pages you visit, ask you to supply keywords for pages you want to bookmark, and keep track of how often you visit particular URLs, and then turn the address bar into a kind of mini-google-of-all-your-history-and-bookmarks type thing, where bookmark tags that you enter presumably get some kind of favourable weighting.

          I can see them thinking that plain, unindexed text files might be a little on the lightweight side for this.

          (Note, that's not a defense of SQLite :)

      • jwz says:
          By the way, "easily-parsable" doesn't beat the raw power of a database. DB>TXT any day.

        Hello, you're an idiot.

    • I believe Firefox 2.omg will be storing bookmarks in the SQL dealie too.

      .omg files?

      Firefox 2.omg.ponies!!

      (I just got myself banned from this blog, didn't I...)

  2. ladykalessia says:

    I'm just glad to have an alternative to evite finally. Good lord is that place irritating.

  3. kfringe says:

    There are a number of very good reasons to ignore the ics files. I can't think of one good reason to delete them.

    Speaking of the database worms, have you been wondering why Mail.app's indices were so bloated and slow? SQLite, baby! Woo!

    Do you have a link to the mozilla spec for this?

    • jwz says:

      I do not. But one of the developers admitted/defended it, and the resulting conversation made both of us unhappy.

      • kfringe says:

        Never mind. That's what the web is for.

        They're using SQLite, which is a giant step forward from mdb (AAAAHH!). As long as they're smart enough to keep the ics files around so the user can regenerate the database, all should be fine.

        Except for the fact that the user will need to regenerate the database. See also Mail.app.

        At least they're using software that can be poked pretty easily. And at least they're not drinking some wacky martian kool-aid about their tools. I'd be willing to say that this is a giant step forward toward actually shipping software with fewer eat-your-face-off bugs.

        They may only be three or four years away from being iCal.

  4. phenyx says:

    1. New online magical calendar system is announced.

    2. Does it sync with my Palm? No? Okay then.

    3. Go to #1.

    If Google would put a Palm-sync conduit into their Google Desktop, I'd be on that in a second. They could even sync my address book with my Gmail contacts and do something interesting with the todo list.

    • down8 says:

      Y!Calendar syncs w/Palm/PocketPC.

      I honestly expect Google will have an app soon, if not by their own design, via a 3rd party - probably free.


      • gse says:

        I've heard nothing but horror stories about the Y! conduit. Like "it ate my Treo and dated my wife". Plus, the Y! calendar is pretty unpleasant to use IMO.

        I need a solid Palm conduit too, or an online calendar is useless.

        • andrewducker says:

          I use the Yahoo conduit to synch to my Palm T2 without problems.

          It gets used less since Yahoo started synching with my Nokia 6630 directly over the internet, but it's still handy.

    • jwz says:

      Google seems to have something against PalmOS in general. Note how their entire "mobile" line ignores PalmOS and only works on phones built around a Java VM. (Anyone who says "but you can do Java on Palm" hasn't tried.)

      • zonereyrie says:

        I had the JVM on my Treo 650. You can do it, but it was sucktastic. I had to reset the Treo a while back and I never bothered trying to get it working again. It really was just a curiousity since there wasn't a lot of useful Java content anyway.

        BTW, I'd been using VersaMail but I recently discovered Chatter Email and it is vastly better for IMAP than VersaMail or SnapperMail. It can also do fairly decently simulated 'push' email if your IMAP server does 'IDLE'. It'll connect and stay connected - I have it doing it with the Exchange server at work and my Treo gets new mail before Outlook realizes it is there. I know you have a 650 too, so I thought I'd mention it as you might find it useful.

        • jwz says:

          I tried Chatter, but it wouldn't talk to my POP3s server as reliably as Snapper does. I don't use IMAP, so all that crap is useless to me.

  5. loic says:

    And of course MoCo operates almost exclusivly on sponsorship from Google... Conspiracy? Almost certainly not.

    This move to sqlite disturbs me. Everyone is doing it. It looks like it was a disaster on the mac and it looks pretty scary in the mozilla codebase.

    I'm personally concerned by the database schemas being inside the C++ code: http://lxr.mozilla.org/mozilla1.8/source/browser/components/places/src/nsNavBookmarks.cpp#254

  6. pnendick says:

    Since adding features has never been part of the wheel-reinvention ethos it makes perfect sense that the moz developers now pursue weight, cost and complexity instead. As much as I recoil at the nerd culture around it, I'm so happy google is systematically replacing the bloated pigs that are modern-day desktop applications (some Apple software aside). I look forward to the day when most my data is on google's hardware and all I need to personally support is a moz-like browser and a community wi-fi connection.

    • technotronic says:

      I really hope you're joking or being sarcastic, mostly about the google part.

      • pnendick says:

        Well, yes and no. I've been around long enough to see calendars, email clients and other simple data management apps be made over and over and over again. Seriously, think about it. The mostly do the same thing, rarely that well. How long before I can depend upon the moz calendar to do the same things I was able to do in outlook 7 years ago or in Ecco Pro 13 years ago? And I still have to manage my own backups, ride out software updates, deal with software obsolesence and other tasks that have become utterly banal to anyone with better things to do. All so I can remember my friends' birthdays? I travel for a living, mostly to third world places. I like having my data off my vulnerable laptop and safely at the nearest internet cafe.

        I like google's take on email, calendars, word processor, news aggregators, rss readers.And for any privacy concerns, they've been the only major company to even give lip service to privacy. My main concern is their one-company dot-com bubble re-creation show.

        The only thing I have to lose is the privacy of my data. Which is why I'm working on a generalised gpg plugin for firefox that can encrypt any arbitrary text field. It ain't perfect but it will work for me.

        Now, convince me I should care about Mozilla's calendar du jour.

        • sircyan says:

          I used to use Pine and Sendmail religiously, mostly because I got into the habit of it from my "working as a Sysadmin at the local ISP" days. Then it occured to me that, you know, I just don't have time to deal with this shit since I'm not being paid for it anymore. There's something about updating Sendmail rules relentlessly that is simply *not* appealing.

          So, I decided to give Gmail a try, and I was surprisingly impressed. I found Hotmail and Yahoo Mail and all of those variants to be quite.. annoying to use, while Google makes it pretty fast and painless. I just pointed all of my email to my Gmail address and I was good to go.

          No backups, no software upgrades, no Sendmail, no crashes, no memory leaks, no bullshit. So, all the more power to Google to bring me applications that "just work."

          If there is some Google/NSA/CIA/etc employee out there reading messages my girlfriend and I send back and forth to each other, I don't really care. This sort of eavesdropping has been happening (at least) since telephones were invented. My grandmother worked the local switchboard, listening in to calls all the time.

          Besides, I suspect the chance of someone "watching" any one Gmail message is about the same chance of someone watching any one random POP3 or SMTP transaction.

          If it's a problem, then I think pnendick is doing the right thing. GPG is probably the way to go.


          • pnendick says:

            Ahh, the sensible words of another IT "grown up." I guess it sometimes pays to read the journal of a guy who learned so much developing one of the most important bits of software ever that he now owns a bar.

        • pjc50 says:

          You're absolutely right. And the worst part is, calendars are almost invariably written by people who don't depend on a calendar, so they end up lacking or mangling all sorts of useful features.

        • jes5199 says:

          The only thing I have to lose is the privacy of my data. Which is why I'm working on a generalised gpg plugin for firefox that can encrypt any arbitrary text field. It ain't perfect but it will work for me.

          holy shit. do you want help with that?

          • pnendick says:

            I'll eventually put it up on sourceforge (i guess) as open source. But I'm waaay too busy at the moment to start dealing with a public software project just yet. Feel free to steal the idea and start your own - it's a dirt simple concept. We can always merge the good stuff later.

    • "I look forward to the day when most my data is on google's hardware"

      There's something about this whole "I'll just store all of my data on the internet!" idea that makes me very, very uneasy.

      If I don't have local copies on my own system, it's not something I will use.

      *uses gmail as a pop3 server*

    • wilecoyote says:

      So, when do you think that the NSA will demand to build a "secret room" at Google's datacenters?

      • pnendick says:

        From what I've personally seen of echelon (long story never to appear here) if they don't already have one it's because they simply don't need it. See recent stories on AT&T's collusion with the NSA.

      • pjc50 says:

        I find it hard to believe that they don't already have one.

  7. ralesk says:

    I'm endlessly amused by how they can't make up their minds about the bloody version numbers.

    And a bunch of other things.

    Sunbird... man, that's so gonna be like Duke Nukem Forever for quite a while, if they keep on being so aimless and indecisive.

  8. dasht_brk says:

    It's just the general dumbing down of the "FOSS community". Nobody ever got fired for buying an IBM 360 or choosing SQL or DBM.

    It blows that you are (realistically) comparing Google's service-based calendar to something that runs locally. That's another bit of confusion that has swept the industry.

    I say: sell the nightclub and put all yr money into trying to take over the software industry. You have the good taste for it and not enough angst, adreneline, and bitterness in yr life -- this would surely be the best cure.


    • jwz says:

      That whole "software world domination" thing didn't work out so well -- the nightclub was the consolation prize.

  9. davidmccabe says:

    Google calendar is REALLY awesome, too. It solves the single biggest problem with computer calendars, which is that you have to push ten buttons to put any information into them. With Google calendar, you can just type, "lunch with steve at 1pm on friday at the pub", and it will parse it and put it into the calendar!

    • otterley says:

      And if you want to see an even better parser and far fewer bugs, try 30boxes.

      • marmoset says:

        30boxes rocks. I've been using it for about a month now. It also loads in my default browser @home (Safari), which Google Calendar doesn't do yet.

      • georgedorn says:

        So, gcal can import ical and palm and csv but can't export, and 30boxes can export ical and palm and csv but can't import.

        Export's easier to hack in with a third party tool than import.

        • otterley says:

          30boxes can export ical and palm and csv but can't import


        • luserspaz says:

          Google calendar can export ical. See "Calendar Address" under "Calendar Settings".

          • georgedorn says:

            Oof. Bad interface design choice, there. There's an "Import Calendar" as a whole tab, but to export, you gotta somehow know that clicking on the calendar in question in the Calendar tab takes you to a "Details" page and not not the actual Calendar itself (and no further language explaining what the "Calendars" tab is actually for, even)...

            Still no csv, but I'm sure it can't be that hard to convert iCal to csv.

            Overall, though, gcal's gui is better than 30boxes, if only because the unchangeable color scheme for 30boxes is hellish. Gray on slightly-lighter-Gray is not really great for legibility, but it's not surprising since they pretty much lifted the whole scheme right from the company that brought you the puck mouse, a beacon of functional design...

      • luserspaz says:

        See also "Going out of business soon".

  10. jesus_x says:

    Rather than reinventing the wheel (over and over, because the last time we reinvented it, it wasn't good enough!) they're bashing ants with sledgehammers. Now, see, this is progress! Yes, the performance hit of text/iCal/sanity is untenable, and nothing when compared to implementing a database engine inside the app. It's SUCH a good idea, it's being brought in to handle... BOOKMARKS in Firefox 2. Yes, never again will you have to worry about your bookmarks being relatively easy to read in a text file, portable, etc. And yeah, we'll write it out to the bookmarks.html file when we shut down, because it never crashes, and in 2006 it's not like people leave their browsers open for days or anything anymore.

    Sorry, preaching to the choir.

    Fri Jun 18 2004 23:16EDT
    jesus_X: you sound like a traitor to the cause

    You either drink the kool-aid or leave. I left too.

    • zonereyrie says:

      Meanwhile they never got around to incorporating one of the best features of Netscape 4.x - Roaming - into the core browser. Despite a developer submitting the patches back around the SeaMonkey 1.6 days, maybe earlier.

      Instead we're getting a local database. Yay.

      I suppose there is also del.icio.us and the like.

      • dzm6 says:

        Man do I miss Roaming Profiles.

        Still think the idea of storing them in LDAP was retarded, and tying their HTTP publishing to NES' "Remote File Manipulation" wasn't great either, but I miss the concept.

        Totally got a chubby when the feature landed in Mozilla, and then Moz.org announced "Screw Mozilla; it's all about Firefox now."

      • mcsmurf says:

        Roaming profiles are possible with SeaMonkey 1.0 now. I don't think there are roaming profiles in Firefox so. And yes, it took quite a while from the idea over the first patch until Roaming was finally ready.

        • trs80 says:

          Does roaming actually work? While I did help get the a few patches in so it's actually included in the installer, it reliably crashes on OSuX, isn't available as a .deb and is rarely installed on the dinwos machines around. Basically I've become resigned to the fact that SeaMonkey is dying in a ditch by the side of the rode after MoCo tossed it out the window like a fast food wrapper on the way to Mountain View.

          Oh, and don't forget history is going into SQL now as well. I guess that's marginally a step up. Hey, maybe we could include a MySQL server and then do remote replication for roaming *takes another hit from the crack pipe*.

  11. flipzagging says:

    I met an ex-Netscaper recently, and he's still using Netscape 3.0 as his mail client. Very efficiently. He's got a lot of filters in javascript -- apparently this was an undocumented feature?

    But the first thing we talked about was the insanity of Mork.

  12. treptoplax says:

    I've discovered at work that anybody who even uses the phrase 'poor performance characteristics' is, by-and-large, terminally clueless.

    If they knew something, they'd be more specific. If they knew nothing, they'd ask a question. But using that specific phrase means they think they know what they're doing but are operating totally on superstition.

    I avoid such people where feasible.

  13. ianbicking says:

    This makes total sense. They have a bunch of data. They need to query that data. Do they use some flat file data source with their own indexes and querying system? No, they use a query system that already exists, is well supported, is as transparent as a database can be (it's not like they *wrote* a SQL database, they are just using the most popular embedded database available).

    This criticism is just that they aren't rolling their own index+query for every kind of data they store. That's not a very good criticism. Flat ICS files aren't an index, and they aren't something that supports queries, they are just a data storage format; the database implements entirely different functionality.

  14. I'm just waiting for them to put the browser preferences into some kind of file that allows more than one process to access them at once. Then they can make every window a separate process, so that when one crashes it won't take down the whole app. If a database is the price to pay for that, so be it....

    Apparently this is likely to take a while to fix.