this space intentionally left blank

October 2, 2008

Filed under: tech

In Future, MP3 Plays You

Now that Nintendo's announced a new, media-enabled version of the DS, it begs the question:

Is there anything you own that doesn't play MP3 files? In the future, will everything be a digital audio player, from consoles to coffee mugs? How many MP3 players can one person need, or even conceivably use? At what point do they become the dominant form of life on the planet, perhaps forming a Skynet-like intelligence hellbent on the smearing of transients everywhere?

I know! Here's the perfect solution to the financial crisis: buy stock in Fraunhofer.

In other news, the RIAA has announced that it's suing the entire world, just on general principle. "We're going back to the theory of spontaneous generation," a spokesman said. "Just as rotten meat was once thought to produce maggots by abiogenesis, we believe that pirated music now arises from the ubiquity of capable hardware, with illegal tracks simply popping into existence at random. And when one does, we'll be there. With lawyers." Settlement talks are scheduled for next week.

July 23, 2008

Filed under: tech»os

Taskbar Shuffle

I lack most of the obsessive-compulsive tendencies that seem to be common to the tech community, luckily. I don't have any of the weird superstitions chronicled in Rands' Quirkbook post. I think my habits are relatively restrained and normal, and you should ignore it if Belle makes claims to the contrary. As such, the order of windows on the taskbar, and the fact that those windows can't be manually reordered for whatever reason, doesn't particularly bother me. I seem to remember once reading a good reason why taskbar buttons can't be reordered, perhaps by Raymond Chen, but I can't find it now.

In any case, if it bothers you, Taskbar Shuffle inoffensively enables drag-and-drop reordering for taskbar items. There: now you've got five minutes of your day back from closing/reopening programs to create the correct order, you psychopath.

July 10, 2008

Filed under: tech»coding

Microcode

Thee examples of why scripting is an essential part of a "smart" phone:

Example 1: Belle recently switched to Sprint and got an Instinct, of which she will extol the virtues to anyone who will listen. Seems like a nice enough phone to me. But it doesn't rotate photos, so she has to hold the camera the right way when adding images to contacts. We didn't figure this out until after she'd gotten a picture she liked.

My phone also does not rotate photos--as a "business" phone, Nokia treats the camera in the E51 as an afterthought. I can rotate them while viewing, but it's not a permanent change. But since I'd already run into another limitation (the inability to resize photos), I'd taken a half-hour to write a Python script that rotates and resizes images, most of which was spent learning Python's syntax (dear Nokia: ECMAscript variant, please?). So Belle sent me the file via Bluetooth, I ran it through the script, and sent it back. Now she can see a truly dismaying (but correctly-oriented) picture of my face when I call her.

Example 2: A while back I wrote that life for colorblind people often doesn't come up roses (monochromatic ones, even). Why, I wondered, couldn't you use a phone camera to identify colors? Well, you can. I wrote a script called Color Dog that opens up a viewfinder, paints a little rectangle in the center, and displays the average RGB values for pixels in that square.

Example 3: The last call for me on my old phone was that I couldn't easily record calls from it--there's no headphone jack on a RAZR, and taping via Bluetooth is no fun at all. The E51 does have a jack for various audio attachments (for some reason, Nokia calls these 'enhancements') and can even discriminate between inputs and outputs, so I could continue to talk into the phone while taping the conversation through the jack. It's even got a decent voice recorder that can run during calls, for up to an hour (memory permitting).

But let's say I'm paranoid, or I'm forgetful, or I'm being targeted by obscene phone calls. For whatever reason, I want all my calls taped, automatically, and filed under the date and time they were made. That's probably only 40 lines of code, if that--a phone status callback, a basic UI screen, and a function for starting the recording with timestamped filenames. I haven't written this. Yet. This and my idea for an app that responds to SMS with a link to the phone's latitude and longitude on Google Maps (for people who lose their phones regularly) are at the top of my list.

None of these examples are things that any smartphone--or even most camera phones--couldn't do. But they are things that most smartphones don't do. And that difference between "could" and "does" is the important point here.

Is it possible that someone could write an app on another smartphone that would permanently resize and rotate a user's photos, or help identify color values, or automatically tape calls? Sure--even in a walled garden this is possible, although technical issues (limitations on access to filesystem, background processes, or low-level hardware) could make it more difficult. But for example two it's fairly unlikely, and example three much more so, for reasons involving both barrier to entry and (in the latter case) legal liability issues.

However, on a platform that's not walled off, I can freely write these kinds of little scripts to address those problems or add capabilities. And then I can share them with other people, who can just run them, or they can tinker with them and make them better (here you go: ImageTool.py and ColorDog.py). I don't have any problems with walled gardens for buying apps, if that's your thing. But as far as I'm concerned, it's not really a smartphone--a truly adaptable, innovative device--unless it also offers the option of tweaking it on the go this way. It needs to be the equivalent of a digital swiss army knife: if you're going to carry around a Turing machine in your pocket, why settle for anything less?

July 1, 2008

Filed under: tech»mobile

Open Access Control

