Nokia announced today, the Nokia 770 Internet Tablet (and it looks much smaller than a tablet – more like handsize), will feature Flash 6 player capabilities. This looks like a really interesting device, especially given that it is Linux based. Also announced, a whole new Open Source based development platform called maEmo is available. You can start getting info and developing for the device and other maEmo compliant devices. Also features a built in PDF viewer, various media players, email client, web browser, built in 802.11b/g, Bluetooth 1.2, really great stuff. I am going to be following this device pretty closely.
Archive for May, 2005
I’ve been doing some thinking and prototyping for an LBS (Location Based Services) application with Flash recently and each of the items mentioned in the title of this entry, plays a part in what I’m working on. The end goal is to be able to deliver an application for mobile devices that provides discreet contextually aware LBS to an end user upon realtime requests. I want the app to be extremely intuitive, aesthetically pleasing and consistent from one mobile device to the next. I want to say that Flash Lite is perfect for this, however I have a few challenges in using Flash Lite at this point. Here are my challenges thus far:
Challenge 1: I want to incorporate a system similar to, if not actually Semacodes or ShotCodes formerly known as Bango Spots in order to gather input from a users surroundings. Both Semacodes and ShotCodes both rely on using a camera to take snapshots of visual symbols and then retrieve information encoded in the symbols – ShotCodes go even further and allow the device to interact with the symbol rather than just decode information from it which adds another level of usage I am interested in pursuing – I have seen demos of a Nokia 3650 phone using ShotCodes and interacting with a local server via Bluetooth to report its rotation and orientation in relation to the ShotCode it has targeted. GPS systems can be great for a 30,000 foot view LBS system. The API for LBS and GPS is built right into most modern mobile devices, but once I know the users physical location, I want to allow the user to drill down further, and acquire and report more granular information about their immediate surroundings and even interact with their surrounding via their mobile device. I’ll give this a really bad acronym: GEBS (Granular Enviroment Based Services). So I’ll need to develop a way for GPS, GEBS, and Flash Lite to interact and communicate with each other. I would like it to be based on standards, but it will probably involve a custom app on the targeted device and a custom integration of either SemaCode or ShotCodes – not impossible at all, but will require some coding for sure and a license for either. There are some open source solutions for general barcode decoding for mobile devices but they are slow and don’t encode the right kind of info and just arent as elegant and refined as the other two solutions.
Challenge 2: I would like to deploy this Flash Lite 1.1 based interface to the app, on more platforms and phones then what are currently supported by Flash Lite. Specifically I want to deploy a Flash Lite app that can run inside or on top of BREW to extend its reach and deployment. There are at least two places I have seen that have referenced an extension for BREW that would allow Flash to run on top of it via an extension to BREW. So far I havent seen anything about it other than a mention here in this white paper from Qualcomm about BREW on the first page it specifically states: “Other languages such as Flash and XML can also be supported via extensions to BREW” that sounds great, but where is this available from? Anup Murarka from Macromedia makes mention of a reference platform for Flash Lite on top of BREW earlier in the year at CES you can find it here – the interesting quote is, “…this week, at CES, he’ll [Anup Murarka] be able to demonstrate a ‘reference design’ for Flash Lite on a Qualcomm BREW software platform. ‘It hasn’t been announced, but we’d love to see Flash on a BREW phone, and we have been able to demonstrate it…’ ” to me thats great news – as this would solve one of my challenges in getting the app into the hands of users with devices provided by carriers who lock down their devices to only accept signed/certified BREW apps. It is practically childs play to build a Flash Lite app, create an .sis file and distribute your app to Symbian OS based devices – no wonder Macromedia chose this as the low hanging fruit to go pursue first following their success with DoCoMo phones. I’m hoping BREW is next is next so I can leverage all my Flash knowledge instead of mucking around in JAVA or C/C++. Not that either of those are bad – just not my area of expertise.
Challenge 3: I want to deliver video as one of the content types that can be returned as a result of interacting with this system. The great majority of phones shipping now support some form of MPEG-4/3GPP video files. Right now Flash Lite doesn’t support video but I am hoping that given the adoption of video standards for phones and mobile devices this might be an area Macromedia fleshes out support for as well. It’s logical this might be explored, if you consider that Macromedia added support for TinySVG into Flash Lite 1.1 just for the mobile space. Similarly I can see support for MPEG4/3GPP video being added to the Flash Lite platform for the same reason: to support established standards. I can download a copy of Apples Quicktime Streaming Server for all the major server platforms and stream out MPEG4 and 3GPP video right now thanks to their Darwin based version of the QTSS.
So I’m going to give all this some more thought and continue to map out potential solutions and challenges. I think LBS and my self coined term, GEBS, for mobile devices are where the future lies for delivering realtime information to the general public.
I’d love to hear thoughts from folks who are exploring and experimenting with similar ideas and technologies.
I have been running a custom app on my server for a little over 3 years now that I wrote to help me auto-ban IP addresses from known email spammers, blog spammers, bots, anonymous proxies, and IP’s that have been the source of attacks against my server. If you happened to visit my site with a web browser from one of these IP’s then you are directed to a special page which records your IP and does some other things to keep track of your system on return visits to prevent attacks, etc. You will know you have been there – its a black and white page with my favorite picture of Johnny Cash giving you the finger. Unfortunately the direct URL to this page got posted to a blog entry by Aral Balkan on his site this morning when his IP got caught in the system – and thus everyone who visited that entry and tried the link he posted also got auto-banned. Aral had no idea of knowing the effect of posting that URL, so no biggie, I put up some comments on his entry to help folks out. Looks like approx. 150-160 people got banned according to my logs. What I have also done is to temporarily turn the system off, and it will be off for the next 24 hours to allow things to calm down.
The funny thing is I have been running this system for over 3 years now, and never had a problem until today when the direct URL got posted which unfortunately auto-bans you. A funny side effect was that earlier this year the large image of Johnny Cash on my site got ranked as the #1 google result for the search “Johnny Cash Finger” and became so popular as an avatar on PHPBB forums, and other forums where people were hot linking to the image for their avatar, that I had to devise a system to prevent that from happening as I was serving up close to 500+ megs of Johnny Cash every 12 hours. Needless to say that sucked – so I fixed that up pretty quick by serving an “alternate” image if you hotlinked directly to it – and lets just say that this image WAS NOT Johnny Cash. 🙂
OK, so hope things will settle down, and tomorrow I’ll turn the system back on and we will see what happens. Apologies to those of you who clicked on the link in Arals post an got temporarily banned.
I have been doing some Flash Lite 1.1 projects lately, and I have figured out a few things that make testing and developing easier. First off, its really easy to test .swf files, I simply publish out a new one and use the built in bluetooth file transfer to send files from my Mac OS X laptop to my Nokia 6000 and they end up in my message inbox. One click and the Flash Player launches my .swf and I’m off and running.
In some projects, you might have several local .swf files or other supplemental files, sometime you want to be able to package up and make an installer that will transfer them all in and organize things in the proper hiearchy, etc. Basically a full installer package. Well in that case you use Symbians “makesis” utility in combination with package files to create an actual .sis installer file. Makesis comes with the Symbian SDK, but the SDK is geared towards PC’s not Macs. No problem, makesis is open source now and you can compile it. I actually found a great article by Simon Woodside, that covers developing for Symbian devices on OS X. Its not really geared towards Flash Lite 1.1 development, but the tidbits about getting and compiling makesis were just what I needed. It only took a few minutes, and a little reading on this Symbian reference page on the syntax for package files, and I was creating functional .sis files on my Apple Mac OS X laptop.
My next step is to get makekeys working so I can digitally sign my .sis files with a certificate to show the originator, and provide a level of security and trust, and to avoid some warning’s that pop up. Just a couple minor details. Just being able to make the .sis files certainly speeds up the process of development, I run a JSFL file that publishes out my Flash Lite 1.1 .swf to a “deploy” folder, and then triggers a shell script to run makesis and bundle up my .sis installer. I could probably take it a few steps further, and have AppleScript or perhaps use the new Tiger application, Automator, to automatically send the resulting .sis file to my phone without my having to mouse around at all. I’ll have to give that a try with automator and see what I can work out.
Bill Gates introduced Windows Mobile 5.0 today, and it looks interesting. (During development it was code named “Magneto”, which explains the image of Bill donning Magneto’s helmet in the photo that accompanies this entry) There are a lot of cool new features and interesting changes, but the one that really caught my eye was the addition of a standardized camera API. This single change should provide software developers the tools and hooks they need to add support to the Flash Player 6 for Pocket PC to allow input from cameras. That was the one piece of key functionality missing from Flash Player 6 for PPC, in that it could receive incoming video and audio Flash Communications server streams, but it could only accept and pump out audio from the device itself since there was no standard way to interact with cameras. I’m hoping this exposes the right hooks for accepting video input from cameras and not just still frames. Looks promising though. It would make for some very compelling interactive tools using Flash Co
Check out this link http://www.pocketpcthoughts.com/index.php?action=expand,40001&/how_unified_is_windows_mobile_5.0?.htm for a good review and info on the unification of Pocket PC Platform and Windows Mobile (or lack thereof) and some extra good info by Peter Foot from Jason Dunns PocketPCThoughts.com – also some good info down below in the comments.