May 26

This is a pretty cool video, which I found via links at Trader Mike. Lions take down a baby buffalo, and a fight between the groups ensues. At some point, a crocodile makes a cameo appearance, deciding that it, too, would like to eat the baby.

The key moments are 2:00, 3:35, 4:11, 5:48, and 6:20. [EDIT: hrmm.. I see now that the embedded player only shows time remaining, rather than time elapsed, so if you're watching here, these timestamps aren't that useful. But, if you go see it at the youtube site they will make sense.]

I love that the “takedown move” the lion uses is exactly like what my housecats do if they are playing with a sizeable toy.

Watch this post's video on Youtube

May 25

I’ve always thought this was a dumb idea. Apparently, the python gods noted that people would often try typing 'exit' to exit the interpreter. But, instead of allowing this, they added a toplevel string variable with a default value of "Use Ctrl-D (i.e. EOF) to exit.". So, if you type 'exit', that string gets evaluated, and subsequently printed by the interpreter.

Python 2.3.5 (#1, Mar 20 2005, 20:38:20)
[GCC 3.3 20030304 (Apple Computer, Inc. build 1809)] on darwin
Type “help”, “copyright”, “credits” or “license” for more information.

>>> exit

‘Use Ctrl-D (i.e. EOF) to exit.’

I guess that’s helpful, but you know what would be more helpful? Just exit the freaking program!

To me, this is like if your web browser had a “refresh” button that popped up a dialog telling you to press the “reload” button.

By the time you acknowledge your users’ expectations by adding code to your product, the only sane choice is to make your product do what your users are expecting. I bet whoever added it thought it was clever that the interpreter would print the string when it was evaluated, and “clever” won over “sensible.” Oh well.

That’s not even the worst part. The other bad thing about this hack, is that it only really works in the interpreter. If you mistakenly type 'exit' as part of a python program, this hack means you don’t get an error. Unfortunately, you don’t get a program exit, either. You just get a silently disregarded string value. I can imagine a poor entry-level coder trying to debug that problem! “It seems to be disregarding my exit statement!” meh… The poor user’s only hope is if they misspelled it, since 'exut' would raise a NameError (which would actually exit the program if it’s not caught).

Don’t get me wrong. I like python quite a bit (though I use it very little). This is just one of those things that’s always irked me.

May 23

JaikuBerry 0.8 is out. Changes are:

  • Added more keyboard shortcuts, and documented them on the “About” screen, so people have a chance of knowing what they are. Less scroll-wheeling needed.
  • Some internal code refactoring, getting ready for the time when jaiku enables posting comments via the API
  • Incorporated the new “entry_title” property in the JSON feeds, so that comments no longer redundantly say who the comment was from. Now it says (Re: blah…) rather than (Comment from RichardTodd on blah..) after the comment
  • Worked around a bug in the jaiku feeds, where I have to manually build the url for comments, on items that are pulled in from feeds. This is because the “URL” listed for these items is the url of the external item, rather than the jaiku post about the item.
  • Still tastes great, and is less filling.

I have gotten a lot more users lately, and the comments have been generally positive. I’ve learned more than I ever wanted to know about various mobile phone providers, trying to help you all successfully configure your phones for jaikuBerry. In all but one case, we were able to work together to make it work on your phones. I only know of one instance where the user would rather just give up than try to troubleshoot the problem. So, good!

I think I’ve said this on each of the last few releases, but I really think this is all I can do until more API features from jaiku are released. People have asked for the avatar pics, but I’m not interested in that feature. It takes up screen space, and takes time to download. I like a light-weight interface for mobile connections. Maybe 3G (or 4G) (or phones with wi-fi) will change my mind, but I don’t have any of those right now. One person would like it to pull location data from GPS, and I think that’d be awesome, but I don’t have a GPS-enabled phone to develop it with. If anyone wants to work on that feature, I’d love to help get it into jaikuBerry.

May 20

This is, I think, the limit of what I can do until more API features are released. It can be installed OTA or downloaded for installation with the Desktop Manager from the JaikuBerry page

New in this version:

  • View the public jakus stream (the “explore page”)
  • View your contacts list (great for browsing to channels that you aren’t subscribed to, etc)
  • View other people’s contacts list (for more directed exploring than the public jaikus stream)

From the contacts lists, you can browse to that user’s jaikus. It’s begging for features like “add/remove contacts”, and these will be added once the jaiku API supports it.

If you only just jaikuBerry for posting, then this upgrade won’t mean much to you. That part of the product is unchanged.

[EDIT: in response to a user request, I issued 0.7.2, with one more new feature. It allows you to store up to 5 locations in your settings. Then, you can select from your locations quickly on the posting screen.]

May 19

Another video from the fine Google Tech Talks series. This one is mainly about concurrency in Java, and the way concurrency interacts with the memory model is JDK5 and JDK6. Lots of stuff on non-locking synchronization, which I’ve never tried to do in java. I’ve always just used locks and been done with it. When I used to code in C/C++ a lot, though, I used to try to avoid mutex locks as much as possible, as a matter of principle. So, for example I was interested in the part on what promises the JVM makes regarding volatile variables. Good talk, overall.

May 16

New version… it’s now on its own permanent page: here!. This is also where the download and OTA install links are.

Mainly this version fixes a bug, and enhances your ability to browse jaikus. You can now go to a view of any post that includes all its comments. Or if you are on a comment, it will take you to the parent post with all the comments. It keeps a “stack” of screens like a web browser, so pressing ESC takes you “back” one page. Very convenient!

As API updates roll in (like, ability to Add/Remove contacts and feeds, and ability to comment on a post), they will make their way into future versions.

May 10

[EDIT: as some web-links point to this post, I want to point out that the newest version and description of the product is always at my jaikuBerry page]

I’ve converted my jaiku MIDlet into a native BlackBerry app. As with the original MIDlet, the main reason to do this is just to learn the ins and outs of BlackBerry programming. However, there are some nice improvements already.

Improvements include:

  • All the screens generally look a little nicer. There’s some color, as in the title bars.
  • The screens for reading jaikus look much better, as far as I’m concerned. The BlackBerry UI allows me to make parts of strings bold, and put separators between strings. Plain old MIDlets can’t do that without resorting to Canvas displays (which are not worth the effort when you are just trying to display some text).
  • The HTTP/network code no longer freezes your display. This is a MAJOR improvement, which I could have done with the MIDlet as well, to be fair. I just never got around to it. And, you get nice status on the amount of data read so far, so you have some clue what’s going on while you’re waiting. And, you can also put jaikuBerry in the background and read your email when the connection is particularly slow. Sweet!

Some screenshots from my BlackBerry 8700c:

posting screen
Status Part One.
Status Part Two.
Reading Jaikus

You’ll notice, I still don’t pull down the avatar images. And, it’s mostly not because of laziness… Until mobile phone internet speeds improve a bit, I’d actually rather not display images for this particular app. It takes long enough just to pull down the JSON feed!

It’s available for download and OTA install on my software page. I will also leave the last plain MIDlet available, as it will run on non-blackberry phones. Any BlackBerry users out there should definitely upgrade!

The tar.gz will have all the source, as well as .alx/.cod files that you can use with the desktop manager to load the app onto your blackberry. I have ONLY tested on a BlackBerry 8700c. I believe it will work with most BB devices, but I have NO IDEA which ones this COD file works against. You have the source, so you should be able to build it (or get someone to build it) for any model you want. Enjoy!

May 7

I think this is the originator of this fun song (which is a year old, but I just heard it for the first time, so…):
Thing a Week 29, Code Monkey.

Someone set the music to a WoW-type animated video. I would rather see it set to dilbert cartoon footage, but whatever. The main reason I’m pointing out the streaming video is that it makes it easy to hear the song.

Watch this post's video on Youtube

May 7

A couple minor new features in this version.

First off, it tells you if you need to set up your username and personal key. Previous versions would just try to ask jaiku for username ‘unset’ and expect you to figure it out when you always got bad results.

unset!

Secondly, you have more ability to browse around jaiku. Specifically, when you are browsing your overview, you can go to the selected post’s author’s page. From there, using the ‘back’ command (also the ‘escape’ key on your blackberry if you are using one), will take you back to the overview without pulling the page over the network again. It was a cheap enhancement to make, so I made it.

Here you can see the feature in action. In my overview, my cursor is currently on a comment from user raiglstorfer, and the context menu has a command allowing me to pull up all of raiglstorfer’s recent jaikus.

Browsing Around

… all this, on top of all the other great features that version 0.4.1 had! And it’s free! Can’t beat that. As always, you can get the latest version from my software page. Still trying to find the energy to package up more of my software so you can play with it. Maybe next weekend.

As always, I’ve provided the JAR/JAD files which should work on a variety of java-enabled mobile devices. I’ve also given the ALX/COD files I built with the BlackBerry JDE 4.1. You can install it via the desktop manager. I’m sure these work on my 8700c, and have no idea which other blackberrys will be compatible. The source code is also there, if you want to change it, or build it specifically for the device of your choice.

Enjoy!

May 4

NOTE: Jaiku’s devku.org site links to this post, but newer versions are available. See the jaikuBerry page for the blackberry-specific app, and the software page for the current J2ME midlet.

As you can see from this screenshot from my actual Blackberry:

Latest Screenshot

… I am now fetching the overview feed and the “your jaikus” feed and displaying them on demand. You can also see that, once again, I’ve completely disregarded any sense of aesthetics that I may possess. I wanted to make this as lightweight and simple as possible (which is fancy talk for “I’m a lazy bastard, trying to get by with the bare minimum while I wait for the mojax jaiku moblet“).

At least I bold-faced alternating entries so it’s easier to scan across them! And, seriously, if you want a bare-bones jaiku interface with very low overhead, I think this isn’t such a bad little app. It’s still all standard J2ME/MIDP stuff which should run on some very low-powered phones. Not that I’ve got any such phones to test it with….

At this point, I think I’m calling this product feature complete (It already does a decent job of posting updates, as discussed in the previous release’s blog post). At least, until the official API is enhanced, I’m done. I’m not going to resort to screen-scraping to be able to post comments, etc.

It would be nice if I would add some sort of status as I download the presence streams, so that you can tell that the app is not frozen… it can take a few seconds to pull the whole json structure across. Maybe I will do that if I get motivated.

As always, you can download it from my software page. The package contains all the code, and the JAR/JAD suitable for transmitting to java-enabled phones. It also contains the ALX/COD I built with the BlackBerry JDE 4.1. This COD file works on my Blackberry 8700c, and has not been tested on any other blackberry (since I don’t have any others!).

(note to self: you take a screenshot of an actual blackberry by connecting it via usb and using the command: javaloader -u screenshot filename.png. It will generate a HUGE png file that you’ll want to re-encode.)

« Previous Entries Next Entries »