Classics app for the iPhone

A few years ago, I posted about reading books on my Treo – an exercise I thought I’d never enjoy, but in the end, enjoyed quite a lot.
Ever since I got my iPhone, I’ve been considering setting up an ebook reader, but never got around to it. Recently I found the Classics app, a reader for the iPhone that is set up to provide a series of ‘classic’ books for the iPhone.
The reader app is quite good, and very easy to navigate (and pretty to look at). What I’ve been enjoying the most though is that the books that are available are, as the name implies, all ‘classics’ – books I should have read, but never got around to.
I finished reading ‘Flatland’, and now I’m about halfway through ‘Robinson Crusoe’. As always, it’s convenient having books with me at all times. I suspect when i’m done with these books, I’ll look at another reader app for other books, but for now, Classics makes it so I have at least 15 books with me at all times.

A few of my favorite iPhone apps

I’ve had my iPhone for a few months now, and gone through the brain replacement that’s sometimes necessary to use Apple products, so I think it’s time to talk about some of my favorite iPhone applications.

At the top right now is AirShare from Avatron. It’s a simple app that starts up on the iPhone and sets up an active WebDAV enabled HTTP server. With some tools under windows, mac, or linux, you can mount that DAV as a filesystem, and voila, you have your own portable wireless data repository.

Admittedly, what I really do is play a lot of games on the phone. So, here’s a quicky list of some of my favorites:

  • Dr. Awesome!
    This game plays much like the old arcade game ‘Qix’, but has a wonderful comic bent to it. Presentation and gameplay are excellent, music track is enjoyable, and the steadily increasing difficulty isn’t too hard to deal with, though I agree with some commenters that after a certain point, it’s nigh on impossible to win the levels.
  • Tap Defense
    In the ‘Tower Defense’ model, this game fleshes out the premise with a mildly interesting storyline (Demons are escaping from hell, you’re trying to keep them from getting into Heaven). It took me about 4 weeks to complete the game on all three levels (easy, medium, and hard). And on the Hard level, I had to go to the net to get some hints. Each full game can take 30 minutes to an hour to complete.
  • Jewel Quest 2
    This is an oldie but a goodie. It’s been around for ages from I-Play in various forms, but the iPhone version is a good clean port of it. Very long storylines, steadily increasing difficulty. Took about 3 weeks to complete the game end to end.
  • Galcon
    Galcon is a realtime strategy game for the iPhone that’s faster paced than most RTS games, but still keeps the tactics element alive. It borrows many ideas from some old skool strategy games I played in college. The higher levels are hard to win, though you can play network play against other ‘live’ players anywhere on the net.

The potential for the iPhone to be a powerful gaming platform I feel is only just being realized. More and more high resolution excellent games are coming out, and the phone handles them with great aplomb. I’m looking forward to finding more.

Music Server Remote Access with MPD.

It seemed like a simple question. Consider the problem of [a], a collection of ripped music from a large CD collection, [b] a server containing said mp3’s, located on a bookshelf in the corner, [c] a very nice Bose Lifestyle 48 audio system, and [d] a couch potato like myself wanting to listen to that music, but not willing to walk over to the workstation, hook up a monitor (it’s normally headless), and play something.

There were several things I wanted under the general heading of “I want to listen to music stored on that machine,” but no clear path in sight.

So how to approach this problem?

Continue reading “Music Server Remote Access with MPD.”

Battle for Wesnoth : A free turn based strategy game

While sitting around waiting for Starcraft 2 to be released, why not try out some of the other excellent offerings out there? Personally, I’ve been itching for some “You, move there, you kill him, you, build that” action for quite a while, and I was not particularly up for reinstalling Warcraft on the windows machines.
I had taken a look at Battle for Wesnoth about 2 years ago, and while I found it ‘interesting’, it didn’t really grab me. I checked the project page, and saw a lot of work had been done on it, so decided to give it another try, and boy am I glad I have.
I won’t go into details about the game. There’s a very nice Youtube trailer here that shows some basic gameplay and highlights the amazing artwork that has gone into the game. Artwork tends to be the achilles heel of many opensource games. Getting good artwork (and in the amount necessary) is very difficult. The Wesnoth folks have filled in their entire tileset, characters, and dialogs with very clean, professional artwork. It’s a joy to play.
Check out the Youtube video of the trailer.
Sure, by World of Warcraft standards, this game looks primitive. But the gameplay is intricate and detailed, no rough edges nor incomplete implementations. There is a decent music soundtrack, and sound effects in the game are amusing and bolster the enjoyability.
And it’s free. And runs under Linux, Mac, or Windows.
What more could you ask for?

