Mike Levin SEO

Future-proof your technology-skills with Linux, Python, vim & git... and me!

Plugging Up Productivity Plight With Windows 8.1 Tablet

by Mike Levin SEO & Datamaster, 11/21/2013

Okay, I’ve got 3 tablet computers in my daily life now—and none of them’s an Android. I had the Nexus 7, but once its screen cracked, I never felt the urge to replace it. So now, I’ve got the iPhone 5s, the Kindle Paperwhite 2013, and as of recently, the Dell Venue 8 Pro to run full Windows 8.1 on an 8-inch tablet. We have yet to see if the Dell will be as transformative of my life as the other two—but the desperation that’s making me make the attempt is what this article is about.

On the New York subway, where I so my daily commute, you can’t tell I’ve got 3 tablets on me. For writing, still nothing beats one-handed typing with a coffee in the other like an iPhone. As much as I covet the form-factor of the Samsung Galaxy Note, I can see why Apple is stuck on the narrow phones. iPhones really do fit in the hand just right. And I started bringing back my reading habit on the iPhone, getting through a Verner Vinge binge, and foundational Asimov re-reading. But then, I decided to save my eyes and phone battery life with an eInk-based Kindle. My first venture into Kindle-land has worked out well as I tore through the Dune prequels. The 6-inch form-factor and rugged feel is perfect for jeans front-pockets.

But I can feel myself less productive than I might be as almost a palpable thing—for lack of a full-fledged desktop or laptop-type computer on the subway, where I have nearly an hour-and-a-half of discretionary time every day, where I read or write. But I don’t work—and I want to be actually working and more specifically, Python, JavaScript, and learning/mastering C-compiling during that time. What about a laptop?

I have a MacBook Air. I have two, in fact—one I keep at work, and one I keep at home. I find the concept of carting one laptop back and forth every day an unthinkable hit to my travel-light lifestyle. And the thought of opening it up and actually trying to work on it on the crowded A-Train is even more unappealing. What I need is the ability to run the free and open source QEMU computer emulator package on which my personal remix distribution of Levinux is based on. I need it in my hands like a Kindle book, or like one of the many iPads that people are constantly playing games on on the subway. I want to be a productive wolf in sheep’s clothing.

So, I want Levinux, and the QEMU product it’s based on on an inconspicuous tablet. Now, QEMU will also run on Mac OS X and most desktop Linux distros, like Ubuntu. But OS X isn’t on tablets yet, and Ubuntu is only barely there. But the Windows 8.1 user interface looks just so great for multitasking on tablets today. I think Microsoft is now full of people who are really trying to “do it better” rather than just rip off the old Palm / iOS paradigms like Google with Android.

Specifically, from a “being productive” standpoint, I’m talking about flipping between running apps and arranging screens with more than one app displaying at the same time so that you can zip around seamlessly, stop thinking about “the system” and focus in on the application—even if that means using 3 or 4 applications as if they were one. I know this to be possible. It was possible 25 years ago on the Amiga computer. I’ve been looking unsuccessfully for the next Amiga-caliber productivity environment ever since. OS X virtual screens had me pumped. Edge-gestures on Windows 8.1 have me drooling. I’m also looking forward to Ubuntu’s edge gesture offerings along similar lines, but this Dell is a ready-to-use product today.

After a few days with Windows 8.1 now on a tablet, I think they’re very close to a “transparent” mobile OS—once you have your full-screen apps all running and in a “still running” state. Figuring out “still running” is a bit of a challenge. If you use the swipe-down gesture to quit, it still reports that it’s running in task manager, but a swipe-from-left gesture won’t bring it back. It’s still running, but it’s sort of lost. And you might lose state as well, such as tabs in a web browser. In order to get the task-flipping goodness on Windows 8.1, you have to exit your app to load the next by using the Windows “home key” or with a swipe-from-right, then hitting the Windows icon. Either way keeps your app running for rapid task-switching. When you get it right, it’s a beautiful thing. I need to train my muscle memory now.

The benefit of me trying out the new Windows platform is not just my latest attempt to recapture my old Amiga glory. Windows is still the most used platform, and my Linux distro is all about going after the maximum potential audience. I have to make the Windows version of Levinux working great, but it also has the most challenges in getting it to run correctly, as the only whacky proprietary non-Unix-like platform of the bunch.

For example, QEMU is written to compile under what’s known as the GNU/Linux toolchain. That’s the C-compiler. What you’re suppose to do is take the source code and compile it, making sure all the various things it will need during the process are in location and can be found. However, if you’re going off the beaten track at all (as I am by trying to do something called static linking and including text-only curses support), then the already-scare documentation no longer lines-up with what you’re trying to do. Things get tricky even under the best of circumstances—namely, being on Linux/Unix.

Compiling QEMU on Mac OS X is a little worse than on Linux, but not too much so. Apple itself makes the GNU toolchain available under it’s now-free XCode development environment. You don’t need to use XCode, but you do need to download it’s optional command-line tools, and after that, install Homebrew, which is a software repository similar to the Debain/Ubuntu software repository, which does a lot of the work of putting all the QEMU dependencies in location for you. You can do the final compile yourself, with whatever configuration changes you want (static linking & curses support). Like 80% of the pain is reduced with 20% of the effort—not quite as nice as on Ubuntu, but not bad.

However, on Windows there is no clear and obvious GNU toolchain for the QEMU compile. Even choosing MinGW for the C-compiler as they say is necessary (as opposed to Cygwin), you have to choose between the main one, and MinGW-w64 code-fork that the QEMU guru’s say you should use. After that, you have to get the the msys command-line shell installed to do the compile from (instead of from a normal DOS command), get paths correct, make 32 vs 64 bit decisions, make posix vs win32 threading decisions, and even then, deal with dependencies that were never intended to live on the Windows platform.

Even after all these not-so-obvious GNU C-compiler setup issues on Windows, you then have the even-less-obvious dependency issues to deal with, and whether to compile them all from source yourself (encountering circular dependency issues), or using the pre-compiled binaries that are made available here and there. But which ones? Where to put them? Is the source ALSO necessary during the compile to get header files for QEMU? Ugh! This is where I am now. QEMU guru’s are helping a little, but this stuff is all easy for them after years of experience, not appreciating where newcomers so easily trip-up.

Anyway, the kind of learnings and time-spent necessary to become a pro at it isn’t the kind I can do on my employer’s time or on my family’s time. I burnt way too many hours trying, but mastering this process on Windows really is that important to the Levinux project. Yes, there is another option of cross-compiling from Unix, but it has its own issues, and doing that on the subway on my commute back and forth to work would be even harder! Cracking this Windows QEMU + curses puzzle has to be on my time, and that means on the subway commute.

I’ll keep you updated how it goes, and try to give you that YouTube video of the Dell Venue 8 Pro as I promised. But forget the unboxing video. The video didn’t work out, but that’s okay. The value of this thing is all in the subtleties and nuances, which I’m getting by spending time with the thing. The video I make will be more worthwhile than a mere unboxing.