Tomer Gabel's annoying spot on the 'net RSS 2.0
# Sunday, May 3, 2009

A couple of years back I went to Breakpoint 2007, which was my first international (read: non-Israeli) demo party, as well as the first proper demo party I went to in 9 years (the Israeli demo scene had a couple of small get-together events in Kamon in 2000 and later in 2005, but I don’t consider those actual demo parties). Along with Bacter and my brother Mickey, we three were the only Israelis to be found at the party.

I missed Breakpoint 2008 due to product release pressures, the normal state of affairs while working for a small startup; I resolved not to miss it again this year, and made plans with Bacter and Mickey to meet up at the party place. Executive summary: amazing people and amazing scene spirit. I spent nearly all of the party outside with a beer in my hand chatting with people. It’s amazing just how much diversity one can find in such a small group; really the only common grounds is a general love for art, freedom of expression and the demoscene in particular. One moment I may be involved in a deep political discussion with a bunch of Germans (greets Streettuff/TRSI), and the next I’ll be drawing a comparison between English, Dutch, German and Hebrew with a bunch of Dutch guys (hi Cosmiq!) or quoting Borat with our resident Portuguese Jeenio. While I’m at it, greets to Luise, Julius, Jan and Manu from München, Okkie, the Misfit of the C64 scene and everyone else with whom I’ve spent with and whose name I can’t remember :-)

Although some of the compos this year had disappointing turn out (in particular, out of 25 or so demos maybe two or three are noteworthy) the party was still great fun. The lack of sponsors did very little to detract from the quality of the party, possibly the opposite in fact: the event was sponsored out of the entrance fee and donations made by sceners in the few months before it took place, the net result being that everyone present was happy to be there and the party really took off. Kudos Breakpoint organizers!

I recommend watching the following productions from Breakpoint 2009:


Everything is Under Control by the ever-prolific mfx is the invitation demo to Breakpoint 2009, which brings to the table mfx’s usual array of amazing 3D graphics, 2D effects, fast code and coherent, though disturbing, design. With its 1984-esque theme this demo set the theme for the entire party.



One of the noteworthy demos from Breakpoint 2009 is Freedom From State by Hullabaloo: this demo was entirely written at the party-place by blala, who had been sitting with has MacBook right next to us the whole party and coding furiously in Haskell. Yes, you heard me right: the demo is written in Haskell, which (along with the party theme) is why Freedom From State is such an excellent name, even though the demo itself is quite unremarkable.

bp2009_lftAnd in the wicked cool department, lft (of Craft fame) is at it again with another microcontroller-based demo: Turbulence (or on pouët). This time the custom hardware platform is based on a Parallax Propeller chip, and the demo itself is both good (in an oldskool kind of way) and damned technically impressive at that. Kudos!


bp2009_excelence. Excelence by the group with the awesome name BraadWorsten Brigade is probably the world’s first Excel demo, and proves just how fortunate we are that this is the case :-) Don’t take me wrong, it’s awesome and even funny, but if no-one else ever makes another VBA demo it won’t be soon enough…

bp2009_pandaBreakpoint 2009 has seen a lot of first-time productions by new demo groups; of these my favorite is PC-03 ON/OFF by Panda Cube. A stylized 3D flyby with subtle shades and nice presentation. I hope these guys go on to make demos, lots of potential there!

bp2009_systemk Although this was not strictly their first production, Conscious of Blue by System-K is another favorite of mine: a clean, well-designed and imaginative demo that’s very different from the typical European demo style. No surprises there; these guys come from Japan. I didn’t even know Japan had an active demoscene, although for the life of me I don’t see why not. Kudos guys!

bp2009_crush. While Crush by Anadune and Floppy was not the only enjoyable PC demo at Breakpoint 2009, it was certainly the most impressive: the right blend of technology, design and music. Borrowing a leaf from Debris by farbrausch, this demo features plenty of deformable objects and lots of glow, but is different enough in style, pacing and content to stand out on its own. Two or three scenes here (such as the one pictured) are simply astounding.

bp2009_rebels It seems white is the new black, with at least three white-themed productions at this party alone. With that in mind, 060659 by Rebels is an excellent (if not groundbreaking), stylized 64k intro that’s always great to watch. The commodore fan-service in the middle is gratuitous, although the effect itself is absolutely brilliant. Music is also subpar, but the design more than makes up for it IMO.


