Thursday, October 6, 2011

AO Universe Interview

"Windguaerd" has posted an interview with yours truly as part of their "AO Universe Community Interview" series.

You can read the interview here!

Friday, September 16, 2011

Hubii Beta

www.hubii.com has launched its Beta version . It has been three years of hard work, but... was worth it!

If you are someone who reads the news online and you're tired of jumping from one site to another you will most definitely like Hubii. Hubii offers a new user experience for searching and reading news online. With Hubii you can unify in a single place all your favorite online news. Hubii allows you to search the map, find out where the news is happening, select news by topic, comment on and rate news, see what the world is reading about, create your own newspaper which automatically update and contribute to the community by adding publishers to the map. Exciting times ahead… watch www.hubii.com evolve.

Please send us all comments and suggestions you have, and share it with your friends if you like it. Follow Hubii on Facebook, Twitter and LinkedIn.

Saturday, September 10, 2011

Item Assistant v1.0

I would like to thank everyone for all the feedback, encouragement and gentle nudges I have received over the last 18 months or so. It has been a long while since I released an update to Item Assistant, and I apologize for that, but now the wait is over.

v1.0 is here!

Major changes this release include the new Summary View and an installer to supplement the regular zip archive distribution.

The Summary View shows credits and levels of your characters, while the installer takes care of some of the most common problems people have installing the application.

In addition to new features, a lot of work have gone into trying to make the application more robust to handle the different usage scenarios.

From the change log:
  • Fixed bug 2947010. Generating the script with items for ingame display now use the correct linebreak tag.
  • Fixed bug 2802231 in the find panel and in the PB filter panel. Toon list is now reloaded as it is opened. 
  • The window location is now recorded and restored to/from the conf file. 
  • Opening an item using Xyphos.com will now also supply the QL of the item so the stats are shown correctly. 
  • Improved ripping of items database so it supports newer version of AO.
  • New Summary View shows levels and amount of credits for all registered toons. 
  • Created a basic installer.

Enjoy!

Sunday, July 31, 2011

OpenVPN on Windows 7

I have always had a problem with OpenVPN on my Windows 7 (64 bit, pro edition) laptop. Installing would go just fine, but it was never able to connect to the VPN server, even though I checked on several other computers (even a Windows 7 one) that the settings were correct and working.

VirtualBox
As it turns out, OpenVPN and Oracle VirtualBox on the same computer just doesn't work. Uninstalling VirtualBox would make it possible to connect to my VPN server.

However, I then encountered another issue...

TUN/TAP Driver
If the VPN connection dropped, like due to an unstable wifi link, I could never get it to work after it had reconnected.

After rebooting it would work fine though, so after a bit of fiddling I came up with a workaround. Before reconnecting to the VPN server I have to disable and then re-enable the TUN/TAP network driver. Go figure...

Software Used
  • Windows 7 64 bit professional edition
  • VirtualBox 4.0.10 and 4.1.0
  • OpenVPN 2.2.1

Tuesday, June 28, 2011

Project Firewall - Hardware

NetGear WNDR3700
Yey!

My ISP upgraded my internet connection, and lowered the price at the same time. My initial tought was ofcourse "Fantastic! Woot!!1". And it looked quite good, except I didn't manage to get full download speed on my new connection with my current router, the NetGear WNDR3700.
Don't get me wrong, its a pretty decent piece of hardware, but as most appliances meant for the mass market, it isn't really designed to handle a 60 Mbps fiber connection. My peak download speed was about 5.85 MB/s or about 50 Mbps.

So, out with the old, and in with the new. This time I wanted to be sure my router/firewall would handle the load I put on it, and preferably handle a couple of OpenVPN connections as well. After a shopping spree I ended up with the following hardware purchases:

ZOTAC FUSION350-A-E

All in all it set me back about 3000 NOK (including P&P), a bit expensive for a router, but with the load this should be able to handle I should hopefully not need to buy a new one for a few years!

ANTEC ISK 300-150
I must say I was very impressed by the Antec ISK 300-150 when it arrived. It is one heavy, solid piece of work weighing in at almost 5 kg!

It has room for two 2.5" HDD/SSD drives, as well as a slimline 5.25" CD/DVD ROM drive. Lots of open vents on the side and above the expansion slot and the 80mm fan has 3 adjustable speed settings though a small switch on the rear of the cabinet. Mine is running fine at the slowest setting, and is barely audible.

The mainboard comes with an Atheros based wireless mini-pc-express card for b/g/n networking in addition to the gigabit integrated NIC. Adding the Intel NIC completed my networking requirements with a total of three physical zones (wan, lan and wlan).

