Archive for the ‘F-Script Anywhere’ Category

F-Script Anywhere, Leopard Edition

Wednesday, October 17th, 2007

For all of you developers using Leopard out there, I bring you an updated version of F-Script Anywhere, designed specifically to work with new features in Leopard. Since the old (and not so secure) way of adding yourself to the procmod group no longer works in Leopard, F-Script Anywhere has adopted the new method of using code signing authentication. Code signing allows you to trust specific developers and applications so that only those apps can use task_for_pid(), the call critical to F-Script Anywhere and similar apps. This provides enhanced security. All of the certificate copying is built into F-Script Anywhere, you just need to trust the included public certificate (F-Script Anywhere will try to add it to your keychain, you just need to accept the certificate). You may also need to restart your computer (there appears to be a certificate cache on Leopard that doesn’t always update properly).

Without further ado, F-Script Anywhere 1.3.1, Leopard Edition. F-Script Anywhere is now distributed as part of F-Script, at Note that source is available through Nicholas Riley’s trac/subversion server. If you wish to compile your own source, you will have to copy your public certificate into the appropriate place in the source tree. This needs to be a code signing certificate, either generated by a certificate authority or self created.

F-Script Anywhere 1.3

Monday, June 12th, 2006

Hot on the heels of F-Script Anywhere Universal comes F-Script Anywhere 1.3. Apart from being a universal binary, this release adds several new features:

  • Auto-injection: For those used to the SIMBL version of F-Script Anywhere, FSA will now let you auto-inject applications. If for some reason auto-injection is causing your app to crash on launch, apps in the auto-inject list can be removed via the FSA preferences.
  • Auto F-Script framework install: If you lack the F-Script framework, or your F-Script framework is out of date, FSA will prompt you and you will have the option to auto install or upgrade your framework.
  • Auto adding to procmod group: If necessary, you will be prompted to authenticate as an administrator to add your user to the procmod group. This is currently necessary on Intel-based macs.
  • Faster browser access: You now have the ability to open a browser for an object via a target directly from the FSA menu. This removes the need to go to the special capture window, or to create a new browser and then choosing “select view.” The FSA “browser for target…” option is also faster than the F-Script “select view” button since it allows direct selection of various classes in the object’s hierarchy (this functionality existed before but is now easier to access).
  • Deprecated dialogs now removed: The key-value window has been removed, as it is now a deprecated part of F-Script. Also the naming functionality in FSA has been removed in favor of the “name” button in F-Script browser windows.

F-Script Anywhere is now distributed along with the F-Script framework and application set, but if you don’t want the entire F-Script app set, you can get just the FSA binary (includes the latest framework bundled).

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.