Tomer Gabel's annoying spot on the 'net RSS 2.0
# Thursday, June 30, 2005
If you ever find the need to contact me, here are a few options (prioritized, first is best):
  • Send me an e-mail - make sure to change the at/dot text to the appropriate characters
  • MSN Messenger alias tomer at tomergabel dot com (same comment applies)
  • Leave me a comment on this blogpost
Thursday, June 30, 2005 4:59:14 PM (Jerusalem Standard Time, UTC+02:00)  #    -
dasBlog's been behaving oddly today. First I find that I have an empty category (that is, a category with a blank name). Turns out that dasBlog caches the categories from its content XML files, but has no category deletion/rename tool (this tool can only rename categories and is not part of the project itself). I had to download the files, look up the offending category manually (another would-be bug: the category list in the XML was personal;music;" - note the trailing semicolon) and fix it, then touch the config file to get the site to reload and recache the categories. If I find the time I'll add this to the source.

The second issue is that my "contact me" entry has disappeared from the blog entirely, and somehow the links were replaced with links to another entry. *scratches head* Guess I'll have to rewrite that post...

Thursday, June 30, 2005 4:55:16 PM (Jerusalem Standard Time, UTC+02:00)  #    -
The vector engine saga continues!

One of the features required by the host application is for the vector engine to create a snapshot of the viewport at a given size. The current API implementation returns an HBITMAP for use by the client app and uses GDI (through MFC) for rendering the viewport. This in itself was OK, but since the viewport size is declared by the host application and the background for the vector engine is usually a bitmap the rendering engine copies the bitmap onto the viewpoint via GDI, which means the bitmap gets rescaled by GDI. This is a big nono because GDI rescaling is both horribly slow and looks like crap (na?ve rescaling, no nearest-neighbor or bicubic).

Bottom line, I had to rewrite the background rendering to utilize DirectDraw; luckily I've already done this for the actual rendering routines in the engine, and the snapshot generation uses that code. I just had to create a DirectDraw off-screen surface, render to its DC instead of the current compatible DC created from the screen surface, create a bitmap from the off-screen surface and return it.

