Nexus 7

Two years after my last attempt at getting an Android tablet (the Eken M001, see here and here), I got a new tablet, the Nexus 7.

In short, the Nexus 7 is everything I wanted then. Of course expectations have risen over the last two years, but the Nexus 7 generally rose the occasion there as well.  I think this sets the bar for all other Android tablets.  Many tablets will fail to meet it.

Broadly speaking, I’m not sure there is any other 7″ tablet as good.

So, if a tablet wanted to beat the Nexus 7, what could it do?  They could include a rear facing camera and a microSD slot.  For some people, a 10″ tablet would be an improvement.  I find that larger tablets lack portability.  7″ fits great in cargo shorts, and for me it also fits in the front and back pockets of most of my pairs of jeans (but I can’t sit with it in either pocket).

By the way, the Blurex Ultra-Slim Case for Google Nexus 7 inch Tablet  is a nice case for the Nexus 7.

Zoup (but not salad)

A resturant chain called Zoup is about to open at Park City (local mall). Deb and I got invited for a pre-opening meal. In case the following sounds like an endorsement, I will comment that they did bribe us with free food.

Zoup is a soup, sandwich, and salad place. Deb and I got a cup of soup and a half sandwich. David got the kids special with is a grilled cheese sandwich and gold fish. He seemed to like it.

Deb got the Fire Roasted Tomato Bisque and the Chicken Toscana sandwich. I tried bites of both and thought they were fairly good.

I got the Mulligatawny soup and 4 Cheese Melt sandwich. I very much liked my choice. I’ve never had Mulligatawny before and was pleasantly surprised at the curry flavor. This sandwich paired with this soup wasn’t the best pairing, so I just ate them one after the other. Originally I was thinking to dip the sandwich in the soup.

Overall, we all rather liked the place. However, most commonly we don’t go out for soup and sandwich’s so it could be quite some time until we go there again, but I imagine that we will return.

Video Game High-School, Episode 9 (spoiler alert)

I enjoyed the Video Game High-School web series. There first episode can be found here.

The series is 9 episodes long. The final one came out yesterday here. However, I don’t think that it ended as well as it could have.

To summarize what happened in the final episode (limiting myself to what I’m going to comment on), protagonist BrianD is back for FPS (first person shooter) tryouts and his chance to stay in VGHS. The game being played in the tryouts is a CTF (capture the flag) game. Antagonist, The Law, finds out that BrianD is playing and rushes into the auditorium and takes over a computer to try and humiliate and banish BrianD. BrianD and friends lay a trap where he appears to sacrifice himself to The Law, then he shoots the law and goes on to win the game.

Now, lets go back to the beginning. In episode 1, BrianD gets into VGHS because of The Law showing off (on national TV) while BrianD is AFK (away from keyboard). The Law spends a long time setting up a trick shot and BrianD gets back to his keyboard just in time to foil the trick shot, kill The Law, and embarass him on national TV.

In Episode 2, we meet the principle of VGHS, Dean Ernie Calhoun. Dean Calhoun says here “Its all about the game”. That is a line that he repeats throughout the series. In the final episode, BrianD says it back to the Dean while talking his way back into the tryouts.

In Episode 5, BrianD is in a CTF scrimmage on the JV team against varsity. He plays badly and loses the match because of he is trying endlessly to kill The Law rather than playing with the team at CTF.

So then, back to episode 9. We have a theme so far that BrianD needs to play the game rather than be distracted by personal conflict with the antagonist. This theme is repeated in this episode during Dean Calhoun and BrianD’s exchange, with BrianD indicating that he has gained insight.

Then in the game to claim victory from The Law, JV lays a trap. BrianD acts like he is going to sacrifice himself. At this point, the episode was setup for a great ending. Instead of killing The Law, BrianD could have just been stalling The Law while his teammates grabbed the flag and scored the winning point. That would have been playing the game. Instead, the trap is just to kill The Law. Killing The Law does clear an obstacle so that they can then win the game, but the way it was played out reeks of once again being distracted from the game in the way that he was supposed to have just gotten over.


Back in September, I posted about evaluating an Intel D510MO board for HTPC applications, and determined that it wasn’t good enough.

Now, I am trying again with an Atom 330 / ION motherboard. This is a slower CPU, but a faster Nvida graphics chipset. Last September it still wouldn’t have done the job, but as of a few weeks ago it comes closer. The key change is Adobe’s Flash 10.2, which finally supports hardware assisted video decoding.

