Month: April 2005

  • Perl for Series 60

    Via the guys at Mobitopia, it looks like there’s a patch to get Perl running on Series 60:

    Please find attached the port of Perl 5.8.x and 5.9.x to the Symbian smartphone platform. The port is known to work in the Nokia Series 60 phones, but there is no reason other Series 60 or Symbian devices shouldn’t work. (Series 60 is a software platform on top of the Symbian operating system.) The port is copyright Nokia and licensed under the same terms as Perl itself. More details and the patches can be found in the file README-symbian-patch.txt included in the attached .tar.bz2, and in the README.symbian file.

    Don’t expect it to be pretty, but it’s great to see it “out in the wild.”

    Who will be the first to post an unofficial build?

  • Prepping for Orange Code Camp

    Code Camp 2005

    I’m heading down to Sarasota, Florida later this morning for Orange Code Camp. I’m going to be covering the event for Orange as well as posting an article or two on All About Symbian and if I have any keystrokes left in me, hopefully a post or two in my weblog.

  • Is DNS Broken?

    For what seems like the third time within a week, I’m getting absoluely no response from Comcast’s DNS servers. Luckily I can point my computers to DNS servers that I run, but the vast majority of Comcast customers don’t have the technical ability (or DNS servers) to do so.

    If you couple Comcast’s DNS issues with DNS cache poisioning, the following question comes to mind: Is DNS broken?

    If you’re a Comcast customer, your answer right now would probably be “yes.”

  • Contax: Rest in Peace

    DPReview broke the news yesterday:

    Kyocera Corporation (President: Yasuo Nishiguchi, hereafter called “Kyocera”) has decided to terminate CONTAX-branded camera business.

    The announcement saddens the camera geek in me. At the same time I’m not suprised. The photo industry has changed dramatically over the past decade. Some companies successfully hopped on the digital bandwagon and were successful. Some tried digital and failed horribly. Kodak managed to hold out on digital in the beginning but has managed to do an amazing job at capturing the digital market. Kodak isn’t making slide projectors any more and has significantly reduced the different types of film, paper, and chemicals that it once did.

    Contax was just another victim of the digital age and the corporate bottom line. They had some very solid medium format and digital offerings, but obviously were not profitable enough.

    I wouldn’t expect this to be the last announcement of a historically big name traditional camera company just dissapearing. Everything is changing at such a rapid pace. Even a company doing the right thing may have a hard enough time catching its breath.

  • Is Ubuntu the Server Platform I\’ve Been Waiting For?

    Ubuntu Logo

    Ubuntu has been getting a lot of press and generating a lot of buzz in the desktop space recently. The Ubuntu installer also allows for a server-oriented installation. That begs the question: how cool is that!?

    I really like running a Debian-based server because I can keep in touch with security and program updates with a quck apt-get update && apt-get dist-upgrade. Right now stable is a bit mummified for my taste, but testing (Sarge) will become stable any month now, and has been quite solid for awhile. Sarge will be a great server platform for about the first year (year and a half?) after it is released. After that it will suffer from ancient packages and the inability to run the “cool new stuff” while at the same time it will be a tried and true and solid as can be server platform.

    I think that running an Ubuntu-based server may actually be the best of all possible worlds. Here’s why:

    • Ubuntu is based on Debian Unstable with additional packages
    • There is a new Ubuntu release every six months based on these packages
    • Each Ubuntu release is supported for 18 months after release (or 3 release iterations past the release).

    This means that an Ubuntu release is running the latest packages, but because of the intense six month release cycle, these packages are scrutinized a lot and fixes made for an Ubuntu release head upstream and are usually patched in Debian proper. When the bleeding edge is a bit too harsh, you can often choose between versions. Enabling Universe and/or Multiverse opens up easy installation of thousands of packages that do just about everything you can think of. I don’t think I’ve come across a desktop app that I really needed that wasn’t in one of these repositories.

    Security updates are also availble for a reasonable amount of time after release so that a major upgrade only need be executed every year and a half if you would rather not track the latest release. If you prefer the bleeding edge, apt makes it fairly painless to upgrade between releases and any known peculiarities will be addressed in the release notes.

  • The Wayback Machine Bookmarklet

    While looking for an archived version of a website at The Internet Archive Wayback Machine, I noticed that they had a bookmarklet. I hadn’t noticed it before. I don’t know how long it’s been there, but Phil Gyford wrote it back in 2001.

    It comes in handy every once in awhile and now sits next to the Experimental post to del.icio.us bookmarklet in my bookmarklet bar.

    No mention of The Wayback Machine is complete without a link to an ancient snapshot of Slashdot, Dell’s website circa 1996, or a minimalistic Yahoo.com

  • Python for Series 60 App: QuoteGrab

    Introduction

    I had 15-20 minutes to kill Wednesday night before class, so I wrote the first fully functional version of this little hack/app. It first prompts the user for a stock ticker symbol (like NOK, AAPL, YHOO). For now it expects your stock ticker symbol to be in uppercase. After the input is received, it grabs a .gif image from Yahoo! Finance, then displays the image using appuifw.content_handler. Once you are viewing the image you can zoom in, zoom out, and view the image fullscreen.

    After I got the basic app working, I took a few minutes here and there over the last few days to work in some basic exception handling. I wasn’t able to catch a TypeException error thrown from content_handler, so I have it checking if content was downloaded successfully before launching content_handler.

    Screenshots

    Quotegrab asking for a stock to look up Initial Content_handler view of the downloaded graph Zooming in using the content_handler controls Zoomed all the way in

    The first screenshot is asking for a stock ticker symbol to look up. The second is the initial zoom level when content_handler is called on the downloaded graph. The third screenshot is zoomed in a bit using the content_handler controls. The last screenshot is a fullscreen view of the graph.

    Requirements

    • A Series 60 phone, 3650 or newer (tested on N-Gage and 6630)
    • Python for Series 60
    • GPRS network access (not just WAP access)

    Download

    quotegrab.py

    Installation

    Download quotegrab.py and transfer it to your phone using Bluetooth, IR, email, or other means. When you open in from your inbox, it will prompt you for installation. If you have an MMC card reader or N-Gage, you can place it in /system/apps/python/my on your MMC.

    License

    QuoteGrab is licensed under a BSD-style license.

    TODO

    While a complete running app, this 62 line Python program does one thing, once, and does it pretty well. I would like to widen the scope of this app in the future to allow you to download and view the graph of the stock over 5 days, 3 months, or any other length of time that Yahoo! Finance offers. I would also like to add the ability to download and display basic stock information such as current price, change, and other vital stats. It would also be really awesome to be able to link to Yahoo! mobile for more information.

  • Rapid Python for Series 60 Development

    Right now I’m writing Python for Series 60 apps on my Ubuntu laptop and testing with a Nokia N-Gage (the infamous taco). The taco is an excellent (and inexpensive) development/testing platform for Python for Series 60 because it offers a USB connection that once connected allows you full access to the contents of the MMC. After a few rounds of navigating to the right spot on the MMC and then dragging my .py file using Nautilus, I decided to automate the process a bit. Here’s a little bash script (I call it py2phone) that has made my life quite simple:

    #!/bin/bash
    cp $1 /media/usbdisk/system/apps/python/my
    sudo umount /dev/sda1

    It copies the first command line argument to the correct spot on the MMC and then handles the umount command so that I can immediately disconnect the USB cable and test on the device. I usually copy to the device after running through it using the PDIS Series 60 compatability library, which helps me find stupid syntax errors before copying to the device. The comatability library sits on top of wxPython and implements most of the basic appuifw functions. I would really like to stub out content_handler to acknowledge the call rather than stacktrace, but other than that the compatability library absolutely rocks for debugging before transfering to the device.

    Here’s my development cycle, which when I’m fixing, tweaking or experimenting, can last all of a few seconds:

    1. Edit file.py file (I’m currently using GEdit for syntax highlighting)
    2. run python file.py at the command line to run through the app on the laptop
    3. ./py2phone file.py
    4. Unhook USB cable, test app on device

    The next step is to automate this process further by extending my little bash to handle the test call, ask if everything went okay, and then conditionally copying the file to the phone and unmounting the device.

  • Ubuntu Hoary On Its Way

    The Ubuntu Linux website got a makeover today in preperation for the release of Ubuntu Linux 5.04 (our friend Hoary Hedgehog). The release should hit some time tomorrow. If you were waiting for the release to give Ubuntu or Hoary a go, you should definitely snag it. I’ll probably be updating my /etc/apt/sources.list to point to Breezy Badger, since Hoary has been so good to me over the past few months.

    Congrats to the Ubuntu team and the Debian shoulders that they are standing on for their second excellent release.

    Update: It’s out on the street. Download it here. The release notes also do a great job at explaining what’s new and why Hoary rocks.

  • Useful Python for Series 60 App: Dict2Go

    Over the past few weeks I’ve been on the lookout for pure python modules that run on Python for Series 60. I have managed to make use of a few cryptography modules (including Rijndael, DES, and Blowfish) as well as parse tag soup using BeautifulSoup.

    While I was able to highlight some pure python packages and modules that worked well on Series 60, I really wanted to put together a quick simple app that was actually useful. After searching around for modules and services that would be great to access from a mobile device, I fell in love with John Goerzen’s dictclient.py. The module is a consise and well documented client that speaks the dict protocol.

    Using Goerzen’s module, I have put together a simple GUI using the native widgets provided by appuifw. I was able to knock out the app in a little under an hour or so first by prototyping using the wxPython-based PDIS Series 60 Compatability library on my Linux laptop. From there a few iterations of tweak, test, tweak on my N-Gage (which is great for this type of thing because of the USB cable). Until my GoPhone SIM shows up tomorrow I’m without non-WAP data, so Gustaf was kind enough to test and send me a few stacktraces before I fixed a stupid typo or two in my code.

    Screenshots

    Dict2Go Input Dict2Go Results

    Installation

    To use Dict2Go, you will need Python for Series 60 installed on your phone. If you have a 3650, 3600, N-Gage, or N-Gage QD you will want to snag PythonForSeries60_1stEd_SIS.zip. For newer phones (6600, 6620, 6630, 7610, etc) you are looking for PythonForSeries60_2ndEd_SIS1.0.1.zip. You will also need a way to put the library file dictclient.py in your Python libs directory. Christopher Schmidt sent in a much easier way to install dictclient.py:

    For installing the dictclient.py, you can just send the file to your phone and install it as a Library module using the standard Python installer. There’s no reason to use Fexplorer or an MMC reader for that.

    My way (the Taco way) is still an option, though it’s much harder than it could be. You can copy the files using an MMC card reader (or your N-Gage) or by transfering the file to your phone and using FExplorer. If you have installed Python on your MMC (which you should have), put dictclient.py in E:/System/libs. One the library is in place, you can either place dict2go.py in E:/System/apps/Python/my or just transfer it to your phone and install it from your inbox.

    Download

    Note: this is a quick but functional hack. I think that it’s quite useful in its current form, but I have lots of plans to make it more fault-tolerant and user friendly as well as add more features and functionality. With that out of the way, there are a few ways to download Dict2Go:

    License

    Dict2Go is released under the GPL, version 2 or greater, as is the dictclient.py library that does all of the hard work. A copy of the license can be found in the zip files and tarballs.

    ToDo

    As I’ve said before, this is a quick hack, but I like it. The dict server is currently hardcoded to talk to dict.org, but that can be changed by editing the source if you really want to. Dict2Go also grabs the first definition it finds. I hope to make both of these configurable in the future. I also have lots of plans for UI improvements including a main app loop so that you can look up as many words as you want until you are done. I will do my best to get new stuff out the door as quickly as possible.

  • Nokia Begins Shipping the 6680!

    Nokia 6680

    According to the latest Symbian Community Newsletter, Nokia has begun shipping the 6680:

    Nokia has started deliveries of the Nokia 6680, introduced just one month ago at the 3GSM World Congress in Cannes, France. The Nokia 6680 WCDMA/EDGE imaging phone features Symbian OS v8.0a and Series 60 Platform 2nd Edition, Feature Pack 2.

    Be patient though. Just because they’re shipping doesn’t mean that you can walk in to a shop and pick one up. I’m definitely impressed by how quickly they went from announcement to ship on the 6680. If they easily make the April estimate on the 6680, things are looking good for say an early June release of the 6682 just in time for me to buy a new phone…

  • Podcasting Adoption Rate

    Via Engadget and Scripting News, according to the Pew Internet and Life Project [pdf], 29% of all US digital media player owners (6 million Americans) have listened to a podcast.

    I think “6 million American adults have listened to podcats” is being confused with “6 million Americans can recognize the word ‘podcast’ when used in a sentance.” The 6 million mark was derived from talking to 208 media player owners. This leads to a margin of error of plus or minus 7.5 percentage points. Don’t get me wrong, podcasting is huge and is being adopted quickly, I just think that 29% seems a bit high.

    Perhaps it could be better stated: “About 60 out of 208 Americans who own digital media players and were willing to be surveyed about their media player usage claimed to have listened to a podcast.”

    I’m guessing that a lot of people know what the term podcasting is without having actually participated in the sport themselves. I’ve only ever been able to really get in to IT Conversations and Leo Laporte’s podcasts. I don’t know why, but Dawn and Drew kinda creep me out.

    I’ve never participated in “pure” podcasting though. I’m one of those neadrethals who has to download individual MP3s and burn them to CD so he can listen to them in the car. I’ll get with the program someday though.

  • Net10: Tracfone\’s New Pseudo-MVNO

    Net 10I stumbled upon a new set of boxes in the pay-as-you-go aisle of Target this evening. The new provider on the block is Net10. From the way I’m reading the brocure, it looks like they’re a subsidiary of TracFone rather than an MVNO on top of TracFone’s network. Their schtick is simple: nationwide calling costs 10 cents. They also reward the purchase of larger refill cards by making the minutes last longer. For example, a $30, 300 minute card lasts 30 days, while a $180, 1800 minute card lasts 6 months. They also charge 5 cents a pop for text messages, which is less than what most carriers charge their montly invoiced customers.

    The phone selection isn’t spectacular, but they get the job done. Available phones include the Nokia 1100 (which honestly I think is pretty cute), Nokia 2600, the funky Motorola C155, and the Motorola V171. The phones are relatively cheap without the frills that you might get on GoPhone or Boost Mobile, but the service is obviously aimed at cost-concious consumers who value a bargain over bling.

    TracFone has done a smart thing by targeting a niche that has gone largely untapped. They need to keep on their toes though, bargain hunters don’t have much brand loyalty and the space could get very crowded very quickly.

  • Kicking that Windows Habit

    I realized this afternoon that it’s been a week and a half since I booted Windows at home or on my Laptop. My main desktop machine at home runs Debian testing. I was still tied to Windows on my laptop until last Tuesday when I managed to get NDISWrapper working. I’m running Ubuntu Hoary on the laptop and have been for a month or two. Warty didn’t want to play nice with the laptop hardware, and the bleeding edge is the place to be anyway. The Hoary version of NDISWrapper doesn’t work with the latest kernels, so I grabbed the most recent release from sourceforge and it worked like a champ. I’m not completely sorted out, as connecting to open APs and WEP APs work great but I can’t connect to my WRT54G with WPA. It’s not that big a deal though. I just plug in to an ethernet cable at my desk.

    I managed to get NDISWrapper going just before PyCon and haven’t looked back at Windows since. Hoary handles speedstepping great, and I’ve fallen in love with bleeding edge Gnome, The Ubuntu Way, and Mono apps like F-Spot and Tomboy.

    I’m not completely free from Windows though. I use it quite a bit at work. I try my best to balance it out with my laptop on the right side of my desk connected to the wireless network. I haven’t run in to anything in Photoshop that hasn’t been possible with The Gimp, but I’ve only needed to do simple stuff in it so far. I should really look at how it handles slicing and PSD files with lots of layers.

    I have run in to a bit of a problem with hard drive space though. My now-primary Ubutnu partition is only 5 gigs, and I’ve managed to all but fill it. My Windows partition, gathering mothballs, is a heafty 30 gigs. I really need to boot up the partition, back my stuff up to DVD, and give Ubuntu the space it deserves. I’ll probably keep a small Windows partition handy though, you never know when it might be required.

  • New Phone (Sony Ericsson T237), Leaving T-Mobile

    I ordered a new phone today, a GoPhone from Cingular. It’s a Sony Ericsson T237. It cost me thirty bucks.

    You might wonder what the heck a guy like me is doing with a cheap little pay as you go phone. The short answer is that it’s part of the master plan. The long answer follows.

    You see, my wife’s contract with T-Mobile is up in late May. Mine isn’t up again until October, but we’ve decided to take the early termination fee on one but not both accounts. I love T-Mobile but the only data plan that you can actually use with anything other than WAP is $20 a month. That’s just more than I’m willing to pay for (slow) GPRS. I really do love T-Mobile. They’ve been great to me, their customer support rocks, their in-store employees actually care and try to help. I just really need data.

    On a side note, I’m really unhappy with the recent switch in T-Mobile’s customer support phone setup. They used to have a nice standard menu driven system that let me get the information I needed quickly and easy. Account information, minutes remaining, and other basic stuff was available from the menu. If I had a question that required a human, I chose the right menu option and had a kind and helpful customer support rep right away.

    Now when I dial customer service (*611) I get confronted by an IVR that thinks she’s smarter than me. She probably is, but that’s not the point. After a short greeting she prompted me to ask her a question about anything.

    “I would like to speak to a human please.”
    “I’m sorry.”
    “I would like to speak to a human please.”
    “I’m sorry. Try asking me a question like ‘How many minutes do I have left?’ or ‘When is my bill due?’”
    “I would like to speak to a human please.”
    “I’m sorry.”

    The IVR then listed about 5 or 6 things that I could ask for that sound suspiciously like the old “press 1 for…” list.

    “customer support”
    “Would you like to speak to a customer support representitive?”
    “Yes.”
    “I’m sorry. Did you want to speak to a customer support representitive?”
    “Yes.”
    “One moment.”

    I managed to supress the urge to throw my phone across the room and was actually calm by the time the customer support rep answered. She was kind and helpful as always, and as I inquired about the contract status of the two lines on the family plan, she said that she would be sorry to see us go but understood if we had to. I thanked her very much, told her that she was helpful as always, and registered my complaint with the IVR bouncer at the front door.

    Where was I? Oh right. The master plan. So late May, early June, the plan is to switch both phones over to Cingular. They’re really my only option. I’m a GSM guy, so Sprint-Nextel and Verizion are out. Since I’m leaving T-Mobile, that leaves Cingular. I’m hoping that the Nokia 6682 makes an appearance at Cingular during the 2nd quarter of 2005 as predicted. It looks like the 6680 is poised to hit Europe in April as promised, so I have no reason to doubt that the 6682 isn’t on track for some in May or June. If the 6682 is delayed, I can still get a good price on a 7610 on contract, and honestly if the 7610 is my fallback, things aren’t that bad.

    If we’re planning on making the jump pretty soon, it’d be nice to have a backup phone that speaks 850Mhz. I’ve got a ton of GSM phones, but they’re mostly 900/1800/1900. While these will probably work most of the time on Cingular, it’d be nice to have a “native” 850 phone as a backup. It’s also a good chance to audition the signal levels in our apartment and other places we usually hang out. I have to stand near a window if I want to carry on a conversation on T-Mobile, but I think that Cingular has better reception here.

    Plus, with GoPhone, I can have data again. I can do things like use WirelessIRC or test network-enabled Python apps. It’ll be pretty cool.

    To summarize: I’m leaving T-Mobile for Cingular some time in the next few months. I don’t want to leave, but T-Mobile just doesn’t offer me a data plan that I can live with. Their cheap plans don’t let you deviate from WAPland, and their unlimited plan is just too much for GPRS. I’m going to miss them though. They rock and I can’t say a bad thing about them (data aside). I’m wary of Cingular, since they lead the pack on customer complaints. I’m willing to give them a shot though if it means I can have EDGE and get a decent deal on a new phone on contract.

  • Minor Python For Series 60 2.0 Update

    Sweet! I just saw the release fly by my aggregator and thought I would let everyone know: There’s a new Python for Series 60 release for 2.0SDK phones available at Forum Nokia. This looks like a small update for newer phones (6600, 7610, 6630). The only change in the release notes that I can see involves invoking an install dialog when downloading python files from the web rather that running them directly.

    While this is a minor update, it’s forward progress. Hopefully the enhancements and extensions that have been demoed will work their way through the release process as quickly as possible.

  • Ubuntu April Fools Gag

    Ubuntu April 1 Gag
    Click for full Login Screen Setup image

    This is great. You can imagine how amused I was when I booted Ubuntu Hoary on my laptop this morning. Excellent work and a beautiful April Fools gag! The Login Screen image is a take on the (unneccesarily) controversial Human Circle of Friends login screen that shipped with early Warty releases.

  • UIQ 3.0 SDK Released!

    Wow, it seems like I’ve been waiting for this for years. Oh wait, I have. Today UIQ released an SDK for their new flagship product, UIQ 3.0. The SDK is designed to work with either Metroworks CodeWarrior Development Studio for Symbian or Borland’s C++ BuilderX.

    For more information and to download a trial version of the UIQ 3.0 SDK, visit their web site.

    Yes, this is a lame April Fools joke. I wish it wasn’t though. Jim and I have been excited about the prospects of UIQ3 since it was pre-pre-pre-pre-announced what feels like years ago now. It has the potential to rock the low to mid-range market bringing “real apps” and “a real OS” to those free-to-inexpensive on contract phones. The other thing that rocks about it is that one code base can scale from low-end uniprocessor devices to top notch touchscreen and/or QWERTY devices. It’s really exciting. I just want it to see the light of day.