Tag Archives: Linux

My Cat Bubba Posts Videos and Twitters using an EeePC and Ubuntu

MAKE blogged about plants that notify the owner via text message or Twitter status update that they need water, and even thank their owners when they’re watered.

This got me thinking – why not a cat who sends a tweet when he’s eating? While I’m at it, why not toss in a video stream? After all, everyone loves videos of their cat. My ASUS eeePC runs eeexubuntu and has a webcam – all I would need to do to get my cat twittering is setup some motion sensing software that detects movement from the webcam, records a video, and upload to my server and then notifies me.

First, a proper “cat studio” is required. I picked up a laundry basket, some thin anti-slip mat and a couple of new food bowls for under $15 total. The laundry basked got a side removed by my trusty Dremel tool, and the anti-slip mat was cut to fit and hot-glued in place. After that was done, I had a spare light fixture with a clamp lying around to add to the mix for better lighting.

Motion is a great webcam application that fits my needs exactly. More specifically, when it detects motion, it records a video – think like a security camera, but way, way smarter. When Motion no longer senses any movement after a defined period of time, it encodes the captured video, and then it can run a script or set of commands afterwards. Bingo!

Here’s how I did it, after hours of trial and error:
1. Installed Motion 3.2.9
2. Configured and tweaked /etc/motion/motion.conf (probably still some changes needed)
3. Setup SSH to allow logins to my web server without a password.
4. Added the following to execute when a recording is finished:
Upload the file (using cat, of course!):

cat /tmp/motion/video.swf | ssh [email protected] cat ">" /home/fsckin/fsckin.com/bubba/video.swf

Update Twitter Status:

curl --basic --user "junglecrawler:password" --data-ascii "status=Done eating, humans were nice to me today." "http://twitter.com/statuses/update.json"

Remove the video off the local machine:

rm /tmp/motion/video.swf

