C Paul Program, C Paul Rant

I was playing around with the Google Maps API and loading some of my nav data into Google Maps when I noticed a few waypoints with the wrong province. Oh oh. For instance, CDT5 Buctouche Airport is marked as being in Quebec instead of New Brunswick.

The DAFIF data never provided province data, so a long time ago (March 2001 according to Google Groups) I located some shapefiles with provincial boundaries and wrote a C program to do “point in polygon” to figure out what province the points are in. Obviously there is a mistake either in my algorithm or the shapefiles. Which is too bad, because a while ago I discovered that I don’t have the source code for the program any more. Not sure where it went, but I can’t find it anywhere. Funny, that program has moved without recompiling from my home system to Gradwell hosting to Linode Virtual Private Server to my rack to back on my home system. But now it’s time to recreate it.

The first step to recreating it is to find the library I used to access shapefiles, and after a bit of searching I discovered its name and web site, and also that it’s in the default Debian distribution. Of course, being Debian, in spite of the fact that it’s a positively tiny little tar file when you install from source, they had to break it up into libshp1, libshp1-dev and shapefile packages. Was that really necessary?

The next step was to find the Point In Polygon algorithm, but fortunately the newsgroup thread that I found my asking about it in 2001 also had the pointer to the comp.graphics.algorithms FAQ for that.

Now the biggest hurdle is that I’ve got to get my mind back into C programming again. Ugh. It’s hard to think that I used to do this shit every day, and it was all second nature to me. Now I’ve got to stop and think that when the function signature says “double *” and it returns X, Y, Z, and “M” (whatever that is), that I really need to declare “double maxBounds[4]” and pass it as “maxBounds”, but when it says “int *” and it returns a single value, I need to declare it as “int nVertices” and pass it as “&nVertices”. Even when I was doing C++ I didn’t have to deal with crap like this because C++ programmers were *far* more likely to declare a class and use that as the return type instead of passing in a huge list of arguments to return values in. There was a time when I thought C was the greatest language. And I helped write a gigantic Geographic Information Systems product in it. Those were the days.

Yet another reason why Lotus Notes is not my favourite software program

I asked one of my bosses why I wasn’t invited to a certain meeting. He said he did, but it was declined. A few years ago I got tired of the constant stream of meeting invites, modifications, and cancellations, I set it to automatically accept any meeting invitation, so this was a bit of a surprise. So I went into the highly intiutive Actions->Tools->Preferences menu, only to be greeted by a popup saying

Availability Problem
Your availability time range is invalid, please correct.

and when I clicked on “Ok”, I got another popup

Cannot locate field

and when you click on “Ok” on that one, a third popup

Notes Error – Cannot locate field

Going into “Calendar & To Do”->Scheduling on that dialog subjects you to many more of these triple threat popups, like every time you attempt to edit one of your availability times. My availability was set to 4am to 5pm, which seemed a bit over-zealous to me. But I couldn’t edit them, and I couldn’t save the Preferences dialog, either.

I found this page on IBM’s support site for Notes, but none of the complicated options actually did anything except subject me to more of those triplet popups.

Then I found another unofficial page where somebody said to turn on Saturday and Sunday availability, edit their available times, save it, then come back in and turn off Saturday and Sunday availability. Sure enough, Sunday’s availability was set to go past midnight, and when I set that to “11:30 AM – 11:31 AM” and saved it, the problem went away. And then I was able to set my weekday availability to a more reasonable time as well.

Thanks very much Notes. Rot in hell.

Update: I just figured out why his meeting notice was declined: He had it scheduled to repeat every Tuesday and Thursday, and Notes is smart enough to see that there is a conflict (22 November is a company holiday) but dumb enough that it rejects all instances of the meeting instead of just one. And why did it allow him to create the meeting then? Sheesh, what a piece of shit.

Ok, I’m confused

I’m trying to find a way to put a nice formatted table in my Google Web Toolkit application, and I was looking at gwt-advanced-table – Google Code. The code comes with no documentation, just an example that took a lot of wrangling to get it to work. And is going to take even move wrangling to get it to work in my demo.

But the problem is that we want to avoid viral licenses in the code we use. And since this isn’t packaged up as a nifty jar, its code will mingle in with ours. Our company lawyers have cleared a few open source licenses, but obviously not the General Public Virus. One they haven’t cleared yet is the Mozilla Source License. So I look at the Google Code Page for this code, and there at the top right is the banner “License: Mozilla Public License 1.1”. But down at the bottom (and in comments in the code), it just says “License: Freeware”.

So which is it?

Should I or Shouldn’t I?

The new version of this blog software, WordPress 2.3, is out. And evidently it breaks some plugins. Many of the plugins I use haven’t been updated in years, and aren’t listed on the list of “known broken” or “known working” plugins. One I like a lot is listed as broken, and hasn’t been updated in a while, which makes me think that if I upgrade I’m going to have to do without it. Also, my theme is heavily customized, so I’m not sure if it will work.

So do I wait, or do I upgrade now and accept that lots of things are going to be broken?

Gwit? W00t!

On the revelation that my boss had a skunk works project going to prototype a new client/server version of the user interface in Flash, I was appalled. So I suggested that he investigate Google Web Toolkit (GWT). I hadn’t actually done all that much reading about GWT, but it seemed like a really cool idea – you write both client and server side of your app in Java, test it in an Google Hosted Browser and debug it using your favourite Java debugger, and then when it’s ready, compile the client side to AJAXy Javascript.

My boss came back with a counter proposal – why don’t I investigate GWT, produce a small prototype, and he’ll evaluate it side by side with the Flash project. Of course, the person doing the Flash project has a 3 month lead on me, but hey, I’m up to a challenge.
Continue reading “Gwit? W00t!”