LCD Image Persistence – A Solution that Works

Posted by Scott on Mar 4th, 2011

For a while I’ve just ignored my issues with LCD image persistence – essentially the same thing as screen burn-in on CRTs. Fortunately, LCD image persistence is not permanent. I’ve read conflicting accounts of how to get rid of it, but haven’t had any luck with methods I’ve tried.

Until now, that is. This short guide explains that the quickest solution to LCD image persistence is to force your displays to alternate between all-black and all-white images. It mentions doing this with a photo slideshow screensaver. I did it with the GNOME screensaver utility, let it run overnight, and my image persistence problems are gone. Just thought I’d share the solution that worked for me.

Submitting Patches to Upstream Open Source Projects

Posted by Scott on Feb 18th, 2011

I was recently asked to give a short presentation to the Yocto Project team about how to upstream patches most effectively. I thought I’d share it:

I don’t think there’s anything too revealatory here, but it might serve as a good reminder of some best practices for collaborating with open source communities. One thing I will say is that I have been impressed with Intel’s commitment to getting our work integrated upstream when possible. My management really cares about this, not simply because it makes our work easier in the long-run, but because it’s part of being a good open source citizen. And as an additional bonus it keeps us on Greg Kroah-Hartman’s good side. 🙂

How to Setup an openSUSE chroot

Posted by Scott on Feb 13th, 2011

chroots provide an extremely useful way of running multiple Linux distros on a single computer without having to run them within a full virtual machine environment. Why would this be an advantage? Well, in my case, I’m performing builds of hundreds of packages for the Yocto Project, and I want to maximize performance by avoiding having to go through a virtualization layer to access my hard disks.

My goal was to create a minimal environment which closely matched what we’re running on some of our autobuilders, which happens to be openSUSE 11.2. It’s easy to set up Debian-based distributions within a chroot by using the debootstrap command, but openSUSE doesn’t have anything analagous to this AFAIK.

It turns out it’s pretty simple to use zypper, openSUSE’s command-line package management utility, to bootstrap an installation into an arbitrary sysroot that you can then use to pull in additional packages over the network. The only caveat is you have to create your initial chroot on an existing openSUSE machine where you have root privileges. Here’s how.

The first thing you’ll need to do is set up the most basic openSUSE package repository config within your sysroot. To create this in the /data/opensuse-11.2 directory, you’d do the following:

mkdir /data/opensuse-11.2
zypper --root /data/opensuse-11.2/ ar repo-oss

Next, you’ll need a /dev/zero device file within your sysroot, since some packages have post-install scripts which make use of it. You can create it manually, but I prefer to simply copy it from /dev:

sudo mkdir /data/opensuse-11.2/dev
sudo cp -a /dev/zero /data/opensuse-11.2/dev/

Presumably you’ll want to move this chroot onto another computer as soon as possible, so here I only install a few needed packages to get started (rpm, zypper, wget, and vim). An editor can be handy in case you need to edit a configuration file (in my case, to configure system-wide proxy settings in /etc/sysconfig/proxy):

sudo zypper --root /data/opensuse-11.2/ install rpm zypper wget vim

At this point you can now tar up the chroot and copy it over to your destination machine of choice. Keep in mind you’ll still need root privileges to tar it up properly:

cd /data
sudo tar cvjf opensuse-11.2.tar.bz2 opensuse-11.2

I use schroot to manage my chroots and highly recommend this little-known utility. It allows you to work within a chroot’ed environment but still have access to your home directory (or any other directory, if you configure it as a bind mount).

After having moved my chroot to its final destination, I added additional zypper repositories and followed the Yocto Project Quick Start Guide to install required build dependencies.

zypper ar repo-update
zypper ar security
zypper ar tools
zypper refresh
zypper install python m4 make ...

From that point on, I could fire up a schroot session anytime I needed to perform builds within a minimal openSUSE 11.2 envrionment with no need to deal with virtualization environments or reboot into another OS.

A Review of the Archos 5 Internet Tablet

Posted by Scott on Jan 16th, 2011

My interest in internet tablets started when Nokia announced the N770, a really innovative tablet (long before the existence of smartphones) that ran an open source software stack called Maemo. Unfortunately, the N770 was a toy and far too underpowered to be particularly useful. Some time later I upgraded to a Nokia N800, which again was annoyingly slow to use. But it was also just useful enough that I started bringing it with me to read a web article or PDF while taking public transit.

As time went on, a few Android-based web tablets started hitting the market, and I decided to buy an Archos A5IT several months ago. This is a quick review of the device.