One of the most technically impressive C64 demo I’ve ever seen (possibly on par with Second Reality 64), Das Gotler by Extend and Dekadence hits you from the very first moment (with how the C64 basic window is cleared). The downside? Horrible, horrible music.


bp2009_julie. The last few years have seen some amazing new artistic outlets for the scene, particularly commercial-quality animations in the compos. Breakpoint 2009 had a couple of fantastic entries, notably the winning duo. 2nd place animation compo winner Julie by Nuance is both a fantastic artistic expression and a terrific tech demo: with a 300 Euro budget and stuff they had lying around at home, the team tried (rather successfully) to imitate the bullet-time effect popularized by The Matrix. They’ve also released a “making of” document that’s a fairly interesting read.

bp2009_speichergurke. On the other end of the spectrum you’ll find JCO’s Spiechergurke, a fake commercial for a new kind of storage product (watch with subtitles). Other than being very well made it made me laugh my ass off. I think all in all Julie was the better production, but it was a very hard toss-up between the two; at any rate I’m glad both won the competition (Speichergurke took 1st place).


Jesus Christ Motocross by Nature and Traktor is, other than being a heavy hitting, funny and fun to watch, an amazingly impressive Amiga demo. Nontrivial effects (all in software, obviously), psychotic pacing and music and apparently artifact-free code are all fine and dandy, but the Tron tribute pictured on the right won my heart.


That said, Lightshaft by Elude is a very strong runner-up; 2nd place Amiga demo compo winner, this demo combines an incredibly impressive array of 3D scenes with epic design and pacing, terrific graphics and excellent music. It’s ironic that the two winning Amiga demos were so impressive whereas the PC demo compo suffered from general lack of enthusiasm and polish.

bp2009_elevated Easily the best PC 4k intro I have ever seen, Elevated by Rgba and TBC is also possibly the first to ever get me excited. Astounding visuals, top notch design and excellent music are only part of it; the picture on the right really does not do this production justice, and you should definitely watch it in its entirety at least once to appreciate just how amazingly good a demo can be at 4096 bytes!

Other notable productions from Breakpoint 2009:

  • Defcon Zero by Scarab for the Nintendo DS
  • Syntax Infinity by Tulou and Traktor for the MSX2 platform
  • fr-065: euphotic by farbrausch, a technically impressive but boring and uninspired PC demo
  • Enigma Sequence by Approximate, a 64k intro that’s really close to being awesome. I think a couple more weeks of polish would’ve really turned this one into a winner, but as is it’s quite raw.
  • Luminagia by Loonies, Amiga 4k intro. Not quite as polished as the PC 4ks of the last few years, but damned impressive never-the-less.

I also got to watch the following productions on the big screen at Breakpoint, each of which is a recommended watch:

bp2009_other_rupture While Breakpoint was still in progress, Rupture by Andromeda Software Development won 1st place in the demo party at The Gathering 2009 and with all due reason: this demo is fantastic. Coherent design, astounding visuals, excellent pacing and music – it does everything well. For a demoscene fan, watching this on the big screen was a little like watching Terminator 2 in the theater for the first time: it gives you a profound sense of “this is what production values are all about.” The screenshot can’t do it justice, just go watch it already!

bp2009_other_stargazer Conversely, NVScene 2008 winner Stargazer by Andromeda and Orb is not as fluently directed but at least as technically impressive. I simply love Andromeda’s flow, the way they always manage to bring closure to a scene before moving on to the next effect, even if the two aren’t related in any way. Stargazer is a slideshow of some of the most impressive effects ever seen in a demo, with astonishing visuals and excellent techno music; I’m not sure which of the two (Stargazer or Rupture) I like better, but I guess they each appeal to a different school. Both are definitely must-see.

bp2009_other_masagin3 A veritable demoscene poster-boy, the NVScene 2008 invitation intro Masagin is the brainchild of Paniq (the guy behind Die Ewigkeit Schmerzt). A high quality production with an obvious artistic bent, Masagin blends excellent music with unique effects and fluid design and is one of the most engaging demos I’ve seen in years.