Photo Managers – Digikam rocks

Today I am full of Mad Love for DigiKam, the photo manager distributed with KDE. I’ve been using it off and on for a few years, and for one reason or another, I would stray away and use manual file copies for a while.
As of about a year ago though, I’ve moved to using it full time for managing the (sometimes hundreds) of pictures I take in a given session. There’s a whole slew of wonderful functions in it, but the ones that made me finally stick with it can be summed up as follows:

  • Automatic directory creation and sorting when importing from the camera. Directories can be created according to the date the picture was taken (importing 250 pictures from my camera may make 4 directories, if I was shooting over several days)
  • Direct support for my Canon 400D. When I plug in the USB, KDE prompts me to start Digikam, and everything is imported.
  • Full support for Exif data, including image orientaton, etc. Exif data is never removed or ‘flushed’ from the images.
  • Excellent export functionality to either Flickr or to a series of HTML files and thumbnails.
  • Very good gallery organization, sorting, and previewing. I can work with thousands of images and sort them into appropriate directories.
  • Tagging allows sorting and categorizing of images without reordering the directories. Searching for tags, dates, or other data generates a new view based on the tag criteria.
  • Easy calling of external programs such as The Gimp for post-processing.

All of this, combined with, well, it LOOKS great, make Digikam one of my favorite KDE apps.

Journeying Abroad – Life without Mozilla

It’s become almost a truism that if you use a Linux machine for your desktop, you must be running Firefox as your web browser, and Thunderbird as your mail client. The former is certainly more prevelant than than the latter, but even so, both of these programs are fairly common in the greater Linux community.
However, despite their popularity, they have their drawbacks. On the Firefox side, the program suffers from it’s core dependance on XUL, the XML based rendering engine that is at the core of the product. While XUL is remarkably flexible, powerful, and useful, it is also a performance hog. Firefox, even on yawl, my desktop machine, which should have enough oomph to drive it, can come to a painful crawl after only a few hours of use.
The memory leaks in Firefox are well known, and to Mozilla’s credit, they are being addressed in Firefox 3, currently under development.
On the Thunderbird side, I’ve been having some absolutely infuriating problems with sending mail. Hitting send will regularly cause a pause of 5-10 seconds in my complete desktop before the mail actually gets sent. I’ve checked DNS, my SMTP configuration, everything, I can’t find the problem.
So why not use this opportunity to play the field?
Here there be dragons…
For the last week, I’ve been on a No Mozilla campaign, with an audience of one. I have on occasion needed to start Firefox (most notably to view Google Calendar), but for the most part, I’ve been using Konqueror, the browser within KDE, as my primary web browser.
Konqueror has been remarkably stable and useful, I will happily admit. It is noticeably faster than Firefox in almost every way, and I’ve seen only 1-2 websites where rendering has failed completely (noteably Google). KDE’s inherent ability to allow keyboard redefinition has made the transition to Konqueror quite easy (for instance, Firefox uses ^L to jump to the address bar and edit/copy/whatever your current URL. Konqueror has ^L bound to ‘clear address bar’, something that was driving me bonkers for a few days, before I realized I was simply using the wrong function. A quick key redefinition, and I was happy again).
For the most part, all my plugins are working correctly as well. Konqueror adapts the Flash, Java, and Shockwave plugins as used in Firefox without any problems. In stream videos and animations work just fine.
Will I continue using Konqueror? Most likely I’ll stick with it for a while. I do miss a few basic things though. For instance, I use Google Browser Sync to make sure all my bookmark folders are synced across all my machines. My Konqueror installation does not have my, er, large selection of bookmarks I’ve accumulated. Secondly, I’ve been using Sage as my RSS reader (as it syncs in with the Firefox bookmarks quite nicely). That naturally won’t work with Konqueror, so I’m without a centralized RSS reader right now.
Even with these niggles, I’m finding myself using Konqueror more and more. Speed, stability, and functionality. How pleasant!
Great Dave, but what about mail?
Oh yeah, the mail. Well, this one doesn’t have quite as happy a story.
In my journey away from Thunderbird, the first choice was naturally KMail, the mail component of the Kontact system in KDE. I’d used KMail on and off several times over the year, and I’m sad to say, it really hasn’t improved at the pace other applications have. In many ways it’s quite pleasant to work with, snappy rendering, good layout and feel, complete and workable dialogs, but it still suffers from a Linux ‘half complete’ feel. The keyboard bindings for mail navigation are obtuse and, oddly, impossible to reassign (I even have a bug open on it – it’s still not fixed). The thread model in KMail is abysmal – making it very easy to freeze the entire interface on very large mailboxes, etc etc.
So KMail was okay for a bit, but wasn’t cutting the mustard for regular use. The next natural check was of course Evolution, the Gnome mail client.
I’ve used Evolution off and on a lot over the years, and in general, it’s okay. I don’t particularly like GTK based apps (I find them overly hungry for screen real estate, and a bad combination of eye candy and ham-handed attempts at UI design), and Evolution shows many of these traits. However, even with those faults, it’s not a bad client. I got it up and running without any problems, and it’s working fine.
So why am I gripey?
I miss Thunderbirds spam filtering. I get a LOT of spam. My monitors regularly log 500-700 spam messages a day into my inbox. boomer does an awesome job of catching the lions share of the spam (about 80%), but the rest shows up in my inbox. Thunderbird was catching perhaps 90% of -that- spam, and tagging it for me. I could review what was tagged, agree with whatever it set, hit “purge”, and it would all go away.
Evolution has very rudimentary junk filtering, and it’s not catching much of this spam. I’m finding myself spending much of my time just deleting spam messages, and growling.
Conclusions
Will I stick with Konqueror for a while? Yes, I think so. I have to rethink my RSS aggregation and viewing. I’m not keen on a locally managed RSS list (because I change machines so often), but I’m also not excited about a remote ‘web’ based system (Web 2.0 can bite me, and old sk00l type applications are not fast enough for my reading habits). So that need is still missing.
Will I stick with Evolution? Perhaps, if I can fix the spam filtering problem. Evolutions handling of multiple accounts is FAR better than Thunderbirds (have a bug open on that one too), and the UI is one I can deal with, if if if…
I’m just never satisfied I guess.

