Free Like GNU

It's GNU for you!

Sanyo Incognito from Boost Mobile – n800 replacement?

First of all the Incognito is a US$130 no-contract mobile phone that runs java apps rather than a rather expensive, full GNU/Linux, Debian based handheld, can it really replace an n800 (untethered)?

What it has going for it built in, besides unlimited voice, text etc:

CDMA Data ( mobile internets that are not too slow )

Multi-server email client (pop/imap)

2MP Camera

60MB builtin storage for apps and stuff, Micro SDHC Card Slot

Where this device really shines is in the generous 60MB storage for apps if you use an SDHC card for music, pix, and whatever.  Considering that most java apps are about 250KB you can have LOTS of software installed. There are a few caveats…

MY FIRST QUEST

The built in MP3 player is basic at best.  You can point it to a folder of songs and it will play them in order of filename or tag.  **No shuffle**  There is a nice EQ and it supports a bluetooth stereo headset quite nicely with AVCRP controls like volume and track navigation.   I had to replace this because having a shuffling mode makes a large collection of MP3s is more enjoyable for me. This is where my troubles began…

THE JAR AND THE JAD

I searched google for “j2me mp3″ and many results came up, and I was really excited because I thought I could load all of these programs on my phone and find something suitable.  Some download links pointed to a “.jar” file.  the Incognito will not install these and you will have to find a “.jad” type file download link. “.jad” is really just a description of the “.jar” file and is just a plain-text file that you can look through.  The “.jad” has some important information that can keep you from installing a new program or cause a headache.  The only player I found to work well on the Incognito was KDPlayer by Knyzhov Dmitry version 0.5.6. The problem was that the links on the website contain no “.jad”  and I really did not know how to generate one.   With a little more searching I found another site that had the file with an accompanying “.jad” but there was another problem I receive an error message about an “Invalid Descriptor”.  I downloaded the .jad and .jar files and opened the .jad in a text editor.   There was a bad url in the .jad  file.  The “MIDlet-Jar-URL:” line should point to the file without any http://website.com/address/ stuff.  I made the line read

MIDlet-Jar-URL: KDPlayer.jar

and put the  KDPlayer.jar and KDPlayer.jad files in my own little webserver and pointed my phones browser to the .jad and got the app installed. When you first run it, it should ask for permissions to access Multimedia.

KDPlayer is an ok shuffle player but getting it to shuffle requires a Fn-U key-combo to make the number “7″.  Also don’t bother making a playlist of over 100 files or the program will take a long time to load it when you start.  Instead go into the “Settings”, turn off  “read tags” (optionally turn on autostart) and Save those settings.  Select “Folders for Scanning” and use the menu button to “Add” a folder. Accessing the SDHC card is tricky as you  may only see the internal storage folders listed.  Hit the Menu button and select “Back” until you get to the root of the device where you will finally see the “MemoryCard” and select the folder you have your music in. Playing mp3’s with a bluetooth stereo headset on a modern phone is a snap and I dont have the frequent skipping or crash issues I had on my n800.

Unfortunately the version of KDPlayer I ran will not let me advance songs with my bluetooth headset, perhaps a more recent version will have this feature?  Otherwise it has become my main squeezebox.  The other players I tried were LyricShow, but that player quits when I close the clamshell, but it could be fun for impromptu karaoke duets,  and Evan MP3 player crashes on this phone.

SNAPPY MAPPING APP

Mobile GMaps works great on this phone. Use the “unsigned .jad” link on http://wap.mgmaps.com/ from your browser.  The signed jad files will often give you a 909 error with something to do with a licence to access certain features of the phone.  With the unsigned jad you can allow access to most of the phones features once you run the program.  The text in the maps is very easy to read and exploring a map is very smooth.  You can use the great open street maps or yahoo maps.  Somet things that I learned about Open Street Maps project are that the maps are continuously edited by a very dedicated community of contributors.  They can update the maps very quickly and were able to respond during the Hurricane Katrina disaster by describing blocked routes quickly to aid relief workers.  Another important point is that commercial maps often contain errors on purpose as a primitive and annoying means of proving copyright.  Open Street Maps seeks rather to provide the most useful and accurate maps without such nonsense!  Check out their wiki.

