My Dream App

Welcome to My Dream App!

The event where 24 finalists compete for a chance to have their dream app made into reality.

First time? Check out what this contest is about and create an account for free. If you are already a member, please login to remove this message. Thanks!

When we started this whole My Dream App adventure, there was a stated goal that the ideas should take advantage of as many Leopard technologies as possible. At the time, we knew a little about Leopard, but since I for one was not a developer, there was really very little for me to go on. Jump forward a year, and Leopard is out (and installed on all of my systems), and all the NDA’s are lifted at long last. In that year very little was said about the applications under development for Leopard, thanks to Apple’s own embargo. Again, as I am not a developer, I was never privy to the specifics of those agreements, but nonetheless I was aware of their existence.

All that is water under the bridge now. Leopard is in the wild. The ADC has a full suite of Leopard developer notes. Ars Technica has even posted a magnificent breakdown of the core technologies at work. Reading all this material has given me pause for thought about how Portal will work and integrate into this new ecosystem.

Finder: File and Screen Sharing

The Macs on a local area network see each other much more easily now, and are much more talkative. It took very little time for me to set up file shares between my systems, so little in fact that I’ve stopped using DropCopy entirely. I have a standing link on each desktop to the drives in all my other machines, making file transfer insanely simple. The hardest part is deciding which files to send over, and, of course, dealing with conflicts. Screen sharing is another magnificent feature, and the “Back to My Mac” addition to .Mac is a powerful draw. The $99 price tag Portal was set to rally against has just gotten justifiable. I was even able to set up a screen sharing session with a Windows XP system in my house (the file sharing was one-click simple, the screen sharing was not. It took five-clicks).

The result is that machines on a network are all at your fingertips and the need for a file to be on your local system is diminished. Why sync your laptop with a bunch of files that just hog space on your hard drive, when you can just go “Back to My Mac” via the web from wherever you are? The only flaw in the argument is the issue of off-network access (the same flaw in the iPhone/Web Apps debate). The issue of “keeping two books” is also still present. Why do I want to risk having my iCal calendars on the laptop disagree with the desktop? With Leopard, .Mac becomes that much more powerful, much to the chagrin of Portal.

Time Machine, Spotlight, and FSEvents

I’m not a developer, and I’m not a computer science guy per se, so what I’m about to talk about may not be 100% technically correct. Just bear that in mind. Leopard has two headliner applications that take advantage of a low-level, system-wide event tracker called FSEvents. This API allows applications to track any and all file system activity, and it does so in such a way that the application that is doing the request doesn’t have to run all the time. Log files are created that keep track of all the events, so when an application comes online after being turned off for a while, it can take a quick look at the event history and know what’s changed about the system. Spotlight uses this to keep its search indexes up to date. Time Machine uses it to keep its backup directory up to date. Portal could use it to keep track of files that have gotten out of sync. The beauty of the FSEvents solution is that it is the user-level application doesn’t have to handle the task of looking for changes and tracking events. That sort of activity, which is potentially very time consuming, is handled by the OS itself.

The ideas I had a few days ago about Portal acting a lot like Time Machine were more prescient that I had thought. I had intended that Portal simply act like Time Machine in the sense that it was a tightly integrated System Preference that also had a full-screen “WOW-factor” interface. In truth, Portal would be well served if it could tap into the same system event tracker that Time Machine uses, and now it appears that such a thing is actually possible!

An added benefit of having a system-wide event tracker and backup system is that there is added pressure for high granularity in files. Massive databases are no longer practical in the post-Time Machine era since they take up unnecessarily large amounts of space (each change to a 50MB file means a completely new 50MB backup, even if the change only affected 50KB of real data). As granularity increases, so does the possibility of better and faster syncing. Apple has also taken to the use of XML in many application and file settings. Merging XML files is far from trivial, but it is a potentially simple file to read and to track changes in. This makes it possible to go in even tighter than the “per file” level for the syncs. This means less data needing to be sent between systems and more applications being candidates for syncing. Its a win-win situation for Portal.

Sync Services

Apple defines the “Five Phases of Sync” as:
Create a Sync Session (clients are alerted that a sync is coming),
Negotiate How You Will Sync (set modes for sync engine: fast, slow, etc),
Push Changes (either whole files or just the changes),
Resolve Changes (conflict resolution, either automatic or user-defined),
Pull Changes (all clients pull down the best file, after conflicts have been fixed).

Leopard is better suited than ever to communicate with other machines (both Mac and Windows), so setting up a Sync Session shouldn’t be difficult. Changes can be identified by calling on FSEvents, which will be running in the background on all Leopard machines (even without Time Machine turned on, Spotlight still uses the daemon). Conflicts can be resolved using the Unison framework, as has already been stated. Apple also includes a few handy services in their default Sync package for dealing with contacts, calendars, etc. that might be useful to integrate as well. The act of pushing and pulling the files from system to system could be handled by the OS and its handling of local servers (for standard file sharing, with the same privileges, etc), or it could be handled directly by the Unison layer. That sort of decision is entirely up to Martin, since I have no idea about how to do either one. (Martin, if I’m totally off base here, I apologize!)