Calendar sharing. Nirvana found?

What is seemingly the bane of existence for most non-Microsoft users is the constant problem of “How can we share calendars?” Exchange does this extremely well, and there are many a Linux zealot, when confronted with the “Okay, we’ll try Linux. How do we share calendars?” has had to hide in shame.

For me, the problem has been “how do I sync my Treo 650 so I can see my family and friends’ calendars, without having to manually do some rigamarole involving synchronizing through some Windows based custom tool?

My savior may have arrived in the form of a tool called GooSync.

The concept is simple. The world in general has failed to come up with a standard calendaring system that actually makes sense, and allows multiple people to share, view, and update each others’ calendars. iCalendar, while very good for publishing calendars and allowing people to subscribe to them for viewing, does a poor job of allowing others to update someone else’s calendar.

Along comes Google Calendar. Ahh, a good, interactive, free calendaring service that allows multiple users to share, update, and publish calendars interactively. Not only that, Google Calendar has a published API specification that allows users to write programs that interact with it.

I had been using CompanionLink to hotsync my Google Calendar down to my Treo, but after months of complaints to their tech support and sales department, explaining that without multiple calendar support, their tool had only limited functionality, and after they even said to me “If you can figure out a way to keep the calendars synchronized without duplicating entries, feel free to tell us how” (and I did), and still not getting an update, it was time to look elsewhere.

GooSync has a number of very strong advantages over CompanionLink and, frankly, any other tool I’ve seen so far.

  • The base version is free. It allows you to sync one personal calendar to and from the Treo to a single Google Calendar
  • For a small fee (about $20 a year), it supports multiple calendars, with read and write access.
  • It keeps all the calendar entries separate on the Treo, either via a text tag in the entry, or using categories.
  • It syncs wirelessly. That means it’ll use the Treo data network (whichever one you have) to talk to their servers to get updates and to post changes. This means you do NOT have to cradle-hotsync your Treo and run some Windows app to synchronize your calendars

That last item bears closer scrutiny. Once the GooSync client is installed on your phone, all subscriptions and maintenance to your calendar list is done via Goosync’s website. Want to add a new calendar to your phone? Go to the website, say “show me all my Google calendars” (and it does), and click the checkbox next to the one you want to show up on your Treo. On the phone, run the Synchronize function in the GooSync client, and 30 seconds later, your Treo is updated with all the new entries.

