|
Monochrome Mentality
Everything really is black and white... |
||
MainSearch |
OpenMokoJust a quick update. On Friday, Being my personal site, I hadn't been making backups regularly so I lost about 3 months worth of stuff, including the Freerunner review and the Photo tour of the ASU. I decided at that point that my website sucks. :) I currently use Jaws CMS which is decently good but not great. The reason I chose to use it, though, was because I like pictures and all of the other blogs suck at managing pictures the way I want them – taggable and on my server. Flickr is probably the closest, but I didn't want to be limited to their storage space, service changes and stuff. Jaws lets me put images in multiple albums without duplicating the images, so I used it. Unfortunately, the AJAX in the admin interface causes conflicts and sometimes I have to reload a page. The search system suck badly, sometimes matching falsely and not displaying matches. But the ugliest part, frankly, is the RSS feed. When I'm editing an article, it auto-saves to draft mode, but for some stupid reason, it actually posts to the RSS feed, so if my article is long (and unless this is your first visit to my site, you know I post long posts often. I actually meant “quick update” and I'm on 250 words.) it actually syndicates a half finished, often broken, blog post which may or may not be updated later. Because of this, I'm actually writing this blog post in OpenOffice.org Writer which I'll cut and paste into the CMS. Jaws CMS does a remarkably poor job in all of helping me manage my content so I'm ditching it. I've been trying to teach myself Python, but at work I deal primarily with PHP so I can't really sit down and just hack. I decided to take this opportunity (the drive failure, if you've already forgotten) to force myself to resolve two issues – my site that sucks and my laziness preventing me from exploring Python. I've decided to try, at the least, to redo my site using Python, and more specifically, using the Django framework which Debian actually packages. :) This means that my normal few-times per week content won't be posted even though there's some infringement of liberty or some advance in Openmoko's progress or something else worth chatting about. Frankly, I'm lazy, and the less content I need to transfer, the happier I am. So this may be my last blog post for “a while” as I learn Django and ask questions and devote my spare time to that for a bit. In the mean time, this site will remain up, with some broken articles. :)
Kevin Dean | General, Rants, Libre, Blogosphere, Communities, OpenMoko, GNU, Linux, BSD, Advocacy, This Site | 25 June, 10:16pm
| 3 comments
There is a lot of speculation about the April Software Update (ASU). Is it a single image you install, or is it a line of development? Is it a rebranded Qtopia or something new? How's the sounds quality? What Wifi management tools will there be? Is there a package installer? What does it look like? I thought I'd take some time today to hopefully answer those questions, and more importantly, show lots and lots of screenshots, because everyone likes screenshots. :) When you first boot the Freerunner, the screen backlight fades in gradually to reveal the familiar orange and black Openmoko start splash. After a few seconds, the screen turns to the black with white scrolling text that just about every Linux user in the world is familiar with. Then come the boots. As a bit of geek humor, probably chosen by Raster, there is a pair of boots on the boot screen. A green bar slides in and begins loading. A great example of the early stages can be found on this flash demo. By default, the ASU image is set to a grid system application launcher. ![]() For those uninterested in this view, there is a bit more unique take on it using the slider mode. ![]() Atop the action at all stages of using the ASU is Illume, which essentially functions as the system tray and task bar. Here, you can launch the keyboard, launch the settings panel, enter the Enlightenment settings (note, this is slated for removal and doesn't directly affect the use of ASU), switch to a running application or close an open application. Let me visually cover those things, in order. First, the keyboard: The keyboard is a QWERTY like keyboard that has a dictionary lookup built in. To bring the keyboard down you tap the “qwerty” area of the Illume bar. To begun typing, simply hit a letter. To see a more complete list of words meeting your typed characters, click the white triangle on the keyboard. There is a shift key which displays upper case numbers. If you look, you'll see that some keys are missing. If you make a line on the keyboard going up or down the keymap changes to special characters (!,@./) and numbers, making the keyboard usable on a terminal. Though, in fairness, I didn't check to see if there are CTRL or ALT keys which might affect that use. ![]() The settings panel is opened by clicking the wrench icon on the Illume slider. In here there are settings for all kinds of things. I won't go in depth with them all, the most “visible” is probably the option to set the slider or icon grid launcher modes. ![]() The Enlightenment settings, as an E17 user would recognize, are kind of a “left over” from the development. These settings are planned to be removed, since the functionality of them is either irrelevant for Openmoko or will be absorbed into other applications.
![]() One of the best features of the Freerunner, in my personal opinion, is the ability to utilize GPS without a non-free driver. Because of this, a basic GPS application has been included with the ASU. It's really very much a placeholder or prototype now, as the only thing it seems to do is display a map that can be zoomed or moved around and prompts that it fails to get a GPS fix. I'm not exactly sure of the name of this application, in all honesty. I'm used to calling it “Diversity” thought I've also heard the name “Splinter” tossed around and I'm not sure of what the distinction, if any, is. ![]() The second big hardware change for the Freerunner was the inclusion of wifi. In order to connect to wireless networks, there is a program called “Campwifi” that once launched, probes for networks. While not viable in this shot, I have managed to connect to an open wifi access point “in range” of my apartment and been assigned an IP address. I personally have no experience with wifi at ALL aside from what I've gleaned from reading tutorials over the last few years so I'm not sure if some of the encryption and authentication schemes are implemented – with only one unsecured wifi AP within range of my apartment, it's not been an issue for me yet. Hopefully I'll be able to check that out more as I'm able to shift away from the 1973 and towards the Freerunner as my day-to-day phone. ![]() Another nifty feature of the ASU is the Assassin package manager, a GUI front end to opkg. Once you launch Assassin, you're presented with a list of categories to choose from, and some of those categories contain items that can be installed. So far, there aren't too many packages listed. Certainly far less than show with an opkg –list. It leaves my mind to speculate as to how this is important – perhaps Assassin will present users with action based installs (Install US Maps for GPS) or be used for more than just software applications for things like ebooks and ringtones. With an open platform, the mind runs amok.
![]() Once an application is selected, there's one big “Touch here to install” button which is very simple to figure out what to do. Once pressed, you're prompted again to confirm at which case the install begins and completes. ![]() From the screenshots you can see I installed “openmoko-messages2”, an application from the 2007.02 line that was based on GTK. At one point, when the switch to Qtopia was announced, there were a lot of GTK fans upset. It seemed to die down a little bit when it became clear that GTK would still be usable on the phone so I wanted to be sure I got a shot running a GTK application. It looks hideous because the GTK theme wasn't installed, but any GTK theme could be applied and hopefully there will be a matching one in the future. If there was any remaining doubt, GTK is alive and well within the ASU framework. ![]() Finally, I'll show a few “glitches”. Firstly, the video processing on the Freerunner is slower than the 1973 thanks to the Glamo. I found that after a while of using the device (and with over 40 screenshots, it was “a while”) the transitions (Illume slides down, launched applications slide down) began getting choppy. I found reducing my frame rate to 10 fps helped this quite a bit but was still noticeable. Additionally, NONE of the Qtopia apps would launch in slider or grid mode. Setting the display variable I was able to launch Qtopia Media Player which complained about lack of Qcop and then segfaulted as I closed it. But you'll see that there are no screenshots of the Qtopia apps since they wouldn't launch “normally” for me. You'll see below that occasionally applications crash. I've been shown the “Enlightenment crashed” white box a few times, and recovery happened. Every now and then, a half rendered Enlightenment window would pop up but not show me anything good. I had to use my tiny screwdriver stylus to close that box, my fingers are too big for that. Lastly, while earlier versions of the ASU had scrollbars, this version does not. However, when scrolling in certain areas, a distortion appears in the area where a scrollbar would be. These, luckily, appeared in screenshots. ![]() The ASU, while certainly not usable as a daily phone, is certainly full of promise! I'll be tracking this closely and writing reviews as applications become more complete and the images become more functional.
Kevin Dean | General, Software, Hardware, Libre, Blogosphere, Communities, OpenMoko, GNU, Linux, Advocacy, Reviews | 16 June, 7:13pm
| 1 comments
Since I made my purchase of the Neo1973 back in January, I have been doing almost daily reviews of the Openmoko software and posting those reviews to the device owner's mailing list as well as contributing the reviews to the Wiki. To continue this, Openmoko Inc. has provided me with a Freerunner sample before they even go on sale to developers. Developers and early adopters don't have to wait too much longer now since mass production has begun. As soon as the distribution centers have product to ship, the Openmoko.com store will begin offering the devices for $399 USD (or a 10-pack at $3,690 as part of the reseller system). For those unfamiliar, the single biggest feature improvement for most people is Wifi capability though the addition of accellerometers opens some creative (and sometimes goofy) avenues to explore. For Free Software enthusiasts, Openmoko has eliminated the need for a non-free GPS device driver so Freerunner users can now make use of GPS features without comprimising the integrity of their devices. Below, you can see a detailed selection if images I took as I unpacked my new Freerunner. ![]() Unlike the Neo1973 shipping, the Freerunner is less "geeky" and more chic. As a geek, I liked the clamshell of the 1973's packaging, but I had to appreciate the almost jewlery-like feeling I got from opening the Freerunner's case. My wife loved the Freerunner inset in dense foam, and the clean simple presentation of the device first and foremost. The user sees the device they purchased first, rather than fumbling around with manuals and accessories. ![]() The Freerunner doesn't come without accessories, however.
![]() Tucked underneath the dense foam are several useful accessories, including my personal favorite the AC wall charger. It should be noted that this is a pre-release sample so may not even be indicative of what the developers get. I think it is 100% certain that the AC adapter is included though, which eliminates the Linux PC tether almost required to use a Neo1973. In addition, there are two adapters for international electrical sockets, a 512 MB microSD card, a black headset, a USB cable and a LASER/LED/Pen Stylus. ![]() After unpacking the box, I took several more photos which can be seen in my Openmoko Image Gallery but I'll try to find the best ones. ![]() On the right side of the Freerunner you have at the top the AUX button, a headphone jack and a speaker port. On the left side of the device there's a spot to connect an external GPS antenna. Below that is a mini-USB port with the POWER button directly below with a speaker port at the bottom.
![]() For users of the Neo1973, there are two signifigant visible differences. First, the band around the sides is now black, a change I personally like quite a bit but it entirely cosmetic and predicated on personal preference. If you look carefully, you can see that the AUX and POWER buttons are transluent on the Freerunner. This is because the Freerunner has incorporated 3 colored LED's into the hardware to provide traditional visual cues that many people expect in a mobile device. Blink to indicate an unread message or notify of missed calls, or indicate hardware status like "Connected to a Bluetooth device". A non-visual change affects the USB port. Though limited to USB 1.1 speeds, the Freerunner's USB port is capable of host-mode operation, opening the door to allow the Freerunner to do things like read USB thumb drives (or privacy keys!). There's some apprehension about how this would affect total battery life, but the possibility exists if the user would like to take advantage of it. ![]() Another noticable difference for users of the Neo1973 is the microSD card and SIM card slots. On the Neo, both cards have a slide-lock system which holds the cards in place. On the Freerunner, only the SIM card is slide lock. The microSD slot has an "arm" on each side that needs to be lifted up and to secure, needs simply to be pressed back in. For me, I had to lift each arm individually in order to insert the microSD card. While not hard at all to use, I was expecting a slide-lock, even after being warned. :) I can say with certainty that the Freerunner's parts are a bit sturdier than the Neo's which is great. I'm a rather large guy with big fingers, so not having to deal with thin delicate metal was nice. The SIM card latches firmly on the Freerunner and stays put. Once the device was reassembled, I took it over to my PC and plugged up the USB cable. Having been told that one of the engineering goals was to allow the Freerunner to power on with USB power only, I decided to try it. I held down the POWER button a bit longer than the Neo1973 requires and immediately noticed a wonderful difference. On the Neo1973 the screen simply illuminates, going from off to bright instantly, but on the Freerunner, the screen "warms up" by fading. This little touch goes a long way to giving the feel that the device is in fact being polished and prepared for a mass market release. I did notice, however, that the battery indicator showed an almost full battery immediately. This was fine, but it means I'm still not sure what the Freerunner is capable of doing power wise via USB. The critical thing for me is that the device could boot via USB and a dead battery to allow fast charge mode instead of having to wait an hour like you do with a "sleeping" Neo1973. Time will certainly tell on this one. Soon I will begin evaluating the ASU (April Software Update) which is the beginning of the new Openmoko software stack which incorporated applications from Qtopia while expanding on them and supporting a whole range of software applications, including some promising things in development for Openmoko. As I have time to use this new software and come up with review criteria, I will begin writing daily (or so) software reviews similar to the ones I've done before. In addition, I plan to continue to track the progress of the ASU as it's adapted to run on the Neo1973.
Kevin Dean | General, Hardware, Libre, Blogosphere, Communities, OpenMoko, GNU, Linux, Advocacy, Reviews | 22 May, 6:29pm
| 1 comments
I just thought I'd drop an update about my favorite Free Software project. :) Today I got word from Steve (The production manager) from Openmoko Inc. that mass production of the Openmoko Freerunner - the long awaited GTA02 - will begin May 9th, 2008. So you have 3 steps: build phone. test phone. ship phone. Then we take orders. I was very adamament about having phones in the disty ready to ship before I opened the web shop. This means soon, Openmoko Freerunner will be going on sale. :) More great news! I'll certainly post again when it's on sale, and once I have mine.
Kevin Dean | General, Hardware, Libre, Blogosphere, OpenMoko, GNU, Linux, Advocacy | 5 May, 2:09pm
| Comment on this
Today I've done a new review of the 20 February 2008 snapshot of OpenMoko for the Neo1973. The full review can be found http://wiki.openmoko.org/wiki/Snapshot_review/2008-02-20 The major news is that today SD support has returned, which means I can recommend all users to upgrade to today's image and kernel. :) Today also saw decent (almost 50 seconds less!) improvement to boot time. These reviews make me feel good. :) I got thanked by Sean Moss-Pultz (CEO of OpenMoko Inc.) himself, and have had developers give me info on changes, causes and plans for the distribution. It feels awesome to be able to help the project even though my coding skills are sorely lacking. I'm a bit concerned about where to go from here. For the most part, my reviews cover the major functionality of the device. Phone calls, SMS messages and media capability. I don't touch GPS because it requires non-free. There are applications that I don't review also because I consider them less than critical (like the fact that there are 4 sudoko games) but at this point I'm thinking that I have time to check the "less than critical" things. I also really want to begin moving into building a realistic, step-by-step wishlist. The audio system is in place now so the phone rings, but most people consider multiple ringtones a basic feature. Profiles are also pretty basic (phone in vibrate only mode, for instance) and don't exist. I've asked the device-owners list to give input on how to improve the review and where to go from here. :) Yesterday I forgot my USB cable so my phone died and I was unable to flash the 12 Feb 2008 image. No review. :) Today's marked the first 2.6.24 kernel in the official OpenMoko snapshot pool. It also broke quite a bit because the rootfs contains the 2.6.22 kernel modules. :) Phone functions didn't work, SMS didn't work and my 1GB media card didn't work so the ability to play music has been greatly decreased. General users are urged to stay with the 11 Feb 2008 snapshots while moderate to advanced users are urged to test and report on the new snapshots.
Kevin Dean | General, Software, Hardware, Libre, Communities, OpenMoko, GNU, Linux, Reviews | 13 February, 3:09pm
| Comment on this
The daily images were not built while the staff of OpenMoko Inc enjoyed the time off for the Chinese New Year. :) Now that the holidays are over, OpenMoko images have resumed. The full review can be found at http://wiki.openmoko.org/wiki/Snapshot_review/2008-02-11 The biggest change today comes in the form of improved sound. The review hits on this when I mentioned that ambient noise is echoed a LOT less, and that the "air" sound is gone. Another undocumented improvement is that sound volume of the ringtone is now good, meaning I can hear the ring of the phone while in my car with music up loud. :) Erin Yueh of OpenMoko has also submitted instructions to the OpenMoko device-owners mailing list on how to remove the crappy multi-tap input and replace it with the matchbox keyboard. While neither solution is good (both are considered horrible and where one lacks features that makes it useable, the other has bugs that makes it unusable) I personally prefer the matchbox keyboard. I've also ammended the review process in regard to GPS. On the Neo1973 GPS requires the use of a non-free driver, and efforts to reverse engineer it are horrifically understaffed. For this reason, GPS doesn't work out of the box. Despite some community members insisting on providing this information in the review, I consider the use of non-free software to be unethical AND contrary to the stated mission of OpenMoko - my reviews now reflect this by adding in three new critera for reviewing of GPS functionality. For the record, the GTA02 (OpenMoko Freerunner) has corrected this problem, and the GPS on it "speaks" standard protocol so no driver is needed to make it work. My recommendation is that Neo users upgrade to the 11 Feb 2008 image to reap benefit from the improved audio settings.
Kevin Dean | General, Software, Hardware, Libre, Communities, OpenMoko, GNU, Linux, Reviews | 12 February, 12:16pm
| Comment on this
I finished my OpenMoko review today. In general, this image is good. The full review can be read at http://wiki.openmoko.org/wiki/Snapshot_review/2008-01-31 Boot time is back in line. SMS works. Calls work (but still require "the fix" for good sound quality on my side). Media player works for audio, still no video (and it may never happen on GTA01) Battery life seems decently improved but still not "good". No hard and fast tests done there. My recommendation is for all Neo users to use this image, it's the best thus far. :)
Kevin Dean | General, Software, Hardware, Libre, Communities, OpenMoko, GNU, Linux, Reviews | 2 February, 11:27pm
| Comment on this
Today I reviewed the 30 January 2008 rootfs and kernel images. Overall, this was a giant leap backwards. Stability has suffered which prevents the use of SMS to the fullest and prevents the use of media playback. In addition, I found and reported a bug where missed calls were reported twice. Bootup time jumped up by about 40 seconds. In general, I suggest NOT flashing the 30 January image, preferring the 29th. The kernel is, as far as I can tell from the filenames, unchanged.
Kevin Dean | General, Software, Hardware, Libre, Communities, OpenMoko, GNU, Linux, Reviews | 31 January, 1:01pm
| Comment on this
I've noticed that many people who own Neo1973 devices simply don't update every day. There are several ways to do this, one being the apt-get reminiscent application called ipkg (or opkg, the official OpenMoko fork). Another way, particularly useful in rolling distros (like Debian or OpenMoko) is to install a new image. I choose to install fresh Debian images every weekend and I choose to install fresh OpenMoko images every day. Since people are reluctant to flash a non-working image (which would erase all of their contacts, scripts and hacks) frequently I decided I'd begin documenting it when I do. Today, I published my first review of the OpenMoko snapshots, since it's finally good enough for me to use daily as a phone and SMS device. http://wiki.openmoko.org/wiki/Snapshot_review/2008-01-29 I'll summarize them here, but the real good stuff is in the wiki. :) Summary: Sound quality on the phone sucks because it picks up ambient noise, luckily a fix has been identitifed! The multi-touch input method sucks, I think. Video playback is half-there, i.e. Audio only. Music playback is better and improving, a LOT less skipping versus a week ago. There's a hack to do even more. Calendar mostly works. SMS works. There seems to be some confusion with exactly what OpenMoko is. The most simple explanation is that OpenMoko is a software framework designed to empower users of mobile devices. OpenMoko is to the Neo1973 what Gnome is to a PC. The analogy is particularly fitting, since Gnome and OpenMoko are both GTK based. Keeping with this analogy, another "environment" that can be found on the Neo1973 is Trolltech's QTopia which is, like KDE, based on QT. Most of the hype around the Neo is because of OpenMoko (or perhaps the other way, without OpenMoko the Neo would be ignored) and OpenMoko is what my personal interest is in so I will begin today by explaining just what is "in" an OpenMoko application from the perspective of a user. Below is an image of the "home" screen, the starting point for all OpenMoko adventures. ![]() The very top of this image is the "taskbar". A closer examination is below. ![]() In the section that displays the words T-Mobile" is the name of the application you're using. On the home page, this displays the name of the GSM network you're connected to. In this case you see "T-Mobile" since that is my cellular carrier. When the phone is first booted (or when GSM is first turned on) this may say “Registering...” as the phone searches for your network. To the right of the words "T-Mobile" is a kind of dashboard or system tray. The first icon is of a small keyboard, clicking this brings up the matchbox keyboard, used for entering text. If the keyboard is open, clicking this icon will close it.
The icon directly to the right of the keyboard is the Bluetooth Logo. Clicking this icon brings up a menu allowing you to "Power up Bluetooth radio", "Power off Bluetooth radio" or check "Bluetooth Status". This allows you to shut off unneeded Bluetooth capability for added security or to preserve battery life. ![]() To the right of the Bluetooth logo is a USB icon. This icon indicates that a USB cable has been plugged in that is capable of transmitting data. This icon does not appear when “dumb” USB-style cables, such as car chargers, have been plugged in. Tapping on this icon does not present the user with options, it is there only as an indicator. The next icon represents the GPS menu. As of today this icon does nothing and is not representitive of the GPS's status. Next to the GPS icon is a GSM signal meter. Most mobile phones have an indicator like this, showing the relative strength of the cellular signal they have. Typically, the more bars you have, the stronger your signal and the more clear and stable your phone conversations would be. To the right of the signal meter is the battery indicator. This indicator shows roughly how much power your battery has remaining to power your device. A fully filled green battery icon indicates full charge where an icon that is not filled would be almost powerless. This icon can indicate various intermittent states. When connected to a powered USB cable the phone enters “Quick Charge” mode and this icon displays a white zig-zag lightening bolt image. ![]() Below the taskbar is an action panel. This panel varies from application to application but in general it indicates actions a user may take. On the home screen, these actions are, from left-to-right: Launch the “Dialer” application (Make a call) Launch the “Contacts” application (View your address book) Launch the “Messages” application (Send and read SMS Messages) Launch the “Tasks” application (Set or view important events) Below the launcher is the main body which contains a digital clock and the date. ![]() In addition to displaying the time and date, this pane will display notification of missed calls below the date. This is the main area to present information to the user – what this section of the screen displays is highly dependent on the application that is currently running. ![]() Tabs for your currently running application appear below this pane. These tabs are different depending on the running application but the concept behind them is uniform to all OpenMoko applications. For instance, the Dialer application has two modes, a keypad mode and a list of all past calls. This section has two buttons in the tabs panel to switch between these modes. I will go in-depth regarding options with each specific application later.
Kevin Dean | General, Software, Tutorials, Libre, Communities, OpenMoko, GNU, Linux, Reviews | 23 January, 7:01pm
| Comment on this
Today is day three with my Neo1973. It is well know by owners of the Neo and members of the OpenMoko development community that the GTA01 suffers many power management issues. Today, I got the first taste of those issues myself when I forgot my USB cable. The Neo runs on a "basic" mobile battery and it packs a devent punch. A sharp touch screen, GPS, GSM, Bluetooth, speakers and a backlight. In addition, the CPU and memory consume power as they're used. This means, without proper power management systems on the OpenMoko platform, the Neo's battery life is rather short - in my case, about 5 hours. There's another problem - the power controller firmware doesn't flag "critical" use - what this means is rather than shutting down when the phone's power gets to 5% it will continue to draw power, right until the battery is 100% drained and the system dies - or as SpeedEvil says, "rests" - mercilessly. Why is this so important? Because the Neo has an advantage called "Quick Charge" - when powered on (i.e. running the Linux kernel) it is able to tap the full power it recieves in the USB charging port resulting in a faster charge. However, when the phone is NOT running Linux (dead or running the bootloader, u-boot) it draws about 1/5th of that power resulting in painfully slow charges. So a phone that has "rested" totally need to be slow charged for about an hour before it has enough power to boot into Linux and enable quick charge. The promising part is the reasons for the total battery death are know and can and will be fixed over time. That's not so much of an important thing. What IS important to me is that pondering on this caused a paradigm shift. Having been a GNU/Linux user for the past several years (almost a half decade now?) I've seen several Linux kernel release announcements from the exciting release of KVM to things I considered mundane - drive I/O improvements or some such. One specific area I've always deemed unimportant - power management. Up until recently, it never mattered to me as I'm a full-time desktop user. I hate laptops and have always found them to be novelties. Now, having really looked at how dramatic this is on my Neo, I have a new appreciation for the time and energy that kernel hackers put into these things - and I realize that every patch submittited is someone else's "power management"; their issues that everyone else is oblivious to. Taking this track along a bit more, I realized just how powerful the Free Software community is. Until today, I've never thought about power on my computer before. The more CPU speed needed, the more power it consumes. The more memory swaps, the more power. More HD? Bright screen? MORE POWER! My friend Danijel finds a connect between being a geek and "being green" - I do not. Personally, I feel that the concept of Global Warming (implying it's our 'fault' and that we actually have the capacity to screw a planet over in under a hundred years - or more crazily, that we have the capacity to "fix" it if such things were true) to be laughable. I don't, however, think we can ignore issues of pollution, energy consumption and waste - just the opposite in fact. I think these issues are SO important that, like Freedom, they should be addressed on their merits alone, without propaganda scare tactics of an impending global catastrophy to motivate people to do something about it. That said, until today, my eyes were closed to the sheer about of waste generated by shitty code. The FSF has been pushing that angle for a little while with the Bad Vista campaign, but this isn't an attack on Vista because it applies to us - users of software libre - just as much. How much electricity are we wasting because of crappily optimized code? Think about this for a moment... There are datacenters FULL of servers on redundant power systems. Each of these servers is running some sort of AMP stack, spinning hard drives and swapping bits around in memory. If Apache itself has a bug that causes just a bit of unneeded movement it has a cascading effect running 24 hours a day on hundreds of machines. How much energy is being consumed because a developer didn't think about being efficient while writing his code? Free Software users and developers have an added kind of power, the power to consume less. The amount of waste generated by that hypothetical Apache bug is decently large, but imagine now if the bug was in Linux itself - now it's affecting desktop users and laptop users as well as a lot of servers. This isn't merely a case of "bloat" because even on very slim, "minimal" systems it's possible to be doing more than is strictly needed. We all need to expand our horizons sometimes and I'm glad for having the chance to have done it here with the Neo - it makes me feel powerful. :) Pun intended, unless it's tacky. Then I won't own up to it.
Kevin Dean | General, Software, Rants, Libre, Communities, OpenMoko, Advocacy | 16 January, 11:17pm
| 1 comments
On January 2nd, I purchased a Neo1973 Base from direct.openmoko.com. My first interaction with FIC, the company that manufactures the Neo, was that of excitement. They have a decently beautiful site that highlights exactly why one would want the Neo – freedom, hackability, being on the cutting edge and having a sexy looking device. I felt no qualms at all with inputting my credit card number and shipping info. Immediately I got a confirmation via e-mail and everything was good. As I waited excitedly the next day, checking my e-mail every few minutes to see if the confirmation had arrived (did I mention I was excited?) I began to get a bit annoyed by the end of the day. I then checked out the OpenMoko Wiki and found some information regarding the shipping procedure. I found there two things of interest: Firstly, the price listed on direct.openmoko.com is an estimate. FIC is based in Taiwan, not the USA, so the USD amount I saw was the “target” - they would actually charge my debit card in New Taiwan Dollars in an amount equal to the current exchange rate. The second thing I learned was that order processing took 3 to 5 days. Okay, “fine” I told myself. I could restrain my excitement. It wasn't until January 8th my debit card was actually charged and I received confirmation that my order was processing. Perhaps I'm spoiled by NewEgg's wonderful shipping procedure but I consider a 6 day turn-around to be horrific. In addition to being a software libre geek, I am also a home brewer. In home brewing I deal with specialty supply shops to purchase my hops, grains and yeast. Some of these shops are run by retired military vets with little internet experience and some are decently skilled in the internet but in any case they can still manage to have my order packaged, shipped and at my door in a week – I fully expect a company called FIC (First International Computer) to have their order system automated enough to process orders efficiently. I console myself with the notion that they've got a room full of hackers plugging away to get the GTA02 “mass market ready” who simply can't be bothered to check e-mail and fill out UPS invoices. Later that night I got confirmation that my package had shipped via UPS and included was a tracking number. I excitedly (again, did I mention how excited I was?) plugged the tracking number in to UPS's site and found that my package would be delivered on... the 14th! Have I really been THAT spoiled by NewEgg? I had debated over getting “expedited” shipping on one of many forms, but I decided against it - “standard” UPS shipping was decently fast, I reasoned. I guess not – this package was going to take almost a week more to get to me from California (for the record, NewEgg ships from Whittier, CA most of the time too). It seems NewEgg's “standard” shipping is NOT UPS's “standard” - lesson learned. The weekend wait for the Neo was pretty easy, I managed to brew a beer on Sunday using my new Barley Crusher, so time went by rather quickly. Sunday night I decided that I was going to drive my wife to work, and rather than go to work myself immediately, I would drive BACK home and await the Neo's arrival. Luckily, my job offers enough flexibility that I'm able to do that without much issue. At 11:09 am, my Neo arrived. My decision to return home was a good one – FIC ordered a signature before delivery. I normally HATE when companies do that (With 6 hour long delivery windows I can't afford to take a day off work to sign for a package. I work 55 miles from home so picking up my package from a UPS facility ALSO requires I miss work. Sign for packages = bad). In this case, however, I was a bit happy, since it was a rather expensive shipment – and I was pretty sure insurance wasn't part of UPS's “standard” shipping either. ![]() Above is the box that arrived at my door. It was a pretty plain box, no fancy buzzers or bells (I truly didn't expect them but I have to make this dramatic – did I mentioned I was EXCITED?) and attached to the top was a packaging slip. I opened the box with my keys to find that there were blocks of very thick black foam covering packing peanuts. Buried beneath the peanuts was a bubble-wrap packed white box. This foam was very thick and in general the whole thing was well packed. ![]() Inside the bubble wrap was a clamshell box that I thought was inventive. My wife has been in the printing industry since high-school so printing and packaging are her passions, I suppose it's rubbed off on me. ![]() Once opened the clamshell splits again (once each way) to reveal the “goodies” that I've been so long awaiting. ![]() I won't go over every piece in the box but every piece has been photographed by me, if you're interested in seeing those images please check out the OpenMoko album of my image gallery. The Neo handset itself was enshrined in the familiar anti-static anti-UV bags but it was the first time I'd personally seen self-adhesive anti-static bag – it was kind of neat. ![]() All of the contents of the clamshell unpacked. There's the carrying case, lanyard, headset, spare ear buds, USB cable, stylus, battery, memory card and Neo handset. While photographing the handset, I noticed that the screen itself seemed very reflective and I often saw myself in my own shots. This worried me, since I figured if it reflected my image it would also have horrible issues with glare when in normal use. ![]() Eager to “get on with it” I held down the POWER button for about 4 seconds and the phone gave the smallest of shudders as the vibrator pulsed for a moment and the screen flickered to life. For anyone who has read articles about OpenMoko on the Neo you've heard “the screen is nice” but it's impossible to take a picture that shows exactly how sharp this screen is. When the backlight came on I was greeted with a black and orange splash screen which quickly gave way to a “typical” Linux boot up – Tux at top and white text on a black background. As small as the text was it was still remarkably clear – just so small it's hard to read. ![]() The Wiki explains this very clearly, so I wasn't alarmed by it, but the very first boot ends in a kernel panic. The “simple” answer is that there's no software other than the Linux kernel and the boot loader (u-boot) itself, so it fails to load anything. End users won't have this happen to them (OpenMoko will be DOA if it's required) but developers will have to flash their own kernel, root file system (rootfs) and (potentially) u-boot image. At this point, I realized I was “pushing it” by not going to work, so I packed up my Neo and accessories, uploaded my pictures to my wife's Ubuntu system, crashed it and then went over to my Debian system to burn my newly taken Moko images to CD and then went to work. At work I began my “flashing” after reading up on the Wiki. What was slightly confusing for me was the out-of-date nature of the Wiki. While it's pretty clear once you understand some terminology for someone “new” it can be quite scary – the term “bricking your device” is used enough to scare the hell out of me and I'm fairly comfortable tinkering with “internals”. A quick post to #openmoko on Freenode led me to a how to find daily build images page which kicked me over to buildhost. The recommendation I got was pretty much “Use the newest images” - this makes a TON of sense since the software is rapidly changing. Flashing the Neo itself was a trivial task and I suppose it will get even easier once the OpenMoko build tools become packaged for popular distros like Debian and Ubuntu. In my case, it meant plugging in the USB cable to my computer and my Neo, downloading dfu-util and compiling it – the whole process took about 30 second so it's a FAST compile as well as simple. I then downloaded the uImage file and the rootfs image for the GTA01 (about 48 MB combined), launched u-boot (hold AUX, power the Neo on) and issued one command to flash the kernel to the Neo. The second command flashed the rootfs to the Neo – a slightly longer process that took about 13 minutes. The downside to this flash is that once the phone enters u-Boot mode it will power down after 60 seconds of inactivity and it doesn't consider USB transfer to be “activity”. This means every 45 seconds or so I pressed the AUX button to keep things “alive”. I'm sure I looked stupid to my office mate, but oh well. (For the record, there IS a solution for this but I was excited and just wanted the thing to work). Once the flashing was complete I restarted the Neo and it booted without problems (no kernel panic!). This time, once the splash screen was done I was greeted with a whimsical sounding chime (audio works!) and the phone proceeded to load my home page. At this point I hadn't charged the device or installed the SIM or microSD cards, so I powered down, installed them and powered back up. The Neo doesn't do a “quick charge” unless the device is powered on so unless it's totally dead, it needs to be on to charge. I worked on “work stuff” for a few hours before turning my attention back to my Neo. This time I decided I'd play with GSM and attempt to make a phone call. This entire time the top toolbar was saying “Registering...” which alarmed me – was my SIM card incompatible? There is currently an open bug pertaining to 3G SIM cards (mainly AT&T ones, but possibly others) and I was afraid mine was affected. I pulled opened the GSM quick menu (at the top of the screen it looks like a Triforce-on-a-stick) and clicked “Auto-register with network” which I assumed it would have already done. The phone sat there, still displaying “Registering” while I went into the applications menu and fired up a terminal (ain't it sweet? CLI on my phone!). To see what was happening, I issues a “dmesg” and almost immediately I got a popup (it looks very “Gnome”-like) indicating I was connected to my T-Mobile network. At this point, I opened up the dialer and punched in what I thought was my phone number (to check my voice mail ) and was a bit shocked... Someone answered! It happened to be my wife (my phone number ends in 7446, hers 7445) and we both chuckled. I noticed two things about the call. Firstly, I can very much hear “air” through the ear piece. It is my understanding that as of this moment there's no noise-canceling software of the phone so the microphone picks up (and sends) everything. The second was that even without noise canceling software, the call quality was comparable to a “regular” phone – at least in the mid-range phones I'm used to dealing with. On the ride home from work, I excitedly showed my wife the Neo. She's super supportive of me and my obsessions with brewing, computers and freedom, so she was poking at it inquisitively rather than finding “broken” things to criticize like some people would (especially after what I paid for it). While I had focused on the phone, the interface and the hardware the first thing she did was find the games menu. I have to hand it to the interface designers on this one – either I've been clueless or they did their research. While I have to poke and prod to find a “rhythm” to menus my wife was able to find and launch some games so fast I was amazed – and even remarked on it. She played several games like the Mastermind clone, a game called “Maps” which seems like fun where you fill in oddly-shaped tiles so that no two touching tiles are the same color. Her initial impressions were very good, actually. Her complaint was that some of the games are horribly optimized for the device. Sudoku, for example, is almost useless without the stylus (Input options are 0-9, a keypad would work MUCH better than a matchbox keyboard). Once home I hit my computer with the Neo and began “playing” with it. I pulled up my address book from my old phone and began inputting my contacts and phone numbers. This is where I found the most “buggy” functionality. I then moved to trying to send an SMS message to a friend which didn't fail, but didn't work either. Having those two things fail (after some prodding, too) I decided to see what this thing could do in terms of media. I transfered a song, via netcat, to the memory card and launched the Media Player app. Playing the song failed at first, so I rebooted the device (certainly not needed, like any GNU/Linux system I could have restarted the sound system or investigated WHY it wasn't playing but this was a learning exercise more than a troubleshooting one) and relaunched the media player, this time “Turn On, Switch Off” played from my Neo. I attached the headphones and the sound switched with a 1 second delay. The headphones crackle. I believe this is a manufacturing issue and NOT a software one, it sounds as if my cord is frayed and introducing signal-noise. I recall reading another complaint of this. I very much plan on replacing the headphones this week for that reason but since it doesn't “crackle” unless I move I can use them for learning over the next few days. Applications began crashing at that point and my brain's “troubleshooting” mode kicked in. About a minute later I found that I was using 100% disk space – somehow my microSD card WASN'T detected or mounted and I'd copied a 13 MB file to a space-limited filesystem. Oops. I deleted my music file and proceeded to set up USB networking (well documented in the Wiki). I immediately installed nano, my text editor of choice, and then SSHed into the Neo from my Debian system. This is much easier than typing on the on screen keyboard, but mainly because it's more familiar. Then, using the Neo handset I launched the web browser to see how well it worked. ![]() The browser is WebKit based which is pretty cool. It renders my site pretty well and renders MOST sites pretty well. Some sites, however, look a little smooshed. In time people will be forced to design sites for "the mobile web" as well - and standards compliance makes this easier - but for the most part, the internet will still be usable on the Neo's browser. I haven't figured out how to do it yet but tilting the phone into landcape mode may help a lot. This should be done automatically on the Freerunner, kind of like the iPhone does, with a simple tilt of the device. The GTA01, however, doesn't have accelerometers so switching orientation is a manual process. Over all, my first day with my Neo was fantastic. The phone works at least as good as my old Motorola RAZR did after a year and it's powered by Free Software – it's already a winner. Over time, this system will improve and I plan on watching it while it does, sticking my hand in where possible. The excitement hasn't left me yet, but my desire to “make it my own” is growing now and I've already found some “issues” I can investigate. :) I'll have plenty of happy hacking ahead of me. During this time, I'll review OpenMoko software more completely, breaking down individual applications at a time. I'll hopefully be able to write some "official" documentation as well as fix simple things in the source as my skill with programming improves (my second reason for buying the Neo). Having "played" with the OpenMoko development images in QEMU for a while, I finally decided to "pull the trigger" on a first-generation, "developer only" Neo1973. What makes this purchase so exciting to me is that I'm finally able to support a group of people working for Freedom and openness that try to meet that goal with a tangible product. The OpenMoko community is very supportive of Free Software and FIC itself, the company behind the Neo phone, considers, to it's core, Freedom to be crucial to a sane mobile world. The Neo isn't ready for "everyone" yet and as of today there's no real idea when it will be ready. The next generation phone being "ready" is determined quite a bit by how well the software is polished on existing Neo phones. The plan is to release the GTA02 and the first "stable" OpenMoko software together: a respectable goal but one that won't come to fruitation until the GTA01 gets enough polish and I hope I can be of assistance to that. You can certainly expect me to do reviews and provide information about the Neo1973 and OpenMoko itself as I get the device, use it and hack on it. I'm expecting problems with it, and gaps in the feature-set. "It's not ready" they say. Hrm... Where have I heard THAT one before? |
|