Back when the iPhone first appeared, in response to its locked-down development environment (Shorter Steve Jobs: "Sure, you can make iPhone applications, if by applications you mean 'web pages'"), Nokia launched a short-lived ad campaign called "Open to Anything" for its N95 smartphone. They put up some posters and bought some TV time, and then they went back to doing what Nokia does best: ignoring the American market.

As a shot at Apple's legendary control-freak tendencies, it was a good one. But the sad part was that it just wasn't true: the N95 runs on Symbian 9, which requires applications using "protected" APIs (camera, networking, personal data access) to be digitally certified before they can run, for security reasons (probably an overreaction: a couple of extremely limited viruses had been shown running on the platform).

This is not to say that Nokia's phones aren't relatively open--even compared to the iPhone v2, which will introduce a centralized application store, Symbian devices are still much more accessible, and potentially more powerful. There's an open-signed program that allows developers and users to authorize a program with high privileges on a single phone. A number of Nokia's tools are open-source, including the Python interpreter that allows users to write and run applications on the device, using its full capabilities. And the standard browser on S60 is a Webkit-based system that runs Javascript and even some Flash apps.

And in theory, the principle behind the app signing is not a bad one. Sandboxing applications by capability is pretty much the same concept at work behind sudo on Unix, gksudo/kdesu on Linux, or UAC on Windows. As smartphones get more sophisticated, this will have to happen on mobile platforms as well if they want to use their full potential. The mistake Symbian made was not to enforce security, but to take it out of the user's hands.

Perhaps ironically, the mobile OS most open to developers is Windows Mobile, which offers free development tools and no code-signing or approval process required. You can even get some of the source for Windows CE, if you're into that kind of thing. The catch is that it needs to be this open, because Windows Mobile is not terribly useful without a fair amount of third-party software (and I say that as someone who actually likes the platform).

I probably would not be writing about this, except that I ran into a problem with PED, the Python editor I use on my phone. While I was messing around with the camera, I kept running into errors even though my code was identical to the examples from Nokia. Eventually I figured out the problem--the Python interpreter itself is signed with full privileges, but PED is not. In order to test scripts using the camera, I had to run them in the standalone Python shell instead of PED's built-in launcher.

Not cool. Kind of runs against the notion of an Integrated Development Environment when it's not actually Integrated. Again, I'm complaining about details, since the ability to write and run scripts (in a standard language) on the phone itself is still pretty advanced stuff. But it's a frustrating, needless, arbitrary detail--as details tend to be when security control is placed under control of a third-party.

In the end I installed a hack created by some Spanish developer that overrides Symbian's certificate check. Effectively, I "jailbroke" it. This means I can't upgrade the firmware on the phone, since new versions of the firmware intentionally closed off the security hole used in the hack--nice "open to anything" support, Nokia. Luckily, the existing firmware updates seem to have been pushed out primarily to close said hole, and don't offer any new capabilities that I need.

There is always going to be this dynamic on mobile devices: how paranoid are we going to be? Lord knows the communication infrastructure in this country often seems far from robust, so some attention to security is certainly required. But none of the existing answers seem sufficient. Windows Mobile simply has no real security model. At the other extreme, the iPhone will only run Apple-approved applications in a small sandbox without access to the filesystem, multitasking, or low-level hardware--no Bluetooth keyboards, wireless headphones, or copy-and-paste unless they come directly from Apple, I'm afraid. And in the middle, Symbian has its signature program, which is much less irritating, but it's certainly not "open to anything."

I have my own doubts that the mobile revolution in this country is going to arrive anytime soon--I suspect that the ridiculous cost of data rates on cell plans will keep it stillborn. And the most interesting uses of mobile technology that I see elsewhere are often decidedly low-tech: microbanking and automated information services over SMS or voice, the kinds of technologies that aren't Web 2.0 but have changed lives in lesser-developed countries. Nevertheless, any real innovation in mobile, location-based services is going to require actual open systems for development. I like that Nokia is bringing snark and criticism of the tightly-locked carrier ecosystem to the table. But I hope that as it has announced plans to open-source Symbian, the company will also be starting a real, flexible, consumer-friendly security model, instead of the opaque Symbian Signed system.

May 28, 2008

Filed under: tech»web

Twitter and the New Protest

Like every hip young person online, I've gotten myself a twitter account. My initial impressions are that I don't particularly care for the terminology: followers? Was "watchers" not creepy or sheep-like enough?

Anyway, if you are also on Twitter, I'm open to invitations. Additionally, I'm looking for suggestions of people who are interesting or innovative users of the service. I don't think I'll be broadcasting very much at the moment, but I'm interested in how other people are getting value from it.

To some extent, this is leading up to a low-priority project I'm starting: as anyone who attended college with me knows, I've been fascinated for a long time by what I call "guerrilla rhetoric"--rarely during my undergraduate career could anyone get me to shut up about Otpor, for example. But during the last few years, thanks in part to mobile phones and a much more flexible set of web standards, we've started to see examples of smarter protest and resistance movements using information and communciation technology to coordinate or publicize their work.

