aaron@traas.org

The home of Aaron Traas — man of faith, science, and very bad humor

Aaron's blog, page 5

Thoughts on Android, part 1

In August of 2010, I made the jump from being the user of a 6-year-old pre-paid dumb-phone, with the average expenditure of less than $8 per month, to a full-blown Android smartphone user. I've been planning this type of transition for the about a decade. I remember, quite clearly, when portable MP3 player came out. I really wanted one, but none tickled my fancy, as they lacked serious storage (except for the giant $600 ones with 2.5" hard drives), battery life, flexibility, and usability. It wasn't until the iPod came out that a compelling, easy-to-use, reasonably-priced product existed on the market — but I couldn't use that either. I was a Linux user, so the iTunes requirement was a no-no. Plus, I'm not a big fan of the MP3 format. Finally, the fact that you couldn't use it over any kind of wireless network made it significantly less useful to me. I dreamed of a device that I knew would exist one day, and many people thought I was crazy when I told them the specs I wanted in 2001:

  • Linux OS
  • minimum 16 GB of storage
  • High-quality QWERTY keyboard
  • excellent SSH client
  • WiFi support
  • Ogg Vorbis support
  • Acted as a USB hard drive when plugged in, allowing me to manage my media any way I want
  • Was also a GSM phone, preferably supporting VoIP of some sort
  • Removable, replaceable battery

All those have existed since the HTC Dream (a.k.a, T-Mobile G1) came out running Android 1.5 in October of 2008. Why didn't I buy it right away? First, I had just gotten married a few months earlier, and was completely tapped out because of the wedding and the honeymoon. Second, I knew better things were coming in the future; it met all of my specs (#2 was satisfied with a MicroSD card, everything else was built in), but only barely. It was big, slow, an Android 1.5 was not terribly user-friendly. Third, it was on T-Mobile, which gets really crummy signal at my house. Plus, I was hoping that in a year or so I'd be able to get it without a voice plan. That, sadly, never materialized. A few more Android devices were released, but none were significantly better than the Dream, mostly because they were crippled by the same barely-usable Qualcomm MSM7201A CPU. Let's face it — the ARMv6 architecture is just too weak to deal with a full-featured JVM like Dalvik. Android didn't become a high-performance option until about a year later, when Motorola released the original Milestone (a.k.a., Verizon DROID) with a 600mhz ARM Cortex A8 CPU. It was, arguably, the first usable Android phone, released with the much-improved Android 2.0 (a.k.a. Eclair). The problem for me at that time was Verizon — they were too expensive, and didn't use GSM, which meant I couldn't switch phones by swapping a SIM card, nor could I use the phone in Europe.

Then came a barrage of high-end Android phones, one after another: the Nexus One (T-Mobile), the HTC EVO 4G (Sprint), the Droid Incredible, Droid X, and Droid 2 (Verizon), and then the various Samsung Galaxy S series of phones (one on each carrier). I went with the Samsung Galaxy S Captivate on AT&T, and I love it. I also hate it. But I really really love it. Samsung's Super AMOLED screens are the only ones on the market, even today, that are even remotely competitive with the high-quality IPS screens that Apple uses in the iPhone 4. Very different, but competitive. I buckled on the keyboard, because with modern capacitive touchscreens, the on-screen keyboards are quite usable, and allow the manufacturer to shed a fair amount of bulk, which was a technological development I honestly didn't see coming.

But Samsung did some really, really stupid things to screw up the phone, some of which are fixable by the user. First, rather than using YAFFS for the file-system like every other Android phone does, they used their own proprietary filesystem, RFS, which they developed in-house for their crappy feature-phone OS, Bada. They call it a competitive advantage, while all of their users call it crippling the phone with ridiculous lag. It's a simple non-buffering file-system that has one giant global kernel-level lock; any time any process wants to either read or write data, it has to first obtain the lock. This means only one thing can either attempt to read or write data at a given time. Any time you're doing I/O, the phone crawls to a halt, giving perceptions of an under-powered phone, despite the fact that it's still kicks the tail CPU- and GPU-wise of any phone on the market 9 months later, save the Motorola Atrix 4G. Luckily, this is fixable; there are a few solutions if you're willing to root your phone.