It took very little time to write the rendering code (particularly after finding a couple of tutorials), but the copied bitmap wouldn't save properly; the resulting BMP file had a black rectangle instead of the rendered image, and when I tried to copy the bitmap to the clipboard I couldn't display it (got a "can't copy data from clipboard" error message from mspaint, and clipbrd wouldn't display anything). It took an additional several hours of beating around the proverbial GDI bush to find a solution, and I still can't figure out why it works:

  1. Create a DirectDraw surface
  2. Render image
  3. Create a compatible DC for the surface (bmpDC)
  4. Create a compatible bitmap for the surface
  5. Select the compatible bitmap into bmpDC
  6. Blit the surface DC onto bmpDC
  7. Here comes the cinch: call ::GetDIBits to fill a BITMAPINFO structure, then to get the bitmap bits (note: make sure to negate the bitmap height, or you'll get an inverted bitmap)
  8. Delete the original bitmap
  9. Recreate the bitmap using ::CreateBitmap with the info from the previous step
  10. Clean up
  11. Return the newly created bitmap

What really baffles me is that what I'm doing is effectively creating a device-dependant bitmap (DDB) out of the previously created compatible DDB. If that is the case, why is the newly created bitmap functional (that is, I can save from it and copy it to the clipboard properly)? Why was the original bitmap behavior different? And why, when I tried to ::CreateDIBitmap instead, I consistently got an error where the documentation specifically states the only possibly error is an invalid parameter (there were none that I could find)?

I'm completely baffled by this; the solution outlined above is (aside from being ugly) not supposed to work. Has anyone any idea?

Thursday, June 30, 2005 3:40:49 PM (Jerusalem Standard Time, UTC+02:00)  #    -
Here's part of a spam mail:
Call out Gouranga be happy!!!
Gouranga Gouranga Gouranga ....
That which brings the highest happiness!!

And I say, what the hell?

Update (July 25th): after noticing a referral to this entry from Google with the search term "gouranga spam" I figured I might as well find out what this thing's all about. A little more searching revealed the following:

Gauranga (Gouranga) was a nickname of Sri Caitanya Mahaprabhu, a monk in India who 500 years ago founded the branch of Hinduism that during the 20th century was brought to the west by ISKCON (International Society for Krishna Consciousness, better known as the "Hare Krishna" sect).

The one recollection I had upon reading this bizarre mail was that, in the original Grand Theft Auto, if you ran over all members of the occasional groups of monks prowling the strings, you'd get a massive bonus with the word "Gouranga!!!" superimposed on the screen. Apparently I wasn't the only one to notice this, as the fact is featured prominently on wikipedia. At least now I know what the hell gouranga means!

Thursday, June 30, 2005 8:36:15 AM (Jerusalem Standard Time, UTC+02:00)  #    -
# Sunday, June 26, 2005
Lev (my friend from Eilat) hopped back north for a visit, which was perfect timing to go to the Hot Fur CD release concert in the Koltura club in Tel-Aviv. And let me tell you, it was the absolute bomb!

We arrived a little early (the show was supposed to start at 22:00 with the doors open at 21:00), the place was still nearly deserted and a Frank Zappa concert played in the background. We went out to grab a bite to eat, and when we came back people were starting to pile up. I don't really have much of an idea how many people were present when the show actually started (half an hour late...) but it was probably 150-200 as the place is supposed to be able to hold 400 people and it wasn't horribly packed.

Audience at large (you can thank Ilya Konstantinov for the pictures)

Hot Fur started by playing their new music video for "Adventure In Space", which was hilarious and got everyone riled up and ready for the concert; they immediately proceeded with "The Letter Vav" and over the next 1.75 hours proceeded to play most of their bread-and-butter repertoiré, including (but not limited) to "Sabres 15003", "I Won't Give Up" and (I think) "Tomatoes". Now what's really great about Hot Fur concerts is that they do not only make and play great music, but they also know how to put on a great show:

Between (and often during) musical segments guys related to the band would put on bizarre costumes and indulge in what must be the greatest fun the world: acting really stupid in front of hundreds of people who appreciate stupidity. I particularly liked this character (the main character in the "Adventures In Space" video), who for lack of a better name I like to call The Dude:

The Dude makes many appearances during the show...

... like this one

Among diverse distractions the band kept throwing roses at the audience, and I finally found myself looking thus:

Roses are red, violets are blue...

And eventually broke down altogether:

... I love Hot Fur, and so should you

At the end of the show, we finally managed to get our hands on our preordered Hot Fur CDs (which we've been eagerly awaiting for for the past year). Besides the great music us preorderers were delighted to find our names in the "thank you" section of the CD...

Hot Fur'll be appearing in Koltura again on July 27th (I think). Don't miss it.

Sunday, June 26, 2005 1:25:34 PM (Jerusalem Standard Time, UTC+02:00)  #    -
Music | Personal
# Thursday, June 23, 2005

Three of my colleagues here at Monfort are Israeli demo-scene alumni (specifically, Borzom / Tatoo, Scroll-Lock and Crunch / YOE). We got word of an IGDA Israeli Chapter meeting that was going to take place in a day, where demo-sceners are expected to attend (Civax / Moonhunters is the IGDA organizer in Israel), so we quickly rang up everyone we still have contact with (the last scene event in Israel was in 2000...), took a car and went there.

It was great! More than great, it was absolutely brilliant. Fewer sceners attended than I expected/hoped, but the ones that did come were pretty much the core of the Israeli scene to begin with. Borzom, Scroll-Lock and I arrived in the Leo Blooms Irish pub in Tel-Aviv a little after 19:00 to meet up with Kombat / Immortals and Jonny / YOE who were already there, and were shortly joined by Civax and One / Moonhunters, Crunch / YOE and after a little while Protopad / BSP (my brother Mickey), Dark Spirit / TTOM, Hex / ULC^Tatoo and Rage / Immortals.

The Gang
From left to right: Jonny, Crunch, Borzom, Scroll-Lock, Holograph (myself), Civax and Kombat in the bottom

Over the course of about five hours we sat around, drank and ate all sorts of shit and had loads of fun talking to people none of us have seen in years. The results were sometimes disturbing:

What. the. fuck.

All in all, it was an absolute blast, and I'm now planning a demoscene get-together (which will hopefully include a BBQ and demos displayed constantly on a projector) sometime towards the end of July. If you're a demoscener and have any inclination to attend, get in touch...

Update: Oran put up pictures from the event on his Giant Mitzy site. You can download them here.

Thursday, June 23, 2005 4:26:16 PM (Jerusalem Standard Time, UTC+02:00)  #    -
Demos | Personal
# Monday, June 20, 2005
Doom 3 owns.

I also got around for an hour or so of Resurrection of Evil; unfortunately I was left less than satisfied. The Grabber weapon is more useful than Half-Life 2's Gravity Gun, but also far less interesting or cool. The physics engine is adequate, but nothing like HL2's Havoc engine, which also detracts from the weapon's cool factor; the whole thing just basically feels like a ripoff of HL2 (which is something id Software should not feel compelled to do). I'll give it a fresh attempt tomorrow.

Finally, of note is the Classic Doom 3 project, which is sort of a must-have for any Doom fan.

Monday, June 20, 2005 11:18:10 PM (Jerusalem Standard Time, UTC+02:00)  #    -
I'm generally fascinated by the effects of nuclear bombs. It's not the technology I'm interested in as much as the aftermath; the images from the Hiroshima and Nagasaki bombings, along with the stories and related social phenomena (Godzilla is just a trivial example) hold an irresistible sway over me.

After spending about 20 minutes reading through George Weller's rediscovered report of Japan's nuclear aftermath it was really, very difficult lifting my jaw off the floor. It's an astonishing read, particularly because it combines the early 20th century technical ignorance regarding nuclear weaponry and its various effects with surprising candour and lack of naivette. I was a little concerned with the reliability of the publication, but I suppose having it reported on CNN and subsequently slashdotted lends it at least some credibility.

At any rate if you have any interest in the post-apocalyptic, you owe it to yourself to read the report. That said, you also owe it to yourself to play Fallout. Sleep tight.

Monday, June 20, 2005 2:33:09 PM (Jerusalem Standard Time, UTC+02:00)  #    -
Brian Moriarty (creator of Loom) speaks! Besides explaining how Loom was originally meant to be a trilogy, he adds an insight on the reason its sequels never came out:
Contrary to popular belief, the LOOM sequels were not abandoned because LOOM didn't sell well. LOOM has sold more than half a million copies in various formats since it was published in 1990. The reason the sequels weren't made is because I decided I wanted to work on other things, and nobody else wanted to do them, either.

As a huge fan of Loom I'm not sure which saddens me more: the original theory that Loom did not sell well (aside from being an astoundingly good game, Loom had an Israeli version - in native Hebrew no less! - and sold extremely well here), or the fact that the trilogy was simply... neglected.

Another interesting bit of trivia: a Japenese re-arrangement of the soundtrack was made but never released. Moriarty sold one of the only existing copies on eBay last April. I contacted the buyer and hope to get the music available on the internet.

Last but not least, you know you've played way too much Loom when not only do you recognize the source of the following passage, but you can actually hear Cygna's voice in your head when you read it:

Destiny shall draw the Lightning
Down from Heaven; roll its Thunder
Far across the Sea, to where I
Wait upon the Shore of Wonder
On the Day the Sky is oepened,
And the Tree is split asunder.
Monday, June 20, 2005 11:01:11 AM (Jerusalem Standard Time, UTC+02:00)  #    -
# Saturday, June 18, 2005
I somehow managed to miss the release of The Ur-Quan Masters alpha 0.4. Just so you understand, alpha 0.3 was quite stable and I was able to complete a game successfully. Alpha 0.4 is even more stable and adds some more features (PC intro/ending sequences, "triscan" filter to name two). It is the best free PC game you will ever play.

Also, the Precursors' remix project contains some pretty kick-ass remixes and covers of the various SC2 tunes. I've made an addon for Ur-Quan Masters which contains what I perceive as the best version for each tune; I'll post a link when I can find some web-space for that (the package currently weighs in at about 90mb) - alternatively I'll do some reading about the new trackerless BitTorrent and see if I can use it instead.

One thing I do wish UQM had is the ability to select a tune at random from a selection (for example, there are two or three very good versions of the Thraddash theme I would like to be able to put in the remix pack). I'll see if I can file a feature requests or maybe even add it to the source code myself.

Saturday, June 18, 2005 4:23:38 PM (Jerusalem Standard Time, UTC+02:00)  #    -
Send mail to the author(s) Be afraid.
<June 2005>
All Content © 2023, Tomer Gabel
Based on the Business theme for dasBlog created by Christoph De Baene (delarou)