With this new box, I first tried XBMCLive. My plan was to use the launcher feature to launch Hulu Desktop as well. After the install, things somewhat worked. It took some fiddling to make HDMI audio work, but it turned out that the answer was on the XBMC faq. However, it used a lot of the CPU power, all the time, and I could never get Hulu desktop working acceptably.

Yesterday, I reloaded with Ubuntu 10.10, then installed the current Nvidia drivers, Hulu Desktop, and XBMC. Things are much closer to just working. It took me a little to figure out how to enable HDMI audio, but I found the setting in Sound Preferences. On the Hardware tab, there is a drop-down labeled “Profile:”. From there, I just had to select “Digital Stereo (HDMI) Output”.

Hulu Desktop is usable, but it still under performs. I have to keep the video quality set to low to prevent dropped frames. When I flip through the menus performance suffers and frames are dropped, but when I just leave it be, it behaves. This is when the display resolution is set to 720p though. When I had the display set to 1080p, it still dropped frames in low quality mode.

I think that Flash is still inefficient and that it just is running out of power. I have to say that I would probably recommend someone trying to duplicate this should use a good Core 2 Duo or better, along with 9400 or better Nvidia graphics to get more satisfactory results.

To control the system I am using a semi-generic Adesso USB remote. It uses IR to a receiver dongle. It acts like a keyboard and mouse, so no messing with LIRC is required. I am having trouble with Wake On USB. When I enable that, the computer won’t stay off. I have no way of knowing if Linux, the computer, or the remote are to blame. With that caveat, I would recommend this remote. I think it cost $25. Sometimes you want a real keyboard though, so I am going to have to look into getting a small wireless keyboard to use with this system.

Things I still want to explore is setting XBMC to launch Hulu desktop. Also, can I find another remote friendly launcher program to have Ubuntu auto-run on startup? I would like to try adding Boxee to the list. And I would like to find something better for image viewing, either a sepe

OCZ SSD in my Toshiba laptop.

I put a OCZ Vertex 2 60 Gig SSD in my Toshiba laptop.

It really is fast. Booting is pretty quick, although I don’t do much of that. Chrome and Thunderbird launch quickly although, again, I mostly just leave them running all the time.

Beyond that, I hope it helps battery life, but since I took the machine from Windows 7 to Ubuntu 10.10, I suppose I will never know which change it was that made the difference.

Still, while I have little to no hard evidence to support it, I feel fairly happy with the choice.

Replaced the touchscreen on a HTC Droid Eris

I got a free HTC Droid Eris with a broken touch screen. The LCD seemed to operate without issue. The glass touch screen in front was badly cracked, but still fully functional. I looked on line and found that replacement touch screens are a little under $50, and I found a YouTube video that made it look easy enough (see video here).

The procedure took a little more than two hours. Disassembly the phone was easy. Removing the glass of the broken touch screen from the front bezel was a bit challenging, but still only took a few minutes. Cleaning the bezel then took forever. Applying super glue cleanly was difficult (more later).

The tutorial video on YouTube said to use a T6 screw driver for the outer screws. None of my T6s fit, I had to go by a T5.

I got it all back together with an unpleasant splotch of super glue on the back of the glass. I wasn’t happy with it, but I figured it would be usable. But then minutes later, the screen got a bit foggy. I figured it was just moisture, and set it out to dry. 15 minutes later it was much worse. Days and then a week later it was just as bad. I found out that super glue is NOT the correct adhesive to use for this, and this is what probably caused the fogging.

I was later talking to a friend who does camera repair, and he says I should have used G-S Hypo Cement. Now I know for next time.

Things learned:

  • Replace the front bezel/housing in addition to the touch screen itself.
  • Trying to clean  the  plastic adequately was by far the most time consuming part.

  • Use a cheap small brush to apply the glue.
  • This will result in less mess, and thus less chance of getting glue on the glass. A different glue may make this unnecessary.


I keep thinking of getting new parts for this phone and trying again, but the further I get from it, the less likely I think I am to do so.

πp-v2, the new Plan 9 file protocol

The symbol is Pi. I point that out since it doesn’t render very nicely in my web browser. The URL for the paper is:
Yes, they stuck the symbol into the file name as well. Plan9 people seem to like to do such things just because they invented UTF-8 and were the first to heavily use unicode.