The second big issue with the phone is it's skin, dubbed "TouchWiz". It makes a very strong attempt to make Android look more like iOS, if it were designed by a 12 year old. Frankly, if I wanted an iOS device, I'd buy and iPhone, not a cheap, KIRFy knockoff. Most of this can be un-done by simply replacing the home screen app with Launcher Pro.

The third annoying thing about the phone is the same with all other non-Google-branded phones: crappy Samsung and carrier-specific apps that you can't uninstall by normal means. All of these apps launch automatically, take up RAM, CPU, and thus, battery. Again, this is fixable, but only by rooting the phone, and running some pretty damn complicated software to remove/disable this shovelware.

With the exception of the Dream, Nexus One, and more recent Nexus S, all Android phones commit similar offenses. The fact of the matter is, consumers that want Android, want just plain Android, thank you very much. They don't want Sense, they don't want Blur, and they sure as fuck don't want TouchWiz, or any other manufacturer-specific skin that makes the whole experience much less like Android. They absolutely, positively don't want carrier-specific apps they can't delete. The coolest thing about Android is that you can replace nearly any system component with a better one if you want, but if you can't remove the crappy one, it just slows your phone down.

Which brings me to my next point: high-end Android handset manufacturers are a bunch of pussies.

Why do I make this accusation? Because the biggest benefit to manufacturers about Android is that it's free. They don't have to make an OS. They just bring the hardware and the drivers to the table, and that's it. Yet, these morons are spending a lot of money developing software skins, shovelware, and customizations to Android that nobody wants. They're afraid of not significantly differentiating themselves from other manufacturers. Here's a novel idea — be bold with your HARDWARE. Differentiate there. And don't simply copy Apple. Attack Apple in markets that it isn't in. This is happening to some degree — there are Android phones with differing screen sizes, hardware keyboards, gigantic screens, etc. Compete on form factor, build quality, hardware features, performance, etc. Build the best damn phones you can at a given price point, and build them out of excellent, high-quality materials. Can't get high-quality IPS screens because Apple bought the market up? No problem, do something different, like AMOLED. Be different, be bold, and be beautiful, but in hardware, not software. This isn't to say that Android is perfect — it's frankly embarrassing in some areas, but it's better than you can do, because you're not in the software business.

Also, grow a pair of balls and give the consumer, not the carrier, what they want. If AT&T or Verizon says you have to ship with Bing or their own custom navigation software, tell them to go fuck themselves in the eye with a rusty blender full of scorpions. This goes especially for GSM phones — Samsung can make a phone that supports AT&T 3G and sell it unlocked in any store in the country. Most people won't pay $600 for a phone you say? They don't have to. Make deals with Best Buy and Walmart and Amazon and whoever, who re-sell plans for a cut of the monthly plan fees, and have them make the subsidy deals. If you combine dumb-phones in the mix, Motorola, LG, and Samsung sell way more phones than Apple does — play nasty like Apple does, threatening to take all your phones off the carrier, or go around them directly to the retailers if they don't let you release your phones completely unadulterated.

Samsung isn't of yet guilty of this one, but everyone has to stop locking their bootloaders, and making their devices hard to get alternate ROMs on, like the excellent CyanogenMod. It's good to have enthusiasts using your product. Your normal users will never, every brick their phones by rooting, changing the file-system, installing custom ROMs, flashing new modem firmware, etc. Hell, knowing my followers, most of the people reading this won't know what any of that even means. If geeky enthusiasts accidentally brick their phones, it's their own damn problem, as they've voided the warrantee. Stop being a bunch of pussies, and let your users do whatever the fuck they want with the hardware they've purchased. Better still, give them stock Android, so they have no real incentive to try out other ROMs to get around your broken software.

Next generation revision control management suites

Someone really needs to make a new front-end to modern revision control systems. Solutions like SourceForge and Launchpad are great, but what I envision, particularly for more modern distributed version control systems, could be so much more. I only wish I had the resources to build such a thing.