I’ve tried this with my own calendar, and shared calendars I have write access to, and it works perfectly. No duplicate records, nothing showing up in calendars that I didn’t have there before, it just plain works. I now have full control and view into all my Google Calendars from my phone.

With all the gloom and doom about the PalmOS platform (both from me, and also from very well known tech blogs like Engadget), this is a small ray of sunshine. Note that GooSync supports a ton of different devices, so even if you don’t have a ‘smartphone’ per se, you can probably sync your Google Calendar to your device.

Yay technology, and thank you Google for making it possible, and thank you GooSync!

Another Linux user. Our ranks grow.

About 6 months ago I was having a conversation with my roommate Beth, talking about her aging Dell laptop. She was considering getting a desktop machine to use as her primary workhorse for her up and coming graduate student immersion.

I thought a bit, and said “Hey, I could probably get you something decent. We could even make this an interesting experiment. Tell you what, I’ll get you a machine, but it’ll run Linux. Up for it?”

“Sure!”

And we were off…

Continue reading “Another Linux user. Our ranks grow.”

ScribeFire – A handy blog posting tool?

I’m trying out a new tool today called ScribeFire. 

The idea is to provide a rich user interface for doing blog postings via a Firefox plugin.  I’ve tried this a few times before with other tools, and have always gone back to just using plain old HTML pages.

So far, the interface is useable, and appears to support many different blogs (including Livejournal, WordPress, and other content management systems). 

It appears to also support editing existing postings and content, but maybe it’s because PG has several thousand posts, the list never actually came up.

The intriguing thing is that ScribeFire is supposed to support Drupal, which would be awfully handy for some of the work we’re doing, but I can’t seem to get it working.

Folks who do LiveJournal, WordPress, Blogger.com, or Movable Type should definately give it a try.

Darwinia Mini-Review

I haven’t been doing much reviewing lately, but I thought I’d point a couple of the folks who keep whining about the lack of Linux games to the fine work at Introversion Software.

I just completed the demo for Darwinia, a sort of ‘Populous meets TRON’ game.

Darwinia is very much a ‘god game’ in that you are ‘above’ the life forms you’re interacting with, but, like Populous, you can’t directly control them. You can influence them in several ways (“All citizens, you feel an urge to move sort of in that direction!”), but can’t give the “you guys, move there and build a building, you guys, there and shoot them” sort of detail that’s common in things like Starcraft.

From Introversion’s page:

The world of Darwinia is a virtual themepark, running entirely inside a computer network and populated by a sentient evolving life form called the Darwinians. Unfortunately Darwinia has been overrun by a computer virus which has multiplied out of control. Your task is to destroy the Viral Infection and save the Darwinians from extinction.

The plotline does sound somewhat trite, and there’s certainly an 80’s-esque flair to the entire game. It’s modelled very heavily on TRON in imagery and concept (a model that Introversion seems to use a lot), so the rendered playing feels very much like one of those graphics demos you oo’ed and ah’ed at the first time you saw an SGI machine (well I did, anyway). If you make sure you’re not being overly critical and immediately jump up with “Gosh, Doom3 blows this away!”, you might find yourself enjoying yourself.

First of all, it’s a Linux-enabled, full GL, full sound, network enabled, multiplatform game. There’s no ‘hack’ or backsupport or Wine-fiddling here, the game has native Mac, Windows, and Linux builds. Installation was a matter of downloading the demo and running the installation script. On my machine, running Ubuntu, it installed and ran without a hitch, in full screen high resolution, and some phenomenal refresh rate (I noticed -zero- lag in any of either the cut scenes or actual gameplay, when I had several hundred characters moving on the screen).

Introversion has made it ‘de rigeur’ to have full Linux ports of all their games, and they have several that are top notch. I’ll be taking a look at others shortly. But if you’re into god-games, and have a Mac, Windows, or Linux PC, and don’t mind a new twist on the game with a good story line and comfortable game play, this is a game you should definitely check out.

Review: Bang! Howdy

A long time ago on a laptop far far away, I chanced across a new game called Puzzle Pirates. It was from a new outfit on the block calling themselves Three Rings. It looked fun, and even better, ran on Mac, Linux, and Windows without problems due to the wonderous portability of Java. I was impressed then, but stopped playing after a year or so and moved on.
Now ThreeRings has done it again with a new game called Bang! Howdy. Lets take a look…