Here’s the end result:
First Video:
[flash http://www.fsckin.com/bubba/video3660-first.swf]

Latest Video (15MBish)

This videos loop over and over. Also – if a video is uploading at the same time that someone is loading the page, it might break. If you don’t see video, just count to 10 and refresh the page. If you still get nothing, bookmark this on del.icio.us and come back later.

Note: Audio is not yet supported by Motion, however, an experimental patch enables this already and should be be in the next version. This is a proof of concept, and it will probably be running for at least the next week – after that, who knows. All I know is after I’m long forgotten, Bubba will live in perpetuity as truly the first cat who uploaded videos of himself eating and sending tweets to his human slaves.

Follow Bubba on Twitter. Or, follow his slave, Wayne.

gOS Space and myMiniPC: Bling-Enabled Desktop for Myspace

The 100+ million “average joe” Myspace users are about to get mind blowing eye-gasm with the brand new myMiniPC with gOS Space 2.9 – and I’m not talking about some spicy profile pictures. Combining the Avant Window Navigator dock and Compiz Fusion 3D effects is going to provide a desktop experience generations beyond what Redmond’s latest offering in a slim form factor 1.5 inches tall and a mere two pounds.

When I spoke with David Liu about the product, he said, “I enjoy tackling these giant companies that I feel symbolize a huge population of average joes.” Six months after launching the gPC in Wal*Mart in front of 140+ million shoppers for a price the couldn’t refuse, now he’s leveraging freely available content on sites like YouTube, Flickr, Pandora and many others with the myMiniPC.

The icons on the left side of the dock are Myspace, News, Photos, Videos, Music, TV, Tools, and Fun. On the right side, four brand new Myspace Apps are featured: Mood, Clock, Graffiti, and Quotes – one app for each face of the desktop cube.

Myspace icons range from Blogs to Music and everything in between, for users to quickly navigate around the site or launch new instances of Firefox. Stuffy news agencies like BBC or CNN have been replaced with links to popular blogs such as Perez Hilton, TMZ and Valleywag.

Flickr and Photobucket populate the Photos icon along with three others. The videos icon has a whopping nine options: Daily Motion, Google Video, Meta Cafe, MyspaceTV, Revver, Veoh, Vimeo, and YouTube. I could go on all day about how much is a single click away – if you’re interested in more information, feel free to browse the screenshot gallery below, or simply watch my video about gOS on YouTube with a short demo.

The logic behind building an operating system out of web applications quickly becomes obvious as you go down the dock viewing each category. These companies have banked billions of dollars by using content created by their users. Making that content easily accessible is the key to providing a channel surfing experience for the web.

With tax refunds just around the corner, the $499 price on the myMiniPC is perfect. gOS Spaces 2.9 should be available soon, I urge you to test it out and tell your friends who are on Myspace about it. Got a suggestion, question or comment? Go ahead and Ask Dave yourself – I’m sure he’ll be happy to oblige your request. Here are some specs, screen shots and video of gOS Space 2.9 for your viewing pleasure.

myMiniPC specs:
• Intel® Pentium® Dual-Core Mobile Processor T2130 (1MB L2 Cache, 1.86GHz, 533MHz)
• 512MB DDR2 667 SDRAM
• 120GB Hard Disk Drive
• DVD+/-RW
• Intel® Graphics Media Accelerator GMA950
• Realtek ALC268 High-Definition Audio
• (4) USB 2.0 ports
• (1) IEEE 1394
• (1) 10/100/1000 Ethernet Port
• (1) DVI-I Port
• (1) S-Video Port
• (1) 4-in1 Media Card Reader
• (1) Headphone/Line-Out Port and (2) Microphone/Line-In Port

Screenshots:

Video:

Ubuntu Hardy Heron 8.04 Release Notes Rewritten in Plain English

If you have been using Windows all your life, it’s no secret that switching to Linux is not an easy decision to make. Last September I was fed up with Windows Vista and decided to make the plunge.

It wasn’t easy. I wouldn’t recommend it to everyone. The day where I can recommend that my father use Linux (without the fear of him calling me on a daily basis to fix things) is the day I’ll proclaim the “year of the Linux desktop” has arrived.

I’ve spent hours upon hours trying to get things working, and as time goes on, those problems get easier to solve. One problem that I find runs rampant in the Linux community is over-using jargon, acronyms and sometimes even program names that people just assume you know what they’re talking about. It’s not intentional, but sometimes it’s difficult for me to wade through, even after using it exclusively for near 8 months.

Ubuntu, who has made tremendous progress towards making life in Linux easier has it’s own share of problems. One of those problems is highlighted in their release notes.

Ubuntu claims to be a “Linux for Human Beings,” and for the most part they actually do a good job of it. One place they fail miserably is in their release notes – they’re just too damn complicated for anyone who doesn’t know what all the different component names stand for.

I’ve set out to accomplish the simple task of converting the techno-jargon into readable english that anyone can understand, by using simple language and avoiding program names, acronyms and version numbers.

A fantastic example of getting the “Feature List” documented properly, while not overwhelming the end user is the absolutely gigantic 300+ New Features list for Mac OS X Leopard. I’m not kidding.

Just about every documented feature describes what value the change is for the user. This is what is important! Users don’t care about the latest version of Program X, they want to know what benefits they’ll see from the new version.

I’m targeting Ubuntu here, since it’s what I still use on my desktop. They also have a petition on their user-submitted idea website to stop including such technical information in the release notes so “mere mortals” can understand what is changing in the new versions.

With that out of the way, let’s get started. First, the name of the upcoming release, which is less than a month away is called “Ubuntu Hardy Heron 8.04 LTS” Even the name needs to be explained for someone who is brand new:

Ubuntu is the name of the distribution.
Hardy Heron is the “Codename” of the release.
8.04 is the version, which designates that it is being released in 2008, in April (the fourth month).
LTS means software and security updates are provided for three years.

Now that we have the name, codename, version, and support defined, let’s go a little further into the rabbit hole.

New Features since the last release:

The latest version of Ubuntu includes upgraded core software which helps to save electricity for some of the newer 64-bit computers and laptops purchased in the last 5 years. This core upgrade also improves performance as well as new support for more hardware like printers, scanners, and other peripherals.

Enjoy a better first-time installation experience with our improved screen settings detection system. If problems arise with display settings, your computer should be able to recover gracefully.

There is a new utility to change your screen size, which is especially useful if you have two monitors. This also means that if you have a laptop and an external display (i.e. projector or 2nd monitor) you’ll be able to change things like screen size, and choose which monitor is your primary output easier in the latest version.

Hurray! The computer and file browser has been updated! This version has new features for pausing large file transfers, and also makes it possible to undo accidental file moves. If you try to send files to a folder you don’t have permissions for, you will be asked for the system password to complete the requested operation, instead of getting a nasty error message.
nautilus-gvfs.jpg

If you attempt to make changes to the computer that would normally require a system password to access, there is a new “Unlock” button on some dialogs to make it easier to understand what needs to be done to change the setting.
beta_polkit.png

The new sound system is fantastic! Now you can play movies, music, and voice chat at the same time without running into problems.

We have upgraded to the newest version of the award winning internet browser, Firefox. It looks better and runs faster than before, while still remaining as secure as ever. We think you’ll like the improved experience.
firefox3-beta4.png

Downloading large files has a new, more informative interface. You can easily see download speeds, percent completed and estimated time to completion.
transmission-gtk.png

The remote control application has been updated. You’ll be happy to know that accessing multiple computers is now easier than ever, and you can automatically find other computers to connect to on the same network.

Burning CDs and DVDs just got a whole lot easier with an easy to use wizard-based program.
brasero.png

Displaying Time and Weather in other time zones is simplified, thanks to our new World Clock program.
intlclock.png

We added in a program for making posters, signs, family tree charts, and everything else that you might think about taking to a print shop. Now we can save those files in a format that your print shop technician can use.

If you have a “Windows-only network” at work, you’ll be able to login to the network easier if you take your computer into the office.

Many additional security issues have been resolved before they ever became a problem in our latest release, thanks to our development team who specializes in finding bugs – before they find you. We also updated our firewall software, just in case.

If you thought you needed help in the past to get Ubuntu on your computer that has Microsoft Windows on it right now, you’ll be happy to hear that we have integrated a new installer that works right in Windows. Just put in the CD and you will automatically see the Ubuntu Setup menu, just type in your desired username and password and press “Install” – it’s that easy to get started.

One more thing.., we made also changed to the way your computer works with hard drives and other memory so that it runs faster. How nice of us!

Need to know more? Check out our detailed release notes.

Think this is a good idea? Make your vote count, it takes less than 30 seconds to register and vote.


This message was paid for by The Linux Isn’t Just For Geek Types Anymore Campaign.

Twittering from the Command Line

Since I’ve started using Twitter, I’ve been on the hunt for a command line version, so I don’t need to start up a browser or send an SMS on my phone. As I found out, it’s pretty darn easy to Twitter from the command line.

In Ubuntu, install curl with apt-get install curl, then create a file paste the line below into it, modify the username and password strings:
curl --basic --user "username:password" --data-ascii "status=`echo $@|tr ' ' '+'`" "http://twitter.com/statuses/update.json"
Save or copy the file into /usr/bin, and you’re done.

And then you can do something fun like this:

Twitter Command Line Interface CLI for Linux

The result is equally tasty:

Twitter Command Line Interface CLI for Linux

I’m brainstorming a few strange uses for this, something like setting up tweet notifications of long-running batch jobs that finally finish. Or this might be a good way to prank someone, just have a cron job running that spits out random logfile garbage every few days… LOL. You guys got any other ideas?

Roadmap Analysis For Ubuntu Hardy Heron 8.04 LTS Revisited

Five months ago, I wrote an article about the next version of Ubuntu’s roadmap for Hardy Heron 8.04 LTS, with my own personal ideas of ideas were most interesting that had been proposed.

Let me itterate something important: these are just my ideas, I’m just a spectator. Nobody called me up and said, “Hey Wayne, thanks for the heads up on dual monitor support, we’ll get right on that!” I’m pretty sure Ubuntu developers know that dual monitor support is pretty important for those who have two monitors.

That article generated over 60 thousand unique visitors since it was published, which means roughly 450 people per day on average have been looking at my thoughts on the roadmap. With approximately one more month to go in the Hardy development cycle, I’m extremely curious – of the 28 items on that list, what has been accomplished, and what hasn’t? We’re about 10 days away from the Beta release, which should be feature complete.

Now for a little background: Many of the items scheduled on the Ubuntu roadmap were discussed at the Boston Ubuntu Developer Summit (UDS), and it seems at least a few of the Blueprints were scribbled on napkins. According to the Ubuntu Wiki, the summits are “an opportunity for Ubuntu developers — who usually collaborate online — to work together in person on specific tasks.”

The most interesting improvements I noted at the time were in three key groups: User Experience, Networking/Security and Support. A grand total of 28 ideas that had been proposed that I thought were worth mentioning.

So let’s get to it, shall we?

User Experience
1. Human Theme: Received a minor touch up. Less brown, more white. Nice abstract penguin desktop background. The major overhaul for the Ubuntu Human Theme has been delayed for 8.10.

2. Make Adding Third Party Apt Repository Easier: GUI still in the Software Sources application, but no .APT file format has been finalized or work started other than a guideline. I guess it will still remain difficult (if you call adding a line to sources.list difficult) to add third party software repositories like WINE to get the latest releases.

3. Upgrade to X.org 7.3: Done. We’ve got bullet-proof X, compositing by default, “themed” unlock screen, and a disabled CTRL+ALT+Backspace? Ugg… I liked the ability to kill X when it crashes.

4. Automatix Collaboration: Not sure on this, there isn’t a package available for Hardy Heron on their website yet, but it’s marked as being “started” on the blueprint. Your guess is a good as mine.

5. Dual Monitor Suport: Untested (I don’t have two monitors), and as of yesterday, was marked as deferred on the Blueprint. However, the developer of this posted on his blog in late February that he had uploaded a new GUI for Xrandr. And there’s been an update today on the blueprint, it’s now marked as Beta Available, if you’re interested, hit the link above. Great progress! This recent progress is a indicator that this update is a bit premature in the Alpha stage, but I think it’s a good thing to update people on what’s happening so far.

6. Super-Slick-Boot: “Pending Approval” status on Launchpad, not implemented. This is one of the cooler things that I thought would add some flair and polish to Ubuntu – but there are some underlying issues that need to be addressed first. It would be fantastic to have a smooth transition from BIOS into window manager, kinda like how Macs boot up – you turn on the system, get a nice loading sound and splash, and then everything smoothly loads up in the background. We’re not getting that just yet for Ubuntu.

7. Don’t Overwrite the /home partition during new installation: This appears to be superseded by a new spec called “Ubiquity Preserve Home” which is linked above, and there is a beta available. Didn’t see it in action when I installed Alpha 6.

8. Warn About Impending DOOM Full Disks: Also linked to a blueprint regarding Making Free Space Wizard, does not appear to be implemented, yet.

9. Prefetch: There has been a beta available for quite some time, this has been worked on since April 2007. Deferred until 8.10.

10. Easy File Sharing: Appears like this will be merged with Easy File Sending, marked as low priority. I don’t know about most of you, but I’ve got more than two computers in my house, and this is highly desired. OpenSUSE uses Giver, which looks like a good option.

11. Single Click Install: Still being discussed at this point, nothing appears to have been coded yet – this is in the same boat as 3rd Part Apt repositories, and I would imagine at some point would be merged.

12. Add/Remove Programs “Storefront” with featured applications: Not implemented. The main point is that Add/Remove programs is not nearly as robust as Synaptic (which is a little bit “kludgey” in my opinion). The idea is to add in a ratings system (votes up/down), and use some sort of web front-end to create a “Featured Applications” screen when loading up the Add/Remove application. Sure would be nice!

13. Simple Samba: Reports of Shared Folders upgrades have been greatly exaggerated! Not gonna happen this release.

14. Redesign of “About Ubuntu” Menu: This has been superceeded twice by newer blueprints. This is currently in a beta stage, and I would imagine this is going to be included in Hardy unless something goes terribly wrong. It doesn’t seem like a difficult proposition to create a screen that displays information about the computer and distribution version.

Network/Security
15. Modular /etc/network/interfaces: Splitting the interfaces file into multiple directories or files has been throughly shot down, dragged behind a car for a few miles, burned at the stake, and ashes spread at a landfill. I do genuinely appreciate the input provided by Soren Hansen on this idea, but I’m not surprised on the outcome.

16. Dialup/ASDL Support: I’m confused – only a medium priority for people to get on the internet and manage their connections easily in Network Manager? Same with NDISwrapper – it should be included in the distribution by default. At least 3400 people voted on this idea at Ubuntu brainstorm, and is the 2nd most popular idea on the website.

17. Encrypted FS: Not started, low priority, not going to see it. :(

18. Live-CD Share This: Manual scripts have been created and floating around for awhile, but as of yet no integration into Hardy. I don’t think we’ll see this.

19. Stop running GKSUDO for Administrative Tasks: Not implemented. “The process of requiring the user to enter a password before they even open the dialog is a bit disruptive.” Agreed! Why can’t this be fixed? It’s not gonna happen.

Support
20: Measure Install Success: Not approved. This was semi-interesting for me since we would have a better idea of how many Ubuntu users are using the latest version. Right now the numbers in the millions keep getting floated around, but how accurate can they be?

21: Locate Local User Groups Upon Installation: I’m really disappointed this was not approved. What should happen is after a successful installation, your local user groups would be displayed to you in an application, or a website – instead of the current About Ubuntu page that nobody actually reads. Poor form. And to top it off, someone decided to add in some horrible “map zooming” function in the time zone selection step during the installer… to explain it better, just think of using a telescope without a tripod to locate your city on a world map from about a foot away. It is difficult to click on the correct city/area since the sensitivity is set very high.

22: Make Use of “hidden” Packaging Forum: This nook of the Ubuntu forums seems like a good place to expand, but it’s not going to happen before Hardy Heron.

23: Screencasts in the Help Menu: Help>Tutorial Videos – Not approved.

24: Forum Content Certification: To date, no team has been created to police forum content and keep original forums posts with how-to instructions updated, however, a “Thank you” system has been implemented – which is a fair compromise for the time being. This is the kind of thing that is taken care of on an as-needed basis.

25: Teacher Input on Edubuntu: You might think that someone asked a teacher about what they needed in Edubuntu before it was created, but apparently that is not the case! Surprised? I was. The blueprint hasn’t been updated, but it’s plausible that it happened at some point.

26: Automatic Bug Reporting: Privacy concerns stopped this idea from becoming the next big brother feature.

27: Ubuntu Mobile Browser: Ubuntu Mobile announced instead. Good judgement call, I say.

28: Install Ubuntu from within Windows: I am very pleased to announce that Wubi installer is included on the installation ISO image now – I’m not sure if it’s integrated into the autorun menu that popped up before, but it’s certainly there.

By my count, there are 9 out of 28 “important” ideas that are at the very least partially implemented. Everything else is deferred or never started. Does this mean that Ubuntu is loosing momentum? I don’t think so. Does it mean people are going to look elsewhere for their Linux fix? Perhaps.

As time goes on, I am of the opinion that Ubuntu needs to buckle down after 8.04 is released and really focus on getting the big features mentioned here implemented as soon as possible. I know that some issues exist upstream, that they have no control over. However, things like the updated Human theme that get delayed are extremely visible to users, especially after being so heavily touted as being a major feature – until 8.10 you get to enjoy a small palette change.

It’s not like I have much to complain about, I’m colorblind. That’s the luxury of being an “armchair critic” – I can sit back and enjoy the show and comment on things as I see it. Am I going to switch anytime soon? Probably not.

Tiny little bit of website news here, I’m going to start twittering more often about upcoming articles I’m working on here, my RSS feed is pointed at it, so you’ll get updates on twitter when there are new articles posted, feel free to follow me. :)

Unboxing the Asus Eee PC and First Impressions

Supporting companies that offer Linux support or Linux-based products is extremely important for the alternative operating system to succeed in the retail arena. This alone is the most compelling reason why I decided to buy an Asus Eee PC.

This isn’t a new phenomenon for myself, buying Linux supported video games solely for the reason that they support Linux has become my new hobby.

Ever since the diminutive laptop was announced at Computex in Taipei, June 2007, the idea of having a small laptop for school, coffee shops and elsewhere has been lingering in my mind for quite some time, and finally I’ve found the perfect device.
Continue reading

Interview with Sean Moss-Pultz, CEO of OpenMoko – Ninjas *ARE* Better Than Pirates

Sean Moss-Pultz was kind enough to answer a few questions with fsckin w/ linux. He’s got some pretty interesting answers to questions plaguing geeks and non-geeks alike, such as the eternal debate on which is better – Ninjas or Pirates? Keep reading for some candid responses from the CEO of the company behind the Dash Express GPS device and the in-development OpenMoko phone. Dash was recently named one of the top 10 startup companies to watch in 2008 by Wired Magazine.

0. How did the name “OpenMoko” come about, and does it have a meaning behind it similar to the Neo1973?

“Moko” is short for Mobile Kommunikations. Think of the “K”’s as a tribute to all hackers around the world that build software that drives our platform forward.

“Open” is obvious. But what we mean by “open” perhaps is not. We’re not just talking about software. It’s really the entire business model of our company. For example, this coming week we will release the full mechanical CAD drawings of our Neo’s case. We want people to remix our work. We want to be open from the iron to the eyeballs.

OpenMoko started as a project inside FIC (Taiwan) and has recently been turned into it’s own company. So, we’ve had to build a open software stack, build a team, build a product, plan a future, and build a company, while everyone gets to watch.

Most of the challenges, I would say, are philosophical in nature. Not technical.

In an closed company you go through various stages of hardware development. These stages are hidden from the general public. Prototype hardware is built and passed out to a few select internal developers. Later, more hardware is built. In a pilot run. This is distributed internally to more engineers in the company. Finally, it’s presented to the public like it just came out of the oven.

OpenMoko is inside out. Our prototype are shared with developers around the world. Why? because our engineers are outside the company as well as inside.

In some ways we are like a reality TV show. Showing how one builds a gadget of the future. It’s like a cross of Survivor, Dirty Jobs, and Ice Road Truckers.

1. What is your favorite brain-food? Favorite beverage?

Not sure if nachos are brain-food…but I love them! As for drinks, I would say nothing is more refreshing than water. I like things that can blend in to any environment.

2. Awhile back you said “failure is not an option.” Would you expand on that statement and explain who ultimately looses if you fail?

Hehe…perhaps I was caught up in the passion of my own thoughts. Working every breathing second of the day on something for more than year will do that to you ;-) The point that I was trying to make is that we (collectively) need the phone to be freed. It’s the only way major change will occur in this mobile industry.

