Status Update, March 2008
Over the past two months, I’ve been focused on building the prototype for the Candyspark product. Since the last update, I’ve gotten my hands very dirty and now have an excellent sense of the technical challenges in making this work. It’s exciting to see the pieces start to come together, as the code gets written and the different components start to interoperate. There’s still a ways to go before this is a product I’ll be happy to send out into the world, but the path forward should be a good trip.
Lessons Learned and Progress Forward
So, here are some of the things I’ve been working on since the last update:
1. XULRunner Development — I’ve got a prototype desktop client running, based on Mozilla’s XULRunner platform. Dealing with that code base has been, one might say, a challenge. There’s a steep learning curve, mountains of documentation of varying obsolescence, and as Steve Yegge observed, “well over a decade of ugly packed in there.” On the other hand, it’s got a full suite of state-of-the-art web technology, a powerful Javascript engine with access to native functionality, and built-in Mac/Windows/Linux cross-platform capability. There should be smoother sailing now that I have a better handle on the XULRunner landscape, and things will get better over time as Mozilla coders make progress toward Mozilla 2 — there are a lot of cool features being worked on there.
2. Two Ways to Connect: Desktop and Web – Last time, I discussed the idea of making a web-accessible version, as well as a native desktop app. More and more, I’m thinking of this “dual access” as a key feature of the product, and have been constructing the prototype to make it possible. Users will be able to use a single mobile client which connects to either the desktop (via WiFi, Bluetooth or USB) or to the Internet (via WiFi or cellular network). They’ll be able to sync their data whichever way they like, and switch between them as their circumstances, schedules or preferences dictate. Furthermore, sparklet authors will be able to develop once, and have their code work in both places on the same Javascript engine (modulo differences between what data is available in the environment — desktop files obviously won’t be available to the web version, without special provisions). I’ve got some architecture in mind for the web version, I’ll see if I can get a demo operational soon.
3. Sparklet Development – For those just joining us, “sparklet” is the name I’ve chosen for the plug-ins that let users sync their data between their mobile devices and whatever PC or Internet services they’d like to sync with. I’ve made progress toward specifying the structure and operation of sparklets, though it’s still in flux as I try different things out. Basically, I’m looking at each sparklet needing to have two pieces: a) an event handler, written in Javascript, which gets notifications of sync requests, connectivity events, etc, and performs the sync using a bunch of Candyspark-supplied APIs; and b) an Ajaxy web interface, written in HTML/CSS/Javascript, for configuration and realtime display. All this will be zipped up with a specific structure for easy deployment, just like Java does with JARs.
I’m trying to make sparklet development as simple and low-effort as possible, by making the APIs easy to use and smoothing over the asynchronous stuff. It would be great to work out ways of running sparklet functionality directly off of live web pages, either modeled after Microformats or Greasemonkey, but there are significant security and usability issues with that and it needs more thought.
4. Mobile Client Dev – I’ve got prototype clients working on S60 (in Python) and the Android emulator (in Java). Their functionality is limited, but enough to prove that the basic idea works, and should be easy to extend as needed. The plan is to keep the mobile client as simple as possible, since that will make it easier to port to additional devices going forward. We will eventually need to develop a more sophisticated solution for detecting device differences (as some will allow access to resources that others lock down, for instance) and exposing that to sparklet developers in a clean way.
5. Documentation, Marketing and Website Dev – I rolled out a new website design yesterday, with a cleaner look and much increased explanation of what Candyspark is and why people should care. I’ll be putting up more info in the coming days, and expect to have a fairly complete pitch up there by the end of the week.
I also set up a Beta Signup script to start gathering interested future users. The signup asks a few questions about mobile synchronization tools, habits and desires to get a bit a feedback as well.
6. CTIA Meetings – I will be heading to Vegas in a couple of weeks to attend CTIA. If you’re interested in meeting to see a demo and learn more about what we’re up to, please get in touch!
Comments
12 Responses to “Status Update, March 2008”
Leave a Reply
Hi, courteous posts there :-) express’s concerning the compelling word
Hi, good post. I have been woondering about this issue,so thanks for posting. I’ll definitely be coming back to your site.
Hi, Congratulations to the site owner for this marvelous work you’ve done. It has lots of useful and interesting data.
Привет, нашел этот пост через гугл и уже не вылажу с сайта пол часа. Все отлично, только у меня из Украины он чего-то медленно открывается. А вообще – так держать, спасибо за информацию.
А вот мой сайт http://www.ua-inform.com , может поменяемся ссылками?
Here some more questions for you to answer! :D haha! ^_^
Why is a boxing ring square?
Слабо моё имя расшифровать f0eb53edb08a961b9bdb0ff7ef6af5e4 ?
any news coming ?
Great job! Can’t wait to start my own blog.
Заплатим за размещение YouTube плеера с нашими роликами на Вашем сайте.Подробности ICQ 442006
полет фантазии надо срочно остановить, а то улетит незнамо куда и не поймаешь :))
чаще пишите у Вас неплохо получается!