4 guys (Jacob Sparre Andersen, Kim Rostgaard Christensen, Thomas Løcke and Ulrik Hørlyk Hjort), a properly air conditioned room, a whiteboard, plenty of coffee, some laptops and a handful of hours to spend on Ada programming and other interesting subjects.
As you might imagine, yesterday evening was just as entertaining as all the other open Ada-DK meetings.
I had a question about signal handling and the Ada.Interrupts.Names package (specifically the GNAT version). There’s a comment at the top of the package that says that the SIGINT signal is reserved by the run-time, but it also states that SIGINT is the only signal affected by the pragma Unreserve_All_Interrupts. For a newbie like me, that tasted a bit like “you can do this, but you might mess up a whole lot of things”, so naturally I wanted to know if that was the case or not. The general consensus was that I would not end up with a programming disaster of epic proportions simply by defining my own SIGINT handler, so YAY! for that.
We also talked at length object persistence. Jacob’s done some work in that field and Kim had recently tried his hand at a Java based system, which apparently had some very interesting features in regards to object persistence. I mostly asked questions, while feverishly trying to understand exactly what they were talking about. It’s always fun being at the edge of your current level of knowledge!
While Ulrik and I spent some time debugging our Android app, Jacob and Kim talked a bit about a leakage problem in Java, and whether or not it was a common issue, and how it was solved in Ada. I must admit I didn’t pay much attention, because Ulrik and I were knee deep in Android gore. There are some nasty bugs in our Android app, but luckily they seem to be limited to version 2.3.4 of Android.
Another interesting topic that came up was that of protected objects, potentially blocking operations and tasking. I had to confess having wrapped a potentially blocking operation in a protected object, and I got properly schooled for it! I did try to defend my decision, but it was a pretty tough crowd. Luckily, as time went by, everybody more or less confessed to having done it, so I wasn’t the only one with that specific sin to bear. :o)
Kim showed some work he’d done on interfacing (using Ada, of course) with a watt-hour meter that could be read/controlled using a USB dongle over MBUS. Both the device and Kim’s code was pretty nice. He still had some minor niggles that needed ironing out, but it mostly worked. The idea that you can wirelessly read the wattage being used by a specific socket is pretty cool I think.
Dinner was, as usual, provided by the excellent mr. Lee and his chinese companions. Noodles and spring rolls galore!
The entire evening was a blast. It’s great hanging out with other Ada programmers. Mentally it’s a refuelling experience I can highly recommend!