Continue reading “Review: Bang! Howdy”

Subversion + SSH – Close but no banana

About a year ago, I switched my primary source code control system from the venerable old CVS to the (relatively) new kid on the block, Subversion. On the whole, I’ve been ecstatically happy with the system. It patched many of the ridiculous problems with CVS, and added on things that opensource community has been asking for for ages (like ‘rename’), but never made it into CVS.
Now I have all my projects stored in SVN, and my main client is using it as well for their code (they’ve chosen to go with SVN and are planning to End Of Life their VSS server – to the dismay of no one).
Subclipse
One of the best tools that made this switchover workable (aside from SVN’s similarity CVS in many respects, particularly on the command line) is the Subclipse plugin for Eclipse. Subclipse provides a great easy to use interface into SVN servers, giving all the functionaly one would have on the command line via a very simple, tightly integrated GUI.
One thing that had been bugging me, however, was the access methodology I was using to get to my (remote) SVN server. It involved setting up a tunnel in SecureCRT (though Putty can do it as well), and then telling subclipse to use my ‘svn://localhost/stonekeep’ repository.
SVN+SSH configuration under EclipseWhile doing some surfing, I found that Subclipse supports the svn+ssh syntax for specifying the repository. “Great!” says I, “I won’t need to set up the tunnel each time!”
A few more fiddles, a pleasant discovery of a configuration screen in Subclipse, and I had an SVN over SSH connection to my repository, even using my ssh key pair.
Danger, Will Robinson!
But wait! All is not well. When I tried to browse the repository from Subclipse, I quickly hit this error:

Could not open file system at /var/lib/svn/stonekeep
(13)Permission Denied: Berkley DB Error while opening environment for file
system /var/lib/svn/stonekeep/db:

This vexed me, because I had been having no problems accessing the repository locally on the server, and over my ssh tunnel. Both used the locally running ‘svnserve’ on the repository host, so why wasn’t the svn+ssh connection using it?
The answer comes in the SVN documentation, and via a little research:

What’s happening here is that the Subversion client is invoking a local ssh process, connecting to host.example.com, authenticating as the user harry, then spawning a private svnserve process on the remote machine, running as the user harry. The svnserve command is being invoked in tunnel mode (-t) and all network protocol is being “tunneledâ€? over the encrypted connection by ssh, the tunnel-agent. svnserve is aware that it’s running as the user harry, and if the client performs a commit, the authenticated username will be attributed as the author of the new revision.
When running over a tunnel, authorization is primarily controlled by operating system permissions to the repository’s database files; it’s very much the same as if Harry were accessing the repository directly via a file:/// URL.

The Problem With This
I’m really unhappy with this model. The problem is that now the user must have read/write access to the entire repository tree. When using a local socket connection (or one over ssh via a normal tunnel), the Subclipse client connects directly to the svnserve process running on the repository box, and interactions with the server happen under that processes ownership.
The svn+ssh protocol does not use the svnserver on the target machine. It tunnels the command to a user-invoked svnserve process, and that process must have read-write access to the repository.
“Well gosh, that doesn’t seem too bad. What’s the issue?”
The issue is that to make this methodology work, I have to give the user read/write access to the repository tree. Meaning, they could happily type ‘rm -rf /var/lib/svn’ and destroy the entire repository. Even worse, the configuration files (including the password / access file, which has passwords in plaintext) must be made available to the general users.
Why svn+ssh doesn’t simply make a local socket connection to the svnserve process already running, I don’t know. But I can find no way to make that happen.
The fix?
As far as I can tell, there really is no direct fix for this. There are various workarounds, which the SVN documentation discusses, including setting up an ‘svn user’ for the svn+ssh logins, and the possibility of using unix groups for permissions, but I feel that if you have a listening socket server on your repository host, you should use it, not introduce a second methodology and have to jump through hoops to implement it.
For now, I have to abandon the svn+ssh possibility, and go back to my hand-configured socket tunnels. There’s no real loss here – they work remarkably well, are very secure, and quite stable. The slight annoyance of having to open up a SecureCRT session before doing work in Eclipse is just that – a slight annoyance. I’ve dealt up until now, and I’ll just continue to deal.