3. In a philosophical sense, which is better: Ninjas or Pirates?

Oh ninjas all the way. They were artists using their art to ensure their survival in a time of violent political turmoil. Their strategies were cultural opposites of the conventional ruling Japanese Samurai class. But they lived in harmony with nature. And always kept an eye to where the future was heading.

OpenMoko has an internal ninja. You’re hear more from him later this year.

4. Due to the touch screen and lack of buttons, comparisons are inevitably made between your product to the iPhone. Two questions in one: Why is being compared to the iPhone a good thing? Why is it bad?

It’s a good thing because it brought us lots of press. It’s a bad thing because most of the press talked about us as an iPhone killer. That’s not at all what we’re trying to do.

End user freedom is our passion. Apple gives you an incredibly polished experience. Exactly how you they want you to have it. But the end user really has no freedom. They cannot change the device if they don’t like the way Apple choose to make things.

All these comparisons, unfortunately, caused a lot of confusion. But in the end it was all good. We were forced to refine our message.

5. How much can you bench press?

Not sure anymore…but I can still bench my weight. And I’m gaining weight here in Taiwan (too much good food) ;-)

6. Your device seems to pull the opposite direction in where carriers seem to be headed. Revenue streams such as ringtone purchases and other paid-for customizations would obviously be impacted by your project. Have carriers in general expressed any interest in OpenMoko despite the drawbacks?

