Tomer Gabel's annoying spot on the 'net RSS 2.0
# Sunday, 17 June 2007

PICT0715 It's official: I'm leaving Monfort Software Engineering, my workplace and second home for the last two years. I'm leaving with mixed feeling because I consider Monfort to be one of the finest places I'll ever find on both a technical and personal level, but it's time for me to move on.

I have several promising alternatives and will be settling on a new job by the end of the month; until that time I'm still open to offers (and will consider relocation if the offer is enticing). You can find up-to-date CV and contact information here or through the navigation menu on the right.

Sunday, 17 June 2007 23:43:32 (Jerusalem Standard Time, UTC+02:00)  #    -
Personal
# Sunday, 10 June 2007

My brother was going on and on about a coding challenge he found as part of the "Lisp as an Alternative to Java" study (the challenge instructions are outlined here, and you can find the sample dictionary and input data by following the study link); eventually I agreed to give it a try.

Spoiler alert: Do not read on if you want to take on this challenge!

Although I had to stop in the middle because I had company, the initial (hacked-together, very inefficient and completely uncommented C# 2.0 code) version took me 1 hour and 20 minutes. While technically correct this version performed abysmally, but it served as a good basis for further optimizations; a second, optimized version took another 30 minutes and with another 20 or so minutes to clean it up, the final version took a grand total of 2 hours and 20 minutes. Total length is 193 lines of code (including comments and white-space), which you can find here.

The crux of the solution is a very simple tree structure to hold the word dictionary. Each node has a 10-entry branch table, each entry representing a phone digit; a node can have an arbitrary number of leaves, each leaf representing a dictionary word. This allows for a very simple (and hopefully efficient) inner search loop:

  • Use successive digits as indices for traversal into the tree;
  • When a node with leaves is encountered, the leaves (dictionary words) are added to the potential result set. The rest of the input is then recursively encoded;
  • If no leaves are encountered for the entire input set, a digit is added to the encoded string and the rest of the input is again encoded. A boolean flag is passed along with the recursion to make sure two consecutive digits are never encoded.

This is basically a prefix tree (or trie). With the provided dictionary and input sets, runtime on my 1.7GHz Pentium M-equipped laptop is approximately three seconds. I haven't properly profiled the application for CPU and memory utilization because, frankly, it's good enough. There's also a lot of leeway for optimizations: the current tree implementation is woefully inefficient, as tree traversal can result in additional memory pressure.

Sunday, 10 June 2007 00:57:22 (Jerusalem Standard Time, UTC+02:00)  #    -
Development
# Saturday, 09 June 2007

Starts out a little confusing, but really a lot of fun. Thumbs up!

Also in other news, Jamie Zawinski is hella funny.

Saturday, 09 June 2007 01:03:41 (Jerusalem Standard Time, UTC+02:00)  #    -
Movies
# Monday, 04 June 2007

Oh man, this had me laughing my ass off. Badly.

The "random link every now and then" corner is brought to you by lack of caffeine.
Oh, and thanks for the link, Mickey.

Monday, 04 June 2007 00:56:31 (Jerusalem Standard Time, UTC+02:00)  #    -
Gaming
# Saturday, 02 June 2007

I mentioned before that Havoc, the guy who gave me a ride to the Netherlands, is the main organizer of Outline; he also invited me to come, and since I was still in the Netherlands at that time I took him up on his offer.

100_1325 100_1326
The two partyplace buildings (source)

The party was held at the magnificent "Recreatie Te Boomsgoed" camping ground in the border town of Braamt, and the partyplace comprised two small buildings, one being the Atari hall and the other the bar/PC/smoking/compo room. The surrounding area is beautiful country-side (as you can see from the photos above...) and afforded a very relaxed atmosphere.

Outline is a small party and therefore focuses mostly on socializing (although there were quite a few productions!). Because this was only my second international demoparty - not to mention relatively small, Dutch-based and Atari-oriented at that - I didn't really know anyone beforehand, and it was a real treat getting to know the Atari scene. I've never so much as seen a Falcon before, and some of the stuff I was shown simply blew me away!

16726
Announcement for the Kick Off 2 championship, organized by kRadD. (slengpung)

The only warning of what's to come was the sign above; Saturday afternoon a guy walks in the front door of the Atari hall, announces "the abomination is here" and proceeds to setup an Amiga A1200 on one of the tables. Despite the (abundant) cries of dismay, in short order another Amiga (an A2000) was set up next to the first and the training bouts started. I was never a big fan of Kick Off 2, or any football game for that matter; my thirst for sports games is amply quenched by Speedball 2: Brutal Deluxe, but (as is often the case) reason was ignored and football prevailed. That being said, the yells of "scheiße Amiga" were the source of constant entertainment.

The competition entries were actually surprisingly numerous; of interest to me were, among others:

  • The aptly named PC demo from Limp Ninja
  • Inque's 64k called Dahlia
  • A really cool flOw-clone called wriGLe by Psycho Hacking Force
  • Wamma's Atari VCS demo (!) called Gehirn
  • A really strange music-video devoted to jumpstyle: Springen by No-release
  • Some Vectrex demos were also shown, but I can't find a link to them anywhere...

100_1360 
Playing Gauntlet II on a Falcon (source)

In the midst of all the mayhem I found a French guy with a tower-modified Atari Falcon (and whose name I unfortunately can't recall) who offered me a two-player game of Gauntlet II. I think we spent the better part of 3 hours playing the old classic, which hasn't lost any of its charm over the years; we managed to reach level 60 or so before we had to stop due to competitions, changes to the power configuration as people started leaving etc.

The only two things "wrong" with the partyplace were the lack of Internet connection (which could also be considered an advantage, depending on how you look at it) and the separation into two halls. I'm not talking about the segregation of the party into "Atari" and "non-Atari" halls, but simply the fact that with around 80 (I think?) participants the party felt a little smaller when they were divided into two rooms. Can't fault anyone for that as the rest of the facilities were awesome, but after quite a few parties I do actually think that the "one hall for everything" approach has a lot of merits.

img_0879
Good people, good atmosphere (source)

Amazingly, not long after Outline ended the main organizer Havoc ran into troubles (of the real-world kind), which he described in this pouet.net forum post; the contents bother me to no end and as I haven't been able to contact Havoc since, I can only assume from his posts that he's getting better. If you're a pouet.net member, do leave a "get-well" for him on that thread, I'm sure he'll appreciate it.

Saturday, 02 June 2007 13:53:22 (Jerusalem Standard Time, UTC+02:00)  #    -
Demos
Me!
Send mail to the author(s) Be afraid.
Archive
<2026 June>
SunMonTueWedThuFriSat
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011
All Content © 2026, Tomer Gabel
Based on the Business theme for dasBlog created by Christoph De Baene (delarou)