The built-in web browser is a bit lacking and only displays mobile formatted pages.  I found OperaMini to be much more like browsing on a computer.  OperMini cheats in a way by sending web page requests to a server that does the actual request and reformats the page to render on the phone through OperaMini. There is no flash support for web applications but youtube videos run well as OperaMini utilizes the phone’s media player to render video.

Free-to-move around, free as in beer but not really freedom.

The biggest problem with many of the applications for a phone like this are that it is mostly proprietary software that may be free-as-in-free-beer, but the code is not accessible to the community.  Many of them are infrequently maintained or abandoned by their developers.  On the Nokia 800, it was great to have great Debian-style repositories filled with lots of useful little free apps, but mobile devices such as the n800, n900, and (even jailbroken) iPhone have very locked-down hardware which means that even GPL licensed software binary gets put in a “Debian-style” repository but without access to the source that can be compiled to actually work on that device!  Cydia on the jailbroken iPhone is an example where apps like MAME somehow become Adware!  Look and see if you can find a link to the developer who ported the software to the device and try to access the modified source!

But there is hope! May the source be with you, always!

That said, I have to mention some really great, truly Free Software does exist for our phones.  jmIrc is a well written app that lets you chat on iRC.  Setup was easy and it runs fine in the background.  If you use Bitlbee you can pipe all of your chat networks (aim, msn, gtalk, jabber, .mac) into an iRC session too! If you just want a dedicated ICQ client, give Jimm a try.  Want to access a remote computer via SSH or telnet shell?! midpSSH does a great job and there is something quite empowering about a remote shell to ones favourite server from a $50 no-contract phone!  A nice car-racing game was recently made free by GPLv3 license called Opposite Lock! The “Nokia 6630, Sony Ericsson K750″ version works fine on the Sanyo Incognito too.  It features 8 player bluetooth mode, but I have not had a chance to try that yet.  There are lots of Free Software projects being developed for our little phones.  Search the web for “GPL j2me” and let me know what useful apps you find!

A 909 state and unsigning an application.

If you run into an app that you really want to try and you get a “909 Authentication” error you can still install the app if you can get both the .jar and .jad files.  Simply remove the sections of the .jad that contain the key information:

MIDlet-Jar-RSA-SHA1: <lots of scrambled text>
MIDlet-Certificate-1-1: <lots of scrambled text>
MIDlet-Certificate-1-2: <lots of scrambled text>

put the .jar and the modified .jad in a web-accessible server and point your phones web-browser to it!

See this page for more info about all this ruckus.

CONCLUSIONS

with a no-contract little phone with a qwerty keyboard, I can now do a lot on the run.  I had no (cheap) way to access the internet on my n800 when not near wifi, but now I have the interwebs all the time and music too.

Projector Personalities

For reasons know only to the maker, some projectors are made with male serial ports and some are made with female serial ports. The most important points on which they must agree with other equipment are 2,3, and 5 (defining the ground) no matter the topic of communication. Some projectors are quite talkative (with their temperatures, fan speeds and current input resolutions) and some are more reserved providing only simple acknowledgement.

Freelikegnu.org back online

Finally got around to restoring the backup image following the exploited server re-imaging.

The budget geek in search of a cheap fix

