How to install JDK from PowerShell silently

A couple of day ago, I have fought long and hard battle against JDK (Java Developer Kit) installation packages. The goal was to deploy the JDK offline to a custom path on a Windows (XP + 7) system using a PowerShell script. The problem was that the jdk.exe installer (the only one available from Sun) has trouble parsing INSTALLDIR value if it contains whitespace (e.g. “C:\Program Files”). Also, PowerShell has trouble interpreting parameters containing with escaped quotes in the middle, like /v"something".

Continue reading

Posted in java, msi, powershell | Leave a comment

How to copy HTML tables to MS Excel

A quite simple question, really, but I’ve had some trouble with it today.

Continue reading

Posted in html, ms office | Leave a comment

How to make Ace Combat 3 [JP] run on Windows 7 and XP

Ace Combat 3: Electrosphere was an amazing game. There are two problems with it, however. First, it’s real old. Like, PlayStation 1 old. Older than Jesus, as some would say. Second, the export version of it sucks. It’s not a personal opinion but the harsh truth. Therefore, in order to play the original Electrosphere, you will have to put a lot of effort into it first.

Continue reading

Posted in emulators, games | 1 Comment

What is a trope?

Recently, I have been excessively active on the TV Tropes wiki, and I have noticed that a lot of new “trope” suggestions are not tropes at all. I believe the reason for this is the lack of understanding of  the term “trope” in the TV Tropes’ sense of this word. In the following discourse, I will attempt to answer the question “What is a trope?” to the best of my understanding.

Continue reading

Posted in writing | 2 Comments

How to configure Macaw in the “noob mode”

I have recently purchased a MIDI keyboard (this particular model, to be exact) to learn playing piano without annoying the neighbours. As I did, however, I had only a vague idea of how to actually synthesize sounds with it. I thought, surely, there must be tons of software that would allow me to just plug-and-play my controller and enjoy. Reality proved me wrong.

Continue reading

Posted in midi | Leave a comment

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 | Leave a comment

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 | 13 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 | Leave a comment

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 | Leave a comment