Re: About “kajala” intellectual property rights–To President

August 28th, 2012 by kajala

Should never reply to scammers and I really don’t have time for this but couldn’t resist :P

———————————- email I received

On Mon, Aug 27, 2012 at 10:56 PM, Charles wrote:

Dear President,

I’m sorry to disturb you so abruptly.

We are a domain name registration and dispute organization in Asia, which mainly deal with the global company’s domain name registration and internet Intellectual property right’s protection in Asia. Currently, we have a pretty important issue need to confirm with your company.

On August 27, 2012, we received an application formally. One company named “QWDH Capital” wanted to applied for the brand name”kajala” and some domain names through our body.

Now we are handling with the registration of these domain names and find that the keyword of these domain names is identical with your company’s. So we have to confirm with you at two points:
1. If your company consign QWDH Capital to register these domain names and brand name, we will send application form to them and help them finish the registration at once.
2. If your company have nothing to do with QWDH Capital, they maybe have other purposes to register these domain names and brand name.

I want to confirm that are you the corporate representative of this company. If you are, I will feedback some problems to you; if you are not, please forward my letter to your company’s corporate representative or lawyer. We need your answer of legal force. In order to deal with this issue better, Currently, we have postponed the application of this company. In order to keep your benefit from infringement, please contact us ASAP.

Waiting for your reply ASAP.

Best Regards,
Charles Cheung
Auditing Director
Hongkong Headquarter
(:Tel: +852-3069-7016
Ê: Fax: +852-3069-7016
*: Email:
:: Web: www dot dnsservice dot com dot hk

———————————- reply

Dear Charles Cheung,

I greatly appreciate you contacting us regarding this matter. We would be very interested in registering ‘kajala’ name not only in Asia but possibly globally as well, and we would like you to help us to execute this challenging task.

However, we have a corporate policy that we require Finland government related contractor/partnership registration paperwork to be done upfront, and for this purposes you would need to transfer 200 USD to PayPal account Once the payment has cleared we will sure continue discussions with you.

Thanks again and we are looking forward to working with you.

Best Regards,
Jani Kajala
Chairman of Board
The Kajala Group Global

legit: simpler git – Windows install (from scratch)

March 27th, 2012 by kajala

Legit is “a complementary command-line interface for Git”. This is very welcome addition to toolset since despite Git being unbeatable tool the learning curve is pretty steep compared to SVN. Hopefully legit makes it a bit less steep.

However, installing on Windows requires a few steps so thought to outline it here from scratch:

  • Install Python 2.7.2 for Windows @
  • Install Python setuptools @
  • Assuming you installed to C:\Python27, add following dirs to your PATH: C:\Python27; C:\Python27\DLLs; C:\Python27\Scripts
  • Open command prompt and run: easy_install pip
  • Now install Legit as described: pip install legit, and then, legit install
  • Try running legit. If you get weird symbols then color coding doesn’t work and you can disable it like this: Set ‘disable_colors = True’ in %LOCALAPPDATA%\kennethreitz\legit\config.ini

about frameworks

March 13th, 2012 by kajala

Frameworks are a bit like peeing in your pants during wintertime; they make you warm at first but freeze you later.

One past example: First we planned to use a 3rd party system for the business management part which we would have gotten for free in exchange for allowing them to use our payment system. It was made with Symfony. Everything looked nice and peachy at first. BUT. The app was made with some ancient version, it was insanely lot of work to update. Moreover, the nice “meta-sql” that all those frameworks have had drifted due to straight-to-production style DB tweaking and optimization (which will inevitably happen at some point) so lot of the automatic deploy tools were unusable. Not only that but someone had also “tweaked a bit” the generated code at some point, rendering all built-in code generation related tools more or less useless.

Source code generation “just for starting point” is really true evil — it generates bloated code-base to start with and is doomed to fail sooner or later when someone makes a single edit on the generated code.

At the end the requirements changed so much on top of that it was just better to start from scratch.

An example of stuff frameworks love to do: Automatic loading of components to save couple of lines of code. That is a bad idea. Why? Minimizing unnecessary dependencies are root of all evil in keeping software maintainable, and having any dependencies injected automagically will just hide them in the source code. The result is that you don’t even know what code is dependent on what component. Instead, if every single module lists it’s dependencies explicitly in the beginning of a component, it’s trivial to see where the component is used and what components. Sure you have to write a few lines more code but the result will be much more maintainable.

Ember vs Backbone

February 17th, 2012 by kajala

There has been a lot of discussion lately about JavaScript frameworks with heated arguments, especially Backbone vs Ember. Backbone seems to have more traction, though, Github effect…

Both frameworks look pretty nice. I think it still boils down to “choose right tool for the job”, I could imagine using both (not in same project though).

A quick checklist:

1) Do you have tons of views all of them more or less similar or “component based”, or are you customizing every single view type like we do in our avoimet työpaikat helsinki job search service? Big “we do all kinds of things for you” frameworks like Ember are very nice generating data bindings, I’d use it without second thought in some enterprise systems I’ve done but would not use it Avointyopaikka.