The point I’m trying to make here is that all the pieces of the puzzle for a great syncing application are in place. Changes can be easily tracked. Conflicts can be handled by the OS for some cases (contacts, calendars, etc.), and by Unison in others. The Macs can all talk to each other very easily, so local networking won’t be an issue at all. I can even see it being possible to have Portal push itself out to all your machines so you only have to go through the installation process one time.

5 Comments

Copyright © 2006, 2007 - My Dream App. All Rights Reserved

Username:
Password:

E-Mail Me

Please notify me when there is news on the My Dream App winners.

Atmosphere
Portal
Cookbook

Contestants

  1. Anders MelinAnders

    Stick-It

    A modernized sticky solution that lets people use virtual stickies just as they do in real life.
  2. Andrew WilsonAndrew

    Desktop Wars

    A real-time strategy game that brings the battlefield to your desktop with network play, voice commands and more.
  3. Bob ConlonBob

    Savant Carde

    Takes the Hypercard concept into the 21st century through direct manipulation. Could this be the next big breakthrough in hyperlinked media?
  4. Bogumil GiertlerBogumil

    Herald

    A modern update to the newspaper, combining the power of RSS, simple newspaper creation and sharing, and an eye-catching user interface.
  5. Cameron WestlandCameron

    Atmosphere

    A virtual window to the outdoors for your desktop. View a virtual representation of your area's weather when too busy to go outside.
  6. Dan LundmarkDan

    Blossom

    A virtual plant that responds to productivity, not sunlight and water. Had a good session in Excel? Your plant will thrive. Play too much Warcraft? Expect some withering.
  7. Dillon KrugDillon

    Bookroom

    Get back into reading, with Bookroom. Presents e-books in a beautiful interface, and supports annotations and Leopard's VoiceOver support.
  8. Farzad SadjadiFarzad

    Portal

    File syncing from the future. Sync folders and documents between Macs effortlessly and watch transfer progress through a cool, highly visual wormhole user interface.
  9. James BadcockJames

    Destinations

    Plan vacations and trips with ease and tie related photos and notes to locations on the map as an interactive travel album.
  10. Jeff GreenbergJeff

    iGTD

    A Mac implementation on the popular "Getting Things Done" productivity system with iCal and Address Book integration, iPod sync, and more.
  11. Joe BatutisJoe

    Puppet Constructor

    Create simple 2D animations with the ease of manipulating puppets. With Puppet Constructor, keyframes are replaced by users manipulating their "puppets" with their mouse.
  12. John BellJohn

    Minerva

    A virtual secretary for your Mac. Minerva can automatically process new contacts, aggregate news, remind you of appointments and more, speaking with Leopard's voiceover.
  13. Josh McGuireJosh

    iGotPets

    Keep track of your pet's well-being with iGotPets, and share your pet's profile through the web.
  14. Kevin CapizziKevin

    Hijack

    A full Cocoa interface for browsing and participating in your favorite discussion forums.
  15. Marshall KucharczykMarshall

    SweepIt

    The solution for messy desktops and download folders. Set folders for automatic cleaning based on user set rules.
  16. Michael WuertheleMichael

    Chatboard

    The virtual, network-enabled whiteboard that adds real-time shared visuals to group collaborations.
  17. Michael YuanMichael

    Cookbook

    The ultimate cookbook application, with online grocery shopping, thousands of recipes, Leopard voiceover technology integration, shopping list sharing, and more.
  18. Mickey WemberMickey

    iVlog

    Photo Booth for videos, with easy to use video logging (or "vlogging") support.
  19. Mike GabouryMike

    iSightSee

    An alternative control method powered by your Mac's iSight. Control your Mac with hand gestures and movements.
  20. Peter PeblerPeter

    Bubble Fish

    Bubble Fish is the friend who knows everything, but without the annoyance factor. Ever curious to learn about a word or phrase beyond a dictionary definition? Wikipedia, Google, Flickr and more would be just a control click away.
  21. Raven ZacharyRaven

    Telepath

    Turns your phone into a Blackberry lite. Push important emails, news items, and more to your phone from your Mac via SMS.
  22. Richard WhitelockRichard

    Whistler

    Ever had the urge to create a song until you realized it was harder than it was worth? With Whistler, just whistle, hum, or tap out your creation into music app importable form.
  23. Russell HeistumanRussell

    Ground Control

    Dashboard done right, with a unified design and modules for your most used apps and important information at your fingertips.
  24. Windy ChenWindy

    iStyleIt

    Bring your wardrobe into your iLife with iStyleIt, a virtual closet on your Mac. Pick your clothes with ease, store and rate your favorite outfits, and share them with your friends.

Developers

  1. Jason HarrisJason

    Jason Harris

    Developer of ShapeShifter and Chicken of the VNC.
  2. Austin SarnerAustin

    Austin Sarner

    Developer of AppZapper.
  3. Martin OttMartin

    Martin Ott

    Developer of SubEthaEdit.
  4. John CasasantaJohn

    John Casasanta

    Developer of iClip.

Today's Sponsors

Sponsor My Dream App