Slashdot stories can be listened to in audio form via an RSS feed, as read by our own robotic overlord.

 



Forgot your password?
typodupeerror
Android

Journal: Android 4.0 ICS on ViewSonic G-Tablet using TeamDRH

Journal by rwa2
So VeganTab 7.1.0 (Android 2.3 Gingerbread) still appears to provide better app compatibility and performance, but it looks like the Android 4.0-based TeamDRH ROM is getting close in functionality!
I just installed the Beta 1.1 release, and it's making my G-Tablet run real nice. They ship with a 1.2 Ghz overclock option, and the Quadrant scores are better now, in between the Samsung Nexus and Samsung Galaxy. (The VeganTab ROM blew away both of them with a 1.4Ghz overclock).
Still a few issues I've reported:
  • Had to kill DSPManager to get audio working:
    mount -o remount,rw /system
    mv /system/app/DSPManager.apk /system/app/DSPManager.disabled
    reboot
  • Had to uninstall a bunch of background apps / widgets to free up enough RAM for everything to run smoothly. ICS really expects to have 1GB of RAM, so need to lose some weight to get good performance on 512MB :-/ Use an app like "OS Monitor" to see what's running and sort by memory usage.
  • My main goal is to get one of the full Linux distros installed in a chroot, but the TeamDRH kernel doesn't have loop block devices enabled.
  • A few apps don't run yet, like "Leo's RC Simulator", but I suspect they haven't ported to ICS yet.
  • ICS changed the way the internal sdcard can be shared with the PC, and I can't get the new way working :-P So now it's kinda a pain to transfer large files / backups.

But aside from that, I'm rocking out.

User Journal

Journal: Running commands on many remote hosts using ssh and xargs 3

Journal by rwa2

There are a few different ways to run commands on groups or clusters of remote nodes, depending upon how complex the command.

Assuming your machines are named "node01" - "node10" :

# Run a command in parallel on all remote nodes
# results come back in random order as they are received.
pdsh â"w "node[01-22]" df

# pdsh allows some more complex listings of hosts
pdsh â"w "node04,node[06-09]" reboot

# Run a command sequentially on all remote nodes
# slow, but results come back in order
seq â"w 1 22 | xargs â"I '{}' ssh node'{}' df

# Run a command in parallel on all remote nodes without pdsh
seq â"w 1 22 | xargs â"P 22 â"I '{}' ssh node'{}' df

