Posts tagged ‘android’

My first Blackberry

I don’t often post reviews of hardware. However, RIM is getting a bad rap lately, and all the cool kids are using Android or IPhone these days. I have been severely disappointed with the three Android phones I’ve had to date, and I have had too many bad experiences with touch keyboards to take the IPhone seriously. That left me with a choice between a Nokia Windows device or a Blackberry. I purchased the Blackberry Curve 9360. I wasn’t expecting much, but having used it, I don’t think I’ll ever go back.

From all the market hype, I expected the Blackberry to be inferior to Android. My expectations were therefore blown away. This is hands down, the best device I have ever used. Unlike Android, everything just works, and there are no force closes. The battery lasts a good 2.5 days under normal usage, compared to less than a day on my Android devices. RIM has put a LOT of thought into their OS design, and everything just flows. This phone is a joy to use, instead of an irritant.

The Curve doesn’t have a touch screen, but I never miss it. I’m willing to say, in fact, that the trackpad is a superior method of input for serious usage. Granted, a touch screen is great for mobile games, but I don’t waste time with that sort of thing. While pinch to zoom action on maps and images is quite pretty, on my Android phones it tended to be flaky and annoying (I’ve heard this is not the case on iPhones). One click zooming on my blackberry is more effective.

Actually, I did miss the touch screen when using my web browser at first. Trying to use the trackpad as a mouse was irritating until I increased the sensitivity. Now that the cursor moves as far and fast as I expect it to, I’d say that the interaction is about comparable to touching links and buttons. The touch action is more intuitive overall, but I used to find under Android’s browser that 1 time in 3 the phone would activate a different link from what I had thought I touched. The trackpad pointer never does this. The tradeoff leaves me sitting on the fence; either method works, but neither is optimal.

Of course, there are Blackberry devices with touchscreensI originally wanted to get a Torch 9810 to get the best of both worlds. I doubt I will do that when I upgrade, simply because I’ve unexpectedly proven to myself that the touch screen is not the wonderful idea that Steve Jobs told us it was.

The Blackberry OS 7 is extremely responsive, even though the Curve hardware specifications are modest compared to high power Androids, or even higher power Blackberries. I never have to wait for text to show up on the screen or for activities to complete. The tools that Blackberry is known for, namely messaging and email are even more pleasant to use than I had been led to expect.

The Blackberry market app is a bit of a disappointment. It doesn’t seem to find apps that I know exist, and I normally find it easier to search google on the phone and install an OTA link than to download through the market. Another annoyance is that you need to perform a Windows-like reboot whenever you install new apps. However, this is a rare task for me; I have never been one to download a lot of apps. On my Androids, I tended to replace the stock apps with sexier ones from the Android market (The Go dev team’s contacts, messaging, launcher, and other tools are particularly nice). I feel no need to do this under Blackberry; the stock apps are too good to replace. I have heard there is a lack of selection of Blackberry apps, but I personally haven’t missed it. To be honest, the argument that Android has a much bigger selection of apps in its market is severely watered down when you realize that many of these are fart sound boards or sexy lady wallpaper collections.

The Curve’s camera takes very clear still pictures. The flash is small, but indoor shots seem to be high quality. Digital camera technology is pretty much a solved problem these days; I doubt that any one phone is going to outperform another in this regard. I haven’t bothered with the video camera, so I don’t know how it compares.

Call quality is definitely clearer on this phone than any other device I’ve ever used, including landlines. I have no idea what sort of noise cancellation or other technology is involved, or if the towers in this area have been improved since I last used them. I know they’ve been updated to 4G, but I don’t know how that is expected to affect call quality. I like that the phone usage is a single button press; it highlights that the dialer is not just another app on the phone. I’ve had Android get stuck in another app when trying to answer an incoming call. This doesn’t happen with the Blackberry; calls take priority.

All the reviewers that say they are far superior to any other hardware manufacturer’s keyboard are understating the truth. In just a couple weeks of usage, I am already more accurate than I have been on any soft or hard keyboard on the Android devices I’ve had. I’m also quite a bit faster. Typing an e-mail on a soft Android keyboard used to be annoying enough that I’d wait until I was sitting at my computer. The two Android hardware keyboards were much better, but I could easily write entire book chapters on this phone if I wanted to. The keys are easy to press and give a satisfying click on each keystroke. The keys seem deceptively small, but are easy to locate and press. It took a bit of practice to get used to the keyboard. I was dissatisfied at first, but if you use a BlackBerry phone for more than a day, the learning curve is gone. Compared to the three months I spent trying to learn a soft Android keyboard, this is exceptional!

One other thing I like about the phone is that it acquires a wireless connection in almost no time at all. My ancient laptop takes a couple minutes to connect to a WPA protected network, and my Android phones have all been equally slow. But the Blackberry, for some reason, can do it in no time at all.

I don’t want to be sounding too harsh on Android. If you like Android or like Google’s offerings, than by all means, stick with it. However, if you’re like me, and stumped for a good alternative, don’t let the negative media attention RIM has received fool you. This is a high quality piece of hardware running a high quality collection of software.

