How to wait for a remote process in PowerShell

A short one today. I’ve been scripting in PowerShell (v1) recently, and had enormous trouble working on remote PCs (the full remoting functionality has not been enabled in our environment yet, so things like Enter-PSSession don’t work). One thing that cost me more nerve cells than usual was the synchronization of remote processes, since PS doesn’t really offer any means for that by default. I was, however, able to find a workaround.

Continue reading

Posted in powershell | Comments Off on How to wait for a remote process in PowerShell

How to configure a SoundFont in Windows 7

As you may already know, the MIDI sound file format does not contain any sounds per se. Instead, it is something like a score sheet that tells your operating system which sounds to play at certain times and for how long. Said sounds are stored on your own hard drive or synthesized in real time by the OS itself.

Long story short, the default sound synthesizers on Windows 7 (and probably earlier versions) suck. The only instrument that sound more or less natural is a piano, whereas the guitars, much less distorted or overdriven ones, sound awful. Those who don’t have to work with MIDIs often may be fine with just that, but if you would like to compose music on your PC, you definitely need a decent SoundFont.

Continue reading

Posted in midi | 39 Comments

How to generate a deterministic GUID from two strings in Java

Currently working on MSI packaging for our software and using WiX tool suite to automate the process. Since it was decided that we don’t want to use patches, I had to implement pseudo-major upgrades for each version.  Now, the problem with that is that MSI framework doesn’t really care for version number so much as for the product GUID. In other words, if the version is the same but the product GUID is different (which happens because our build process generates new MSIs every time a module is updated, even if others are not, and the product ID is generated anew with every build), it will run the full uninstall old/install new routine regardless of other factors. This costs extra time during the installation, so I wanted to avoid it if possible.

The idea I had was to write an algorithm that created a unique GUIDs out of a string (or two strings: module/product name and version number). This way I could ensure that the package whose version has not changed will always have the same product GUID, regardless how many times it is rebuilt. The only difficult part was to find a way to make the implementation of said algorithm as simple and stupid as possible.

Continue reading

Posted in java | 4 Comments

Another day, another blog

I’ve founded yet another blog, though this time, it’s on my own private site. Go me!

Tinkered with the design a little, but I seem to like the default one best. The header image is courtesy of Dru! from Flickr, who has been kind enough to publish that awesome picture under the CC-BY-NC licence. Also, the term “blag” is an XKCD reference.

That’s all for now, let’s see how far I get with this.

Posted in blag organization | Comments Off on Another day, another blog