Categories
Random observations

2003-11-22 12:03:50

England win the Rugby World Cup. D’oh! But they deserved it overall. Absolute cracker of a final, and boy was it close in the end. England edged it 20-17 after extra time. Of course it had to be Jonny who got them over the line. A drop goal in the last minute of extra time.

Categories
Random observations

2003-11-20 09:14:50

Today I modified my query testing application so that it doesn’t require access to the Internet and uploaded it onto my phone via a data cable. The demo is not very spectacular. It reads in a query in the form of an XML file and an advertisement in the form of another XML file, and sees how closely they match. It reports back the total number of components in the query, the total number of components in the advertisement, and the number of query components that match the advertisement. An exact match occurs if the number of matching components is equal to the number of components in the query. The query can have arbitrarily complex expressions, and the expression language has some built-in functions. Here’s an example:

 <?xml version="1.0" ?>
 <component name="printer">
   <component name="resolution">
     <component name="dpi">
       100     </component>   </component>
   <component name="location">
     <component name="latitude">
       <exp>
         <![CDATA[(that < 44.5) && (that > 31.1235) && (that != 33.3)]]>
       </exp>     </component>
     <component name="building">
       <exp>
         ![CDATA[that.startsWith("GP")]]>
       </exp>
       <component name="level" value="6">
         <component name="room">
           <exp>
             <![CDATA[that == 633]]>
           </exp>
         </component>
       </component>
     </component>
   </component>
 </component>

I hope that shows up as it is supposed to. By the way, this is a completely made up example. The component names and values aren’t actually supposed to mean anything. This example has three expression components if I can count properly. These are the CDATA things that are surrounded by an <exp> tag. The expression language is dynamically typed (i.e. it figures out whether it’s dealing with a string, integer, float or boolean as it goes), and the operators take on different meanings depending upon what the types of the operands are. For example "<&quot behaves differently depending upon whether the operands are strings or numbers. The keyword that stands for the value in the advertisement. Therefore the expression that == 633 is equivalent to using the value attribute. So in the example above we could have simply specified <component name="room" value="633"> instead of using an <exp> element. An application would either have some predefined queries or would build these queries from some simple user input. So don’t go thinking that the user has to type in all this gobbledygook.

The best news of all is that the example actually runs several seconds faster on my phone as compared to the emulator for the phone. Class loading is what takes the longest.

I also worked a bit on the journal paper today. I think it’s ready to be shown to Ted and Jaga.

Categories
Random observations

2003-11-17 01:28:48

Cooking for my brother and myself is one thing. Cooking for over fifty people is quite another, but that’s exactly what I helped to do over the weekend. One of Mum’s friends is going to India very shortly. She wanted to have a going away dinner and asked Mum if she would cook some Indian food. Mum, of course, duly obliged. Nigel, Dad and I were also roped in somehow. So our Sunday was spent cooking an Indian feast of around eight different dishes: chicken curry, pumpkin curry, aloo gobi, dhal, raita, tomato chutney, rice and puri. Everyone was supposed to come dressed in Indian garb, but Mother neglected to pass on this minor detail to Nigel and I. I swear one guy came looking like one of the three wise men. It was a very enjoyable party, and all the more satisfying because people were going back for second and third helpings of the food! Having said that, I don’t think I would like to help cook for that number of people again anytime soon, and next time I head up to Caloundra, my time will definitely be spent at the beach and not in the kitchen!

On Saturday, Mum took us to see Seabiscuit. In hindsight, I’ve come to see this as a massive bribe. :) Anyway, that movie was fantastic. And as the advertisement for the film says, you can’t help but leave with a lump in your throat. The acting was great. The plot was enjoyable and uplifting. I highly recommend this film.

Of course, Saturday night was spent watching Australia versus New Zealand in the Rugby World Cup. I can’t believe the result. Both teams seem to have a complete form reversal: Australia played far better than at any other stage in the tournament so far and New Zealand gave a miserable performance. But that doesn’t give credit to Australia’s rock solid defence. 22-10 was a fair reflection of the match, but perhaps not a reflection on how the two teams have performed overall in the tournament. Sunday night saw the clash between France and England, which England won 24-7, thanks largely to the boot of Jonny Wilkinson. Of course, this game was played during our Indian dinner but that didn’t stop many of the guests from sneaking into the bedroom to take a peak at the score from time to time. So, Australia and England in the final. England have to be the favourites, but if the Wallabies play as well and with as much spirit as they did against the Kiwis, then I don’t think even England can stop them.

Categories
Random observations

2003-11-14 06:37:32

I’m about to leave for Caloundra. Have to pick Nigel up from work on the way. Today I attended a brainstorming session at DSTC where we talked about what we’ve been doing and what we’re going to do. Mildly interesting. It looks like we might have the basis for a new research group.