bp2009_other_midnight2Andromeda Software Development demos typically fall into one of two categories: artistically done 3D slideshows (Dreamchild, Rupture), and technically impressive video art (Evolution of Vision, Beyond the walls of Eryx). Midnight Run, 3rd place winner at NVScene 2008, is definitely of the latter sort, seamlessly blending 2D and 3D graphics with a bizarre screenplay and excellent music. Although not trivial by any means, if you’re looking for a technical demo to boggle your friends’ minds with, look elsewhere; Midnight Run is definitely for those not looking at demos with just an analytic eye.

bp2009_other_sizeanti. Proving my previous point, Euskal 2008 demo compo winner Size Antimatters by Andromeda Software Development is precisely the opposite of Mindight Run: it’s a technological powerhouse with amazing effects and great techno music, a lot faster paced than Midnight Run and built for a different audience. Along with Rupture and Stargazer, these are my current “show off your rig” demos. Kudos!

bp2009_other_fieldtrip ½-bit Cheese are fast becoming my favorite demoscene animators. Their Assembly 2008 wild compo tour de force Field Trip features some of the most amazing animation, visual effects, music and direction I’ve ever seen, taking the already-excellent talents of Maxson and D-Fast (of Realtime Demo Wannabe fame) to the next level. Groundbreaking!

Sunday, May 3, 2009 4:22:42 PM (Jerusalem Standard Time, UTC+02:00)  #    -
# Monday, April 20, 2009

I ran a Google image search today, and was surprised to see this:


New feature, hurray! (and may actually prove useful…)

Monday, April 20, 2009 3:25:17 PM (Jerusalem Standard Time, UTC+02:00)  #    -
# Thursday, March 26, 2009

It seems nothing to do with maintaining this website is as easy or as simple as it should be. Whenever I switch hosts it’s an uphill struggle to get the site up and running again; whenever I upgrade dasBlog to a newer version I have to learn a lot about how it works, how ASP.NET works, how IIS is configured etc. It’s enough to make me seriously consider hosting my blog elsewhere and/or moving to another blogging platform, but the truth is I love dasBlog so much I simply forget how complex and volatile it can be and have to go through the same frustrating process whenever something changes.

The way I update my site is usually this:

  1. Ensure I have an up-to-date local mirror of the website. dasBlog keeps all of its data in XML files, so backing up the website is simply a question of wget –-passive-ftp –m; I have a daily scheduled task to take care of this.
  2. Copy the latest mirrored version to a working directory; set the directory up as an IIS website/virtual directory.
  3. Test the new working copy to make sure it works.
  4. Perform whatever modifications are required.
  5. Test again to make sure that the website works with multiple browsers (this time I tested with Chrome, Firefox 3.1 Beta 3 and IE 8)
  6. Upload the website over FTP using the FileZilla client. I always verify that the relevant configuration files and binaries are overwritten and nothing else.

This process generally allows me to test upgrades before uploading them to the “production” website, as well as provides an easy rollback path if something goes wrong. Thing is, something always goes wrong. In this case, although nothing’s changed in the site configuration I started getting SecurityExceptions just after the upgrade:

Request for the permission of type 'System.Security.Permissions.SecurityPermission, mscorlib, Version=, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.

This is one of the least informative error messages I have ever seen. All it tells me is that a request for some permission is denied; it doesn’t say what permission was requested, nor by whom (the stack trace seemed to indicate the permission was asserted from within System.Diagnostics.Trace, which doesn’t make much sense). A quick web search brought me to this page, which deals specifically with installing dasBlog on a GoDaddy-hosted website. Because GoDaddy runs ASP.NET applications under a modified medium trust that allows file-system access only to the virtual directory hierarchy, the site recommends adding a virtual directory for each of dasBlog’s writable directories (content, siteconfig, logs); I tried this out and the problem was not resolved.

At this point I was getting desperate, and was willing to try just about anything to get the site up and running again. Eventually I ran a diff between the site backup and the newly modified version, and found a new openidConsumerTrace.txt file in the site root. I’ve never seen that one before; where'd it come from? A quick search showed the following section in the web.config file:

    <assert assertuienabled="false"/>
        <add name="OpenID" value="4"/>

    <trace autoflush="true" indentsize="4">
            <add name="fileLogger" type="System.Diagnostics.TextWriterTraceListener"
                 initializeData="openidConsumerTrace.txt" traceOutputOptions="None"/>