πp intends to replace NFS, SMB/CIFS, HTTP, FTP, 9p2000/Styx (the former plan9 file system), as well as more obscure options like Coda. To that goal, it tries to contain all of the features of those different choices that the authors deemed still useful into one new protocol.  Ideas like extended metadata, non-file files (meaning the target on the other end is a file representing a printer, raw disk, or any other sort of device), offline operation, caching, and tolerance for proxies (possibly also caching) in the middle.

So, I think there are some features and decisions to like here. Here are a few.

File versioning can serve two purposes. It can be used to preserve history and it can be used for cache invalidation. πp intends to support both. File versioning to support history is potentially the most handy feature, but it will only work if it is matched with an appropriate on disk file system that supports file versioning. ZFS, one file system that can support versioning (by snapshots, but it doesn’t keep every revision automatically), doesn’t need the file sharing protocol’s help to support looking at the versions from remote systems. On ZFS, the snapshot history can be accessed in a directories .zfs sub-directory.

Without such a file system that supports versioning, πp’s versioning feature can still work for cache invalidation by setting an extended attribute on file systems that have some mechanism for doing so (xattr on some, resource forks on others).  Personally, I think that supporting caching is largely only of use when πp is used as a replacement for http, which is further discussed later.

Pipelining would help resolve a major NFS complaint of mine, but it also seems like a large pit of danger. I’d be happy to consider using this protocol, but only for applications that don’t depend on heavy synchronous behavior out of concern about this feature, until it is better proven.

Extended support for special files is great for remotely sharing devices.  This was always one of the nice features of plan9 (at least so it sounded, since I never gotten around to using plan9).

OTOH, here are some “features” that I require convincing of.

To replace http, the author’s get rid of the plain text parts. In web development, having those parts be human readable are tremendously useful and I doubt they waste much time in any given session. They also make web connections stateful using this protocol, while being stateless has always been one of http’s strong points (albeit one with some pain). Also extended file attributes seem like a poor alternative to http request and response headers.

Supporting lossy file transmission is rather a head scratcher. Their idea is that it could make for efficient streaming video transport, but still I’m not convinced. Does the client or server decide that the response is to be lossy? It looks like this is a client decision (client choosing by opening the πp connection over TCP versus UDP), however how is the client to know in advance which type of file this is? Is it supposed to query first? That seems ludicrous.

My conclusion though is that if you drop the usage ideas that I don’t like, I don’t see any changes being required in the protocol itself. This idea is obviously in the early states, but it looks like it could be worth exploring when there is more code to run.

On a side note, one thing that did interest me in the paper is that they wrote the initial implementation in Go, and then translate that to C. I didn’t know that Go existed on Plan9, but in looking into that it seems that it still doesn’t quite exist on plan9 since the runtime has yet to be ported. Oh well, one can hope for the future.

It also made me wonder how many plan9 from user space users make use of 9p still?

Eken M001, Upgrade Follow Up


Today, I tried upgrading to a newer SlateDroid than what came on the device.

BTW, a small tip for use on Ubuntu:
sudo apt-get install p7zip p7zip-full p7zip-rar

Find the new firmware at:

Stupidly, to get the download link, you must create an account on the SlateDroid forums to do so. Did I mention that many aspects of the Android community are really aggravating? Would it really be that bad to use github or sourceforge for this sort of thing?

Anyway a direct link is:
Note, by using this, you may miss out on newer versions. Also, this seems to be on a rather slow server, which would raise reliability concerns.

Once you have the file, extract it some where. In the long directory created, there will be a text file and a script folder. Copy the entire folder to the root directory of a SD card, then move the card to the M001, and reboot the M001.

You will get a message indicating that it will re-install in a few seconds, and if you do nothing, it just runs for about 2-5 minutes, then ask you to remove the SD card, and when you do it turns off. Turn it back on and it takes a very long time to boot the first time, about 10 minutes for me. Easy Peasy, but I would have felt better if the process was described.

How Is It?

After booting into the updated OS, the first thing I noticed is that screen rotate is no longer working.  I checked the settings for this, but nothing jumped out as wrong.  I didn’t put much more effort into why this was mis-behaving.

Since battery life was supposed to be one area of improvement, I tested that out with a full charge.  What I found was that with light usage of contacts, web browser, flipping around through menus and ebooks, but not playing any audio (other than default system sound effects) or any video, the battery lasted under 2 hours.  2 hours is about double what the battery life was was before.