When I got home I fiddled around with my query matching test MIDlet. I now have it running on the emulator for my Siemens M55. That emulator runs on my brother’s PC, and for some reason it is a *lot* slower than the emulators I have running under the J2ME Wireless Toolkit on my Linux machine. As far as I can tell, the emulator does not emulate the actual performance of the phone. Therefore my app should be running much faster than it is. Anyway, at least it’s all working now!

Categories
Random observations

2003-11-12 07:38:21

Well I finally got my expression evaluator thingy running under the KVM. The class preverifier on my system kept segfaulting, so I asked my friend Doug Simon what to do. He sent me another version of the preverifier and everything is working sweetly. In standard Java, verification is done at runtime by the VM. But because of resource constraints on small devices, verification is done offline prior to execution time. The preverifier sticks some extra info into a classfile which the KVM uses to do a simplified verification. The extra info that is inserted into the class by the preverifier is transparent to ordinary VMs. So thanks Doug!

Categories
Random observations

2003-11-11 15:01:24

I’ve finished coding the expression matcher. It’s working nicely under J2SE. But when I try to run it in the KVM (the VM for J2ME) I keep getting verification errors. A java/lang/VerifyError is thrown if there is some kind of internal inconsistency in the byte codes or if there is a security problem. I’ve recompiled everything a number of times, making sure to compile to release 1.1 of the VM and specifying -bootclasspath so that J2ME versions of the standard Java classes used. But I still can’t get the thing to work. The VerifyError only seems to happen for largish classes. I can write a simple “Hello, world” application for the KVM and it will run without complaining. I’m sure a solution will present itself shortly.

Categories
Random observations

2003-11-10 13:00:39

It seems RA has way too much time on his hands, because he’s gone and RSSified my blog on his own. For those readers interested in an RSS version of this blog, you can access it here. I still plan to update my blog in the near future, and part of that update will include an RSS feed. In the meantime, please use the feed Rhys has kindly provided.

Categories
Random observations

2003-11-10 11:58:07

I’m just back from my Spanish exam. I scored 100% on the oral exam, and hopefully I went OK on the written part. Not bad considering I managed a grand total of 30 minutes study during the last two weeks.

My computer is currently lying on its side with its cover off, and it has been like this for the last week. During that time it hasn’t been making weird vibrating noises at all… until just now. I think it might have something to do with the ambient temperature and perhaps even more to do with the humidity level. The air feels quite sticky at the moment. It’s been raining on and off all day, and there is a bit of cloud cover. I should probably just get off my butt and buy another fan for the VIA chip.

I scream for ice-cream, with some tasty Cadbury chocolate topping and chopped nuts. A cuppa would do nicely too.

Categories
Random observations

2003-11-09 15:30:31

It’s late, I know. I stayed up watching Indiana Jones and the Last Crusade and then the documentary that followed it about the making of the Indiana Jones series. Then I decided to finish off the expression scanner for Superstring. I’ve tested it, and it seems to be working well. Now I need to code a parser for the expression language. Ideally all this should be small enough to fit on a mobile phone or some other equally resource poor device. It’ll be cool once I’ve got a prototype of my protocol running on my phone! I’ve bought a data cable that connects my new mobile phone to the computer so that I can copy files to and from the phone. There are some example Java applications that come with the Siemens Mobility Toolkit and M55 emulator. I can take a look at those for examples on how to turn an application into a Midlet (a Midlet is like an applet except for mobile devices). If I get sick of playing Wappo and Extreme Games (they are the games that are preinstalled on the M55) I can copy over some of the example software that came with the M55 emulator. I’ve already copied over some midi files to use as ring tones. :) Speaking of ring tones, I think a neat demo of Superstring will be to advertise ring tones and Java games, and to let users send queries from their phones to locate these resources from other users. It’d be better if my phone was equipped with something other than GPRS, because then I could demo the ants based protocol as it was truly intended: queries to other devices in close proximity. With GPRS I can demo the phone as a client in a much wider-area network. But as I mentioned in an earlier post, the clients and services utilise the same protocol regardless of the kind of network they’re in. So in fact, the demo will be just as useful over GRPS as over Bluetooth or IrDA. Excellent (said in an evil Mr Burns kind of way).

Categories
Random observations

2003-11-07 13:17:34

I just saw The Matrix Revolutions. I have no idea what happened in that movie. Maybe I just wasn’t switched on, but there are so many things I didn’t understand it would be impossible to list them all here. Seeing as though the movie was only just released, I won’t give away too much. Basically I was hoping that some of the questions that were asked in The Matrix Reloaded would be answered in this movie. They weren’t. I’m not even going to write any more right now. The first Matrix film was magic. The next two had a lot to live up to, and in my opinion failed to bring anything new to the table, save perhaps for some stunning CG. Definitely go see it, but only if you’ve seen the previous two. If you haven’t it will make no sense whatsoever, not that it makes much sense at all.