A-ha! So the OpenID activity trace log is written to the virtual root, which is not writable (I set the ACLs to only allow writes to the above three directories). I tried changing the trace file path to ~/logs/openidConsumerTrace.txt (which is a virtual directory and has the appropriate write ACL), but this did not resolve the problem. At this point I was ready to roll back to the previous version and work on switching to another (perhaps hosted) blogging platform, and in my despair I simply commented out the whole system.diagnostics section; oddly enough, this resolved the problem…

Now I know dasBlog is free and there’s little or no point complaining, so I hope this post helps someone handle the problem. And if anyone from the dasBlog team is reading this… please be a little more careful with undocumented dependencies?

Thursday, March 26, 2009 3:32:08 PM (Jerusalem Standard Time, UTC+02:00)  #    -
Development | Software
# Monday, March 23, 2009

I’ve been meaning to change the site’s theme for ages, and as often happens with these things this gave me an excuse to overhaul various aspects of the site. Here’s a bunch of stuff that’s changed:

  • Upgraded to dasBlog 2.3 and tweaked a whole bunch of settings. Hopefully this will enable all sorts of interesting stuff, such as OpenID commenter identification and coComment support. I’ll post my upgrade experiences separately;
  • Switched the theme to a slightly tweaked version of the dasBlog “business” theme by Christoph De Baene (thanks for the help, Ken!);
  • Got rid of the “advocacy” section on the right. I still strongly advocate Firefox, Vorbis and (among others), but there doesn’t seem to be much point in placing banners just for that;
  • Updated the blog-roll with my latest list.

Some code examples on the site may look a little weird on account of the CSS changes; over the coming days/weeks I’ll be fixing those, as well as recompressing images and other behind-the-scenes changes that will hopefully make the site look better and load faster.

Monday, March 23, 2009 2:38:33 PM (Jerusalem Standard Time, UTC+02:00)  #    -
# Thursday, March 19, 2009

Update (8 May 2009): Eli Ofek pointed out in the comments a little-known but effective tool called the Managed Stack Explorer. Although it features a basic GUI, it can effectively be a .NET equivalent of jstack if you add to the path; then it’s just a question of typing mse /s /p <pid>. It’s a little slower than jstack but worlds better than the alternative suggested below.

I’ve been working mostly with Java over the last year, and the .NET code I write is usually limited to interface code between our .NET-based and Java-based components. A long while away from production-grade code on Windows means I need to brush up on my production debugging skills.

On today’s menu: thread dumps, or per-thread stack traces if you will. With Java code (at least starting with Java 5) this is as easy as jstack <pid>; with .NET it turns out to be quite a bit more complicated:

  1. Download and install the appropriate Debugging Tools for Windows version for your architecture (x86/x64/Itanium)
  2. If you need information about Windows function calls (e.g. you want to trace into kernel calls), download and install the appropriate symbols. This isn't strictly necessary if you just want a thread dump of your own code.
  3. If you need line numbers or any other detailed information, make sure to place your assemblies' PDB files where the debugger can find them (normally you just put them next to your actual assemblies).
  4. Start->Programs->Debugging Tools for Windows [x64]->windbg
  5. Attach the debugger to your running process using the menu
  6. Load the SOS extension with ".loadby sos mscorwks" for .NET 2.0 (".load sos" for .NET 1.0/1.1)
  7. Take a thread dump using "!eestack"
  8. Detach using ".detach"

Quite a bit of work for something as trivial as a thread dump. I hope .NET diagnostic and debugging tools improve with time (Process Explorer is definitely a step in the right direction).

Thursday, March 19, 2009 5:16:24 PM (Jerusalem Standard Time, UTC+02:00)  #    -
# Sunday, March 15, 2009


Don’t ya think?

Sunday, March 15, 2009 11:19:18 AM (Jerusalem Standard Time, UTC+02:00)  #    -
# Wednesday, March 11, 2009