Archos 5 Internet Tablet

The Good:

  • It runs Android. Now I could find out what the Android phenomenon was all about (to this day I still don’t own a smartphone)
  • The screen quality is outstanding – very bright and crisp
  • It has decent battery life, and can stand up to multiple days of heavy use before needing a recharge
  • The web browser is decent (the Maemo web browsers were way out of date and incredibly buggy, having something that worked consistently was a big step up for me)
  • It’s a great ebook reader. I use the Aldiko ebook reader and have bought a few DRM-free books in ePUB format.
  • It’s reasonably fast. The usability in terms of application speed is comfortable.

I use this thing daily as an mp3/ogg player, read ebooks and articles on the web, check the weather forecast, and keep up with twitter. I’ve even occasionally used Instant Messaging with it. And of course I played Angry Birds when it was back-ported to Android 1.6.

The Bad:

  • It runs Android 1.6, with no OS updates on the horizon. Archos occasionally releases firmware updates (which are simple to apply over a wifi connection), but Android 1.6 is extremely dated. Bugs I feel are related to Android 1.6 are:
  • The wifi frequently does not re-associate when waking from sleep, about 20% of the time. I then have to go into the settings and manually turn off/turn on wifi to work around this.
  • Everything slows to a crawl as it runs out of RAM. The use of Advanced Task Killer helps in this regard, but doesn’t clean up apps automatically the way I’d like it to. I have to use it to kill apps manually when I notice the slowdown.
  • I can’t run Mobile Firefox, which requires Android 2.x
  • It has a resistive touchscreen, which is generally annoying to use. Every smartphone I know of has a capacitive touchscreen, which requires less pressure.
  • The screen size is unusual, even today with more tablets on the market. The screen measures 4.8 inches diagonally, and for whatever reason some apps like Aldiko and InstaFetch don’t always apply margins correctly, causing odd layout and overlapping issues.
  • The GPS is useless. I’ve tried several times to get it to sync up with the GPS satellites, but even after a half-hour with a good view of the sky it doesn’t even appear to get a full lock on one of them.

I give Archos credit for making an attractive tablet at a reasonable price, and I rely on this thing just about every day. But now that the market is really heating up with non-smartphone tablet options, I can’t recommend it any more. Especially due to the ancient version of Android it still uses.

In fact, I recently decided it’s not worth putting up with these shortcomings any longer, and with a bit of apprehension just ordered an Archos 43 tablet, which is the new generation from Archos, runs Android 2.2, and addresses most (but not all) of the shortcomings I mentioned above. After a few months with the Archos 43 I’ll do a similar review and let you know what I think of it.

Open Source Bridge Will Rock Your Socks Again This Year

Posted by Scott on May 16th, 2010

Last year marked a new first for Portland, OR – the birth of the Open Source Bridge technical conference. In a previous post I expressed a great deal of enthusiasm about how awesome last year’s event was. Those weren’t just kind words – I found myself moved enough by the incredible activism and community in the Portland tech scene to get involved for this year’s conference as a volunteer. That’s right, Open Source Bridge is back in 2010! June 1-4, to be exact.

This year’s event has an outstanding presentation lineup and will be held at the Mark Building of the Portland Art Museum. I had a chance to tour the venue with the OSB organizing crew and must say that the location is really unique, inspiring, and truly fitting for a conference of people who are working to improve the world through quality open source software projects. There will once again be a 24-hour hacker lounge (a major highlight from last year), this time on-site at the Mark Building.

One of the great things about OSB is that it’s a very diverse gathering of open source citizens, and offers a great opportunity to expand your horizons to learn about tools and platforms you may not have encountered before. I will also be giving a variation of my PLUG Advanced Topics talk on OpenEmbedded if embedded Linux systems pique your interest.

Check out the Open Source Bridge website to learn more and register. Trust me – it’s gonna rock your socks.

Ubuntu Lucid Breaks Wget Proxy Support

Posted by Scott on Apr 28th, 2010

A big warning to the many users behind a proxy server who will be installing Ubuntu Lucid Lynx soon: wget isn’t going to work. You can read the details in this bug report on Launchpad.

Basically the problem is that if your proxy exclusion list ends with a comma character, wget can’t parse the $no_proxy environment variable and defaults to not using your proxy (usually configured in ~/.wgetrc or via the $http_proxy/$ftp_proxy environment variables). And the GNOME Network Proxy UI apparently leaves a trailing comma in there if you make changes to the ignored hosts list.

The quick workaround is to add the following to your ~/.bashrc:

