Archive for May, 2006

Active Timer 1.3

Friday, May 12th, 2006

Active Timer 1.3 has been released unto the world! It has improved accuracy (sub millisecond precision — and no, this doesn’t take any additional processing power), better idle time calculation (idle time will now be retroactively transferred to the idle category!) and if those features weren’t enough — it’s now able to keep track of your per-window spent time. This is the first release where I’ve used a small pool of beta testers. This was immensely successful, allowing me to track down many more bugs than usual. As such, I’m looking to expand the Active Timer beta test pool, so leave a comment if you want to join the pool (if you haven’t left a comment already).

If you have any requests for Active Timer 1.4, please also leave a comment. I’ll be deciding on the feature set for 1.4 in the next few weeks and welcome all input. In the mean time, I’ll be working on F-Script Anywhere and NicePlayer.

F-Script Anywhere is coming along nicely — the next release will have an auto-injection feature, to allow you to choose a set of applications that you want F-Script Anywhere to automatically inject into (this was a request by Ken Ferry, who enjoyed this feature which was a result of the SIMBL version of FSA). FSA just needs a little more testing before release.

NicePlayer has been built as a universal binary, however I’ve been holding off on its release until I can get the Xine Plugin to also work universal. I’ve spent many hours on the Xine-lib code getting it to compile, but it’s slow going due to a number of complicated issues. I’d welcome any comments pertaining to whether people think that NicePlayer universal should be released before Xine Plugin universal.

F-Script Anywhere Universal!

Saturday, May 6th, 2006

Today has been a week of much coding — a new release of Active Timer will be out soon (more on that later) and I’ve just finished the work getting F-Script Anywhere to work on Intel. For those of you asking, the code I am working on is from Nicholas Riley’s top of tree. It looks like I’ll be taking over maintenance of FSA for the time being, and as such Nick will be giving me access to his repository so I can commit my changes in. This is a good thing, as the source right now for the various versions exists in different directories across my G5 and MacBook. Both PPC and Intel versions of FSA are powered by mach_inject (the mach inject work for FSA was primarily done by Nick), and with the recent work (well, somewhat recent) by Bertrand Guiheneuf on mach_inject for intel, I was able to get a version of FSA working fairly easily. Note that on intel you will have to follow the instructions on how to enable cross-task control. So without further ado I bring to you F-Script Anywhere Universal.

Some slight notes for this version as far as the specific work that was required. I’m not sure if this will be of any use to anyone, but it will allow me to document what I’ve done somewhere. Currently this binary is stitched together using lipo and built on two separate machines, since it requires some darwin source to be built for various reasons. Additionally the binary currently doesn’t work on intel when built with debug symbols, I imagine this has something to do with how much space the code takes up, but I’m not sure and I didn’t bother to find out. Also lipo failed me with the internal SCPatchLoader bundle, since a lipo’d binary would end up resulting in a vm_allocate error when running on ppc (although it would run fine on intel). I really have no idea what could cause this to happen (maybe some sort of alignment error? I don’t know), but it sounds like it probably should be some sort of lipo bug maybe. So I ended up working around this by including two bundles, a ppc and an intel bundle that gets dynamically loaded depending on the machine you’re on. Anyone who wants a copy of the source should send me an e-mail, and I can hook you up.

As far as Active Timer goes, I’ve been working on a much improved version that allows you to track the time spent in each window as well as each application. I’ve also implemented some more precise timing functionality and the ability to automatically transfer idle time to the idle category when the app detects that you have been idle. Hopefully this will be the first in a series of updates for Active Timer that will make it even better than it is currently. I’m hoping to release this version sometime in the coming week, assuming no large bugs show up. For all of those who want to test out a beta version, leave a comment.