I will follow up this post with information about software and performance experiences later on. 

Tuesday, May 10, 2011

.Net Clipboard and the OutOfMemoryException.

I recently had a weird bug that manifested as a first-chance OutOfMemoryException inside Windows.Forms when using the clipboard. At first it doesn't appear to do any harm, except the clipboard did not return the expected data. Unfortunately it had a slight side effect: Any later call using OLE/COM would crash and burn. Bummer!

Some hours debugging later, and it was apparent that the crash was happening consistently by just letting the application idle after putting something on the clipboard. Apparently there was something wrong in the idle mechanism that updates the paste-command button... but what?

So I went surfing teh intarweb! And found this MSDN page from Microsoft explaining how to use the clipboard from a .Net application. Then I noticed this:
To access data from the Clipboard by using versions earlier than .NET Framework 2.0, use the GetDataObject method and call the methods of the returned IDataObject. To determine whether a particular format is available in the returned object, for example, call theGetDataPresent method.
That looked familiar, and indeed the code was using the old way of accessing the clipboard, by first using GetDataObject() and then using GetData() on the result.
Now the page didn't say anything about this way of doing things being deprecated, but I still got that nagging sensation that this was an important clue.

So I set down and create two simple test applications that did the same thing, only each using a different variation of the clipboard API. The applications were simple: put something on the clipboard, and repeatedly try and read it back in a loop.

The result was that using the new (and preferred?) way of clipboard access had no problems. I ran it through a loop of million clipboard accesses without a hiccup. On the other hand, the application using the old variation of the API had a very familiar problem. After some iterations it started throwing the familiar first-chance OutOfMemoryException. What more, the clipboard data stopped being available for the test application. Very similar indeed to the problem in the main application!

A few repeat runs, trying stuff like forced garbage collection (which did not help at all, except the performance went down the drain) a clear pattern emerged: My test application would stop working after 65525 invocations of GetData(). The 65526th time and onward it would just silently fail with the OutOfMemoryException in the debugger output.

65526 is pretty darn close to the magical 0xFFFF 16 bit limit, so allowing for some initialization and general overhead, it seems clear that the old variation of the clipboard API (pre v2.0) is leaking a handler, global resource or otherwise doesn't free up some counter internally.

If you are lucky enough to be able to use the newer version of the .Net API I suggest you do so, and remove any code using the old API, since its quite simply broken!

Thursday, May 5, 2011

OpenVPN 2 Cookbook



I just received a copy of the OpenVPN 2 Cookbook by Jan Just Keijser in my virtual mailbox. At first glance, the 350 pages appears to contain setup- and troubleshooting-guides for the most common usages of OpenVPN on both Linux and Windows platforms (and in some cases MacOS too).

It is available in regular printed form, and digitally in ePub and PDF formats, from Packt Publishing.

From the description of the book:
OpenVPN 2 Cookbook provides solutions to common OpenVPN problems. The book covers everything a system administrator needs to manage and run an OpenVPN network, from point to point networks to troubleshooting.
I will be back with a review once I have had a chance to read through it.

Thursday, February 24, 2011

Free Tail GUI for Windows

Need a tail replacement on your Windows box? Look no further than Log Expert.

It has lots of powerful features such as:
  • regular expression highlighting
  • "columnizer" for well-defined log file formats
  • opensource
  • unicode support
  • plugin support

...to name a few!

The homepage for the source-code: http://logexpert.codeplex.com/

Tuesday, January 11, 2011

Ubuntu and OpenVPN FQDN Problems.

I have been having some weird problems with OpenVPN on my clean Ubuntu 10.10 (desktop) install whenever I connect to a remote LAN using OpenVPN. The remote LAN hosts a number of servers, all located under the domain company.local (example). Even if it connects and I can ping the remote machine that is called testserver, I can NOT ping the same server through its fully qualified domain name (FQDN) testserver.company.local. Ping would fail with the following error:

ping: unknown host testserver.company.local

Trying to lookup the FQDN with nslookup works just fine! Strange!

Now it appears that the reason is something called a MDNS (Multicast DNS) which kicks in and handles (by default) all .local domains. Looking at the file /etc/nsswitch.conf I found a line that looks like this:

hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4

Apparently the '.local' extension is not sent to the DNS server for resolution if the MDNS system cant resolve it. So I went ahead and changed the line to:

hosts: files mdns4_minimal dns mdns4

I went back to the shell and ran ping testserver.company.local again, and lo-and-behold it works!

Software used:
  • NetworkManager
  • NetworkManager-OpenVPN
  • OpenVPN
  • Ubuntu 10.10 Desktop