I've realized that I don't know as much as I'd like to about these developments, which I find fascinating. So I'm going to start reading up on the subject much more thoroughly, starting with Gene Sharp's work on nonviolent protest. Also, I've set up a del.icio.us linkstream where I'm going to start tagging my online research--there's not much there yet, just the Youtube videos from Anonymous and some stuff I remember from B-SPAN--but if anyone runs into anything, I'd appreciate a heads-up. Eventually this might be a subject that I'd be interested in exploring through grad school (he gazed enviously at Berkeley's doctoral program in Rhetoric), but that's probably a few years off.

May 6, 2008

Filed under: tech»os

Check the Content

I downloaded four or five Linux CDs and/or VM images this weekend, since I needed to use RealPlayer without installing it on my Thinkpad. Turns out that Real's software is also terrible on *nix. I know, I was surprised too.

Every time that I download a Linux installer for my old laptop, it's a herculean task to get it working right. Some of this may be due to the age of the laptop that gets used for these kinds of disposable projects--it's almost ten years old now, and I'm sure it has issues. But it's not like I've ever had any problems getting it to read a Windows install CD during those ten years, despite reinstalling the OS three or four times for various reasons. Advocates sometimes ask what Linux would have to do to impress me--"create a reliable boot disk" does not seem to be too much to ask.

What always cracks me up about this process is the information that the community does provide for reliability--the MD5 checksum, which validates the download file itself. Now, perhaps I simply live in a sheltered world of unmangled connections, but I honestly cannot remember the last time that the file I downloaded was corrupted or different from what I expected to get--this was, I was under the impression, the entire point of the HTTP protocol. Sure enough, when I bothered to check, the disks that didn't work were burned from an ISO with a valid checksum--and moreover, they eventually did work, sometimes with the same CD that had failed not an hour before.

Look, don't get me wrong--Ubuntu's come a long way even just since the last time I tried it, and clearly these things are working for someone. But the MD5 thing is still pretty funny. It's like someone shipping you a package and then insisting that what's inside will work because they've got a receipt from UPS.

Me, I've given up on the whole live CD/spare laptop thing, and I'm going to go with virtual machines instead. It's a lot tidier, a lot less frustrating, and with machines as powerful as they are nowadays, actually faster than trying to load even the most frugal modern OS onto my spare laptop.

April 23, 2008

Filed under: tech»spam

Note to Self

I love it when I get spam that spoofs my own e-mail addresses. It's like they expect me to think "Well, I don't remember sending myself e-mail about 80% discounts on Viagra and Cialis, but maybe I just forgot. Guess I'll open it, just in case!"

April 16, 2008

Filed under: tech»coding

Feeling the Squeeze

I understand the desire to get a platform-independent language onto mobile devices. But I have to ask, now that I'm messing with it--who exactly thought it would be a good idea to put Python, a language that describes its program blocks using indentation, onto Symbian phones, most of which have a screen that's less than 2 inches across?

February 29, 2008

Filed under: tech»coding

Flexing

FlashDevelop is a donationware IDE for Adobe's now-open source Flex framework--basically Flash for programmers instead of animators. Between the two, you can make Flash-based software for free now, which is kind of a big deal. Maybe everyone already knew this, but I was surprised by it. Pleased, granted, but still surprised.

At this point Flash seems to have achieved what Java wanted to be: a slick, machine-portable, Internet-aware programming language with an unbelievable level of market penetration. It also has the advantage of a runtime that's very small compared to a JRE. Java has managed to achieve a valid niche as a server-side technology, but it's not much of a force on the consumer side any more.

But the weakness of Flash has been cost for the development tools, as far as I have been concerned, and I'm sure lots of other people feel the same way. You can develop Java for free, and you don't have to use a command line any more. You can get a limited copy of Visual Studio (pick your variant) for the price of a download. But Flash is what, $600 nowadays? Even Flex Builder is at least a couple hundred bucks. Moreover, Flash (the app, not the API) is truly terrible for programming, what with that weird floating psuedo-window and its continued dependence on the timeline.

Which leads me inescapably, knowing people as I do, to the conclusion that a great deal of Flash's popularity has been built on pirated copies of the software. So it was probably only a matter of time before Adobe decided to open the software up with a free/cheap version, simply reserving some of the goodies (bonus UI components, for example) for paying customers. Which is, as far as I can tell, exactly what they've done.

Anyway, the politics of it aside, you can make Flash for free now. This is a very good thing. I'm guessing they'll screw it up any day now.

February 25, 2008

Filed under: tech»lenovo

At Least You've Got The Option

When I ordered my Thinkpad, I sprung for the hybrid hard drive, because it's supposed to speed up boot time and sleep mode, and why not? But there was a bug in the driver that, combined with Lenovo's disk protection sensor, would lock up the computer if it was moved too much, so I had to disable the hybrid part.

Intel's new storage drivers fix the problem, apparently by disabling some of the power-saving modes that came with the OS. They also add this amusing option to the advanced power management window:

I can only imagine that they enabled its display solely for the purpose of that darkly cynical tooltip.

Future - Present - Past