Carriers are extremely interested. But their reasons vary as much as their responses. So I think it will be a while before see us packaged with 2-year contracts.
fic-neo1973_small.jpg
Right now we’re focusing on being fast and flexible. So we can react to what our customers want. This is a huge challenge because of the scope of our efforts. Most companies choose either software, hardware, or manufacturing. We’re doing all three. I’m convinced this is the only way it’s possible to making a completely open phone.

7. Is OpenMoko affected by the Year 2038 Bug?

Probably. But we’ve got a heck of a lot more serious Year 2008 bugs.

Anybody want to help? :-)

8. (As far as I know) OpenMoko hasn’t adopted GPLv3, instead opting to utilize the GPLv2 and LGPL. What are the reasons for using licenses other than GPLv3, and is the GPLv3 compatable with “doing business” in 2008?

I am not a lawyer so I only feel comfortable replying on a personal level. I really the message behind GPLv3. The loopholes it tries to close are real and destructive to the spirit of the original message. In short we will use it. But I cannot make a sweeping statement and say we will use it for everything. Besides, technically that’s just not possible. We make products and a software distribution. This forces us to work with many different licenses.

To deal with these kind of problems we have come up with something we (informally) call our “Software Freedom Requirements”. These are still being refined, but let me just state what we have now:

1) Libraries cannot be GPL — The idea is that libraries are what you use to build your house, your private space that you can control in any way you like. Our preference is LGPL, BSD/MIT less so, but still acceptable. GPL is not acceptable.
2) Everything but libraries should be GPL — The idea is that this is the shared public good, democracy. LGPL and even less so BSD/MIT would be acceptable, but not be loved. We think that those licenses defend the rights of developers, but not the rights of the end user.
3) Contributions must be welcomed back — A company that wants to work with us has to accept valuable contributions back into their mainline, without transfer of copyright, based on technical rather than political merit. This makes dual-licensing impossible. If the company has a program of buying back contributions including transfer of copyright that is also acceptable, as long as valuable contributions will indeed get bought back.