2) How much you need to customize things? The more you need to customize the more frameworks get on the way. For example, that URL format we’re using in Avointyopaikka requires fully customized routing. It’s easy to do from scratch, but if I’d using some framework I typically would have to spend much more time learning how that kind of core functionality can be customized if it even can.

3) Do you care more about rapidly adding new views, reports and data bindings than usability? Again in some enterprise systems, having the data “somehow” usable is more important than usability, so again I’d go for Ember or any other tool that can do those bindings easily. On Backbone you’re more on your own.

4) How much 3rd party integration you need to do? If you have lots of 3rd party components to integrate I’d be hesitant with frameworks. They tend to be more “my way or highway” solutions so integrating some external component might be really painful.

WebGL support vs Microsoft and Apple

July 8th, 2011 by admin

I’m sad to see the resistance to support WebGL among Microsoft and Apple. “Security risk” is just a scapegoat. Sure screen scraping is a valid concern but there are ways to prevent it for sure, for example forcing memory reset, disabling app-level texture reading, frame buffer read-back, etc. And Microsoft’s ActiveX is not a bit better in that regard, probably much much worse.

The real reasons are most likely business reasons: Microsoft doesn’t want gaming to move to browsers, and neither does Apple. Microsoft has dominant position in desktop gaming, and Apple dominates mobile app sales. So why would they embrace multi-platform 3D in a browser? It doesn’t make (at least at the moment) business sense for them. Sad.

Monitoring VPN connection

November 28th, 2010 by admin

Sometimes you really need to make sure VPN connection is alive when you are running some applications. I didn’t find any easy way to do this in Win7 (I don’t want to installing new firewalls just because of this) so I made this small application called “vpncheck 1.1″:

Old “vpncheck 1.0″ is still available at

It does following:

Checks every 0.3s that VPN connection is active and kills listed processes if not.
If later VPN becomes active, the processes are re-started.

Reads config file (vpncheck.cfg) which has following format:
<name of VPN connection, e.g. Anonine>
<full absolute path filename of exe 1>
<full absolute path filename of exe 2>

Example of valid config file:
C:\Program Files (x86)\uTorrent\uTorrent.exe
C:\Program Files (x86)\Skype\Phone\Skype.exe

Tested on Windows 7.

Provided as is, no guarantees of any kind.
This is a bit hacky application so don’t take it as example of good software engineering, but it should work.

Feedback, bugs, comments, welcome:

The application comes with full source code and build files (Visual Studio 2008) if you are interested to take a look. However, it does have executable as well.



Dedicated vs Smartphone GPS

August 14th, 2010 by admin

I’ve used a lot of smartphone GPS solutions, and two dedicated units. The biggest issue with all smartphone solutions is that you cannot *rely* on them. I’ve used Navicore/Wayfinder, Nokia Maps and Google Maps on Droid. They make nice demos but seriously, you really want to buy a dedicated GPS unit. I paid recently $130 for a new unit on a sale, and it’s far superior to any mobile stuff that is out there.

Just a quick comparison:

+ Dedicated GPS units are more robust. You can rely on them. Smartphone based solutions  do crash. You cannot rely on them. That’s the most important factor for dumping them for any serious usage. They lose signal without being able to restore it without reboot. Theylose data connection (only prob for Google Maps based navisystems, Nokia Maps is offline). They just stop working. Every smartphone based solution had problems (at least after using them some time, not in “demo sessions”…) and the dedicated units don’t (crashes are very rare).

