OSS vs. proprietary software

25. August, 2010

How was it ever possible that OSS overtook proprietary software? Microsoft is a 223 Billion Dollar company, RedHat is only worth $5 Billion. How can something “for free” be better than something that costs thousands of dollars?

Paul Ramsey gives a very nice explanation in his talk: Beyond Nerds Bearing Gifts


SC2 Tips: Liberation Day

24. August, 2010

Send your troops to the red cross

I’ll post some tips to help you beat the levels in StarCraft 2: Wings of Liberty here from time to time. Let’s start with the very first level “Liberation Day”. During that level, you’ll learn how to move your troops.

There is little to say about this. If you advance, use “A(ttack)” and click somewhere you can see. This way, your troops will open fire as soon as they spot an enemy. Keep your troops centered on the street to avoid having one member “cut off” (i.e. out of range to shoot the opposition). This way, all your soldiers will be able to fire at once.

If you can, right-click on single enemy soldiers to kill them more quickly. That will help to reduce damage but comes at a cost: There will be a small pause before your soldiers will start shooting the next target. So be ready to right-click the next target as soon as the previous one goes down.

The most important part is the cut scene in the middle where new troops are deployed from orbit. This is not a video, it’s in game! So as soon as you see the enemy soldiers take cover in the central area, press “A(ttack)” and get your mouse into position. As soon as the pods land, click to get your troops moving.

Timing is important here. You want to arrive there as soon as your fresh troops open fire to catch the opposition in a crossfire. If you arrive too early/late, you will take unnecessary damage.

It helps to advance your troops as far as possible without triggering the attack. See the image for a good spot. Otherwise it will take too long for them to arrive.

Another tip: If the street is too narrow, send your soldiers a little farther than necessary to open fire and then attack. This way, everyone in your army will be in range to shoot at the cost of a bit of additional damage in the first moments of battle.

Related Articles:

Mission 1 – Liberation Day (gamesradar.com)


ORA-01461: can bind a LONG value only for insert into a LONG column tips

23. August, 2010

Should you ever encounter this message:

ORA-01461: can bind a LONG value only for insert into a LONG column tips

then chances are you tried to insert more than 4096 characters at once.

Again the price for useless error messages goes to … Oracle! 😉

To add insult to injury, I couldn’t find anything useful related to this error with Oracle’s own site search.


Civilization

23. August, 2010

“The first human being who hurled an insult instead of a stone was the founder of civilization.”

— Sigmund Freud


Salt

22. August, 2010

I saw the movie “Salt” yesterday. While I don’t enjoy mindless violence as much anymore, I must say that the emotional part of the movie is much more entertaining. In many scenes, I could connect very well to emotional stress that Evelyn Salt must be in. When she jumps on a truck on the highway, her footing is insecure. When she jumps to another car, I notice how she calculates her chances – a mix of fear and determination.

The movie lives from the many surprises that happen. For a long time, you won’t know what is really going on and even in the end, there is a tiny bit of doubt: Did she just say that to get away?

Recommendation: Have a look. But don’t take it too serious.

PS: I’d add an image to this post if I could find one that was safe to use.


Positive logic

20. August, 2010

I just read another great post on Daily WTF (“Boolean Illogic“). Question: Does validation occur when the status is valid?

if (statusIsNotValid.compareTo( Boolean.FALSE ) != 0) skipValidation = false;

Another great example why you should prefer positive logic.


Updating StarCraft 2 to 1.0.3 on openSUSE 11.3 SOLVED

19. August, 2010
A Protoss warrior, as displayed in StarCraft II.

A Protoss warrior, as displayed in StarCraft II. (Image via Wikipedia)

I had a lot of problems to download and install the patch to 1.0.3. Here is my solution after 144 failed attempts: Install IE6! The BlizzardDownloader.exe doesn’t work with the IE emulator (gecko) so use winetricks or /opt/cxgames/bin/cxinstaller to install IE6 instead and it won’t crash anymore.

Hint: The crash happens somewhere in the JavaScript DLL js3250:

=>0 0x0245b44c in js3250 (+0xfb44c) (0x0033b4b8)
  1 0x0245b2e6 in js3250 (+0xfb2e5) (0x0033b4d8)
  2 0x02459d62 in js3250 (+0xf9d61) (0x0033b4f8)
  3 0x023fc423 in js3250 (+0x9c422) (0x0033b548)
  4 0x01025b6a (0x0033b594)
  5 0x0033df84 (0x0033df84)
  6 0x02420b5a in js3250 (+0xc0b59) (0x0033dfd4)
  7 0x0239f43d in js3250 (+0x3f43c) (0x0033e1f4)
  8 0x023b21bb in js3250 (+0x521ba) (0x0033e2a4)
  9 0x02368391 in js3250 (+0x8390) (0x0033e2e4)
  10 0x0164c6e5 in xul (+0x5cc6e4) (0x0033e3a4)
  11 0x014eaf8d in xul (+0x46af8c) (0x0033e4e4)
  12 0x014eaa7b in xul (+0x46aa7a) (0x0033e5c4)
  13 0x014ea1c6 in xul (+0x46a1c5) (0x0033ea14)
  14 0x014e7cad in xul (+0x467cac) (0x0033ea74)
  15 0x0156ca4b in xul (+0x4eca4a) (0x0033eb54)
...
  31 0x01c634e4 in xul (+0xbe34e3) (0x0033ef44)
  32 0x01c0b086 in xul (+0xb8b085) (0x0033ef74)
  33 0x01bd77ce in xul (+0xb577cd) (0x0033ef94)
  34 0x7eccecfa WINPROC_wrapper+0x19() in user32 (0x0033efc4)
  35 0x7ecd0819 in user32 (+0xa0818) (0x0033f004)
  36 0x7ecd1cac in user32 (+0xa1cab) (0x0033f044)
  37 0x7ec9541e DispatchMessageW+0x9d() in user32 (0x0033f134)
  38 0x7ec660b9 in user32 (+0x360b8) (0x0033f194)
  39 0x7ec6626f DialogBoxParamW+0x8e() in user32 (0x0033f1b4)
  40 0x00406156 in blizzarddownloader (+0x6155) (0x0033fd84)
  41 0x7e725b64 in ole32 (+0xd5b63) (0x004cd07c)
  42 0x6b735a42 (0x0044303a)
  43 0xfffffec2 (0xe8f18b56)

Look for “xul” and “js3250” in the stack trace. If you use cxgames, start the game with

"$HOME/.cxgames/Starcraft II_ Wings of Liberty/desktopdata/cxmenu/StartMenu.C^5E3A^5Fusers^5FPublic^5FStart^2BMenu/Programs/StarCraft+II/StarCraft+II"

If you need to kill the game, use this line:

kill $(ps -e -o "%p:%a" | grep -E 'winewrapper.exe|wineserver|system32|StarCraft|winedbg|Blizzard'|grep -v grep|cut -d: -f1)

That should get rid of all leftover processes.

[Update] I sometimes get a window asking where to store a download. Ignore it; it closes eventually. Click outside of it, it if bothers you to hide it behind the update manager window.