Category Archives: tech

bitbucket

I finally got around to a) updating my old WordPress-installation (after finding out spam-bots had already created custom folders on my installation) and b) uploading all my public code to bitbucket (as Mercurial repositories).
That includes my wavelet image compression library, its Mac OS X previewing GUI as well as WowPlot (including some fairly decent Objective-C WoWCombatLog.txt parsing). I converted most of those repositories from darcs (which in the case of my wavelet lib took about 3h to convert from darcs1 to darcs2 format), but on first glance they look alright.

Solid-State Drives and You

While solid-state drives (SSDs) seem to be all the rage in net-/laptops at the moment, most of their advantages (mostly negligible access times) also make sense for a desktop system, whereas their disadvantages (price / small size) are not as constricting as you can have multiple physical discs in a desktop system.
I’ve bought a 64GB SLC SSD drive in a 3.5″ SATA version for my Mac Pro and use it solely as an OS and applications drive, while my home-directory (where the bulk of my data obviously sits) is still on a normal, spacious hard-drive. The speed-up (in spite of Mac OS X’s already quite fast boot / application start-up times) is very noticeable.
The OS migration from the HDD to the SDD was very painless. I used Carbon Copy Cloner to copy everything but my username’s home directory, rebooted from the SSD, logged in as the user with administration privileges (which your everyday user account shouldn’t have) and changed the home-directory for my non-admin user (under System Preferences – Accounts – Right-Click on the account – Advanced Options – Home Directory).
Almost all applications (baring Xcode) cold-start approximately half-way through the first Dock-icon bounce and World of Warcraft flies with this setup. 🙂
If I didn’t need more than 64GB total space on my MacBook Pro, I’d also fit it with such an SSD drive without hesitation. But as it is, I need more space. Alas, when the next laptop is on the horizon I can definitely see myself shelling out for an SSD upgrade. Maybe mainboards should come with something like 64GB of on-board flash for use as operating system and application drive…

WowPlot 0.1.2

WowPlot has been updated to version 0.1.2, featuring the following improvements:

  • Added an option to automatically create new plots when splitting (by holding the Alt(⌥)-key).
  • Added new 2.4.3 combat log events (at least the ones I could find).
  • Removed PetFixers entries for Shaman’s summoned elementals (as 2.4.3 fixes this).
  • Added Fire Bomb spell to belong to Jan’Alai.
  • Updated Sparkle to 1.5b4.

Announcing WowPlot

WowPlot is a graphical analysis tool for World of Warcraft® combat logs (compatible only with the new combat log format introduced in version 2.4). Its main focus lies in evaluating time-dependant combat performance in a very free-form fashion, which is in contrast to the mainly statistical approach of other tools.
WowPlot Example Layout
WowPlot requires Mac OS X Leopard (10.5) and is a Universal application.

Wavelet 3.4.0

A slightly bigger release, which brings two major changes. Not compatible with older files due to the the reorder-changes. The improvements to bit.c are not terribly well tested. More here, as usual. As an aside, Kompressor is now served in a ZIP-archive, instead of a DMG…

Changelog

  • Overhauled the reordering-code to make the table used independent of the aspect-ratio of the image. This makes old images incompatible with this version of the code. The smallest dimension (in wv_create_reorder_table) is now relevant for the largest table entry. Any image whose smallest dimension is smaller than the one used to create the table originally can safely use it.
  • Added a “min bits” criterion to the scheduler, that reserves a certain amount of bits for certain channels. Perceived image quality has improved a fair amount, the same default values are used in Kompressor and main.c.
  • We can now pass a write buffer into bit_open(), added bit_free() for deallocating automatically allocated regions. Only accepts lower-case mode-strings now.
  • Fixed (and simplified) scheduler preparations for very large absolute target errors.

It’s wavelet bugfix time — 3.3.4 is here!

While compressing a multi-channel file with a target bitrate and no specific target MSEs the resulting bit distribution between the channels seemed rather odd, and comparing the results to an older version revealed that it was indeed totally bogus!
So I changed the target MSE computation in main.c to be more inline with what happens in Kompressor.app, which revealed a another bug where tiny negative (i.e. relative) target MSEs passed to wv_query_scheduler() / wv_encode() were converted to 0 (instead of the smallest negative fixed point number representable) and thus interpreted as absolute target MSEs.
Both of these are fixed in 3.3.4 (and Kompressor.app has also been recompiled with the relevant fix).
Other than those two fixes (both of which only relate to target MSE evaluation when compressing), the code is identical to (and thus fully compatible with) version 3.3.3.