So I built what is an instant messaging bot using the Smack API and the Openfire XMPP server. Doing it is pretty simple of you read the documentation and Smack’s developer notes. The bot relies on a queue-like object that Smack gives you called a PacketCollector. All you need to do is log in to the server, and let the packet collector wait for incoming messages. Clearly, you need to respond to the messages and use thread tools to do the waiting and all, but in general, the effort is relatively straightforward.
Nokia N95-8GB: First odd tidbit
I recently purchased a Nokia N95-8GB (aka Nokia N95-4) because I wanted a phone capable of taking really good photos that I could easily share over a 3G network. It achieves these tasks with aplomb. Still, the more I use the phone the more I feel, like I did when I tried out the Nokia E71, that the mindblowing hardware is being sold way short by the cludgy OS, Symbian S60 v.3. It is slow, its multi-tasking is mediocre and the user interface is just outdated. I often wonder is anyone tested the phone in a usability lab.
I plan to share on this blog moments from my life with this otherwise amazing device. I should have read the manual. I intend to. I am a busy guy so sometimes I will clearly should have RTFM.
Today’s tidbit – downloadable videos: I stumbled across the video service download capability of the phone in its Video Center application. You can tell the phone which services you want to get updates on available
e content from – using a special website the phone connects to. Once selected, the phone fetches recent videos available, probably from an RSS feed. The video downloads very quickly – a 1 minute long video downloads in about 1.5 minutes. The quality is great.
Once you’re done watching, though, and we’re talking about a device with 8GB of memory but no way to expand on that memory, there is NO way to delete the video you have just viewed. There is also no information about whether that video will be deleted automatically. If you read the help file, that is easily accessible, it tell you that the video is saved to another section of the video center, ‘My Videos’. It’s a relief to know that. But why? Why can I not just delete the video right there from the list of videos in which it appears? Does not make sense.
I ‘ported’ my Java web application from Tomcat to Jetty. Like any web application, I defined a ‘welcome file’ in the application’s web.xml file. The welcome-file directive specifies the URL to be loaded by default when someone requests the root of your application. The welcome file may be just a file or a JSP, e.g. index.html, or it may be a name that is mapped to a servlet’s url (through the
In Tomcat, specifying something like

will work just as you would expect. But in Jetty, it will not. Unless you provide a workaround. What the somewhat angrily written post says is this: If you map a servlet to the URL index.htm, a file called index.htm must still exist. You *must* have a static, even empty, file called index.htm to have Jetty pass the request to your servlet that is mapped to that URL. Sorta cludgy, glad I found the answer quickly. Hope this helps others.
