Despite my lately-discovered tendency for open-source evangelism
, I constantly use proprietary software in my day-to-day computer exploits. Here's a list of a few of the more useful ones:
- Everyday use:
- Windows Live Writer - Microsoft's blog client/word processor. Microsoft entered a saturated market full of mediocre and/or abandoned software, and simply did everything right from the get-go. This is one hell of a tool - stable, convenient and extensible. Recommended.
- XMPlay - a great audio
player for Windows. Has excellent module playing capacity, plays
streaming audio perfectly, basically does everything WinAmp does only
better and in a much lighter package. I have yet to find a (preferably
portable) open source platform which compares..
- Microsoft Outlook - Outlook has its moments, but I've enjoyed working with Mozilla Thunderbird a lot more. I originally switched
to Outlook for its PDA synchronization capabilities (via ActiveSync);
since this is no longer an issue for me, I'm planning on switching back
to Thunderbird as soon as I can find the time to take care of the
- Total Commander - I simply can't work properly without a Norton Commander clone.
I switched from Servant Salamander to Total Commander and so far never looked back. An open-source replacement is definitely #1 on my wish list though.
- AVG Free Edition
- the free (for home use) version of the AVG Anti-Virus is an
impressive piece of software. It's
lightweight, nonintrusive and simply works. I'm sceptical that
open-source antivirus software can be as up-to-date and effective as
- Windows XP Professional
- bought a copy with my laptop, and can honestly say I do not regret
it. It is impressively full-featured, completely stable, has terrific
hardware support (I will tell the story of my Linux hardware woes in
another post) and despite being very powerful it is also very intuitive
to work with.
- Trillian Basic - a free multi-IM client (I use ICQ and MSN). It's not lightweight, nor it is the fastest, but from all the multi-IM clients I've used (GAIM, Miranda, Trillian) it has the best combination of stability, features and looks.
- ACDSee (at work) - Best of breed photo browser. The new version seems quite bloated, but it's still the best program of its sort I've used (since version 3...)
- XnView (at home) - Great photo browser that's fairly quick and lightweight. Free for non-commercial purposes, basically does everything almost as good as ACDSee.
- Development tools:
- Visual Studio 2005
- being a primarily .NET developer, this is an absolute must-have. It has a lot of issues though, and missing some features that I can only enjoy with ReSharper.
- JetBrains ReSharper -the quintessential upgrade to Visual Studio. Improved autocompletion and syntax highlighting, fully customizable code reformatting, code navigation, refactoring, code templates, unit test runner and more, all in one package. I've been using this since version 1.0 after seeing a presentation by Roy Osherove, and nowadays I find it daunting to work without it.
- Araxis Merge - best of breed commercial diff and merge utility. WinMerge and the various diff/merge utilities that come with source control provides (Vault, Perforce etc.) simply can't compare.
- Stylus Studio - I tried this out as an alternative to XmlSpy a few years ago and got hooked. Although it's still a terrific XML IDE, unfortunately they have very annoying registration, activation and upgrade policies, so I may yet take XmlSpy for a renewed spin.
- SourceGear Vault - the source control provider we use at work. It's like a moderately improved version of SourceSafe: reasonably fast, fairly full-featured and mostly works. I've used Microsoft VSTS and Perforce since and both are far superiour, but also considerably more expensive.
- Occasional use:
- Nero Express - a lightweight
version of the fully-fledged Nero. This has been my CD-burning software
of choice for about 6 years. Since a copy came with my laptop I haven't
found the motivation to seek a proper open source replacement yet.
- PowerDVD 5.0
- probably the only reason I still use PowerDVD is because it came
(OEM) with my laptop. I don't watch many movies on my laptop so I
couldn't be bothered to find an open-source replacement.
The Thunderbird nightly build
for yesterday seems to kick quite a bit of ass. It's just as stable as
the 1.0.2 stable build, has a useful spellchecker, works like a charm
with the BiDi Mail UI
extension and feels over-all very solid. Can't wait for the official 1.1, so I could recommend it to other people.
Yes, CSS2 is very cool, but apparently way more problematic than I
originally thought. It seems even minor details are the cause of much
consternation, giving headaches to programmers and designers alike.
The whole thing started when I noticed that the blog title
("banner") was not displayed properly on my grandfather's machine
(Internet Explorer 6); it appeared as though the text class wasn't
handled properly. Give or take 20 minutes later I found out that I
accidentally used a class="banner" declaration where in the CSS it was defined as A.Banner. Apparently Mozilla was misbehaving in ignoring the case. At first I thought Microsoft finally got something
right with Internet Explorer 6, then figured I might as well delve a
little deeper into it and figure out which behaviour is right.
Enter the CSS2 specifications, specifically section 4.1.3 Characters and case,
where it is clearly stated that CSS is assumed to be case-insensitive
"except for the parts that are not under the control of CSS". This a
very subtle distinction, which apparently goes on to include the "...
values of the HTML attributes "id" and "class"".
Now, seeing that I love to be standards-compliant, I naturally included the correct <!DOCTYPE> declaration in the beginning of my blog template, putting Internet Explorer in standards-compliant mode;
unfortunately I did not read the CSS2 specifications carefully enough
and therefore did not properly understand the case-sensitivity issue.
Therefore I will quote what I perceive is a very good piece of advice from Zen and the Art of Website Maintenance:
Last but not least, let me touch on the issue of case
sensitivity. CSS selectors are not, by definition, case-sensitive.
However, if the page language within which they are used is
case-sensitive, then they become case-sensitive. HTML is not
case-sensitive [HTML 4.01 is, though, so take care! -TG], so
CSS is not when used within it. But XHTML and XML are case-sensitive
and so, therefore, is any CSS used within it. Given this, the only
sensible choice is to regard all CSS as case-sensitive: this will save
you from considerable pain in the future.
And to sum the whole thing up: yes, Microsoft seem to have done
something right for a change, and Mozilla does indeed misbehave
(unless, which is just as likely, I've missed another subtle but
One of the features carried over from my first website (amazingly still available) is a digital rendition of the ingame music from the Amiga version of Defender of the Crown. Back in the year 2000 I had this to say:
Defender of the Crown is a computer game by Cinemaware, originally released in 1986 for the Commodore Amiga and later ported to every major platform (including the PC, C64, ZX80, NES and Atari ST). The game is branded an "interactive movie" and was one of the earliest Amiga games released. It was used by many Amiga enthusiasts to demonstrate the abilities of the computer, and with good reason: the game had beautifully drawn graphics by James D. Sachs and never-before experienced atmosphere.
One of the most prominent aspects of the game is its music. I've heard the game's music throughout my childhood as I went to a neighbouring Amiga owner and played this and many other wonderful Amiga games. The music was composed by Jim Cuomo, who now pursues a career as a musician.
The music here is recorded from the Amiga version via an Amiga emulator, specifically Fellow 0.3.3. Due to an emulator handicap the WAV files produced had some bugs which I fixed using Sound Forge 4.0. The tunes are now almost identical to the original Amiga ones (as verified using my A500+), depsite a somewhat shoddy MP3 conversion using MusicMatch 4.0.
The tunes provided are distributed with permission from Jim Cuomo, who was also gracious enough to send me one of his CDs entitled Gameplay, which contains excellent revisited tunes from several computer games he had composed music for. He also permitted me to post the Defender of the Crown tunes from the same CD - they will be added in a few days.
I am still, unfortunately, missing the Love theme (rescuing the princess) and the victory/loss themes, the latter of which will be posted as soon as I finish working on them.
At the time free hosts were usually limited to 5 or 10mb per user, and my having no desire to pay for storage meant it took more than a few days to post the Gameplay sound snippets - more like 5 years. Also, scratch the comments about Fellow 0.3.3 and MusicMatch 4.0; I've re-recorded some of the tunes from my A500+ (softkick'ed to 1.3) and re-encoded everything with OGG Vorbis (which means stereo [in the new recordings] and much higher quality for just slightly larger files - well worth it in my opinion). When I find the time, all themes will be re-recorded from a proper A1000 (512k, kick 1.0) through a more modern soundcard with lower SNR. I also pledge to re-rip and re-encode the GamePlay tracks properly.
Avast! Files off ye starboard bow!
GamePlay CD tracks:
I've updated the blog's design to something a little more to my taste. I hope you like it, and would very much welcome comments!
I've been mucking about for a few hours with dasBlog themes, CSS2
and relevant technologies and learned a great deal. CSS2 is so damn
cool! Back in the day - what,
four years ago? - I used to have a bunch of perl scripts to do the
style/content seperation for me utilizing a bunch of macros. Nowadays
it's not only a great deal easier to seperate the content, CSS2 also
helpes you avoid a lot of HTML hacking and HTML bloat: no more hacking
tables where design elements go. It kicks ass!
That said, there are a few things that are nontrivial with CSS2. For
example, check out the blog title; notice how the horizontal line stops
next to the text. The border itself is easy enough (see next section
though), but it took me a little while to figure out how to make it
'stop'. Eventually I settled for the following hack:
- A <div> section acts a container for the entire blog title and contains two additional <div> sections
- Both sections have the exact same content. The first section
maintains the appropriate flow and layout for the page but is not
itself visible (it has style="visibility: hidden")
- The second section floats over the entire container (style="float: left")
- This is where it gets interesting. The lower part of the
second section must cover the lower border of the container; originally
I did this with a <br&rt; tag, but as I suspected this proved problematic when the client text size was changed. Eventually I settled for an additional padding-bottom: 2px; style for the second section, which solved the issue nicely.
- Finally we want the horizontal border to stop before it hits the text; the solution couldn't be simpler: just add padding-right: npx (in my case I used 5) and you're good to go.
Next stage is to find out how to gradient the border when it gets
close to the cell. Also, the whole thing might've been easier with a
table and a couple of columns, but not nearly as fun
Finally, I have to rant: Microsoft IE programmers are a bunch of
shitcocks. Even in standard-compliant mode (why in the hell do I have
to, as an author, worry about IE modes anyway? Why isn't it
standards-compliant to begin with?) the damn thing just doesn't process
CSS properly. In my case it turns out that dotted borders simply do not work
in Internet Explorer (except for Mac IE version 5.5 or something
bizarre of the sort); if you're reading this post using Internet
Explorer you're probably seeing a solid border around the post itself.
This is NOT the correct behavior. IE displays dashed borders instead of
dotted ones; this looked aweful, so I used a couple of hacks
to get IE to display solid borders instead. And this is just one of
myriad bugs. I wonder if they'll get fixed in IE7, but would advocate a
move to Firefox regardless.
I am not a regular reader of Jackie Goldstein's blog, but I make sure to catch up every now and then; today I encountered an interesting post in which he discusses a long-overdue improvement to ADO.NET: the ability to specify a batch size
for a DataAdapter.Update statement. One of the stupidest shortcomings
of ADO.NET 1.0 and 1.1 was that it would make a round-trip for each
changed row, which in the case of large updates or over high-latency
networks results in horrible performance.
Apparently ADO.NET 2.0 includes the ability to specifiy the batch
size, however there are some things worth knowing about this behaviour
(specifically, less commands issued to the database do not necessarily
equate less round-trips on the network; also, as Jackey puts it,
"creating batches of different commands every time would wreak havoc on
the query plan cache." Jackie goes on to link to a post in Pablo Castro's (the ADO.NET Program Manager) blog, which explains these issues in a little more detail.
An interesting read, certainly.
First, if you're up for a decent laugh, go ahead and read A Gamers' Manifesto
You may have noticed the odd discrepency between this post's title and
that article's; it's intentional - I do not presume to represent the
gamer crowd as a whole, and for several very good reasons:
- I'm about as mainstream as the guy next door who never
seems to shave, or shower, or do anything other than moan and
occasionally groan something that sounds oddly like
"braaaaaaaaaaaaaaaains." I certainly enjoy an occasional hit as much as
the next guy (UT2k4 anyone?),
but other than that I'm definitely not your run-of-the-mill Israeli
gamer. For one, I actually buy my games, which appears to be a
particular oddity that even my absolutely closest friends can't fathom.
Second, I often play older games (sometimes on their native platforms)
because I enjoy them and do not mind their being old or technically
outdated. Third, I consistently despise games heralded as breakthroughs
by many of my peers; and lastly, I find myself playing less and less
games and wondering why, exactly, that is. I used to play practically
every game out there; there are few games from the '90s I haven't
played extensively or at least taken for a spin.
- Gamers, even intelligent ones, look for different things in different games. I openly declare the original Doom
to be one of the greatest games I've ever played. It's certainly
mindless, quite repetitive and lacks any manner of story or plot. It
doesn't matter. I've spent countless hours (must be about over a month
in total) playing this particular title because it was so thoroughly
satisfying. In recent years, however, I've heard people blaming Doom
for starting a "dangerous trend in computer gaming" of mindless action
games with no plot. Hate to break this to you: mindless action games
were out there way before Doom (the arguably first computer game ever,
Space War, was one). Besides, mindless action is definitely good for
the soul. Still, it doesn't stop me from enjoying the more thought-inducing genres, which only goes to prove my point: people (especially gamers) enjoy things differently.
That said, I have several comments about A Gamers' Manifesto. Let's go by the numbers:
- I agree with the gist of the thing (tough, smart AI), but not
with the particular example. Doom III was meant to retain Doom's
simple, mind-numbing but gratifying gameplay, and does so extremely well.
Playing Doom III was a religious experience for me: everything I loved
about Doom - the suspense, the heaps of enemies, the challenging
gameplay, the gameplay mechanics - is there. Giving the Lost
Souls a proper AI would be like giving George W. Bush brains; it's
great in theory, but it probably won't make the world a better place.
- With this I cannot possibly diagree. Games have been getting less
and less diverse for years, and the studios that create the few
exceptions usually get financially whacked: where are Bullfrog and
Lionhead Studios these days? Do you recall the financial fiasco that
befell DreamWorks' completely revolutionary The Neverhood, or the lackluster sales of the completely original Loom?
Customers are obviously responsible, but it's also a result of the
astounding costs involved in creating a top title these days. Twenty
years ago you could've been a 15-year old mashing on his C64 and be
pretty well off, but nowadays you need heaps of people and money to
create even an astoundingly bad title like Chrome.
I firmly believe, however, that tools will get progressively better,
allowing less people to make more detailed, more immersive games in
less time and effort; it's just a question of time. When that happens,
the ball will be in our (the gamers') hand again: will we buy the
creative titles? Will we reward creative persons and game studios? Time
- This is an interesting throwback to the time when the in-game
graphics were so bad you had to tantalize your customers' imagination
with interesting background stories, or beautifully drawn imagery on
the packaging (recall Defender
for the Atari 2600?). I think concept art has its place, but it's not
good enough. Screenshots don't cut it nowadays either; I distinctly
recall being thoroughly unimpressed with the Doom 3 screenshots and
mesmerized by Half Life 2's, and Doom 3 turned out to be the more
graphically impressive of the two (HL2 is no slouch, though!).
- The image made me laugh my ass off, and though I do not play
adult games I find myself more than a little disturbed by the analogy
(which is closer to reality than I originally thought.)
- It should come as no surprise that men do not know how to cater to women.
I'm a guy, I do not presume to understand women, and wouldn't know the
first thing about what they'd be looking for in a computer game. My
immediate thoughts are "something cute," which is the exact stereotype
and which only goes to show that game designers are probably equally in
- I couldn't possibly agree more. Save points are OUT, quicksave is
IN. Still, I'd like to add that having quicksave/load available is no
excuse for poor gameplay, and actually having to use it every few
minutes equals shitty gameplay (Half Life again).
- Finally someone put it into words. Loading screens are bad, however
I'll add that while I would definitely prefer not having to wait at
all, as long as I'm kept waiting at least make it worthwhile. Half Life
2 had 30+ second loading times per 2-10 minutes of gameplay
(reminiscent of the first game), while Doom 3 would take the same time
to load an area you would play anywhere between 15 and 60 minutes,
which is much more acceptable.
- Woah, I'm glad I'm not a football fan.
- If I had a nickle for every time a bug in a game forced me out of
the "obvious" game space and into an invisible barrier, I would be one
rich monkey. Too bad I don't.
- YES! This is the one thing that's been driving me insane
these last few years. Artifically linear gameplay was one of the things
that annoyed me most about both Max Payne, Half Life 2 and even Painkiller;
it drives me insane not to be able to walk into a room or a corridor
"just because." Half Life 2's electronic barriers were better in that
respect, but certainly not the solution. God damnit, if you want to
trap me in a long corridor, at least don't pretend there are locked
rooms and find some more reasonable way to make it plausible.
- The voice acting and cinematics comments are spot-on. Prince of Persia: The Sands of Time
is a classic example of this; it could've been one of the best games of
2003 had it not been for astoundingly bad voice acting ("I saw my
father turn to sand!") and horrible camera controls.
- While I agree with the authors' frustration, I can't see any other
solution. Some of their comments are certinaly acceptable (particularly
the RPG triggers), but for example I consider ammo starvation much less
an issue than most of my fellow gamers: although I haven't played
Resident Evil for the GameCube, many single-player first person
shooters - Doom 3 and Serious Sam
for example - require (at least in their higher difficult settings)
careful expenditure of ammunition. I consider this part of the
challenge, not an artificial way to inflate difficulty. That I reserve
to just throwing 50% or 100% more monsters at you in the higher
difficulty setting, as is done in most games. I think it's a lot more
challenging to have to use the lesser weaponry where possible against
tougher monsters so you have enough ammo for the big guys. As for
instant-faliure levels, I have two words for you: Half, and Life.
- I completely disagree. There should be the option to unlock
everything, but starting with low-class weaponry is part of the FPS
tradition (as well as a direct cause-and-effect for gameplay), and
unlocking content (or upgrading your car) is a huge part of the fun for
certain types of games. Remedy's excellent Death Rally, or the astounding 2D shooter Tyrian, would be a great deal less fun if you could just start with the toughest ship.
- Oh, I don't know. I love crates.
- I'm increasingly worried about intellectual property issues, in
particular software and concept-based patents. I was not aware of the
effect patents have on gaming, so this is something of an eye-opener
for me. I'll be sure to keep updated on this subject.
- For that matter, stop with the multiplayer bullshit. I don't
particularly like multiplayer, and would definitely prefer to pay less
for most games and just not get the multiplayer capabilities.
- Again, I'm not sure I agree. As long as you have a DVD drive and
MPEG-decoding capabilities, since the console is stuck in your living
room connected to your TV anyway it might as well play DVDs. Or audio
CDs. But I'd rather the other, nonnatural features (PC-oriented
features) be left out of the initial product, and either added later or
just left to 3rd parties. It's obvious that Microsoft and Sony want
their respective platforms to be the centerpiece of the living room,
but I'm not interested in paying for it since I'm not going to be using
- I don't play any massively multiplayer games, so I'm not very familiar with the subject - but I don't like the sound of it.
- Unlike most people I don't have issues with jumping puzzles in first person shooters, providing the controls are adequate.
That is part of the problem, a lot of games did that really, very badly
(again Half Life comes to mind) but a lot of others did it just fine -
proof of that is that I do not recall jumping puzzles that did not
suck, and I've played a lot more FPSs than I can recall jumping
puzzles. (Did that make any sense?)
- Buggre that for a larke. (tm)
That said, I much prefer PC gaming to console gaming; I do not get
along well with the incresingly complicated controllers (still stuck in
the D-pad+A/B buttons era), I hate the low resolution and crappy
displays (good televisions are getting cheaper, but still prohibitively
expensive) and the whole set up doesn't work for me. However, I must
face the harsh reality: I spent the equaivalent of $1500 on my last
machine (sans monitor!), and after 1.5 years I can already feel the
hardware getting dated. Gaming PCs are ridiculously expensive and
short-lived. I'll probably spend the money for my next two PCs on a
next-gen platform and a really great HDTV-capable display and be done
Apparently the GAIM 1.3.0 installer contains a really odd, bizarre or
whatnot GTK+ runtime. Anyways I've installed the Glade 2.6.7 RC-1 GTK+
) and it works like a charm.
I've been slowly but steadily moving to open-source platforms over the
last few months. There are many reasons why and I won't bore you with
the details; suffice to say that most of the major open-source projects
are at worst almost as good as their commercial counterparts, free,
cool and, from a developer
perspective, there's always the option of tinkering.
Here's a selection of some of the more prominent open source programs I
- Mozilla Firefox - the quintessential open-source project, which is lately getting even more spotlight than Linux itself. It has all the
features you can hope for, is much faster than Internet Explorer, far
better in the usability department (tabbed browsing, better download
manager etc.) and is even compatible with about 90% bidi (Hebrew)
websites. I've been using this since Firebird 0.5 (thanks, Ilya!) and
it kicks mundo ass.
- OpenOffice.org - the Microsoft Office replacement that's actually better than Office itself (well, at least Impress and Writer are). A localized version in Hebrew can be found here.
- SpamBayes - open source bayesian filter, with Outlook plug-in. Fast and robust.
- FileZilla - great FTP client and server (on par with
CuteFTP and BulletProof). Windows-only, though.
- The Gimp - photo editor. Not perfect, but as close to Photoshop as it gets without paying mundo bucks, and it's actually pretty damned good.
- 7-Zip - excellent compression tool, with command line as well GUI options, a full library and support for most popular compression formats.
- VideoLan Player - impressive open-source player and codec library. Self-contained and works great.
- JetBrains Omea Reader Pro - excellent news aggregator with a huge number of features I don't generally use (among other things, it synchronizes with Outlook to let you access notes and contacts, it has a newsgroup reader, and more). It's fast, stable and simply good, and best of all - it's about to be released as open source software.
- Notepad++ - terrific editor with syntax highlighting. It simply works.
- ffdshow - a terrific DirectShow/VFW codec pack, including
XViD, DiVX and MPEG-4 video decompression filters. Great quality and
performance. Make sure to Google for the latest build.
- Development tools:
- Eclipse - an extremely
impressive, full-featured IDE which gives Visual Studio a run for
- The Regulator/Regulazy - Roy Osherove's as-yet irreplacable tools for developing regular expressions (particularly with .NET).
- WireShark (formerly Ethereal) - the de-facto packet capture and analysis utility. One of the best debugging tools known to man.
- Cygwin - Posix environment for Windows, with GNU tools and everything. I'm not much of a UNIX guy, but this has proved invaluable in more than one case.
- NUnit - the most popular unit testing framework for .NET. Make sure to check out TestDriven.net (unless you use ReSharper, in which case the built in runner should suffice).
- log4net - Logging framework for .NET. Absolute must-have.
- Good tools I sometimes use:
- Audacity - solid waveform editor
- VirtualDubMod - best-of-breed DirectShow-based processors. I use this to encode, transcode and edit AVI files.
- DOSBox - an open-source DOS virtual machine, emulating slower
machines as well as several audio cards. Great for running old games,
although not perfect.
My open source wishlist includes:
- A proper, open source Norton Commander clone. Currently the best
software in this category is, in my opinion, Total Commander, which
has two major deficiencies: it doesn't support unicode, and it's
commercial. Midnight Commander is Linux-only, text only and just
doesn't cut it.
This is where I'll keep links on a permanent basis. I reckon I'll
update this list from time to time, as my interests (and the structural
integrity of the internet) change.
- Useful stuff
- DodgeIt - Excellent replacement for Mailinator; free, no-setup e-mail box that you can put anywhere to avoid spam and e-mail bots.
- MobyGames - the most complete repository for computer game-related information on the planet
- AnandTech - one the oldest and most reliable sources for hardware reviews, tutorials and guides (and nowadays software and other stuff).
- Tom's Hardware
- another one of the oldest websites around (I've been reading it
steadily since 1998), and still an excellent source of in-depth
- Penny Arcade - the quintessential webcomic, a must for any gamer.
- bash.org - Collection of various quotes from e-mails and IM/IRC chats. Hysterical.
- VGames' webcomic - Hebrew gamer's webcomic that made me laugh my ass off.