Thoughts and Ramblings

General things I find of interest.

Branchless Code

Apologies if this is technical, but since I learned something in this experiment, I thought I would write it up:

I remember going to a seminar a few weeks ago delivered by a faculty candidate which discussed the idea of how to get around the branch mis-prediction problem present in microprocessors. Anyway, her idea was to use predicated statements to make the instructions conditional on a comparison which may not have been completed yet. Essentially, when faced with a decision between two routes, the processor starts computation on both before it is even sure which it should take. Then, when the decision is known, it can proceed to throw out the results from the task it should not have started and only keep the results from the other. Her research mentioned using the processor’s internal register renaming system to prevent the results from the two colliding. There is a problem of both processor support as well as compiler support, as well as the fact that the active power in the processor is now increased. From the first two issues, I doubt we will ever see this come to light, especially when such things are already possible:


Fire's Death

Gee, a bunch happened at once. Maybe it is just that I have a little bit of time. Anyway, I have finally made the announcement on Fire’s death. This was a long time coming, but I had to wait for Adium 1.0 to come out since it contained the upgrade path from Fire. As is the case with many open source projects, there was developer turnover, but lately I had become the primary developer and most of the other devs moved on to other things. I didn’t want to go at it alone, so it was time to let go. Anyway, it is a bit sad to see it end. I have use the program since sometime in 2000, so it had become a part of my life, just don’t want it to become my life.


I finally Quit

Well, it has been a long time since I posted here. The reason is not lack of things to say, but in fact the opposite. Much has been going on, but so much of it is in an unresolved state, I don’t want to say anything here about it (since this is open to the public). I can say that I finally quite as the sysadmin. I told my advisor that that it was effective immediately. He didn’t try to stop me, but also there really is nothing he can do about it. I didn’t sign a contract, and I am not paid. The real question in my mind is why do it?


Fixing File Transfer

I work on Adium from time to time, and it currently has a major issue with file transfer. The problem is that the libgaim code used a particular method to detect if a socket was closed, but this method isn’t reliable since Adium wraps the sockets in CFSockets to detect activity. So, we had to use another method. I elected to take some code from Fire since I solved the same problem there a while back. Here it is for the curious:


New Semester

Well, the semester is now into its third week and things are going alright. I just had my first week of teaching lab, and things pretty much went as expected. The problem is that the students are expected to do some assembly within lab, but non of them have seen x86 assembly in class yet. Essentially, I had the fun of teaching them the basics of assembly just so they could do the lab.