# Run a command in parallel needing pipes on the remote host
# Otherwise, pipes are processed locally
seq â"w 1 22 | xargs â"P 22 â"I '{}' ssh node'{}' \
"ps afx > \`hostname\`.txt"

# Run a command in parallel needing root
# sudo requires a tty, hence we pop up xterm windows
seq â"w 1 22 | xargs â"P 22 â"I '{}' xterm â"e \
"ssh -t node'{}' sudo gdm-restart"

# Run a command in parallel needing root and pipes on the remote host
seq â"w 1 22 | xargs â"P 22 â"I '{}' xterm â"e \
"ssh -t node'{}' sudo bash â"c \"echo 3 > /proc/sys/vm/drop_caches\""

User Journal

Journal: Using readahead to speed up disk loading times of any application

Journal by rwa2

Here's a way to get a list of files read by any application, so you can use readahead to preload those files optimally from disk:

CMD=firefox
strace -fe open $CMD 2>&1 | sed 's/.*open("\(.*\)".*/\1/' > $CMD.preload

# you can sift through that $CMD.preload file to look for things that don't belong

readahead $CMD.preload # preloads all those files into cache

time $CMD # should now start quite a bit faster, without much disk activity

## to clear disk cache as root (useful for testing / benchmarking)
echo 3 > /proc/sys/vm/drop_caches

If it works, you might want to append the contents of the .preload files for your commonly-used apps to /etc/readahead.d/default.later , so they are automatically loaded on startup (RAM size permitting)

User Journal

Journal: tangoGPS - alternative to Google Maps Mobile on Linux devices

Journal by rwa2

So back when I had a Blackberry for work, the one app I really got addicted to was Google Maps Mobile. I basically stopped ever planning for travels. I would hop in the car or get off an airplane, think "now what?" and whip out the device and within a minute or two have directions to some place I've never been to before or a list of the nearest restaurants with a smattering of reviews.

Unfortunately, gmm only supports a handful of devices, most of which I'm not interested in. It won't install on my lousy Samsung t629 phone (which I hate, but Opera Mini helps me tolerate). I have a really old version of gmm on my Palm TX which works great, but doesn't support GPS. I almost bought a Nokia N900 to replace my various gadgets, but then I accidentally my old car and had to buy a new one, so took myself out of the preorder queue.

Which lead to my long protracted search for some kind of mobile mapping software for our eeePC 901 running eeebuntu. GPSdrive looked promising, but I couldn't quite get it to work with my iBT bluetooth GPS, or to even scroll out of Germany for that matter. Google Earth sort of worked, but the fonts and Z-buffer were wonky, and my previous experience hooking Google Earth Plus to a GPS wasn't actually all that stellar. I even tried running the Android SDK so I could try installing GMM in the emulator, and also installed androidx86, but alas, gmm wasn't an option in their stripped-down app repositories.

Finally after many google searches, I found tangogps while simply mucking around in aptitude. I was very impressed with both the simplicity of the user interface and the power of all of the features... In addition to supporting several different map sets out of the box (including an "for testing only" google satellite maps scraper), it also has a friend-finder database similar to Google Latitude, and better yet some of the trip meter features I missed from Garmin devices. Plus the inclusion of sources such as the opencyclemap db makes it more useful to me than GMM was. It's also possible to download tiles over a region in advance for offline viewing.

I now have my eeePC linked via bluetooth to both the iBT GPS and my Samsung t629 phone to download tiles from T-mobile's network using my $10/mo. web2go plan. Unfortunately, it doesn't support search yet, but does have rudimentary routing and directions. But it does give me just what I've really wanted -- an overhead moving map display.

Someday I hope Google will make GMM available for "real" computing devices, maybe on ChromeOS or Androidx86 or better yet just as a standard java app (yes, I also looked into installing the Sun Java micro development environment and generic phone emulator, but it looked like a real mess to get things installed and then somehow connected to a real GPS). Or at least porting to the Maemo platform so it would run on the N900 and friends. But barring that, I think I can make do with tangoGPS until I maybe succumb to one of the newer Android 2 devices due out this year.

User Journal

Journal: Palm T5 - TX touchscreen transplant

Journal by rwa2

I don't know why I hadn't thought of this sooner. My Palm TX had a pretty broken touchscreen, with large unresponsive areas in the middle of the screen and in the graffiti area. I had been coping with this for years... writing really small and frustrated graffiti in the corners, and creatively using various combinations of presses around the edges to activate buttons in the middle with touchscreen averaging.

But after replacing the broken screen in my wife's eeePC a few weeks ago (it was only $50 for a beautiful new glossy screen) I thought I might try buying a replacement Palm touchscreen (which go for about $20-$30 and include the special * screwdriver). Then I remembered that I had my old broken Palm T5 lying around, which still had a nice working touchscreen. I don't know why I assumed they wouldn't be compatible earlier...

Anyway, the small bit on my leatherman fits the Palm T* screws fine, and after a bit of drunken internal surgery, the transplant was complete. My Palm TX has a new lease on life, with a nicely calibrated touchscreen and hard buttons on the front that work consistently now.

Of course, now I have to invest in some better protective gear to keep it that way... my jacket pocket just contributes too much lint.

Unfortunately, the power button still doesn't work, but there are apps to compensate for that, like PowerBtn or OffStroke.

User Journal

Journal: Mirrored RAID read performance, where art thou?

Journal by rwa2

Back before mdadm (in the days of mkraid), the Linux RAID1 driver used to give you a performance boost when reading from a mirrored array. Essentially, from 2 mirrored disks, it would read half the data from each disk and give you the whole thing almost twice as fast. At some point, they decided to change that behavior so reads would only be performed from one drive at a time. There was still some small performance boost... it would decrease average seek latency a bit by reading from the hard disk spindle that was physically closer to the sector to be read. And maybe it allowed concurrent reads, so one process could read a file from one disk while another process read a file from the secondary disk... but for some reason, that doesn't seem to increase your overall throughput by anywhere close to a factor of 2... more like 1.3 from my brief testing (and I suspect most of that gain was probably due to disk cache rather than parallel reads).

But after reading a few different Linux RAID sites today, it looks like that you can get that kind of performance boost again out of mirrored arrays by using RAID10,f2 ( --profile far=2 )! And even though it's called RAID10, it even works on arrays as small at 2 disks. It basically works by striping your data across the first half of your drives, and then striping the mirror of that data across the second half. This appears to decrease write performance by about 5% compared to RAID1 or RAID10 near=2 (the default), but the read performance finally increases again not only due to striping, but also because your disk heads now stay near the faster outer rings of your disk drives, and only has to dive down to the inner rings for mirroring writes.

So I'm pretty excited about this since I've kinda been annoyed by it for the past few year. Except that of course I now have to rebuild all my RAID1 and RAID10 arrays to use the far=2 profile :P

Here are links to some of the more useful sites with data:
http://linux-raid.osdl.org/index.php/Performance
http://blog.jamponi.net/2007/12/some-raid10-performance-numbers.html
http://home.comcast.net/~jpiszcz/raid/20080528/raid-levels.html

User Journal

Journal: SwiftWeasel 1

Journal by rwa2

I am liking Swiftweasel, it is noticeably faster than Iceweasel / Firefox on Linux, especially on netbooks like my eeepc 901 running eeebuntu.

Unfortunately, the deb repository for it is somewhat old (v3.0.3), and current .tgz builds from sourceforge are somewhat old as well (v3.0.5 for x86, and v3.0.6 for x86-64, whereas the current iceweasel / firefox is at v3.0.7). I kinda wish SticKK of the SwiftWeasel Project would post more instructions on how to build swiftweasel from current iceweasel sources.

Until then, I've seen that "about:buildconfig" can be used to identify the compiler and options used. When I get a chance, I'd like to try grabbing the iceweasel deb-src and modifying the build options to match. Don't see anything in there about how to enable Profile Guided Optimization (PGO) which is necessary to make *nix builds of firefox javascript run as fast as Windows builds, as mentioned at this firefox benchmarking site.

Oddly enough, I ran the SunSpider javascript benchmarking suite under both Swiftweasel and Iceweasel, and Swiftweasel actually took a tad longer. I feels much snappier in day-to-day use though, probably because of some of the FasterFox extension options. The default vanilla Iceweasel on the eeepc typically pauses for a second or two on new page loads.

User Journal

Journal: Web 2.0 Micro blogging howto

Journal by rwa2
Facebook seems to have suddenly hit critical mass in my friends-and-acquaintances sphere of influence. I don't really like Facebook... social engines like OKCupid and Orkut seem more fun, relevant, and informative. While Facebook seems cold and quite pointless for the most part (most of the activities involve "pokes"... exchange of vampire bites? water fights?). But it does seem to have the largest networked community going for it at the moment. It's filling the gap created by Classmates, allowing people to connect with their long-lost school peers in ways that other countries with more successful implementations of "classmates" services have enjoyed for years (such as the Russian Odnaklassniki.ru)

Anyway, I found this Mashup guide very useful in setting up Facebook and Livejournal and Twitter so they all kinda cross-post to each other. Now if only there was a way to plug my slashdot journal into the fray as well.... hmmmm

User Journal

Journal: Eee PC 901 FTW FWIW

Journal by rwa2

Picked up the black Asus Eee PC 901 20GB for my wife Sofia, to replace her 700Mhz Apple iBook. She's always been a Mac person since working for Yearbook in high school, but I finally broke her of it by buying one of her own after we got married. She's really liking the Eee PC, both for the form factor and their Linux OS. She's never been a Windows person, and on the Mac all she used was Firefox and NeoOffice to work on her MS and PhD coursework in education, so the transition to Linux has been pretty straightforward.

We still have a few quirks with their custom install of Xandros Linux to figure out, which I'll try to record here as I go along.

I'd like to replace the AsusLauncher desktop with a straight IceWM desktop + menu at some point. But since it's for my wife, I don't really want to go too overboard with customizing it.

Also need to figure out the best way to expand the root dir so we can install more software. We're getting the Grad Student edition of SPSS 16 for one of her courses this year, thankfully they sell a Linux port.

User Journal

Journal: Keyboard

Journal by rwa2

Just picked up a Casio WK-110 keyboard for my kids' piano lessons. Toy 'R' Us has them on clearance for $130, down from $200. They must be making way for the new WK-120 model. Hopefully this can tide us over for a while until we can get a nicer digital piano with pedals and hammer action, which usually run in the $500 - $800 range.

My old Yamaha PortaSound that we had been using finally broke... or at least it's at the point where it can only play drums while on battery power. I've had it with me for the better part of two decades. But the keys were small and didn't have any kind of touch response.

User Journal

Journal: Nokia 6021 resurrected

Journal by rwa2

My Nokia 6021 died the other day. Of course my wife blamed me for swapping my battery with the nearly dead one in her phone so I could use her camera to take some snaps of a family gathering.

I originally picked up an unlocked Nokia 6021 in particular because it was the only tri-band international GSM phone that supported EDGE & bluetooth, but had no built-in camera so I could take it to work. I wish the american GSM providers would figure out that there's a market for this beyond those blackberry devices. I prefer keeping my PDAs and cell phones separate so I could upgrade them independently, thank you. Plus, I typically get a better overall feature set out of $200 cell phone + a $200 PDA compared to the leading $600 "smartphone" of the time.

So the symptoms of my Nokia mobile's demise was a crash on bootup... I'd hit the power button and the screen would just flash white and then shut off again. Once in a blue moon, I could get the thing to boot up a little past the bootup screen, but it would crash again while building the menu. I could also convince the battery to charge to full, so it wasn't a low battery problem.

I pried the thing open and removed the 6 screws holding it together. Inspecting the circuitboard near the main battery contacts, I noticed a tiny little XH414X battery cell that showed signs of corrosion. Nokia had welded it to its battery contacts, so with nothing to lose (I never bother with warranties, esp. with my ~$200 price cap on most of my personal electronics), I simply twisted it out with a pair of needlenose pliers. Afterwards, the phone booted up and worked fine, and remembered all of my memory settings... everything except for the time!

So this little permanently-attached watch battery is apparently a little time bomb waiting to incapacitate your Nokia phone. I suppose mine died early due to the corrosion... I'd be the first to admit that my children and my pocket provide a pretty rough operating environment for my gear. But it's still a bit unnerving that they expect you to upgrade your phone after however many years that battery would last. But since the phone works with the internal clock battery dead, I'm not sure what to think. It's not much of an inconvenience, and my phone offers to set the time from the network on bootup anyway, so it would only be a problem if my main battery died and got replaced while I was stuck in a cave. Perhaps I just hit a weird failure mode where the corroded battery was feeding back some strange voltage that the Nokia engineers didn't expect from a normally dying watch cell.

Anyway, it has vaguely inconvenienced me for a few days while I was on international travel, but here's hoping someone will find this information useful in debugging their related Nokia phone troubles.

User Journal

Journal: opie on an iPaq h5450

Journal by rwa2
I suppose I should use this space to write about technology.

I got an iPaq h5450 from work, and after toying with PocketPC 2002 for a while (didn't want to shell out the 30 bucks or whatever to upgrade to PocketPC 2003, even if it would make the built-in wifi & bluetooth work), I immediately got around to the task of installing the Linux distributions from handhelds.org on it.

It took a few weeks to play with all of the options, however, because the documentation is in shambles. I finally got the bootloader installed from an Win2k machine, and got the bootloader to install the gtk 'lite' over X 'lite' -based GPE through the RS-232 serial cradle using minicom on a Linux machine.

GPE was neat, but had a few usability issues, so I eventually backed it up (using rsync over a ppp connection) and went to the embedded Qt -based opie. I'm pretty happy with Opie. I tend to be biased towards the more idealistic gnome/gtk/gnu guys than the more pragmatic kde/qt people, but the opie app software was visibly better engineered from the user perspective.

First thing I noticed about each project was that I had to update from the unstable sources to get any decent functionality. Mostly because my hardware is relatively new, but also because the unstable apps just worked better. No big surprise there, esp. with projects under heavy development.

Though OPIE won't just run any minimally-ported X application like GPE will, the application set it does have serves my needs well, with things to handle web browsing (a stripped-down konqueror), a nice terminal with multiple session management and shortcuts to common commands, and VNC.

Just about all of the hardware works, except maybe that fingerprint reader. Most needed manual configuration, though. I have to configure the wifi card using ifconfig and wconfig on each boot and wake from sleep. Many of the FAQs are pretty dated. For the longest time I was led to believe that SD cards didn't work, but I finally stumbled across the right module to load buried in /lib/modules. But I am happy enough that the hardware support is there, even if I have to launch a script to get it to work every time. Looks like the OPIE GUI autoconfig tools are changing rapidly, though, so this will hopefully be behind us in a few months.

Still have some annoying problems. Every few weeks, it locks up hard, and I have to do several hard resets, removing the battery and everything to get it to boot. Fortunately, nothing permanent is stored in volatile memory (unlike in MS PocketPC), so this doesn't result in data loss.

I still end up primarily using my aging Visor Pro, since there's still a lot more useful/indispensible PalmOS software out there (HandyShopper, Progect, Mapopolis, etc.), but I'm hoping to get POSE working on the iPaq eventually. Also need to get multisync working enough to migrate my PIM info over. As for offline web browsing, it looks like JPluck + OPIEReader will fit the bill for what I had been using Avantgo & Plucker for. After that, I should finally be ready to ditch my Visor, but don't hold your breath :P

Wishing without work is like fishing without bait. -- Frank Tyger

Working...