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.


40k on Stackoverflow.com!

19. August, 2010

Yay ^_^


StarCraft 2 on openSUSE 11.3: Update to 1.0.3 fails [update]

18. August, 2010

Found a solution! See this blog post.


When I tried to start the game today, it told me that 1.0.3 is available and that it needs an upgrade. After 49% of the download, the BlizzardDownloader.exe crashed. So I started it again. And again. And again.

The problem is always the same:

wine: Unhandled page fault on read access to 0x00000000 at address 0x245b44c (thread 0019), starting debugger...

I’ve opened a support ticket on codeweavers.

According to some comments in Wine’s AppDB by MrNice, restarting the installer eventually solves the problem.

[Update] It seems to help to delete the sc2-* files in the program directory and the file sc2-22660-22801-x86-Win-enGB-bnet-bin in the Updates folder. When I restart the game, I get the error dialog. Sometimes, a bit of the file has already been downloaded, sometimes, not even the changelog has been loaded. After closing the error dialog, the download resumes and hangs again at 49% with 3.8MB left.

[Update 2] Some people say that you just need to try often enough. That didn’t work for me. But I found a couple of *.torrent files in the installation folder which I showed to Vuze. After a couple of minutes, Vuze really started to download them … well, 4 of 5 of them. So I can’t play because no one has the 92666 byte file “sc2-16223-16291-x86-Win-deDE-locale”. Tragic.


Copyright vs. authors

17. August, 2010

Everyone always argues “we need a strong copyright to protect the authors and their work” (here, for example). Frankly, I’m very suspicious how many authors are in this “we”. Usually, this “we” includes publishers, lawyers and people living off the work of authors but rarely those who actually do the work.

Just two days ago, I stumbled over an article (German) that compared the book market in England and Germany around 1800. The time is interesting because Germany had no copyright before 1837 and England had one for almost a century by that time. Of course, everyone in Germany was arguing that authors were starving and they needed a stronger copyright – just like England.

Before these copyright laws were enacted, the book market in Germany was between five to ten times bigger than that of England. A book in England would cost as much as you’d make in a week – between $500 and $1000 today. As a consequence, only very few people had books. In Germany, everyone could afford books. In 1800, only 700 news books were published in rich England while in poor Germany, they had 4000. They were cheap. Since only a few people could afford the expensive English books, print runs were tiny. A “successful” book would means a print run of 500 to 750. Reprinting was outlawed, so as soon as a book went out of print, it wasn’t available anymore. And who would reprint something that sold only 700 times?

And, surprisingly, the authors could live from their work. Around 1810, the author of a monograph could make 25% to 50% of a year’s income. In England, bestsellers got more but there are only a few bestsellers. It’s nice that 5 or 10 of the most successful authors make millions but isn’t it better when most people make enough for a living?

Yearly income of the most successful authors 2008

Yearly income of the most successful authors 2008

Why did that happen?

Because so many books were printed. Publishers always needed new material, so the authors were in a position of power. Also, “unsuccessful” books sold many thousand times. Publishers also had to keep them in print (as long as it was reasonable) to keep reprinters at bay. With a strong copyright, authors had to beg to be published (except for the few successful ones). Guess what that meant for income.

What happens today? Anyone can publish. Google has written software that collects interesting bits of information all over the globe and presents them in a nice, accessible way. Suddenly, the publishers cry out: “We need a stronger copyright.” I bet they do. But I don’t buy it when they add “to protect the rights of our authors.”

Which rights? The ones they take away with slave contracts? “Author gets 4% of the price printed on the book and publisher gets the right to publish the work in any way, forever.”

How many authors do you know which made a fortune from their books? Name five. King. Rowling. Patterson. Clancy (doesn’t even have a web site; poor guy only makes $35 Million/year). Steel. (Source)

I didn’t know two of them and the difference between #1 (Rowling, $300 Million) and #5 (Steel, $30 Million) is tenfold. See the graph for an idea where this leads.

Penguin sells books for £786 Million/year. This weeks bestseller in “Stolen” by Lesley Pearse. Amazon rank  118. I wonder how much of the $780m Ms. Pearse makes.

The next time someone tries to sell you that the copyright is good for authors, you know they’re lying.