In addition to allow project and user management, tracking, tickets/issues, etc., such systems would benefit by adding two components: a cloud-based IDE and a build/deploy system. First, the level of integration achievable by adding a build/deploy system would improve the workflow and management of such a revision control system by an order of magnitude, and allow superior tracking and project management. Second, the cloud-based IDE would encourage more flexible usage by developers.

First, I’d like to talk about the browser-based IDE. I’d want something incredibly full-featured — probably not on the same level as Eclipse, but similar in function. It would, of course, support color-syntax highlighting, code completion, drilling through references via control-click, etc. It would allow users to create individual profiles and configurations, and enable them to bang-out code from any device that has a browser. The coolest thing is what would happen when a user logs in — it would create a temporary branch of the whole repo for that user. Every save would generate atomic commits to the branch. The user could then build/deploy to test servers, and finally push changes back to the main tree when done.

In addition to the benefits outlined above for established and well-managed corporate projects, this could actually mean a lot more for open-source projects, as it lowers the barrier of entry for people who want to make quick changes or bug fixes to a project that they are not otherwise associated with. A user could potentially log on with a guest account, hammer out a dozen lines of code, potentially build/deploy/test it, and push the changes to the maintainer. In order to do this today, the user has to be at a computer with a decent editor, have installed the revision control client, all of the compilers/libraries and other dependencies, whatever build tools are necessary, and an appropriate test environment. Using the cloud-based IDE, he could do it at a library that has computers that disable all applications other than a web browser. Or on an iPad.

And you know who I can see best solving this sort of thing? Google. They use git and hg internally, they already host open-source projects, and have a complete set of tools built around these things. Plus, by leveraging the tools they've built for Google Docs, they could have a fully-featured editor pretty easily. Add to that the fact that basically everybody has a Gmail account, and you already have the user identity/configuration thing solved. Tie it in with Google Apps Premium, and there’s an extra service they can charge corporations for.

Building on this further, a light-weight native desktop-based IDE could integrate with this cloud IDE seamlessly. One of the most irritating things about setting up a new development machine is downloading and configuring your IDE and build tools.You have to download your IDE, plugins, version control software, build tools, servers, databases, etc. If there were a desktop IDE that synced settings, including installed extensions, services, and repositories, say the way the Google Chrome browser does, with a centralized account, how much easier would that be? Better still, saved the IDE state between sessions, so I could go home, and pick up exactly where I left off on my work PC.

The possibilities are limitless. The problem is this is a BIG undertaking. There’s no way I could build this myself, especially not in my spare time. I also have very shallow knowledge in the way that some of the key technologies involve work, and have never done anything like this. Finally, I do not have the infrastructure to make this sort of thing work; I’d have to work with someone like Google or Ubuntu or SourceForge to get that.

Man Food: Mac & Cheese

The presentation I'm giving tonight at Isaac's is on how to cook a delicious yet fool-proof mac & cheese. For those of you who weren't able to make it, or lost the print-outs I gave to you, here's the recipe:

  • Download: PDF

The recipe contains a glossary of terms, which newer cooks might not recognize. I ask all of you who have been participating in this lecture series to make this recipe—it contains the keys to making many more dishes of varying level of impressiveness.

Cause for the beatification of Empress Zita of Austria

I've long held a devotion to Bl. Emperor Karl I, the last reigning Emperor of the Austria. A deeply religious man made Emperor due to the assassination of his cousin, Archduke Franz Ferdinand his prayers, example, and guidance is exactly what Europe needs in these bleak times.

There is now also a cause for his wife, the Empress Zita, who was a model mother and queen. More info is available at the New Liturgical Movement.

I've made a little sheet for my nightly devotions. I hope to update this regularly. I plan on mailing the organizations for the causes, asking if there are official Latin versions of the prayers.

Updates, finally!

This site has been largely underutilized over the last year. I got engaged, married, 2 new jobs, and started brewing beer. These are finally all documented. I now have the brewing section on the sidebar, which will document my brewing experiments as well as my ever-developing philosophy of brewing. Also, for the first time since 2006, I actually added photos. Photos from the wedding and honeymoon are coming later... there's just so many to go through.

Keyboard Shortcuts

?
Show/hide help
Right
Select right-hand menu
Up
Next menu item
Down
Previous menu item
Left
De-select right-hand menu