-
September 28, 2008
-
September 17, 2008
Califoooorniaaaaaa
GeneralMichael and I are currently sitting at the Mobicom 2008 conference in San Francisco. We held our demonstration yesterday (which worked fine, costing me us — because I could not sleep over Felix’ swearing — only two full days and half a night to finish it), so now we’re finally starting to enjoy the trip.
I still can not quite grasp that I’m actually here — the city is incredibly diverse and we are having a lot of fun just strolling around and trying out different fast food restaurants.

From San Francisco 2008 Yesterday evening we also had time to do some “cultural” activity. Nano found the Hamlock Tavern which had a really cool program with three stand up comedians and two bands. I especially enjoyed Ali Wong and Chris Garcia — we laughed so hard even the beer started to taste good.
-
September 10, 2008
So easy you want to smash something
GeneralThis is freaking hysterical. Today I tried working on a simple UDP-multicast in java. Basically everything was already done and working: the process created serveral threads (server/client) of which two started sending/receiving multicast messaged via UDP. Everything worked just as expected.
The next step was to separate the two parts of the program, creating two processes with each one of the messaging threads in it. No big deal, right?
Here comes the ‘smashing’ part. The server worked just as expected, dutifully spewing multicast packets into the ether. But the client did not. In fact, the client simply hung itself right at the beginning of the following code:
try { socket = new MulticastSocket(port); group = InetAddress.getByName( addr ); socket.joinGroup( group ); } catch ( IOException ex ) { // ... }If you tried at least some basic networking in java the above will look awfully familiar: it’s the basic, fool-proof way you set up a socket to listen on. There is virtually nothing you can do wrong. Still, the program just hung at the socket creation, indicating the socket being idle. About thirty minutes and thirty trials later both programs still refused talking to each other like a lifelong married grumpy couple.
In my despair I tried this basic example for a UDP client — to my great surprise, the misused quote-client merrily disgorged the binary gibberish as the “latest quote” from the server (I would have laughed if I hadn’t had such a hard time keeping back the tears). There was virtually no difference between my class and the “quote client”!
Except my object being invoked by a thread. You might say now: “Felix, the basic behavior of an object should not depend on whether it was instantiated by the process itself or by one if its threads.”. And I would agree whole heartily. I would, in fact, tell anybody to shut up if he would try to suggest this as the source of the above problems. Still the facts are there: the socket only works if it is invoked directly or indirectly the main method of the process. It does not work if it is invoked by a thread.
Java networking. So easy. So goddam easy.
-
August 21, 2008
Data Structures 101: Linked Lists
Code, TutorialRumor says that the success of Microsoft Excel was solely to the fact that it used doubly linked lists for its spreadsheets, resulting in a great performance gain compared to competing programs. The truth is probably more complicated; nevertheless, excel was successful because of a smart update-strategy of the spreadsheet cells (not all were updated, only the ones changed and affected by the change). A smart choice of data structures (and algorithms) can therefore be crucial for program performance and thus for economic success.
According to Wikipedia, linked lists were developed as early as 1955/56 — one certainly can measure their impact on the fact that linked lists still belong to the commonly taught data structures.
(more…) -
August 13, 2008
Mobicom 2008
GeneralIt’s official! Michael, Nano and I are going to San Francisco next month. We will present a demo on the Mobicom 2008 and use this opportunity to take a look around California.
That also means that there probably won’t be much activity on this blog until then, the demo needs to be finished.
-
August 3, 2008
Awfully Chocolate (I want only)
GeneralNo, that is not the title of the latest underground indie garage-trash-popcore band. During our visit to Beijing Michael in I stumbled over uncountable samples of creatively used English, like the already mentioned IT’S NOW. I tried to capture as many as possible, though some where quite a challenge — try photographing funny signs in a temple and you’ll soon feel the wrath of several angry Chinese protecting their Buddhas (seriously, be careful if you want to photograph those!). This marks the start to a series of posts about the adventures of two lucky computer science students in China, beginning with
My top eight sign sightings in Beijing
-
August 2, 2008
Actionscript optimization
Code, General, TutorialSince the introduction of actionscript and the beginning of game development with flash (and, more recently, with Flex oder similar tools) performance was always a big topic in the game developer community. A common source for benchmarks are the oddhammer actionscript performance tests which give a nice overview of actionscript behavior. Sadly, no benchmark is available for AS3.0; but there are enough resources out there dealing with the topic.
-
July 31, 2008
It’s now!
GeneralIt is, indeed! In case you do not believe me just check your watch. Even twice if you are that leery.
Okay. So now that we agree on the fact that it’s currently (or more general “always”) now, why should you even bother yourself with this mere fact? (Which, considering it’s underlying insight, is definetly amongst the D-students of facts.)
You may or may not have noticed our fancy Web 2.0 button, that stresses the genuine truth about what time it actually is. Contrary to the Web 2.0 itself, the button has a real story. And this is the tale I am going to tell you today.
-
July 29, 2008
Tweaked design: CSS sprite sheets
Code, Tutorial, Web designI have just tweaked the design of science & code as I found it to be a little too dark on some monitors. Half-way through the process, the constant re-saving of the different images started to bug me. On top of that, the color palettes of them differed so some images stood out against the (supposedly same-colored) background. Worse: IE renders PNG color values different than all other browsers.
What a mess. But there is help.
-
July 17, 2008
Initializing components in Flash CS3
Code, TutorialFlash components provide a practical way to create reusable and flexible parts for cross-project usages. While I would not recommend the use of the already available components UI that ships with flash they still can be utilized for quick and dirty mock-ups. Taking the perspective of a casual game developer, components are especially of use for menus — which basically work the same for all games — and in special cases even for the game itself (the flash development tools can be used as a level editor, a topic which I plan to tackle in the future).