We also have “Hardware Freedom Requirements”. Equally as important, because, as Wolfgang Spraul once said, “Software is what makes hardware dangerous.” ;-)

Listed in order of priority:

1) Fully and publicly disclose datasheets, [or]
2) Fully disclose datasheets to OpenMoko and allow us to use that documentation to write a documented GPL driver, [or]
3) Fully release an existing driver under the GPL.

We’ve worked with those for almost a year now. So things are extremely concise. Hopefully we can simplify our message in the Software Freedom Requirements over time.

OpenMoko is, and will always try to be, the most progressive mobile distribution available. Like Moglen, we want to “Resist the resistance!”

9. What’s the progress on your AE86 restoration? Got any pictures yet?

Since OpenMoko started just about everything else in my life has stopped — my AE86 is no exception. Here’s a picture — about 75% done.
Sean Moss-Pultz’s AE86

graphic-product-santa-teresa.jpg
10. The Dash Express was recently announced and uses almost the same hardware that the OpenMoko does. I would assume that there was some significant collaboration with their teams. How much work was able to be directly integrated back into the OpenMoko project?

Yeah lots of collaboration — we’re all the same team ;-)

This was our first OpenMoko-based device that will ship in high-volume to the consumer. So naturally we’re thrilled with results.

Look for more great stuff in 2008. We’re just getting warmed up.