Quodroid, an app just for me

I’ve spent a few days reading through the Android developer docs and trying to get Eclipse to cooperate with my outlook on software development. It took giving up on Eclipse to get any real coding done. It was a bit tricky, as I’m not the all-star Java programmer I once was, and I got bogged down on silly syntax errors and library issues. For example, I forgot that ‘new’ is a keyword in Java, and trying to instantiate a class without it results in errors that don’t say, “what do you think this is, Python?”.

The pet project I started is an extremely simple music remote control to interact with Quod Libet, my music player of choice, running on my laptop. So now if I have my phone at the couch I don’t have to get up and walk six steps to my desk to pause or skip to the next song.

The overall architecture is mildly embarrassing, but works well. I’ve got a very simple web.py server running on my laptop that accepts three urls — prevous, next, and play-pause. When one of these is received, it sends a control command to quod libet to perform the associated action. The android client simply displays three ultra-ugly buttons that send requests to a (hard-coded, no less) IP and Presto! I can skip tracks and pause my music!

It’s barely working yet and the design is atrocious, but I’ve posted the initial version to github for peer review and patches storage.

I really just wrote this for myself, the fact that I’m releasing it is mostly because a) I have a blog now and b) I have a github account now.

I’ve got several things on my to-do list, most importantly improving the client interface. I want to add volume control as well, and the ability to return the current song whenever an action is invoked. I might even add a polling feature to update the displayed song on the phone. I also need to do some config stuff, hard-coding the url may actually not be that flexible.

Todo List

I’ve spent a lot of time thinking about the proper way to design a calendar and to-do list application.  The irony: I never got around to putting ‘write to-do list application’ on my to-do list.

The best to-do list I’ve seen was designed by Kim Hoyer with input from myself and another developer. Its part of Kim’s proprietary Pursuits XRM System, a comprehensive sales and company management system. Oprius also has a terrific to-do and appointment management system. Google’s Calendar, on the other hand, seems to have done everything all wrong, by my standards.

I’ve read about several of the web-based options and discarded them for various reasons, usually too much complexity. Remember The Milk is a notable exception in that its complexities can be easily ignored. However, its still due-date based, and that’s not the way I work.

Stephen Covey’s well-known ‘The Seven Habits of Highly Effective People’ describes a slightly over-engineered, but otherwise workable paper-based to-do system that really jives with the way I think.

I’ve tried numerous solutions and always fall back to writing stuff on a scrap of paper. I’ve been actively monitoring exactly how I really do things (instead of trying to imagine how I should do things) in the 5.5 months since getting a day-book for Christmas. I’m ready to design a to-do list. I’d probably have sat down and started coding by now if I didn’t have this blog thingy to lay out some ideas. Just a little groundwork.

Day-oriented, not due-date oriented

When I plan what I want to do, its always about what I want to do today. I don’t care that the due date of a task is in two weeks, I care only about choosing whether I am or am not working on that task today. When I’m done working on the task today, I cross it off my todo list, even if the task isn’t complete. If its not complete, I add a NEW task for the next day. Its good to break big tasks into bite-sized sub-tasks, but often I just write the same task down for each day that I work on it.

Only plan a few days in advance

I need to be able to add, reorder, and move tasks between all days, but typically I won’t have tasks listed for something more than a week in advance. Unless I’m specifically meeting someone or planning a vacation, I don’t have stuff filled out for two months from now.

Area for planned but scheduled tasks

I currently add tasks I intend to do in the future for other days and then ‘move’ them by crossing out and rewriting under another day. This is suboptimal. I want a separate section for tasks that I don’t want to forget. It needs to be easy to move them into a specific day.

Recurring Tasks Suck

Most of the tasks I do on a recurring basis don’t happen at the same date and time each week. I just know I need to do them once a week. Having them auto occur makes me easily ignore them.

Instead, I need an area (possibly same area from previous point) to store tasks that I do repeatedly. These would be generic tasks and whenever I need to put one on a specific date I can just select it and add a date.

Super minimalist

I don’t need to attach much info to a task. I don’t need priorities, descriptions, notes, durations, locations, contacts. This shit clogs up the interface and the task name itself usually helps me recall all I need to remember about this stuff. Maybe if I was a sales person with 90 contacts per day that I can’t remember their names and faces I’d need those details, but in my life, its just extra cruft.

Task Ordering

On any given day, I want the completed tasks at the bottom of the list. Uncompleted tasks are at the top in a semi-ordered fashion. Currently when I sit down at my daybook, I cross out the last item I did and pick another one based on my current priorities. Sometimes I draw numbers beside them to note the next three things I’m going to do. In software, I want to use either drag and drop or tap-to-raise to easily order the next few things I plan to do. When I finish one, I want it to be easy to change my mind about what I’m doing next. Keep it agile!

My Phone

I expect I would make this a web app in the long run so I can access it anywhere, but I definitely need to be able to access it on my phone (Android Dev Phone). Since I want to play with the android APIs anyway, my first attempt is going to be for Android. Later I’ll tie it up to a mobile-oriented webapp similar to Choncho.