Some folks can plop down many hundreds of dollars on iPhones, the latest console game machines (and their pricey games) and Uber desktops. Once in a great while I get to spend a little money to geek out on some kind of technology too, though I have to be a bit more frugal. Usually it’s something old that is cheap on eBay. I’ll look for something that will run Linux and has some novel quirk. One of these was an old Itronix 250 military laptop. The device was waterproof, drop-onto-concrete-proof and weighed more that my 2 other laptop machines combined. I upgraded the processor, hacked in a wifi card and antenna, installed a few various versions of Ubuntu and tried with success to get all the features like touchscreen and graphics drivers working nice. Even though it wasn’t the latest gadget, it was cheap for thrills and exercising the Linux skills. When I sold it (for a bit less than all the time and money I put in) I felt I’d had a good deal of fun with it, like working on an old VW bug. One thing I wish I had tried on it was TinyCore Linux founded by one of the lead developers of the famous DSL project, Robert Shingledecker.  TinyCore takes the idea of a compact yet extensible graphical Linux desktop to the extreme at 10MB!  I think it would also work on an Alix3d3 machine I’m experimenting with.  Currently Voyage is running on the  Alix and humming along quite nicely as a “bulletproof” looping video display device running mplayer with a DVD iso file.  The Alix now looks a bit dated in the graphics compared to the new Ion based tiny PCs out there, but it is still more flexible in some ways and durable.  These little machines are cheap and fun to hack not unlike various wireless routers such as the venerable Linksys wrt54g of old (2.2 and earlier) and the Asus wl500w.  The latter I bought because it had a minipci slot instead of the radio being part of the main board and its usb ports to support the TB drive shared on my little network.  It was a great candidate for the OpenWRT firmware and I found others who had made it work well.  All these things are cheap and distracting, some have proven quite useful.  One thing that really makes it fun is the community.  Because others have written blogs, posted in forums, mailing lists or chatted in IRC, I never feel alone in the dark.   I think this is where the real entertainment value is, especially when we contribute to these conversations with our own experiences, questions, reviews, how-to’s etc.

Epic Fail

When one of the oldest and largest telco providers in the world cannot figure out how to run a pair of copper wires to an apartment in Chicago.  When it places a long-time customer on hold for most of the duration of a call to check on the status of his order only to transfer to someone who can only tell him to check back later.  When this company never calls or emails with a reason the customers order for service being delayed.  When the online status check tool tells him the account number sent to him is invalid.

2.6.28.8 Kernel for Alix 3d3 with joystick module

I wanted to add a kernel module for my Alix 3d3 but I figured I would just build a more current kernel for the Voyage Linux 6 installation instead.  Because I am a total weenie, I got excited about a cool program called KernelCheck.  It’s basically a GUI for building configuring and packaging (yes Debian packaging!) the latest greatest kernel from kernel.org.  I built the kernel from my Ubuntu machine using the latest config file from the Voyage kernel, enabled the joystick module and installed the resultant .deb in Voyage.  w00t!
linux-image-2.6.28.8-ultimate_2.6.28.8-ultimate-10.00.Custom_i386.deb

headers if you need ‘em :

linux-headers-2.6.28.8-ultimate_2.6.28.8-ultimate-10.00.Custom_i386.deb

enjoy!

More one-liners!

I just noticed this one tonight, check out Command-line Fu for lots of great shell-j00ky!
Thanks again to NixCraft for the link!

How I love AWK, let me delimit the ways…

tonight I came up with a super handy one-liner to handle a massive number of split files that were in groups:

ls -1 -Q *.001 | awk -F'.' '{print $1"."$2"\"""\ "$1"."$2".\?\?\?\""}' | xargs -l1 par2repair

see, I had a folder whose contents look like this:

file1 space [123456a].ogg.001
file1 space [123456a].ogg.002
file1 space [123456a].ogg.003
file1 space [123456a].ogg.004
file1 space [123456a].ogg.005
...
file1 space [123456a].ogg.par2
file1 space [5321fff].ogg.vol00+01.PAR2
file1 space [5321fff].ogg.vol00+02.PAR2
...
file2 space [5321fff].ogg.001
file2 space [5321fff].ogg.002
file2 space [5321fff].ogg.003
file2 space [5321fff].ogg.004
file2 space [5321fff].ogg.005
file2 space [5321fff].ogg.006
....
file2 space [5321fff].ogg.par2
file2 space [5321fffa].ogg.vol00+01.PAR2
file2 space [5321fff].ogg.vol00+02.PAR2...
file3...
and so on...

WHAT A MESS! If it looks familiar, you must be some kind of otaku!