While I ran through various menus, web sites and so on, I paid attention to the responsiveness of the system.  It  may be a bit more responsive than the ealier SlateDroid firmware, but it is hard to be sure.  The M001 is still is rather tricky to navigate.  Scrolling in particular is difficult.  Half the time I try to do so, it registers a click as I swipe across a list item, which means I enter a new menu, have to hit the back button, then try scrolling again.  I haven’t a clue why this behavior exists.  Is the touch screen not good enough?  Is the processor too slow?  Is the software too un-optimized?  Or is it that there are ill timed software pauses that cause it to miss a beat?  I don’t know, but if someone would work this out, it would be really nice.

This software upgrade brought the Aldiko e-book reader.  This program is nice.  You swipe to flip pages, and unlike general list scrolling, this actually works reliably.  If you had decent battery life and wanted to use only this program, this could be worthwhile.  Certainly if that was the goal, you could turn off wifi, which would help a little.

Web Browsing is the same after the upgrade as it was before.  It is a real web browser.  Web sites tend to just work correctly, including javascript.  It is no speed demon.  Scrolling is very sluggish, but unless there are lots of links on the page, you at least don’t have to worry about it mistaking a scroll for a click.

One weird note is the continued inclusion of the phone dialer.  Why?  There is no phone here.

The End

I think that is about it for me and this device. I could load Debian on it still, but I just don’t feel motivated to try. While I could then try using it as a music player, I still have the problem of major noise on the output. With Debian I could use it to show pictures, but the screen still sucks even compared to my bargain basement picture frame. Of course, on Debian there don’t seem to be any polished enough WebKit based web browsers, so using it for the web doesn’t seem realistic (at this point Firefox on 128 megs of RAM is not pretty). I don’t see a lot of point.

I could keep it as a platform to hack on, but it doesn’t seem to be as open as other choices like the OMAPs, so if I was to get around to it, time would probably be better spent on my HawkBoard.

So, I say Adieu. Maybe I’ll try some Android 2.1 (or better still 2.2) tablet in the future.

Eken M001, Android Tablet

I recently purchased an Eken M001, one of the cheap android tablets that you can find on eBay.

There are a lot of the super cheap tablets using Via WonderMedia chips. Based on online specs, the biggest differentiator between different models is whether it has 128 or 256 megs of RAM. It is possible that the displays vary.

My first complaint is that the screen and audio quality are poor. The screen has a strong screen door effect. The audio is subject to hiss and a large amount of internal interference (so, you can somewhat hear the machine “think”).

My second complaint is that the device is slow. I suspect that it is possible to wring a lot more performance out of this chip through better optimization of Android better for it, but while the SlateDroid team has made updated firmware for this device, I see no evidence that further optimization can be expected.

Battery life is poor, and the device doesn’t seem to go into much of a power saving mode. Again, I think this is largely a software issue, but also again I see no evidence that anyone is going to try and fix it.

The touch screen feels very unresponsive. I don’t know if this is a poor choice in touch screen technology and hardware, or if this is also software. Some people say it is obviously going to be poor since it is resistive instead of capacitive, but it is much worse than the resistive screens in old handhelds, such as Palm devices.

I will say that on the upside, Android 1.6’s web browser works extremely well (albeit sluggishly). In some ways, that makes the speed issues all the more aggravating, since it is a painful taste at what could be a really nice experience.

One possibility for this machine is to run Debian on it. I haven’t tried this yet, but it is supposed to be a simple operation. Debian on this would allow you to write code to use it as a control panel or display status information on it. You could also use it as a digital picture frame, but there are cheaper digital picture frames out there with a much nicer display.

In writing this, I see that there is a newer SlateDroid firmware available (now based on Android 2.0), so I will have to try that and post an update in the future.

A new thermometer

I don’t know where I got the idea from, but I’ve long thought that knowing how hot a pan is would be tremendously handy. And of course, the obvious way to measure surface temperature is with an infrared thermometer. So, I went and got a Ryobi IR001 Non-contact Infrared Thermometer (with Laser) from Amazon (see

So far, it is particularly handy for seeing how close to boiling water is (212°F) and when a pan is hot enough to saute (350-400°F).

My only complaint is that it tops out at about 600 °F, and sometimes higher would be nice.

Also, I really wish that I would remember to keep notes on temperatures for frying eggs, pancakes, and what exactly is high, medium, and medium high?