export no_proxy=$(echo $no_proxy | sed 's/,$//')

I spent a couple of days figuring this out, so I hope it helps someone else. I don’t see any way the fix will be included in Lucid before it ships on Thursday, so people will need to use this workaround until then. It’s a shame because as an LTS release, a lot of enterprise users are going to run into problems right out of the gate.

Startup Weekend Recap – Rawr!

Posted by Scott on Mar 8th, 2010

Last weekend I had an incredible time launching an idea at Portland Startup Weekend. Somewhere around 50 folks showed up, and exciting products were started by nine different teams.

I had my heart set to work on an embedded Linux project over the weekend, and pitched an idea to create a device that could play internet radio streams over FM. This simple media server would allow you to walk around your home with a cheap FM radio and listen to internet radio. Given that the purpose of the event was to embrace constraints and have something noteworthy to demo by the end of the weekend, I felt this was a viable goal to work toward, even if the feature was somewhat of a novelty.

To achieve this, I took an older model Gumstix Connex embedded ARM board, loaded Angstrom (an OpenEmbedded-based distro) onto it, and paired it with an off-the-shelf FM radio transmitter I picked up Sunday morning from Radio Shack. I organized the following milestones and knocked them down one by one:

Milestone 1: Select a command-line media player that can play remote mp3 streams (I used mpg123) and verify that it can be run on the gumstix board with good performance (cpu utilization was only around 10%). Some scripts also had to be developed to make sure that network streams would get restarted if they failed or cut out suddenly (this can happen frequently with internet radio).

Startup Weekend Portland - Getting Alsamixer Running on the Gumstix

Milestone 2: Create a web-based interface for controlling the device, allowing the user to select one of several streams and start or stop playback of them, using a crude user interface.

Milestone 3: Improve the user interface by AJAX-ifying the playback controls, and add an indicator to show which stream is currently playing. This was done using the jQuery javascript library. The resulting web page still lacked a lot in the way of style, but it worked as intended and the HTML passed W3C validation.

Milestone 4: Integrate and test this setup with the FM transmitter and portable receiver. Polish the concept and prepare the demo.

The final result? Check it out:

Screenshot of the Streamasourus Rex Web Interface

As you can see, I had a bit of fun with the project. I named the device Streamasourus Rex. The T-Rex was lifted from Dinosaur Comics. Also, the guys from Mugasha (a Portland-based electronic music webapp startup) were at the event, so I thought it would be fun to surprise them by playing one of the DJ sets they offer from their site during my demo.

I have no intention to follow-through and actually create a business or product out of this, as I have my hands full of interesting projects as it is. But the exercise itself was extremely valuable and is something I hope to keep doing. It’s also wonderful and energizing to meet and hang out with people who don’t just think about ideas, but actually execute them and take some risks.

At the end of the event, each team demonstrated their progress before a panel of experienced entrepreneurs. EyeClash, a team working on integrating videoconferencing with online flash gaming, was chosen by the panel as one of the most exciting projects, and they are receiving three free months of office space at NedSpace.

Team EyeClash

I’d like to thank everyone who came out and put effort into trying something new, and especially to the organizers of the event, who did a great job keeping things rolling. I doubt this will be my last Startup Weekend!

Portland Startup Weekend, March 5-7th

Posted by Scott on Feb 22nd, 2010

In a kind of interesting mix between unconferences and programming contests like the Rails Rumble, Portland is holding a Startup Weekend event the first weekend in March. The idea is to bring together people of different backgrounds – including software developers, marketers, attorneys, and so on – and see what kind of product ideas they can start developing over a focused weekend of effort. With a bit of luck and a lot of elbow grease, some of these ideas and teams are likely to blossom into full-fledged technology startup businesses.

When I first read about this event I felt a kind of nervous energy as the realization crept in that yes, this was going to be one hell of an effort, and I would have very deep regrets if I didn’t give it a shot. So I registered for the event and look forward to some high-intensity growth experiences.

For the most part I expect the product ideas to be web application or web service-related. However given my background in embedded Linux systems, I’m planning to bring a couple of embedded boards with me and see if anyone is interested in developing an idea based on a physical product that could be sold. I’ve been becoming a big fan of the gumstix platform, but am also quite excited about the Sheeva Plug.

If anyone else in the Portland area is reading this and is even remotely considering attending, I urge you to go for it! Even if a viable business doesn’t come out of the weekend, there’s no doubt it’s going to be an incredible way of networking with other startuppy people and learning a lot about yourself.

« Prev - Next »

Blog Badges

[FSF Associate Member]