+ Dedicated GPS units have far superior signal strength compared to any smartphone based GPS. Just try it in a parking hall: Dedicated unit will pick a signal no prob, smartphone will not. Smartphone will also lose signal easily when you’re driving where dedicated unit is not. Trust me, I’ve done lots of comparisons running dedicated units and phones side by side.

+ Dedicated units are much faster. Offline maps is the first key requirement where Google Maps based systems fail. I used Google Maps on Droid for couple of months (on T-Mobile) until time wasted restoring data connection, downloading map, getting signal, downloading map again, downloading instructions, … drove me crazy. Dedicated unit gets the route planning done 10x faster.

+ Dedicated units have better functionality and usability compared to any smartphone solution. For example, Google Maps does not have “search along route” functionality which is really nice during any road trips.

Still, I find uses for mobile GPS as well, but not as a dedicated GPS replacement but for “fun usage” e.g. during walking tour in a new city. Just don’t buy mobile GPS solution and imagine that it’s competing in the same league with dedicated units.

Alienware M17x review

August 3rd, 2010 by kajala

Alienware M17x is the worst laptop I’ve ever used. And I’ve used many since the first Dell laptop I bought in 1999.

The ergonomics are really bad. Sharp corners in design make your wrists shout in pain after any extented usage. And the weight of 15lbs/7kg or something like that doesn’t exactly temp to carry it around.

The drivers/bios/whatever are buggy. My Alienware M17x used to get “stuck” all the time for minutes. Downgrading bios helped, but there are still occasional problems with crashes etc. Now, for example, as I’m writing this, I have the windows task manager crashed on my background. Or actually it’s not crashed but it does not receive any input. I’ve never seen that happen on any other laptop or desktop. And this is just an example.

AC power adapter died already once after a month of use, the laptop started reporting that not enough power is available. Now I have a replacement which works.

Crappy wireless adapter. In the same room where cheapo HP laptop gets II wlan bars, Alienware struggles to get I and often drops the connection. This has been repeatedly verified in different connections so I have no doubts about this observation. Also, sometimes the wlan adapter/driver just dies and you have to reboot the laptop to enable it.

VGA output to projector? This is by far the worst design I’ve ever seen: If you use the laptop even ONCE without the power adapter, the laptop will automatically disable hybrid graphics, which in turn makes it impossible to enable video projector output! To re-enable it, you need reboot, go to BIOS settings, reboot, and then enable the video output. I couldn’t believe this before I heard this is “known issue”. Unbelievable.

Want to hear the worst news? I didn’t even consider the price tag when writing this review, since I didn’t pay anything for mine (got it through work). If I would have had to pay $2000 or whatever obscene the price is then this review would have been far more negative.

Of course the laptop is fast etc., but this is not the only fast laptop in the market, so I’d definitely skip this one without a second thought.

Xampp and Skype using port 80 and 443

April 12th, 2010 by kajala

Argh. I’ve had this problem at least twice already, but since it’s always so long interval between installing Skype on a new PC and Xampp I always forget this:

Skype uses ports 80 and 443 by default.

That’s why Xampp doesn’t work, Apache won’t start but there is no error message either. Hopefully I will remember this time…

Automatic website testing

April 10th, 2010 by kajala

When developing more complicated web services or add new features, there is always a risk that you break something when you make modifications. Solution: Design a set of tests to perform always when you make any changes, and design those so that you will catch all problems automatically.

Excellent automatic testing tool for testing functionality of a web site or services: Selenium IDE:

The functionality is simple: Selenium records actions done in Firefox (Selenium IDE is Firefox plugin), and you can play back the scripts later. You can also combine individual scripts to test suites.

There are plenty of other tools for automatic web testing as well, but I’m quite happy with this. Some small nags: Order of tests cannot be changed inside the suite in IDE, you have to do it by editing the script. Also, an annoyance is ‘click’ recording. It should almost always record as ‘clickAndWait’ and causes easily confusion since the test fails due to lack of waiting…