I’d like to personally thank Sean for spending the time to answer these questions. I for one am eagerly looking forward to progress OpenMoko makes towards launching a mass-market open source phone. You can count on at least one person (me) to ditch their locked down, proprietary iPhone when OpenMoko’s device is ready for prime-time.

HowTo: Setup and Benchmark Encrypted Partitions in Ubuntu

In a previous article, I talked about using shred to securely delete files. Now we’ll delve into using encrypted volumes in Linux to secure our data in the first place, so that we don’t need to use programs like shred. Along the way, we’ll benchmark the raw performance of an encrypted volume and compare the results to an unencrypted volume and see just what kind of real world compromises we see.

To start out we need free space on a drive that isn’t partitioned, or enough patience to resize an existing one. Just about everything here needs root privileges, since we’re working with filesystems. It would be easiest to start a root terminal withsudo su, then enter your password.

First, we install the tools to get the encrypted partition going:
apt-get install cryptsetup hashalot gparted

Next, we use gparted to create a 20GB partition at the end of my disk. It’s a dead simple drag n’ drop application similar in function to Partition Magic or other GUI partition editors… hopefully you don’t need instructions. Make sure to record the name of the new partition! Everything here that says /dev/sda2 is going to change based on your hardware and partitioning scheme.

After that completes (which can take some time if any resizing or moving of an existing partition happens), we need to set a password.
cryptsetup --verbose --verify-passphrase luksFormat /dev/sda2

This command will create a device called /dev/mapper/sda2 and give us access to the encrypted volume after verifying the password:
cryptsetup luksOpen /dev/sda2 sda2

By now we’re knee deep in waist-high water. I’m not quite sure what that means… I just made it up. Say it out loud… rolls off the tongue. Sorry… where was I? Ah right. I’ll try to explain where we’re at right now, for my benefit as well as yours.

At this moment, we have a partition called /dev/sda2. That raw partition now has an encrypted container inside, located at /dev/mapper/sda2. The last step is to actually format the encrypted volume so we can actually put some files on there. This can also be done in gparted if you want to split things up into multiple partitions, use the drive dropdown box to find the mapper.
/sbin/mkfs.ext3 -j -m 1 -O dir_index,filetype,sparse_super /dev/mapper/sda2

Next, we’ll make a directory to mount the encrypted volume and then actually mount it:
mkdir /mnt/test
mount /dev/mapper/sda2 /mnt/test

Now we can copy files into /mnt/test and every file located there will be encrypted. Sweet!
To unmount the volume, use the following commands:
umount /mnt/test
cryptsetup luksClose sda2

I bet you’re asking the question we all are… How fast is it? Good question. The answer is a pain in the ass to be honest. This almost ended up being two separate articles because the benchmarking was not going very well… but here we go… how to benchmark hard drives in Linux with FOUR different tools:

Method:
The first plan I had was to perform two separate clean installs on an entire disk, run several benchmarks and quote some articles on how hard it would be to crack into the encrypted disk. Those results followed the expected trend of a significant (approximately 10%) degradation in read, write, and seek times on the encrypted volume. However, those results could be tainted, because they were run in a graphical environment that had lots going on in the background. I decided to throw those out. More accurate results tied directly to actual performance can be achieved by installing a text-mode only system, and using a separate partition at the end of the disk. By using failsafe text mode, we’ll limit the number of extra services/daemons/etc running.

Testbed:
Processor: Intel E6400 Core2Duo 3.2 GHz
Hard Drive: Western Digital 150GB RaptorX 10,000 RPM
RAM: 4GB, no swap partition used.

