# Older blog entries for asmodai (starting at number 68)

Android 4.0 UI stencil

Just received my Android 4.0 UI stencil from UI Stencils. I love how it works, makes UI prototyping for Android much nicer when drawing out using pen and paper. I recommend it.

Syndicated 2013-03-05 10:24:32 from In Nomine - The Lotus Land

Eclipse and TestNG

I was playing around with Eclipse and TestNG, the thing you need/want to do is, after you have installed testng via de Eclipse market place and restart Eclipse to go to the project build path.

So right click the project and select from the popup menu Build Path » Configure Build Path...

In this window, make sure you have selected the Libraries tab in the right-hand side of the window.

Next select Add Library... and from the resulting window that pops up select TestNG (or JUnit).

When you select Next or Finish (depending whether you picked TestNG or JUnit), you will then see TestNG under the JRE System Library entry as another library entry. If you expand this you see the testng.jar being included and pointing to the right jar file that’s in Eclipse’s plugins directory.

When you now press OK you should see the imports getting resolved.

You will need to remove any external jar dependencies for TestNG or JUnit of course, because it’s double and will most likely lead to problems.

Now, when you go to Run » Run Configurations... you see a TestNG (JUnit) entry. When you select that entry and create a new configuration underneath it, it should already resolve everything you need (classes, packages, and so on).

Oh, do keep in mind that you will have to mark the test folder as a source folder for it all to work. Right click the folder, select Build Path » Use as Source Folder.

Syndicated 2013-02-05 13:55:01 from In Nomine - The Lotus Land

TortoiseHG and wildcard certificates

Having resolved recent SSL certificate issues with Mercurial/TortoiseHG, I now encountered a similar issue with the wildcard certificate for *.google.com where getting a clone would result in a "SSL: Server certificate verify failed" error.

One way around this issue is to add the fingerprint for this certificate to your configuration. Currently for *.google.com this is 4b:b7:cc:81:2c:b9:00:3a:75:97:10:27:43:61:0b:93:d9:7c:3c:19 and one to get this from a Unix command line is with openssl s_client -connect code.google.com:443 | openssl x509 -in cert-code -fingerprint -noout | tr "[:upper:]" "[:lower:]". This corresponds with Chrome’s certificate view’s thumbprint field, you just need to add colons.

Right click in Explorer, select TortoiseHG » Global Settings and then click Edit File and add the following:

[hostfingerprints] code.google.com = 4b:b7:cc:81:2c:b9:00:3a:75:97:10:27:43:61:0b:93:d9:7c:3c:19

This should make Mercurial/TortoiseHG work, at least until the certificate expires and you need to update it with the latest fingerprint.

Syndicated 2013-02-02 15:23:20 from In Nomine - The Lotus Land

TortoiseHG and non-standard SSL certificates

For my own development I use Mercurial and TortoiseHG for my version control system. I also use, at the moment, a CAcert certificate to use HTTPS with my repositories. I am not sure what changed when, but apparently the certificates now get verified. So this causes obvious problems trying to push or pull due to "SSL: Server certificate verify failed" errors.

To make this work on a Windows 7 machine with TortoiseHG in stalled, first download the CAcert root PEM certificate and place it some permanent directory. Next open the TortoiseHG global settings (right click somewhere in Explorer and select TortoiseHG » Global Settings). In the window that opens click the Edit File button. If it does not exist yet create a section similar to this:

[web] cacerts = C:\path\to\cacert-root.pem

Press Save and OK and any push and pull action with HTTPS URLs should work as they ought to.

Syndicated 2013-01-31 14:11:35 from In Nomine - The Lotus Land

Unbound unable to read root zone

After upgrading various ports on my FreeBSD system and days later a full world and kernel, a reboot showed me that unbound didn’t start. The system reported that:

error: reading root hints
/usr/local/etc/unbound/named.cache 88: Empty line was returned

It turns out that from ldns 1.6.13 to 1.6.14 there is an API change that caused problems for unbound. After upgrading ldns you also need to recompile unbound to pick up on these changes. If you do not, you will run into the problem above.

Syndicated 2012-12-05 11:49:10 from In Nomine - The Lotus Land

FreeBSD and pkgng

I am really impressed with pkgng. On the mebsd website there’s a handy explanation and tutorial that’s really worth reading to get up to speed.

Syndicated 2012-11-20 08:47:34 from In Nomine - The Lotus Land

PS Vita and Near location

If you try to use the PS Vita’s Near funcitonality over WiFi and get “Location data cannot be obtained” constantly, try to turn off the Vita completely (hold the power button at the top for a few seconds) and then turn it on again. This at least solved it for my PS Vita.

Syndicated 2012-11-02 20:37:07 from In Nomine - The Lotus Land

FreeBSD, p0f, and USB pcap

If, like me, you had a working FreeBSD system with amavisd-new and p0f set up, you might find that p0f suddenly stopped working at some point. The cause for this is that it tries to use pcap on the USB bus, which it cannot do. The solution is to put hw.usb.no_pf=1 in your /boot/loader.conf.

Syndicated 2012-11-02 09:53:44 from In Nomine - The Lotus Land

The rendering equation

The rendering equation, the keystone of computer graphics rendering:

$$L_o(x, \vec w) = L_e(x, \vec w) + \int_\Omega f_r(x, \vec w’, \vec w) L_i(x, \vec w’) (\vec w’ \cdot \vec n) \mathrm{d}\vec w’$$

(This is at the same time also a test for MathJax support on my weblog in order to provide correct mathematical typesetting using proper typography instead of some lame pixelated image.)

Syndicated 2012-08-06 11:50:48 from In Nomine - The Lotus Land

Detecting keyboard layout used on Windows

//Pseudo C/C# code:

int localeId = GetKeyboardLayout(0);

// The low word contains a Language Identifier for the input language
// and the high word contains a device handle to the physical layout
// of the keyboard.
localeId &= 0xffff;    // mask off high word to get the locale
// identifier

switch (localeId) {
0x040c:
0x080c:
0x1009:
useAzertyMapping();
default:
useQwertyMapping();
}


Syndicated 2012-08-06 11:11:55 from In Nomine - The Lotus Land

59 older entries...

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.