So I had to find myself a new job. Delver was about close down, the employees (including yours truly) were handed notices and the next few weeks were spent searching for my next job. I guess breaks come not only when you least expect them but also from the least likely direction: Delver was bought by Sears and made into SHC Israel, not to mention the company’s first overseas headquarters and development center.


You’ve read correctly: Sears. Not Amazon, not Google, not Microsoft. Delver, a strictly web-based startup, wasn’t acquired by a web company; not even by a technology company at that. Instead we were acquired by one of the United States’ largest retailers. Why, you ask? Well, with any luck you’ll find out in a few months :-)

Wednesday, March 11, 2009 5:34:35 PM (Jerusalem Standard Time, UTC+02:00)  #    -

I was making modifications to one of our components, and running all of the unit tests revealed that all database-dependant integration tests were failing:

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

Last packet sent to the server was 0 ms ago.
<snip> (cut for brevity’s sake)
at com.mysql.jdbc.ConnectionImpl.createNewIO(
at com.mysql.jdbc.ConnectionImpl.<init>(
at com.mysql.jdbc.JDBC4Connection.<init>(

Strange error message, but as it turns out the inner exception was far more revealing: Connection refused: connect

As can be expected, the local MySQL server was up and running, and I was able to connect with the command line tool as well as with SQLYog, so it was obviously not a problem with MySQL or the local firewall. Next up I tried to telnet to the appropriate port (the easiest way I know to check port-level connectivity) without success:

Can't connect to localhost

I next tried to connect to the loopback IP (, and experienced a major WTF moment when the connection succeeded. I use Windows Server 2008 and, as it turns out, it supports IPv6 out of the box. localhost has a slightly different meaning under IPv6 (it maps to ::1), and as I understand it traditional IPv4 traffic is tunneled over the looback IPv6 connection; I’m not yet familiar enough with IPv6 to draw any conclusions on why the above shouldn’t work, but the bottom line is there are several ways of resolving the problem:

  1. Edit your hosts file (it’s hidden under Windows Server 2008, but you should be able to Start->Run->notepad %SYSTEMROOT%\System32\Drivers\etc\hosts) and change the mapping for localhost from “::1 localhost” to “ localhost”. This does resolve the problem, although I can’t say what impact this will have on IPv6-enabled applications.
  2. Set the TCP stack to prefer IPv4 to IPv6 when attempting to connect (it’s the reverse by default). According to this forum post, this entails setting the registry value HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\tcpip6\Parameters\DisabledComponents to the DWORD value 0x20.
  3. Disable IPv6 altogether for your network connection: remove the IPv6 protocol from your network connection component list. At this point in time IPv6 is still very rare so I doubt this will cause any significant issues, but YMMV.

For me, changing the hosts file was the quickest solution because it works and is easy to revert. I’ll have to keep a very careful eye on the behavior of my machine though.

Wednesday, March 11, 2009 1:02:08 PM (Jerusalem Standard Time, UTC+02:00)  #    -
Development | Software
# Monday, February 2, 2009

If you've ever tried to develop using PHP on IIS7 (Vista), you'll find that errors in your script result in the default IIS7 "friendly" HTTP 500 error page, which is useless for debugging. This happens in both FastCGI and ISAPI modes.

To save you hours of crawling through the 'net, the solution (found on this forum post) is very simple:

  • Start a command prompt;
  • Copy-paste the following: %windir%\system32\inetsrv\appcmd.exe set config -Section:system.webServer/httpErrors -errorMode:Detailed
  • Run iireset
  • Enjoy.
Monday, February 2, 2009 7:58:44 PM (Jerusalem Standard Time, UTC+02:00)  #    -
# Sunday, January 25, 2009

Unfortunately the startup I work for (Delver) did not survive the current market crisis and has failed to secure additional funding. As a result I’m on the market again, and am looking for senior developer and/or software team lead positions, especially those with relocation opportunities. My résumé can be found here, and the most recent version can always be found under Navigation on the right side of this website.

Have an interesting job offer? Get in touch!

Sunday, January 25, 2009 6:07:16 PM (Jerusalem Standard Time, UTC+02:00)  #    -
Send mail to the author(s) Be afraid.
<May 2009>
All Content © 2024, Tomer Gabel
Based on the Business theme for dasBlog created by Christoph De Baene (delarou)