Yesterday, Nokia announced the latest update to the Nokia N900. This is big update, hundreds of modules to be updated and megabytes of data. However, the update also moves some data out of the small root file system to the much larger regular file system.
I was very low on space in the root file system, but it said that it would free up space, so I proceeded with the installation. However, it used temporary space in the root file system and ended up crashing my phone; bad enough to lose telephone connectivity, but not bad enough to lose Internet connectivity.
I’ve installed OpenSSH on my phone so I can connect to it from any of the computers around the house which makes things much easier. Checking around, I found that the /var/lib/apt directory was taking up about 15 meg of disk space. The /var/lib/dpkg directory was taking up about 27 meg of disk space and the /var/cache/apt directory was using up 14 meg of disk space. That worked out to about 56 megabytes or over 20% of the root file system.
In the announcement about the upgrade, there was a link to a page about freeing up root file system space. It included a link to a blog post about moving apt out of metadata. The author wrote a script that copies data to the home directory and uses apt-config to change apt to use the new directories. The author warns that the script is not official and that people run it at their own risk. The wiki warns that this could cause rescue mode to fail.
Instead of using apt-config to move things around, I took a different approach. I created /opt/cache and /opt/lib I then moved the apt and dpkg directories from /var/cache and /var/lib to /opt/cache and /opt/lib With the files moved, I then created a symbolic link in the /var/cache and /var/lib directories pointing over to the /opt/cache and /opt/lib directories.
It appears to have worked fine, and the update completed. Unfortunately, the telephony portion did not restart properly so I had to reboot the N900. When I did, everything worked fine. Looking at Settings -> About, and at the results of the terminal command osso-product-info, I found that my release version was now 2.2009.51-1.002. Google Latitude, which had not worked with the beta version of the upgrade was working. The changes to the fmtx_client command to allow stations with a length other than eight characters also worked. I had more space in the root file system, but other than that, I haven’t noticed any other changes.
One thing that did throw me for a loop was that my prompt still said Nokia-N900-42-11 and uname –a returned Nokia-N900-42-11 as part of the string. However, that is the default hostname, and the update didn’t change the host name. I went into /etc/hostname and changed it to a more meaningful name, making the corresponding change in /etc/hosts
It was frustrating getting things moved around and updating cleanly, but now everything is running smoothly, and we can see what I can break, err, tinker with next on the N900. Anyone else have an N900? Got any stories about it?
In a previous blog posts, I wrote about the FM receiver on the Nokia N900. I commented
You are supposed to be able to get RDS as well, but I didn’t get any RDS messages. All in all, the fmradio package is fine for my use, but nothing special.
Since then, I started playing with the FM Transmitter built into the N900, and when you start playing with both of them, it can get very interesting. For the FM Transmitter, there is a client that you can use to control the transmitter, fmtx_client.
With this, you can set the frequency, the RDS Station name, the RDS information text as well as power on and off the transmitter. I ran into one bug, with the current firmware level of my phone, the station name needs to be exactly eight characters long. However, you can control pad the station name with blanks.
Our car is a Prius which has a nice RDS enabled FM receiver. With a little playing around at the command prompt, I set up the FM transmitter to set the radio station to “aldonsfm” and sent out messages to my family members. The Prius has a safety feature that it won’t display RDS messages when the car is in motion, so I didn’t play with it extensively. However, with a little work, it seems like I could set up the phone so that it would display the most recent SMS message I’ve received on the RDS receiver whenever the car is stopped. I also talked with my wife about how this could be a great idea for car salesmen. When a potential buyer checks out the car, it has music selected to their taste playing on the radio, broadcasting off of the salesperson’s N900, along with appropriate ads for the car company, and could have personalized RDS messages display for the potential buyer.
As I worked on my blog post about QR Codes, I confirmed something I had been concerned about with mbarcode; it doesn’t send SMS messages. In the discussion about mbarcode, the author writes about his desire to “Add support for further 2D barcode payloads - please suggest any you think it doesn't handle, code appreciated too”. I added a suggestion for supporting sending SMS messages, and started looking for how to add this.
Some people look at what is and ask why? I prefer to dream of what is not and write blog posts about it.
At a New Year’s party, I was asked if 2010 will be the year that someone finally figures out where the online revenues for local newspapers are going to come from. I certainly hope so. Already there are examples springing up here and there of local papers that are doing well with their online revenues. However, we have a long way to go.
I normally talk about the importance of localization, and perhaps throw in a few comments about the importance of convergence when I talk about the possibilities for online revenues for local newspapers, but before I get to that, I want to talk about one other area that I think is important, that too many people are missing.
At conferences on online publishing, someone always mentions large publishers that are making more money from selling their data than they are from the advertisements they run. Unfortunately, most data purchasers are buying from very large sites; sites with over a million visitors a month. This just doesn’t work for small local newspapers. However, there is great value in the data from these small local newspapers, and I hope someone comes along, figures a way to aggregate some of this data and sell it as a profit both to themselves and the local papers they serve.
Yet in most cases, aggregation seems to drive down the value that local online sites provide. If I’m a small business in a small area, I want my ads, including my online ads, to target people in my area that are most likely to respond to my ads. Ideally, I would like my ads in the local paper to fit nicely with the online ads, and any other advertising that I might do.
It is with this in mind, that I would like propose a couple examples where I think a little innovation might be able to dig up some good value. Hopefully, they will illustrate the ideas of localization and convergence.
Many local papers run special advertising sections for real estate. Next to the picture and description of a house for sale, a QR Code could be added. When a person is reading the real estate advertising section, they could simply scan the QR Code with their cellphone, and it would send a message to the realtor that has placed the ad.
(Scan this code if you want to send me a text message about being interested in a house in my neighborhood that is for sale. I’ll put you in touch with a local realtor.)
It is worth noting while we see a little convergence and localization in this example, it could also be done for a print only publication.
The next example brings the print and the web a little bit closer. A store that has the ability to accept orders online might place an advertisement in the online section of a local newspaper, with a link to the online store. Using QR Codes, the same could be done with a print version, and a print and online ad could run concurrently.
Since I don’t have my own online store, I’ve set up a sample using an Amazon advertisement for the Nokia N900, my current cellphone, which supports QR Code scanning.
Now, to the nitty gritty. It doesn’t take a lot of work to make good QR Codes. For this article, I used the Kaywa QR Code Generator. There are several other good free QR code generators. I’ve chosen to go with QR Codes instead of some of the other 2D bar codes because QR codes seem to be easiest to generate and scannable on the widest set of devices.
It is also worth noting that if you have a good design team, you can make QR codes very fancy, as is noted in an Engadget article about Takashi Murakami and Louis Vuitton QR Codes.
A final concern, QR Codes are not popular yet in the United States. It seems as if there is a little bit of a chicken and egg problem. Advertisers don’t use them because a lot of people don’t use QR Code scanners yet, and a lot of people don’t use QR Code scanners yet because there aren’t a lot of codes to scan yet. However, someone will break this cycle and start doing interesting things with QR Codes and hopefully this article will inspire others to think up new ideas.
A little innovation, like using QR Codes to converge local advertising could be just the ticket to help build online revenues for local newspapers. Now, I just need to find more ways of building revenues for certain bloggers.
Recently, I’ve been writing a lot about the Nokia N900. This is Nokia’s latest cellphone or Internet Table, which is actually a pretty nice little computer. I’ve been testing out what works and what doesn’t, and one of the most interesting projects has been trying to get Squeak running on it.
Squeak is a modern, open source, full-featured implementation of the powerful Smalltalk programming language and environment. Squeak is highly-portable - even its virtual machine is written entirely in Smalltalk making it easy to debug, analyze, and change. Squeak is the vehicle for a wide range of projects from multimedia applications, educational platforms to commercial web application development.
One project for Squeak was Etoys.
Etoys is an educational tool for teaching children powerful ideas in compelling way, a media-rich authoring environment and visual programming system, and a free software program that works on almost all personal computers.
It is also the basis for Scratch,
Scratch is a new programming language that makes it easy to create your own interactive stories, animations, games, music, and art -- and share your creations on the web.
The other day, I downloaded the source code for Squeak and compiled it in my Scratchbox on my Linux laptop. It compiled cleanly, and I moved it over to my N900. It ran fine there, with the exception of the screen being so small that it was hard to get much of anything done. You can download my zipped tar file at http://www.orient-lodge.com/squeak/Squeak-18.104.22.1685-linux_armv71.tar.gz. If you unzip the file, change to the Squeak-22.214.171.1245-linux_armv71 and run ./squeak.sh passing a valid image file, you should get Squeak running on your N900.
The first image file that I tried was a copy of the Squeak3.9 image. You can get a zipped version of that from my site at http://www.orient-lodge.com/squeak/squeak3.9.image.gz. It should be a pretty clean image, but I was testing around in it, so if things are a little off, it might be a residual of my testing.
The second image that I tried was the Etoys image. As I write this post, the etoys website is down, so I can’t link back to the original source. My etoys image is at http://www.orient-lodge.com/squeak/etoys.image.gz. I was pleased to see the little car driving around on the front page, but again frustrated at the smallness of the font.
Today, I tried a third image, http://www.orient-lodge.com/squeak/Scratch.image.gz. I lifted this image from the Linux Installer for Scratch. This came up the same way that Scratch came up on my Linux laptop. In this case some of the font was small and hard to read, and some of the workspace spilled off of the screen.
The N900 is much more expensive than the OLPC, and there is still a lot of work necessary to get the Squeak/Etoys/Scratch, or even more interesting version in OpenCroquet or OpenCobalt running on N900s, but the potential is there, and it looks very interesting.
Are there others out there interested in exploring Smalltalk, Squeak, and the many different images available to see what can be done with it on the N900? Drop me a note if you’re interested.