Benchmarks Used:
Bonnie++ 1.03
Options: bonnie -s 14176 -d /mnt/test
Bonnie++ is a benchmark suite that is aimed at performing a number of simple tests of hard drive and file system performance. The -s 14176 option sets the program to use is four times the amount of memory available on our testbed, which is the recommended setting. This is to make sure the OS is not doing any sort of caching in RAM to skew results. -d /mnt/test sets the program to use /mnt/test as the location to save the temporary file. Bonnie is a nice benchmark, but it’s got a problem. The results are nearly indecipherable to read by someone unfamiliar with the output, and this page helped me read them.

bonnie.png

PostMark
Options: set size 10000 10000000 (10KB - 10MB pseudo-randomly sized files)
set number 2000 (2000 generated files)
set transactions 2500 (2500 read/write/etc actions made on those files)
run
quit

PostMark is a benchmark for servers. We can use it and gain some additional insight into how a server would function if it were working on 10KB to 10MB sized files… it’s a benchmark that would need to be customized for the application desired to gain any direct correlations from the results.

pm1.png
pm2.png

IOZone3 3.279
Options used:
sudo iozone -a -R -g 10g -R -f /mnt/test/iozone
Iozone is useful for determining a filesystem performance. The benchmark tests file I/O performance for the following operations: Read, write, re-read, re-write, read backwards, read strided, fread, fwrite, random read/write, pread/pwrite variants. The options setup the following variables: Auto Mode, Excel/CSV formatted results, create a 10GB test file on /mnt/test called iozone.

IOZone outputs a TON of data, and they have lots of pretty graphs on their website, but there’s more than enough analysis already for this article. Here are the two Excel (???) formatted files for your pleasure. No graphs by are included in the output by default – shame really, since their graphs look great. iozone.zip

Easy-Bake Tar-Gzip-Gunzip-Untar Oven Benchmark Test
For the last test, we’ll use a home-grown benchmark using tar to archive 3.5GB of highly compressed HD videos, gzip the archive, then unzip and untar the compressed tar.gz file into the current directory, forcibly overwriting the existing files. This constitutes a “real-world” scenario more than the above benchmarks with reads, writes, re-writes and plenty of seeking. We can easily count how long each operation takes to complete and get a really quick, dirty and simple comparison with time counted for each operation. The fact that we’re working with the same data four times… do the math – at least 3.5GB of data traversing to and fro across the subsystems of the testbed 8 times (input/output cycles for each action) for around 28GB of data flying about. The unencrypted data manipulation test completed 42 seconds faster, for a 6% lead over the encrypted filesystem.

time tar -cf archive.tar *.MTS && time gzip archive.tar && time gunzip archive.tar.gz -f && time tar xvf archive.tar --overwrite

Not shabby at all for something I pulled out of my rear Easy Bake Oven, eh?

Here’s graphs of the results:
snapshot2.jpg
ebo-resize.png

Conclusion:
When attempting to benchmark a filesystem, there’s so much choice out there. We know there should be a performance hit when running an encrypted filesystem, and we can look at all the graphs we want, but in the end, you’ll see a 5-10% degradation in speed when running an encrypted drive.

That’s it for now, I’ve got an interview lined up with Sean Moss-Pultz, CEO of OpenMoko later this week… Did I mention now is a good time to subscribe to my RSS feed? Let’s get that ol’ counter on the side a notch over 1k, shall we?

State of Affairs: The Linux Girlfriend Project – Two Months In The Trenches

About 2 months ago, I convinced my girlfriend to try out Linux for a month after a really nasty bit of spyware infected her computer. This isn’t a bash on Microsoft, but it happened twice in about a month.

Unfortunately, a roommate who pays a portion of the internet bill (and thus welcome to use the computer, which is located in the living room) likes to browse nefarious websites, I’ll let you speculate what type of websites he visits. Browsing those kind of sites by itself is completely fine by me, as long as it doesn’t fsck up the computer. The spyware/adware/etcware attracting behaviors of the roommate got some nasty sh!t on the computer – TWICE in a month. I tried to get everyone in the house to use Firefox, and that went over well.

Even if the shady websites are surfed upon using Firefox, if you install software from said websites, it’s all over anyways. I can’t help stupid user syndrome. Quite simply, I had enough at that point, I’m sure as hell not going to backup, fdisk, format and reinstall Windows every two weeks. Plus, I really don’t want to have that uncomfortable conversation with the roommate about his online behaviors, to be honest.

Push came to shove, and my girlfriend let me install the operating system of my choosing, since I would be the one supporting it.

We tried out Puppy Linux because it has good performance on older computers. That didn’t go so well. Getting wireless to work with ndiswrapper was a real pain in the neck in Puppy.

Eventually, I ended up settling on Linux Mint, and a few customizations later, the computer had an uncanny resemblance of the Windows XP operating system it replaced – “Start Menu,” Bliss background and everything. It was good enough to fool both roommates… they’ve NEVER mentioned a peep about any problems at all. As a test, I asked one of them (who were unaware of the switch) if they noticed any problems with the computer since I had been working on it.

“No problems at all, it’s been great. Ever since you changed it to Firefox it runs faster once it’s loaded up.”

I don’t even think they know they’re using Linux, to be honest.