At first I would manually join all the files in one group that end with a period and three numbers with a cat command

cat file1\ space\ [123456a].ogg.??? > file1\ space\ [123456a].ogg

but even with tab completion, it was tedious, and I would still have to check them with par2repair (usually with the help of pypar2) to make sure they were in good shape!

THERE HAS TO BE A BETTER WAY!!!

after some searching for scripts to join files and coming up with nothing that could handle multiple GROUPS of files, I noticed a blog post that mentioned par2repairs ability to join the split files into the missing file and verify in one step! Just give it a list of files to search from for pieces:

par2repair file1\ space\ [123456a].ogg file1\ space\ [123456a].ogg.???

that simplified the process enough for my feeble mind to formulate a line, but first I needed to rip the extensions off the filenames. Some folks seem to like the “basename” command, but I could not wrap my head around it. AWK could do it if I could use a period as the delimiter. Of course it can!

First lets list the first file of each group, wrap it in (-Q)uotes, and make sure there is one name per line:
ls -Q -1 *.001
which gave me:
"file1 space [123456a].ogg.001"
"file2 space [5321fff].ogg.001"
"file3 space [af23498].ogg.001"
...

now I want to pass that on to AWK, delimit vars by “.” and spit out just the first two vars(with the period added back in between!):
ls -1 -Q *.001 | awk -F'.' '{print $1"."$2}'
but it also truncated the end quote, DOH!
"file1 space [123456a].ogg
"file2 space [5321fff].ogg
"file3 space [af23498].ogg

Thats OK, I can have AWK add the quotes (spaces, wildcards, etc. all escaped) back in as well as the rest of the arguments I want to pass on to par2repair!
ls -1 -Q *.001 | awk -F'.' '{print $1"."$2"\"""\ "$1"."$2".\?\?\?\""}'

that looks like a mess but it’s just because of the escape sequences:
“/ ” is an escaped space character (like the %20 you might see in a URL)
“/?” is an escaped question mark (the wild card for a single character)
“/”" is an escaped double quote

so the above command gives an output of:
"file1 space [123456a].ogg" "file1 space [123456a].ogg.???"
"file2 space [5321fff].ogg" "file2 space [5321fff].ogg.???"
"file3 space [af23498].ogg" "file3 space [af23498].ogg.???"

which is perfectly formatted so that I can pipe each line of that (with the help of xargs -l1) to a separate par2repair command!
BAM!

ls -1 -Q *.001 | awk -F'.' '{print $1"."$2"\"""\ "$1"."$2".\?\?\?\""}' | xargs -l1 par2repair

now if you want to add a bit to delete the processed files, you are on your own!

Credits:
I got help for the AWK delimiting on NixCraft:
http://www.cyberciti.biz/tips/processing-the-delimited-files-using-cut-and-awk.html
A post on the Ubuntu forum that inspired me to come up with a better way..
http://ubuntuforums.org/showthread.php?t=321142
I’ll post the one-liner there now… :-)

Shell Shout-Outs: iftop

Folks may shun the shell when using their computers but honestly, there are some great treasures to be found.  Today I’ll highlight a great little network bandwidth and connection monitor called iftop.
This handy terminal tool shows a near real-time display of connections to or from your computer through a network device. It will give you a nice little bar-graph representation as well!

iftop screenshot

You can install it in Ubuntu or Debian with a quick:

$ sudo apt-get install iftop

Then try this to see whats happening on your wireless card:

$ sudo iftop -i wlan0 -P

the “-i ” specifies your network device that you can find with:

$ ifconfig

enjoy!

New Home for the Blue Line Riders

The Blue Line Riders logo

 There are blue line riders and then there are The Blue Line Riders. Having been the former since moving to the Second City and now enjoying the latter while traveling to and from work as the former is only natural and so typically Chicago. If that were not enough, I’ve now been charged with building a new website for the most excellent Blue Line Riders! In case you’ve not had the pleasure of their sweet sounds upon your ears, you owe it to yourself to give a listen to the streaming mp3’s at bluelineriders.com.