Remember Nuclear
War? If not, slap yourself on the wrist and go download it. Right
now, like.
One night a couple months ago (before my laptop hard drive
woes, which are nay over by the way) I found myself unable to sleep at 5 in
the morning. I figured a couple of rounds of Nuclear War would do well to
alleviate my sleeplessness; I fired the game up and after 10 minutes was hit by
a sudden inspiration. The game is turn-based, and the controls are exceedingly
simple: mouse cursor and left click. Since I was still looking for something
useful to do with my newly acquired PDA it struck me that the game would work
extremelly well on a stylus-equipped PDA or phone, and I was wondering if
someone made a version for Pocket PC devices. A quick search through Google
assured me that this is not the case, and since I had the next day off I fired
up Visual Studio and started working.
At that point I figured that a simple rewrite wouldn't do. I wanted an
identical version of the original game. Since New World Computing
is no more, I figured the chances of getting the source for a 1988 game are a
little on the slim side. At a whim, I fired up IDA Pro and started
working. A couple of days later I managed to disassemble most of the graphics
code and image decompression (LZ78-derivative)
and wrote a utility to help me extract the game assets. It features picture and
palette display, histogram and font parsing:
Interesting technical footnote: the palettes were embedded in the data
segment; I wrote a regex-based parser for IDA's assembler output for this
purpose. The palettes were in the VGA 0..63 scale, but some values are also
higher and have to be clamped, which gave me quite a bit of grief until I
noticed this.
With the game assets ripped I could proceed to write some actual code,
however this posed an interesting dilemma: I want the game to be completely
faithful to the original, but disassembling the game logic and AI is a huge
task. I originally estimated it would take a month to complete the reverse
engineering, but given that it's already been two or so months (discounting my
laptop's downtime) it seems my guesstimate was woefully inadequate. This is
where I turn to you for feedback: should I keep going in this direction (meaning
the alpha version will probably take another several months to be released), or
should I just write my own game logic and AI code, get a release out and then
proceed with reverse engineering?
Let me know your thoughts. Also, if you want to create better (higher
quality, different) graphics and music for the game get in touch -- I'm aiming
for a very spartan first release (to keep it in a reasonable timeframe), but
once I'm done with this baby the sky's the limit.
As I mentioned in my previous
post, my previous travel experience is somewhat limited. The one aspect of
this trip I had absolutely no way of preparing for was the hours I was about to
spend in airports and airborne. The travel arragements included a short (1.5
hours or so) flight to the TAV Atatürk International
Airport in Istanbul and a connection flight to Beijing Airport, both by Turkish Airlines. Unlike my previous trip
to Turkey, this time the flight was far longer (the connection flight to
Beijing takes 9-10 hours); also, in stark contract with the previous trip's
charter flight, this time I was to fly business class. Proper food? Legroom?
What a concept!
I arrived with my gear at Terminal 3 of the Ben-Gurion
Airport in Tel-Aviv. Proceeding to check my baggage in, I've encountered the
first of the many perks of business class: radically reduced lines to security
and check-in (all airlines have a dedicated desk, and the TA airport has a
special X-Ray line for business class passengers as well.) After checking in and
exchanging some currency (along with passport control and additional
security checks) I proceeded to the passenger hall and then did some shopping in
the duty free shops there. I still had a while before my flight, and it was then
that I made use of the second major perk in business class: the CIP lounge.
Turkish Airlines make use of a CIP lounge operated by Dan hotels and is an extremely
welcome respite from the bustling mess that is the passenger hall. Aside from
wireless internet access - which is actually available in the regular passenger
hall as well, but that isn't necessarily true for all airports - the CIP
lounge features comfortable seats, private bathrooms, a private meeting room
(for those who require it and will pay extra, of course) and refreshments. Most
importantly, it's uncrowded and quiet; having spent a total of over 10 hours in
airports in the span of three days I've learned to appreciate the relative peace
and quiet of the CIP lounge. I can't imagine what spending those hours would be
like in the regular passenger halls. The Dan CIP lounge in Ben Gurion airport
(section B) is fairly small compared to the lounges in Istabul and Beijing
(more on those later) but is perfectly equipped: comfy seats, sodas, light food
and some alcoholic beverages if that's your thing.
Boeing 737
interior diagram (source)
My next station was the Turkish Airlines Boeing
737-800 airplane headed to Istanbul. I've flown in a charter 737 flight
before, and even at 14 could vaguely recall the airplane as cramped and
uncomfortable; I was hopeful that the business class section would be radically
more comfortable, but alas that was not the case. The 737 is fairly small (39.47
metres in length and only 3.76 metres wide, internally [source])
and quite uncomfortable. The Turkish Airlines plane was configured so that the
business class seates were slightly further apart (for a little more legroom),
but each row still contained triple seats (as in the diagram) which do not
comfortably accomodate an above-average sized person. The middle seat
was converted into an armrest/cup holder though, so at least I had some freedom
of movement. Despite the short flight (less than two hours) the food was
actually excellent: the main dish was a halibut fillet with saffron rice,
shrimp and calamari. Being generally averse to fish, I was very much
surprised at how good the dish was.
The Atatürk airport in Istanbul was where I made my home for the next 4 hours
or so. I met a pleasant guy called Haim on the way and we had a beer at
the local cafe (at about three times the proper price); he's a real-estate
entrepreneur doing business in China and had some insights to share about the
culture there. After strolling about the duty free complex (which is over thrice
as large as the one in Tel-Aviv) for a bit I proceeded to the CIP lounge, which
is considerably larger than the one in TA. The lounge is decorated in Ottoman
style and is very appealing. Despite the large variety the refreshments are
fairly basic; wireless access was spotty and somewhat problematic and the
restrooms weren't nearly as highly maintained as in TA. The couches were rather
comfortable though, and I put them to very good use. Unfortunately I was
unable to find any pictures of the lounge on the 'net.
A330-220 business class seat
(source)
The Airbus
A330-200 airplane which was my transporation from Istanbul to Beijing was an
extremely welcome change from the 737 which brought me to Istanbul. At a length
of 58.8 metres and a maximum internal width of 5.28 metres, the plane (and the
business class seats in particular) is spacious and comfortable. There is as
much legroom as you could possibly want, and the seats are wide enough to
accomodate large persons as well as small (although I could use a few
extra centimetres for my legs). The Emirates Airlines plane depicted on the left
is somewhat different from the one I took - the seats on the Turkish Airlines
airplane were somewhat larger and had an adjustable led-based lamp above of
the arm-rest. On the back of each seat (facing backwards, towards the passenger
in the next row) is an LCD screen which can be controled via a remote control
unit inside the arm rest (where it can be seamlessly stored for takeoff, landing
and taxi). A fairly large selection of movies was available on an individual
basis; since I had my laptop with me I didn't make any use of this feature,
but there were some pretty good flics (e.g. From Russia With Love) if one
was inclined to watch them. Also featured was an in-flight map, an external
camera (particularly cool during takeoff/landing) and some intercontinental
communication features I had absolutely no use for.
The service on this flight was absolutely top-notch: helpful, efficient (and
attractive!) stewardesses cater to the passengers' every whim. Other than
regular soft drinks, sodas etc., alcoholic beverages were served, and not
cheap-ass drinks either: several brands of wine (both Turkish and foreign),
Johnny Walker Black Label and even Glenfiddich Antique (18 years old). I was
fairly tired and opted for a glass of Graham's Port Late Bottled Vintage
(Portuguese sweetened red wine) which was terrific. Food was surprisingly not
quite on par with the previous flight, but at least we got to use proper cutlery
(Israeli security procedures do not allow metal cutlery on flights to/from
Israel).
Between all of this grandeur and sitting among all of those people in
business suits made me crave some balance; out came the laptop and headphones,
and two Buffy episodes later I was finally tired enough to fall asleep. I woke
up just in time for the pre-landing breakfast, and I'll tell you the rest in the
next post.
Next up: China, shopping and the way
back
My travel history is not a particularly interesting one: a trip to London
with my parents when I was 14, another trip to Turkey last year. Other than
that, nada. So it was with particular interest that I took on a business trip to
China: for starters, I was eager to get into the business side of things at
Monfort. Second, I am fascinated with
Chinese culture and have been planning a trip to China in ages. Lastly, it's a
paid business trip to another country... I'm being paid to do
things I would never have been able to afford on my own. Obviously, I said
yes!
Going on a business trip is quite different from going on a vacation and
has its own set of rules. I had to get a business suit, business cards and
similar crud. I'm not a big fan of clothes in general (Israel is extremely
hot and I'm very averse to heat) and uncomfortable, constrictive clothes in
particular, so it's no surprise that I have never worn a business suit. There is
a whole etiquette involved: colour matching, the type of jacket, button
placements etc. These are mostly trivialities, but it gets a little more
interesting with ties: the first and last time I ever wore a tie was for my Bar-Mitzvah party, and my dad put
the tie on for me. This time it wasn't really an option as I was going to
Beijing on my own. Luckily the 'net has once again proven to be an indispensible
information repository, and over a weekend I was able to successfully teach
myself how to tie a half-windsor knot from
scratch. (This might be a good time to note that, externally, I can't see any
difference between half-windsor, full-windsor or four-in-hand knots. They
all look alike to me.)
I'm usually inclined to do my homework before going into a new venture; in
this case it meant doing serious reading on business suit etiquette (as
mentioned above) and an overview of both Japanese and Chinese business culture
(since I'll be meeting both). At least in theory business cards are a major
aspect of oriental business culture - such cards are prerequisites for
businessmen from either culture, or those interested in doing business in the
orient. There are even customary rules on how to present business cards: either
one hand (always the right) or, preferably, with both hands, with the written
side facing the other party. Some sites go as far as to recommend double-sided
business cards, one side in English and the other in whichever language is
relevant to your uses. Finally, it makes an impression to hand out the
cards from a holder (pictured on the right). These are supposedly easy to come
by in any gift shop (which are abundant in Israel for some reason), however I
found this out a little too late and was unable to obtain one in time for my
outgoing flight. I figured I'll just pick one up at the airport, but apparently
none of the shops in either the Israeli or the Turkish duty free zones carry
such products.
A major difference between this trip and any other I've ever been on is
packing detail: packing the suit takes special attention. I'm a pretty
experienced hiker so packing is a trivial task for me; I usually pick the
smallest necessary bag and pack just what is necessary (or useful) for the
purpose of the trip. Although a suitable strategy for hikes through Israel or
trips to Turkey, this strategy proved inadequate because of the
suit: I used a folder for packing the suit shirt, and a special carrying
bag for the jacket and pants. I'm only going for a few days so I didn't pack a
large bag or suitcase and settled for a medium-sized carry-bag... which turns
out to have been a mistake. Although I carried very little on this trip, the
jacket bag wouldn't fit in under any circumstances (not without
twisting the jacket inside) and I had to carry it with me everywhere (duty free,
lounge, plane, etc.). I'm definitely picking a proper suitcase for the next
trip. The special shirt folder also proved inadequate and I had to have the
shirt ironed again.
I figured the few things I'll be needing before and during my flights can be
kept in the laptop bag. This includes a wallet, glasses and the various
documents (flight tickets, passport) I'll be needing on my trip. This would've
been a wise decision if it weren't for two factors: I needed some extra space
for the stuff I bought at the Israeli duty free zone (The Da Vinci
Code and a bottle of Rémy Martin XO
Excellence), and the damn suit carry bag kept bothering me. I think I'll go
with a small traveller's bag next time.
The one thing I didn't plan properly was a camera. I could've borrowed my
dad's camera (Minolta
Z2), but it's large and unwieldly. I wanted to buy a compact digital camera
and figured I could buy a mainstream camera for a reasonable price in the
Israeli duty free. This also turned out to be a mistake, because the price for
the camera I was initially interested in (Canon Digital IXUS 50)
was considerably higher than the price I could get even inside Israel. No luck
in the Turkish duty free zone either, so it's mostly a question of whether or
not I can find the time in China to look up a camera.
Next: the actual flights.
- I've been keeping hella-busy lately; this in itself wouldn't keep me from
posting, but it's keeping me from coming up with good ideas for posts. Sorry
about that, it's only temporary.
- I'm going on a business trip to China in a couple days. I hope to have
some pictures and stuff posted when I'm back.
- Easy Star All Stars -
Dub Side of the Moon is as listenable as it is funny.
- I've ditched Gaim, at least
until the next beta. Aside from being ugly, it's currently too quirky and
slow. Since I can't really stand Miranda the only viable alternative at
current is Trillian.
- I've had to reinstall my machine at work... experiences in a separate
post.
- ReSharper 2.0 is at version
#251, which supposedly fixes a lot of performance issues.
- Oren Eini's posting like mad, make
sure to finger his blog occasionally.
- I'm rennovating my home theater setup. Current candidate list: Panasonic
TH-42PHD8, Paradigm
Monitor 9 v4, Paradigm
CC-370, Denon
2601. Regardless, I would appreciate any pointers in the same price
class.
There are some extremely nonobvious repercussions to switching domains, a few
of which we were unfortunate enough to encounter here at Monfort.
The first of those is that certain source control providers (such as Vault) consider the host name an
integral part of a check out atom; since the domain name switch resulted in a
change in all host names, the direct result was that after the switch our
developers were unable to do anythign with files that had been checked out
before the switch. Although Vault is based off of SQL Server I couldn't figure
out how to "surgically" take care of the problem; changing the host record in
the check out object table had no apparent effect. I thought this might have to
do with client/server side caching, but restarting both did not have the
expected result. To save time, we eventually worked the problem out by undoing
all check outs server-side from the administration tool and manually checking
the files back out.
The second problem was much less obvious: some of our projects make use of
cryptographic key containers for signing .NET assemblies; after the switch we
started getting "8013141C errors" (Windows will not format this error message).
We tried reinstalling the key container only to get an "Object already exists"
message from the sn tool. Yaniv, one of my
colleagues, managed to find an article with the
apporpriate solution: apparently one needs to update the ACL on Documents and
Settings\AllUsers\ApplicationData\Microsoft\Crypto\RSA\MachineKeys.
Simple, but not trivial.
It's been a while since I've posted anything gaming-related, and I'll make it
short and sweet: stop whatever it is you're doing. Buy Dreamfall. Play it. Relish it. It would be
better if you played The Longest
Journey first, but it's not an absolute must (you'll enjoy the sequel a lot
more though).
Suffice to say that this game looks amazing, plays amazing, sounds amazing...
the voice acting is top-notch, the story and settings are magnificent. It's...
bloody awesome. Along with Psychonauts it must
be the best game I've played in years.
Quietly and (apparently) without fanfare, JetBrains have released ReSharper 2.0. Those of you used
to 1.5 will find that the new version is extremely feature-rich, but also
radically slower than 1.5; I seriously hope JetBrains are aggressively
optimizing their plug-in, because on large projects it can become quite
sluggish.
That said, the huge amount of new features as well as Visual Studio 2005
support are a definite reason to move to 2.0.
Damned if I know why, but Visual Studio
2005's debugger just stopped working today. I initially found this out when I
attempted to run PostXING in debug mode, and although the debugger seemed to be
working (VS2005 switched to debug view, the postxing.vshost.exe child process was right there)
absolutely nothing happened for minutes. When I eventually hit Shift+F5 I was
faced with another 30-odd-second stall, after which I was duly presented with
this astoundingly useless dialog:
"Mom! The VS2005 debugger is being a
dildo!"
If I didn't want to stop the debugger, I
wouldn't have hit Shift+F5. This is a class case of the "I know what you want
but I'll ask you anyway" syndrome which is becoming increasingly evident in
Microsoft's newer products (such as Windows Vista).
But that's not the issue. I can't
get the damn debugger to work. It stopped suddenly and wouldn't debug
any project at all - it just hangs during or immediately after loading
symbol files. And I can't find anything about it on the 'net, either. Oddly
enough, attaching to external processes seems to work
fine. Ideas?
How closely coupled the various components in Windows are. Take Internet
Explorer, for instance; this wretched thing has been around since the days of
Windows 98, and is now so entrenched in the bowels of the operating system it's
impossible to get rid of. In fact, if you tried to remove it from your machine
you'll find that it's not even a relevant option:
That might explain why I reacted with very little surprise when I encountered
the following dialog box when starting windows explorer (read: double-click on
"My Computer"):
I didn't start the debugger, in case you were wondering. As much
as I appreciate people who actually bother attempting production-debugging on
other people's programs, I don't have the time and patience for this - I have
actual work to do (particularly when at work). So I selected No. And
the dialog came up again. And again. And again. To top it off, my CPU was
bottomed out; Process Explorer seemed to think MDM was the culprit:
So now Internet Explorer and most programs that rely on it crash
immediately on startup (oddly enough, RSSOwl,
which relies on SWT, which relied on
Internet Explorer, works without a hitch). I immediately suspected some sort of
adware/malware/crapware, but Spybot wouldn't find anything. Now what am I
supposed to do? I hardly think Internet Explorer (which I hardly ever use
anyway) is worth a complete system reinstall.
Warning: Emotional outburst follows
So here I am, working on the latest and greatest version of Microsoft's
flagship messaging and collaboration application (read: the antiquated Outlook
2003 and its bug-riddled back-end). I've switched back to
Outlook after over a year of using the generally excellent Thunderbird. It's
driving me insane.
For starters, despite the fact that Microsoft has had years to
perfect the multilingual - bidirectional text, in particular - support
in its applications, Outlook still suffers from what - in a new product - would
be considered amusing issues that a hotfix will come out for in a couple of
days. Over three years after its release Outlook still manages to completely
mangle plain-text e-mails. Take a normal, Engilsh plain-text e-mail and try to
reply to it. At times (I still haven't been able to find a pattern), although
the e-mail is displayed just fine, replying to it causes the bidi heuristic
engine built into Outlook to decide that this is a right-to-left e-mail, and the
reply is prepared accordingly (quoted lines included). This wouldn't be such an
issue if there was any way at all to change the reading order
without completely mangling the text (Ctrl+A, Ctrl+Left Shift):
Original e-mail (left), Outlook's reply (center)
and after changing the reading order (right)
I showed this to Ilya (a friend and colleague with much experience
in bidi-related issues). His best idea was to write a macro to do the low-level
conversion for me. That's not really a solution; where bidi support in
Thunderbird is merely missing, in Outlook it's outright
broken. Thunderbird allows me to insert arbitrary HTML if I want to; in
Outlook there's simply no way at all to work around this problem.
To add insult to injury, I started using IMAP when working against
one of my mail servers. I was frustrated for a few days becaue the messages
marked as deleted were never actually removed from the server; aside from the
nuisance of seeing old messages displayed strikethrough along with fresh
messages (which can easily be filtered out), I simply could not figure out how
to purge the deleted messages. The most obvious option, "Process Marked
Headers", was completely useless; nor was "IMAP Folders..." of any help.
This has got to be the first time I ever actually used Office's help - a fact I
would normally attribute to a fundamentally impressive UI - only to find
that the option resides under "Edit->Purge Deleted Messages." Obscure
location? I thought so too. But at least the option is there.
|