There have been a few issues that presented themselves over the past two months after the switch, but they were minor cases of vendor lock in – both Blackberry and the iPhone don’t happily sync or upgrade firmware easily on Linux. Technically, it is possible to get them working. Are those righteous hacks usable by a mere mortal? No way in hell! So we ended up settling on a dual-boot scenario.

There have been a few issues other than the phone synchronizing, such as an Adobe Flash or “IE Only Website” render problem here and there, but other than those, nothing notable has come up in quite some time.

Overall, I’d say it’s been a success. These .exe files keep popping up on the desktop every once in awhile… but as the saying goes… No harm, no foul.

Addendum: She loves The GIMP, and has spent many hours playing klickety, which is an addictive bejeweled-ish color matching to clear the board game. Also, there seems to be a graphical driver issue where the computer seems a little bit sluggish. I think a video card change would fix that up nicely.

Using Shred to Wipe Hard Drives – DoD Uses It – You Should Too!

Hard drive encryption (and to a lesser extent, secure hard drive erasing) has been in the news regarding child pornography crossing the US border, government officials around the world erasing incriminating emails and other nefarious headlines.

The one that caught my eye was of a person crossing the border from Canada into the United States.

His laptop was searched in customs. Border Agents found all kinds of pornography on the computer (including child pornography) and arrested the owner of the laptop. Later on, when the computer-savvy investigators went to collect evidence on the computer, they were presented with an interesting prompt when they attempted to access the Z: drive.

Enter your PGP passphrase:

PGP is short for “pretty good privacy.” PGP is so good, in fact even the government can’t break into the files on the computer. The investigators couldn’t collect any evidence.

When a grand jury instructed the man to provide the passphrase, the judge cited the 5th Amendment and agreed with the defense that he cannot be compelled to divulge the passphrase. According to the 5th Amendment, he cannot be obligated to testify to his own detriment. In court, the man said he “wasn’t sure” if child porn was on the computer. He admitted to downloading lots of pornography, and if he found kiddie porn, he deleted it.

Sensational stories like these tend to cast a negative light on tools like encryption and permanently erasing files. If you’ve got nothing to hide, you wouldn’t use these tools… right?

Wrong!

The more paranoid folks among us would immediately be able to name a dozen or more reasons. I’ll just name a few real-life senarios that happen every day to people all over the world, often times due to unfortunate events such as a company or government laptop going missing, hell… even a 1.44MB floppy disc contained a hundred thousand records of some government employees in the UK.

Here are the bigger ones…

1. Identity theft.
2. That “home video” you promised to destroy.
3. Selling a hard drive or other rewritable storage device.

That said, GNU shred which is part of coreutils is a great tool to delete those sorts of files we all probably use at one time or another.

Here’s a snippet of the manual:

NAME
shred – overwrite a file to hide its contents, and optionally delete it

SYNOPSIS
shred [OPTIONS] FILE [...]

DESCRIPTION
Overwrite the specified FILE(s) repeatedly, in order to make it harder
for even very expensive hardware probing to recover the data.

Mandatory arguments to long options are mandatory for short options
too.

-f, –force
change permissions to allow writing if necessary

-n, –iterations=N
Overwrite N times instead of the default (25)

-s, –size=N
shred this many bytes (suffixes like K, M, G accepted)

-u, –remove
truncate and remove file after overwriting

-v, –verbose
show progress

-x, –exact
do not round file sizes up to the next full block;

this is the default for non-regular files

-z, –zero
add a final overwrite with zeros to hide shredding

And the comments from shred.c, written by Colin Plumb:

* Do a more secure overwrite of given files or devices, to make it harder
* for even very expensive hardware probing to recover the data.
*
* Although this process is also known as "wiping", I prefer the longer
* name both because I think it is more evocative of what is happening and
* because a longer name conveys a more appropriate sense of deliberateness.
*
* For the theory behind this, see "Secure Deletion of Data from Magnetic
* and Solid-State Memory", on line at
* http://www.cs.auckland.ac.nz/~pgut001/pubs/secure_del.html
*
* Just for the record, reversing one or two passes of disk overwrite
* is not terribly difficult with hardware help. Hook up a good-quality
* digitizing oscilloscope to the output of the head preamplifier and copy
* the high-res digitized data to a computer for some off-line analysis.
* Read the "current" data and average all the pulses together to get an
* "average" pulse on the disk. Subtract this average pulse from all of
* the actual pulses and you can clearly see the "echo" of the previous
* data on the disk.

*
* Real hard drives have to balance the cost of the media, the head,
* and the read circuitry. They use better-quality media than absolutely
* necessary to limit the cost of the read circuitry. By throwing that
* assumption out, and the assumption that you want the data processed
* as fast as the hard drive can spin, you can do better.

Oh, the things you can find in source code header comments…. that’s fantastic commentary from someone who knows about the topic.

I ran a 6-pass random wipe (followed by a round of zeros) on a 160GB hard drive as well as a 2GB flash drive that were laying around the house. I’m sure there was all sorts of personal information on those. The 160GB drive took about 7 hours to finish and the 2GB thumb drive took about 26 minutes to complete.

I’ll be writing an article on using PGP to encrypt a hard drive in Linux in the near future, but in the mean time, enjoy the video of my 2GB flash drive loosing another 7 write cycles off it’s rewrite capacity. :)

http://www.youtube.com/watch?v=vXEprj2huuQ