Sometimes you know it’s time to move on. I’ve been working at Sears (née Delver) for just under four years, making this the longest stretch in my career. Even so, my tenure at Delver has seen several major upheavals, including a name change (we originally started off as Semingo), product strategy shifts (Delver started out as a people search engine, similar to what pipl.com are doing today), launching our product, failing to survive the market crash and shutting down, being bought outright by Sears and a drastic personal shift from R&D to operations. So yeah, a lot has happened in the last four years: I’ve worked alongside some amazingly smart people, helped build and take care of systems way more complex than any I had encountered before, and perhaps even learned to curb my temper a little bit. Delver/Sears is a great company to work for, but it’s time for me to move on. As of two weeks ago I’m a software architect working for newBrandAnalytics, a startup company that provides social business intelligence for various industries; I’ll skip the business spiel as you can go ahead and read about our solutions and existing customers. Suffice to say that we handle massive amounts of data from various sources (including social media such as Twitter and Facebook); scaling concerns aside, this also entails bleeding-edge text analysis and NLP, rapid response to growing (and changing) customer demand and other wonderful aspects of complex, scalable software systems built to support an actual business. Exciting times are ahead! Coincidentally, we’re hiring! Our careers page isn’t up yet, but we’re looking for top notch engineers, QA engineers and NLP/algorithm specialists for our Israeli R&D center. I’ll update this post with more concrete details later on, but will leave you with the following points to consider in the meantime: - nBA is a fresh, privately-funded company with a fast-growing customer base;
- We’re a core group of extremely smart, experienced people who love (and know how!) to get things done;
- Tackle challenges such as massive data volume, increasing scale and deceptively simple business requirements which translate to bleeding-edge software;
- The Israeli R&D center is the only in-house engineering center for nBA. Employees have unprecedented influence on the company, as well as direct communication with customers. There’s nothing like actual business feedback to motivate and ensure success!
If any of this resonates with you, go ahead and send your CV to jobs@newbrandanalytics.com, or contact me directly at tomer@tomergabel.com.
When a company is acquired by another, some sort of restructuring is inevitable. As Delver’s acquisition by Sears Holdings became reality, it was also obvious that significant changes were required to how we operate. The first and most pronounced of these changes was that our social (or socially-connected, if you’re picky) search engine, the first product of its kind – we have enough ego to kick ourselves hard now that Google’s version is out – was scrapped, and the entire team was put to work on a new product for Sears Holdings. This, of course, meant restructuring the R&D team. One of our tenants at Delver was that everything is open to interpretation, critique and improvement. As an R&D team we were always relentlessly self-improving; I believe my two years at Delver were perhaps the best I have ever experienced professionally. I’m happy to say that this approach still prevails under Sears Holdings, and we’ve taken the first few months under the new management for some serious introspection, trying to learn everything we can from the mistakes we made while still working under the Delver banner. I believe the organization has improved across the board with these sessions, resulting in significant improvements to everything from recruiting, HR and managerial processes to source control, configuration and release management. But as a developer I felt I was hitting a professional plateau. As the new product’s specs took shape I was initially meant to take charge of the search engine implementation, continuing my original position at Delver. After nearly two years of working on search it became obvious to me that it is a very broad and nontrivial domain, and that to do a good job I will have to truly specialize in search. While I knew I did not want to continue working on the search engine, I also knew that the other developer positions would not satisfy me. While the product was being specified I kept busy with tasks that were not directly related with the product itself: setting up an integration testing framework (not trivial with a system comprising both Java and .NET components, and which integrates a significant number of 3rd party products), defining various development processes like version and branch guidelines, and finally implementing a proper Java build system that still drives our builds today. The common ground here is that, for the most part, the greatest enjoyment was derived from doing stuff that’s “horizontal”, that crosses components and teams and sort of binds the entire development effort together. With this in mind I approached my bosses at Sears and, after prolonged discussions, we came up with the title of Application Engineer: An application engineer, in Sears parlance at any rate, bridges the gap between R&D and IT (or rather, the support, deployment and administrative teams). Essentially, where R&D (and QA) ends, the app engineer’s role begins: the app engineer is directly responsible for the smooth operation of the production system. This means that the app engineer must not only be fully versed in the system architecture and inner workings, but must also be an active participant in defining it. Wherever there is an overlap between R&D and IT is where you will find the app engineer: front-end server farms, logging and profiling requirements, log aggregation and reporting, system monitoring (which suddenly not only includes health, but applicative counters that must be correctly specified and monitored), deployment and troubleshooting processes etc. Having been assigned this role for the past few months I’ve reached the conclusion that an app engineer is a cross between IT-oriented system architect and system administrator, walking a fine line between a developer and a system adminstrator. I certainly hope I don’t fall off!
In the previous installment I have first experimented with rolling the tubes in my headphone amp, and first introduced an external DAC into one of my audio setups. Replacing the Electro Harmonix 6922EH tubes with a pair of matched JAN-Sylavnia 7308 tubes bought me a significant improvement in soundstage and resolution, and adding a Musical Fidelity V-DAC into the mix resulted in even better resolution at the expense of reduced imaging: “… the V-DAC features significantly improved accuracy and resolution, and more and more often I’ve been rewinding tracks just to make sure that, yes, I wasn’t imagining, I really have never heard this or that detail before… In fact, the only disadvantage is in a certain change in the soundstage, as though the stereo separation grew just a littler wider than I’d like. Don’t get me wrong, the soundstage is huge and imaging is terrific, but it sometimes seems to be that sounds tend to cluster a little closer to the extremes of the soundstage than they should.” When that upgrade was concluded I was left with an unfulfilled sense of curiosity. The first tube upgrade was a huge success, and the new DAC added the detail I was missing with the original setup, but I was not entirely happy with the difference in soundstage. Along with the 7308 tubes I bought a pair of Mullard E88CC; from what I’ve read on the tube I predicted that it would improve the soundstage, a theory which immediately I put to the test. Great success! The 7308 tubes were such a huge step up, I did not expect to be so well-rewarded the second time around. The soundstage not only “deflated” to more natural-sounding positioning, but it also deepened (i.e. became more three-dimensional). Instrument articulation has improved dramatically: buzzing of metallic strings can be heard distinctly on decent recordings, bass has deepened remarkably and the sense of air around instruments can be absolutely mind-boggling. Even the noise floor dropped a few decibels. The improvement was so pronounced I now have a renewed desire to test additional tube amps, such as the Little Dot Mk IV SE or DarkVoice 336 SE. I’ll certainly post my experiences if I manage to get my hands on one of these… Finally content with my primary setup (which I primarily use at work), I have turned my attention to the secondary setup at home. At that point the setup consisted of an onboard ALC889A codec, connected to an Aqua Mini-Head via a generic analog interconnect, this in turn connected to ‘03 Beyerdynamic DT880 cans. In my previous post I had failed to mention that I did test the ‘05 edition DT880s with the 7308 tubes and found the new edition to be a downgrade: slightly better midbass marred by a muddy soundstage, flat treble (without the sense of “air” I’ve begun to associate with tube-based amplification) and a generally degraded experience than with the older edition. At that point I had almost put my original setup up for sale in its entirety, but decided to hold on to it for a few more experiments before I let it go. I took the opportunity to test those cans with the upgraded Mullard tubes, but am sad to report that no new synergy is to be found in that direction, and throwing the V-DAC into the mix did not result in any improvement either. As it happens, an opportunity presented itself to buy an upgraded Zhaolu D2.5 DAC for a very good price, and after arranging to loan it for a few days I’ve had the chance to try out some interesting new combinations. The Zhaolu (apparently pronounced chow-loo) D2.5 is a modular DAC that, at a cost of $215, is widely considered as one of the finest and most customizable value-priced DACs on the market. There are a lot of aftermarket upgrades available for the device, and it’s offered with a headphone amplifier module for an extra $55. The device is based off of a CS4398 chip, and my particular unit comes with upgraded National LM4562 opamps. The unit is extremely large (24cm x 30cm x 5.5cm – about the same surface area as the G&W amp!) and surprisingly heavy. Build quality is fairly mediocre: the markings on the front tend to easily wear off and the volume control produces an audible distortion when adjusted. From a usability perspective the unit is decent but does have a couple of minor annoyances, specifically the need to select the optical channel every time I turn it on and an annoying blinking “mute” indicator when there is no active signal from the computer. The D2.5 has only S/PDIF and TOSLINK inputs, and I did not experiment with the V-DAC’s optical input to draw a comparison, so this is not a direct apples to apples comparison; that said, I connected the D2.5 to my desktop via TOSLINK, connected it via the preamp output to the G&W amp and started with the ‘03 edition Beyerdynamic DT880 headphones. The initial impression was severely disappointing: while the resolution was incredible, the sound had lost all warmth and the soundstage had lost all depth. Just to put things in perspective: this sounded significantly worse than with a straight analogue connection from my computer at work. I figured that since the integrated headphone amp in the D2.5 was designed along with the DAC the combination would probably work better; unfortunately, this resulted in an even flatter soundstage, and imaging suffered as well. At this point I had almost given up on the DAC, but decided to switch back to the G&W amp and try out the ‘05 edition DT880s. This resulted in a markedly improved sound in comparison with the V-DAC and analogue connection; the sound gained some warmth, the soundstage expanded significantly and imaging improved as well. This is still a far cry from the ‘03 edition DT880 and V-DAC combination, but I could see how the Zhaolu DAC would benefit the cans if it was paired with the right amp. While a definite improvement over the previous anemic combination, the results were still not satisfying. I briefly tried running the D2.5 and V-DAC through the Aqua amp but was not overly impressed; either the Mini-Head is not a good match for the DT880s (it was supposedly designed around the Sennheiser HD600) or it simply isn’t a very good amp. As an aside, in both cases the ‘03 edition sounded better to my ears than the ‘05. Having tried nearly every combination of equipment at my disposal I nearly gave up at this point, but for the sake of completeness decided to try out the D2.5 and its integrated headphone amp with the ‘05 DT880s. To my surprise, this combination is a winner: amazingly revealing, detailed sound combined with robust imaging and a wide (albeit not as deep as I’d like) soundstage. While not as musical as my primary system (G&W amp, Mullard tubes, V-DAC), the Zhaolu D2.5 provides better resolution and an experience that’s nearly as engaging as that combination for less than a fourth of the cost. Value for the money indeed! If you can find one of these units, I definitely suggest giving it a try; just make sure to test it first as it’s apparently quite finicky with regards to its partners. For my part, the Zhaolu D2.5 has permanently replaced the Aqua Mini-Head amp in my home setup; this, in turn, went to my brother who is quite pleased with it driving ‘03 DT880s via a Creative X-Fi sound card. Visit my Flickr account for more photos
Note: This is more or less a translation of two forum posts in an Israeli home theater website; if you can read Hebrew, you may be interested in the comments as well. First post, second post Lately I have been bit by the audio bug again, and have decided to experiment with my headphone setup. This is the setup I use at work and listen to for hours at a time (often 5 or more hours a day), and which consists of a pair of 2003 model Beyerdynamic DT880 cans I bought on a previous trip to China, hooked up to a G&W T-2.6F amp I bought on the same trip after having spent an hour listening to various equipment combinations. Unlike products from other, internationally recognized brands with which I am familiar (Creek, Musical Fidelity etc.) this product was completely out of my comfort zone: a Chinese-made amplifier, which like many others I normally associate with cheap components and subpar build quality. Additionally it is rather large and bulky, and to top it off, it is a hybrid design based on two Electro Harmonix 6922EH preamplifier tubes and a solid state power section. Up until that point I had heard solid state equipment exclusively, with the exception of two loudspeaker demonstrations in which the amplification included tube components and was significantly more expensive than I could even consider. Since I had not known what to expect I could not detect the subtleties of tube sound, and had chosen this headphone/amp combination strictly on being the best I had heard during that visit. This setup was, in turn, hooked via a generic interconnect to my work computer with onboard HD audio, through which I play mostly lossless rips from my own CDs via Exact Audio Copy. It had faithfully served me for over three years, at which point I decided to do some research and was first exposed to the vast world of tube-based amplification and tube rolling. After several days of forum lurking and reading well into the night I had placed my first ever tube order at thetubestore.com. With the help of the shop representative, Jon, and general recommendations around the web, I had selected a matched pair of JAN-Sylvania 7308 tubes and yet another matched pair of Mullard E88CC tubes and placed my order. I did not have to wait very long, as the UPS delivery arrived amazingly fast (a single weekend, not too shabby for an international delivery!), and decided to spend a few weeks with each pair to be able to form an honest, educated opinion. I begun my experiments with what is, according to general consensus, the weaker tube: the JAN-Sylvania 7308. What a shock! While I do not, for a moment, assert that similar or better sound cannot be found in solid state amplifiers, I certainly did not expect such a dramatic difference in sound quality. The soundstage, previously wide but shallow, simply exploded! It’s as though the sound instantly multiplied its volume tenfold or more; highs became wonderfully airy and distinct, and the resolution… let me put it this way: in every audio enthusiast’s life there are but few such moments of enlightenment, where you suddenly realize how much more is possible, and even attainable. The first time I’ve listened to the very same equipment with upgraded tubes provided me with one of those rare occasions, and from that point on I can never settle for less. At the same time I had a second such revelation, albeit by accident: because of the physical layout of my desktop at work I was forced to place the amp further away from the computer, which necessitated a longer interconnect cable. I did not have one at hand and until I was done for the day I was left with no alternative but to use the iPod’s standard analog output. The iPod is generally considered to have very poor analog performance, which is why I was thoroughly surprised when, having brought a longer (and higher quality) interconnect from home and hooked the computer up, I found that the iPod actually sounded better. I recall when it was almost impossible to find a decent quality audio card for your computer, and assumed that contemporary solutions were at least adequate; indeed, the computer sound output was cleaner (better SNR) but also had significantly diminished dynamic range and volume. This led me to the conclusion that an audio card upgrade was in order. A little research into the subject brought me to the the conclusion that what I’m interested in is not, in fact, a computer audio card; what I want is an external DAC, or more specifically a USB DAC. Getting a computer to output even half-decent analog audio is pretty much a futile quest, and while hooking it up via coaxial/optical S/PDIF would certainly work there are some significant disadvantages, namely: digital (lossy) volume control, and jitter. With S/PDIF, both clock and data signals are encoded together on a single data line, and the click has to be regenerated. This introduces subtle timing inaccuracies, generally known as jitter, which in have an undesirable impact on digital-to-analog conversion (a more scientific explanation can be found here). Just how significant an impact is a subject of much controversy, but at a USB DAC has the theoretical advantage of significantly reduced jitter on the protocol level, as well as removing the question of the onboard S/PDIF encoder’s clock accuracy from the equation. With the advice of fellow forum members I resolved to try one of the following DAC trio: Cambridge Audio DacMagic, Oritek OMZ DAC or Musical Fidelity V-DAC. Following a lead from a fellow forum member I eventually bought the V-DAC for a very good price from a head-fi.org forum member. The V-DAC is a 192KHz/24-bit upsampling DAC with optical, coaxial and USB inputs that has received high praise in the head-fi circles and is even available in Israel for a surprisingly reasonable price. I hooked the unit up with an unnamed but high quality silver interconnect, and after significant critical listening I can draw the following conclusions: compared with both iPod and onboard audio card (as well as an old Audigy 4 I had lying around) the V-DAC features significantly improved accuracy and resolution, and more and more often I’ve been rewinding tracks just to make sure that, yes, I wasn’t imagining, I really have never heard this or that detail before. This is exactly what I got into audio for in the first place! The bass is also much tighter, and in my opinion also extends further down than it ever did. In fact, the only disadvantage is in a certain change in the soundstage, as though the stereo separation grew just a littler wider than I’d like. Don’t get me wrong, the soundstage is huge and imaging is terrific, but it sometimes seems to be that sounds tend to cluster a little closer to the extremes of the soundstage than they should. All in all I’m extremely happy with the upgrade, and luckily I still have some new equipment left to play with: the Mullard E88CC tubes, patiently awaiting my pleasure. Still, now that there’s such a significant difference in fidelity between my work and home setup (which consists of an Aqua Mini-Head amp and Beyerdynamic DT880 2005 edition cans) I feel compelled to experiment with new equipment. Whatever shall I try next, a new DAC? Another amp? Different cans, perhaps? The choices are endless, and that’s the beauty of it. See you on the next upgrade. Update: Some more pictures can be found here.
As a huge movie buff I could always give quick opinion on a movie, a subject which tends to come up quite often in conversation. It occurred to me that, although since I’ve finalized my home theater setup I’ve been watching dozens if not hundreds of movies with my girlfriend, the sheer volume makes it impossible to review the lot of them in blog posts. Then the idea struck me that Twitter is the perfect platform for quick-and-dirty movie reviews: - Reviews have to be succinct; each review consists of up to 140 characters, a hard limit inherent in the platform. Subtract from those characters the movie length, final grade (more on that later) and (being as obsessive as I am about language) no skimping on spelling or punctuation marks either. Condensing my thoughts on a movie to such a limited medium means I have to focus on either one point with some elaboration, or at most two with no embellishment of any sort.
- It’s non-committal. I spend a minute or two thinking up a few angles on which I can go, then another 2-5 minutes refining the text until I’m satisfied. It’s much easier and much more pleasant to spend five minutes after a movie writing up a message on Twitter than to spend a couple hours each week summing up movies days after I’ve seen them; if I wanted to keep this in blog form I would have had to write up summaries in the same manner anyway, why not just publish them directly?
- Low overhead. Having a blog means I beat myself whenever I slack on posting, and I’m committed to keeping it up and running, indexed and technologically relevant (if only so I can move hosts freely and avoid spam). Twitter is a managed platform, means I don’t have to worry about storage, bandwidth, backup or crappy web hosts.
With the rationale out of the way, I give you movies à la mode: 140-character movie reviews! The grade scale I use is my own, and while I believe it to be consistent I make no guarantees. To give you some sort of reference point, I consider the original Matrix a genre-redefining action movie, and as such would give it an 8; Reloaded, on the other hand, not only pales compared to the first, it’s also horribly overblown and would rate a 2 (for the effects and nostalgia). There are a few reviews up already, go read them and please do comment!
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 OpenOffice.org (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.
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
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!
A couple of months ago I decided to give Twitter a try, and this ended up a permanent fixture in my online life. As it turns out it’s an excellent tool for posting small bits of information such as links, so I’ll be posting there much more often, but I’ll keep the in-depth posts to the blog. Either way you can see my Twitter page here (or follow via RSS).
Update (12-Jan-09): The latest Windows Live Essentials installer supports Windows Server 2008 (including x64), so no more hacks are necessary to get Messenger and/or Live Writer to work. Update (7-Jan-09): Check out the addendum on Hyper-V performance issues below. I’ve been using the 64-bit version of Windows Server 2008 as my development platform for the last few weeks, and have been quite happy with it. Following is a more or less verbatim transcript of the e-mail I sent out to the development guys at Delver, which may of be of some benefit to others: Memory Requirements Like it or not, this operating system does need more memory, but it also handles more memory (unlike 32-bit Windows which is practically limited to 3.3 [or so] GB). With 4GB on this machine I run the following applications constantly and it hardly ever swaps: - Google Chrome (with a buttload of tabs)
- Total Commander
- Process Explorer
- Eclipse
- Outlook
- mRemote
- MediaMonkey
- Notepad++
- Visual Studio 2005 + ReSharper 3.1.1
- Skype
- Live Messenger
- FolderShare
- KeePass
As an aside, this is also a list of software I currently use and recommend Application Compatibility Practically every application I’ve tried so far works (the exception being the file monitor in MediaMonkey, I’ve an open bug on this). I also make it a point to try x64 versions of software where available, and these are the important bits you should know: - Eclipse has a 64-bit version (which runs on 64-bit JREs). I tried it for a bit and it appears to work fine, but are there some problems with Subclipse (the integration plug-in for Subversion). Subclipse can work in one of two modes: using a Java-native Subversion client library, which is unfortunately very unstable (the IDE simply crashes after 5-10 operations), or a native-code thunking API called JavaHL. The Subclipse distribution only comes with 32-bit binaries, however, and I couldn’t find 64-bit JavaHL binaries (the SlikSVN x64 client works like a charm, but doesn’t come with a JavaHL implementation). For this reason I’d recommend the following:
- Install a 32-bit JRE on your machine (the latest JRE is recommended). Either set your JRE_HOME accordingly or (preferably) use the -vm flag for the Eclipse launcher.
- Install a 64-bit JDK for development purposes. Configure Eclipse (via Windows->Preferences->Java->Installed JREs) to use the 64-bit JDK as the default runtime. This lets you develop on a 64-bit VM.
- If you use YourKit Java Profiler, make sure to install the integration plug-in in 64-bit mode (it lets you decide) if you use a 64-bit VM for development.
- Checkpoint VPN-1 SecuRemote (the Checkpoint VPN client) has no x64 version, which means it simply cannot be installed. I resorted to a Windows XP 32-bit virtual machine running on Hyper-V for when I need VPN access. Hurray for Checkpoint.
- Visual Studio 2005: Just install it as you normally would, along with ReSharper. You don’t need to do anything, and debug sessions for .NET code start as 64-bit processes. One caveat: it appears that the 64-bit debugger does not support edit-and-continue; if this is really an issue for you, here are instructions on running the debugee as a 32-bit image.
The various Microsoft Live! installers (Messenger, Writer, etc.) don’t support Windows Server 2008, even though the products themselves do. A quick Google search will get you instructions on how to install them anyway (use the individual MSIs directly). (12-Jan-09) No longer relevant, just download the latest installer. - The following applications have native x64 versions that “just work”:
- Eclipse (other than the problem described above). The version is not easy to find, you have to go through the Other Downloads page any find the x86_64 build.
- MySQL. Everything works as you’d expect.
- Gimp has an experimental x64 version which, again, isn't that easy to find: you have to go via the SourceForge project page and look in the stable releases. So far this version seems quite fast and robust.
Things To Do You’ll probably want to perform these steps to get the environment closer to what you’re used to: - Disable the annoying shutdown event tracker.
- Disable Internet Explorer enhanced security mode.
- Start->right click on Computer->Properties->Advanced System Settings->Performance Settings...->Advanced and select Programs instead of Background Services (changes the paging behavior and makes everything much more responsive).
- To get a more Vista-like look:
- Install the Desktop Experience feature from the Server Manager
- Change the “Themes” service startup mode from Disabled to Automatic
- Right-click your desktop->Personalize->Theme and change to Windows Vista
- Right-click your desktop->Personalize->Window Color and Appearance and change to Windows Aero
- If you want audio:
- Change the Windows Audio service’s startup mode from Disabled to Automatic.
- If you get audio stuttering, change the registry key HKLM\Software\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile\SystemResponsiveness from 100 (0x64) to 20 (0x14)
If you want to use virtualization (Hyper-V), make sure you update to the latest BIOS (I had an older BIOS installed that didn’t have an updated processor microcode) and enable the feature in the BIOS menu (usually disabled by default). Benefits - It’s fast (feels way snappier than Vista)
- 64-bit OS (closer to our actual production environment)
- Virtualization support (Hyper-V)
Update: Hyper-V and Multimedia Performance Apparently installing the Hyper-V role can have some repercussions when it comes to multimedia performance in Windows. Specifically, when running under the hypervisor you may experience very high CPU spikes (mostly kernel time) when starting up any DirectShow-based application (e.g. Windows Media Player or the considerably better Media Player Classic Home-cinema) or a remote desktop session. These will effect make your machine freeze for 5-10 seconds. According to the rather insightful comments here, this quite likely has to do with NVidia drivers though I have not yet verified this. I don't have consistent need for Hyper-V so I simply disabled it, which resolved the problem. If you require virtualization and still want proper multimedia support you may have to resort to ATi cards.
(Cross-posted on Stack Overflow) Update (17-Sep-08): Corrected the answer to an integer arithmetic question ("rotate to the right" was obviously incorrect - I was careless when I wrote this. Thanks, Kuperstein!) and some formatting adjustments. Preparation I never interview the applicant on the first phone call. This doesn't give me the time to go over the candidate's CV and consider if there are points I'd like to bring up on the interview, such as specific work experience or glaringly missing skills. Additionally, setting up a specific time for the phone interview allows the candidate time to mentally prepare, drink a coffee and settle down in a quiet spot somewhere. Just puts everyone at their ease. When first calling the candidate I always take the time to introduce the company I work for, a synopsis of what we do and a general description of how the company operates. I then proceed to inquire if the applicant sees this as a potentially interesting place to work in and whether or not they have any questions; you'd be surprised at the time this can save, for example it's not always obvious whether or not the applicant is interested in working for a start-up company, or alternatively may not find the problem domain engaging. Getting to Know The Candidate To start the interview off, I usually skim over the candidate's CV and select two or three interesting projects that the candidate was involved in. I ask the candidates to describe their involvement (sometimes, but not often, going into a bit of detail if the domain is familiar to me), their specific contribution to the project, whether or not they had fun and why. This usually gives me a sense of what the candidates are looking for; are they heavily into design? Are they enthusiastic about a specific technology, and if so, do they have a sound reason for it? Were they frustrated by administrative issues, did they try to improve their working environment? Technical Questions Once those formalities and niceties are out of the way, I turn to my ever-growing collection of interview questions and select a small subset to present to the candidate. For example, a typical interview may include the following questions: Integer Arithmetic Does the candidate have a decent grasp of bits and bytes? I consider this a must-have; a candidate that fails this part has no chance in hell of tackling even the most trivial native code. - "Take an integer. How do you turn the 7th least significant bit off?" This question alone removes about half of the applicants from the equation. Some people tell you "you need to apply bitwise AND, but I can't remember the number you need to AND with" -- this isn't what you're looking for. A good answer would be something like "x &= ~(1 << 6)".
- "How would you quickly divide an integer by eight (8)?" A good answer is, you shift right by three. A better answer would be "is the integer signed or unsigned?", with a bonus for Java developers who know the difference between >> and >>>.
Pointers and Pointer Arithmetic This really depends on what your company does. Most developers today don't need to know in practice the particulars of pointers and pointer arithmetic optimizations, but if you're developing a highly scalable system and/or one with serious performance considerations, this is a very good measure of how likely the candidate will be able to tackle such challenges. - "How big is a pointer?" The only correct answer is, "depends on the architecture". 32-bit operating systems will have 32-bit pointers, 64-bit systems will have 64-bit pointers. Anything that doesn't fall into these two categories is not relevant for my purposes, and likely yours as well. If the candidate fails this question I usually mark this section as "failed" and move on.
Floating Point Numbers - "What is NaN?" A programmer who can't answer this question has never really worked with floating point numbers.
- "How are floating point numbers represented in a typical modern architecture?" Failing this question is not a deal-breaker, but answering it correctly will score the candidate a lot of points. "sign, exponent, mantissa/fraction/significand" is a sufficient answer.
Essential Data Structures and Algorithms This is the bread-and-butter of programming. A candidate should exhibit robust familiarity with commonplace data structures (hashtables, linked lists, trees etc.) and algorithms (sorting, graph traversal). - "Describe how quicksort works. Elaborate on its performance characteristics." Any professional developer should be able to explain quicksort in a few minutes, know its average- and worst-case complexity, and recognize pathological cases (typical school-level quicksort implementations exhibit horrible performance on pre-sorted data).
- "How are hashtables commonly implemented?" A candidate should be able to describe the concept of a hashing function (uniform distribution) and how it relates to the internal data structure (normally an array of buckets).
- "What backing data structure would you choose for a simple text editor?" The classic answer is arope, but it's unlikely that a candidate will be familiar with this data structure. A more likely response would be a "linked-list of strings", in which case you should ask about the complexity of various editing operations (deleting a line, inserting a line, deleting a character etc.) This question typically takes slightly longer to answer but I've found that it gives me a good measure of the candidate's intuition in choosing/analyzing data representations.
Threading and Sychronization This is fast becoming the most important subject with which to distinguish the truly brilliant candidates from the merely competent; the ubiquity of multithreaded code nowadays also means that these questions can be used to quickly weed out the unworthy candidates. - "Describe one common way of synchronizing access to a shared resource." This is just a starter question, and if the candidate takes more than a few seconds to come up with an answer (mutex, semaphore, monitor or "synchronized" for Java developers, "lock" for C# developers) it's usually a good sign that they don't have any reasonable experience with multithreaded development.
- "You have a shared cache with a very good hit ratio. How would you synchronize access to the cache with as little performance overhead as possible?" The answer is trivially a read-write lock which can accomodate multiple readers and a single, exclusive writer. Where appropriate, ask how the candidate would implement such a lock.
- "Describe a nontrivial problem that you've had with threaded code." Responses usually fall into one of three categories: either (1) a reasonably experienced multithreaded developer would never make the same mistakes, in which case the candidate obviously isn't one; (2) a classic race-condition/deadlock/etc. scenario, which merely tells you that the candidate has some experience with multithreaded code and appears capable of tackling such challenges; or (3) rarely, a candidate may have a genuinely interesting "war story," in which case you'll probably want to hire them right away.
Peripheral Technologies Approach this section with caution. A canditate that's familiar with a great deal of today's hot technologies may prove completely incompetent, whereas it's quite possible to find brilliant programmers that have never touched COM in their lives. I still like to get a sense of how "in touch" the developer is with contemporary technologies; familiarity with tools and technologies can definitely be a tie-breaker between two promising candidates. - "Are you familiar with COM? Describe an interface which any COM object must implement and its methods." Anyone who's even a bit familiar with Windows software development should be able to answer this question fully. For those unfamiliar with COM, describe it in a few words and ask the canditate to guess what the required methods of IUnknown are.
- "What is a well-formed XML file? Give two examples of errors in an XML file which would render it non-well-formed." XML is prevalent in almost every software development domain. A candidate which cannot answer these questions (and doesn't have a very good excuse) will not go past this interview.
- "What's XPath? Explain what a predicate is and how it's used." This is not most-have. I'd expect serious developers to at least have an idea of what XPath is. The second question is there to differentiate those who profess to know XPath from those who've actually done work with XPath and/or XSLT.
- "If you had to verify the input of an e-mail address field, how would you go about it?" There are only two valid answers to this question: "I would use a regular expression," or "I'd like to use a regular expression, but I know that fully matching e-mails according to the RFC is insanely complex, which is why I'd get a proven library to do it for me." If the canditate is being a smart-ass you can always ask them about the performance characteristics of commonplace regex engines (which have pathological cases).
- I also like to just toss buzzwords (Ruby, Boo, JSON, Struts, J2EE, WCF) around and examine the candidate's responses. It may also provide an interesting subject to ask about in a personal interview later on.
Concluding the Interview The previous section usually takes between 10 and 15 minutes. At this point I normally ask the candidate if there are any questions they'd like answered, or anything I should know before we conclude the interview. Once that'd done, I thank them for their time and tell them (even if they've failed miserably) that I will call them back in a day or two with an answer. Hope this helps, comments are welcome.
After a long hiatus I've found the time to update PicasaWebDownloader. If you're using the tool, there's a bunch of compelling reasons why you'd probably want to update. As always, code is included and feedback is welcome.
Apparently Vorbis (.ogg) files are not all that commonplace, and some popular web servers (at least IIS7) aren't configured to handle them by default. Under the assumption that it's a case of missing MIME type I send a support request to GoDaddy (my web host of choice), who were pleasantly responsive and even helpful. IIS 7.x supports configuration of mime-types on the application or virtual directory level by including the following lines in a Web.config file at the root of said directory: <system.webServer>
<staticContent>
<mimeMap fileExtension=".ogg" mimeType="audio/ogg" />
</staticContent>
</system.webServer>
After making the change, all .ogg file links within this site are now accessible (this particularly pertains to the Defender of the Crown links).
In addition to the wide press coverage on US-oriented technology sites we've seen coverage from two major Israeli news providers (Hebrew only, for now): Calcalist and TheMarker. Now comes the fun part; Delver is still borderline-alpha. We've been working hard testing and tweaking it, and getting a system of this complexity working in good order on a ridiculously short schedule feels astounding. I sincerely believe the Delver premise is a solid one, and we're giving you a mere inkling of what's in store for the concept; now all we have to do is work harder, growing along with the product and slowly but surely realizing its full potential. The brilliant part? Beyond the dreams of rich and fame, this product already is useful; with relentless improvements it may yet become as indispensable a tool to Internet denizens as Google, Wikipedia and Facebook are today.
An alpha version of our search engine is now open for all users! We've been working towards this day for the past year, building a complete and functional search engine from scratch on a completely original premise. I'm both amazed and proud of the work done by the various teams, and I'm still can't believe we've managed to pull this off in so little time. Launching the search engine publicly seems like a great way to celebrate the year I've been working for Delver (as of July 1st). Mind you, the service is still new and we're hammering away at the kinks, but so far we've had overwhelmingly positive press coverage and the various comments are sincerely flattering. Here's to another amazing year! As an aside, we're got openings on my team (search back-end) for extremely talented software developers who are interested in building performance-driven, robust back-end software in a variety of technologies. Interested? Contact me for details at tomer@delver.com!
After figuring out the problem with the old dasBlog permalinks I had to figure out a way to convert all existing links in my blog to the new format. Lately whenever I need a script I try and take the opportunity to learn a bit of Python, so it took an hour or two to write the conversion script. Here it is; if you want to use this for your own copy of dasBlog, change the "domain" global variable to wherever your blog is located and run this from your ~/Content directory (you can also download the script here): #!/usr/local/bin/python
#
# convert_permalinks.py
# Quick and dirty permalink converter for dasBlog content files
#
# Tomer Gabel, 22 June 2008
# http://www.tomergabel.com
#
# This code is placed in the public domain (see http://creativecommons.org/licenses/publicdomain/)
from __future__ import with_statement
import os
import glob
import re
import urllib
# Static constants
domain = 'tomergabel.com'
href_lookup = re.compile( 'href="(http:\/\/(www\.)?' + re.escape( domain ) + '/[^"]*\+[^"]*?)"' )
# Globals
conversion_map = {}
# Takes a URL and removes all offensive characters. Tests the new URL for validity (anything other than a 404 error is considered valid).
# Returns a tuple with the converted URL and a boolean flag indicating whether the converted URL is valid or not.
def convert( url ):
new_url = url.replace( "+", "" )
# Check URL validity
valid = True
try:
resp = urllib.urlopen( new_url )
resp.close()
except:
valid = False
return [ new_url, valid ]
# Processes the source file, converts all URLs therein and writes it to the target file.
def process( source_file, target_file ):
with open( source_file, "r" ) as input:
source_text = input.read()
conv_text = source_text
match_found = False
for matcher in href_lookup.finditer( source_text ):
if ( matcher != None ):
match_found = True
original_url = matcher.group( 1 )
print "\tConverting permalink " + original_url
if not conversion_map.has_key( original_url ):
conversion_map[ original_url ] = convert( original_url )
conversion = conversion_map[ original_url ]
if conversion[ 1 ]:
print "\tConversion successful, new URL: " + conversion[ 0 ]
conv_text = conv_text.replace( original_url, conversion[ 0 ] )
else:
print "\tConversion failed!"
# Write out the target file
if match_found:
with open( target_file, "w" ) as output:
output.write( conv_text )
# Entry point
for file_name in glob.iglob( "*.xml" ):
print "Processing " + file_name
process( file_name, file_name + ".conv" )
Update (22 June 2008): I've posted a Python script for converting the invalid permalinks to their "proper" form. After moving to GoDaddy I found to my chagrin that none of the site's article links (a.k.a permalinks) seem to work. There are any number of reasons why this is a bad thing, the two primary reasons being that Google cannot crawl the actual articles and that historical, incoming links no longer work. As they say, crap on a stick. I originally looked into the URL rewriting rules and HTTP handler configuration in web.config, thinking that perhaps some of the handlers need to be manually registered with IIS for some reason; eventually I installed the blog locally, migrated to IIS pipeline mode (which might be cool but has no tangible benefit for me) but the problems persisted. Until I tried accessing a permalink URL locally, that is. Then I discovered that plus signs in URLs (dasBlog's way of avoiding encoding spaces to %20) are considered "double-encoded" characters, and are automatically rejected by IIS 7.0 by default because under some circumstances they pose a security threat. There's a knowledge-base article detailing how to resolve this on a server or per-application level, but either solution requires server reconfiguration. Working under the assumption that this entails special requests from each and every potential future web host, and that having plus signs in my URLs is not the "right thing to do" anyway, I just opted to disable them and try to rework the existing links as best I can. I suppose blogs with considerably higher traffic cannot afford that luxury, but then blogs with considerably higher traffic usually work with much more specialized hosting providers and wouldn't have to worry about server reconfiguration in the first place... Anyway, hope this helps someone.
Sorry for the downtime and the lack of e-mail response over the past couple of months; I've had a ridiculous lot of problems with my previous web host (UCVHOST), among them: - They switched servers on me with no notification or announcement;
- This caused a reset of both my mail forwarding settings (causing numerous mailbox outtages for several days each), my ASP.NET settings (which caused dasBlog to stop functioning) and the directory security settings (which disallowed comments, trackbacks or even blog posts);
- They blamed me for the e-mail problems because supposedly I've changed the MX records for my domain to point to a different provider. This is ludicrous because the domain NS was under their control;
- And the final nail in the coffin, they decided on a new policy that disallows forward e-mail to a GMail account (which I use as my primary mail provider).
In other words, what the hell? My recommendation is strictly to stay away from UCVHost. I was looking for a new host for quite a while, and since I was in a pinch with no time for real research I decided to put my faith in my web registrar GoDaddy. To make a short story shorter, the setup was quick and painless and I got everything working within hours. GoDaddy's web-based control panel is exhaustive and usable, and everything "just worked" from the first instant -- which is the way I like it, really. So now I'm with a new host and can peacefully blog again.
Comments are working again. I no longer have the time to muck about with applications (blogging or otherwise), and so I'm going to move this blog into a hosted blog service. If you can recommend one that doesn't suck (and preferably supports code highlighting, user extensions etc.) I'd be delighted to hear
I take pride in being one of the few people I know who actually buy their media: I have a sizable collection of CDs, DVDs, computer games and software that I've bought over the years, and I always feel good about having paid the people responsible for these efforts. Until recently, that is. It is commonly said that one of the most obvious traits of Israelis is that they hate to be screwed, and this is as true for me as it is for everyone else. It seems the media companies have taken upon themselves to screw me in every conceivable way, and paying for media is fast becoming an exercise in frustration for me. A most recent example of this is Valve's not-so-new-and-shiny content delivery network which goes by the name of Steam. I don't even know where to begin recounting what's wrong with this thing: - Content delivery speeds are abysmal. I recently downloaded Half Life 2 Episode Two and got 200K/sec maximum transfer rate (more common rates hovering around 50K/sec) on a dedicated line with 5Mb downstream. I consistently get 300K+ rates to even the most busy content delivery servers (Akamai, Microsoft etc.) and it's not like I can use a download manager to better tune the download to my connection.
- The download manager is shit. Even ignoring the fact that the only controls it exposes are "pause" and "resume" doesn't help the fact that the error detection code is buggy as all hell: the first time I tried downloading the game it got stuck on 99% without any type of diagnostic or error message, and wouldn't resume. Reading piles of angry forum threads led me to the conclusion that the downloaded content files are simply corrupt; deleting and re-downloading the game solved the problem.
- Terminology is all screwed up: telling the game manager not to automatically download updates for a certain game will pause any pending download for that game, including the game content itself.
- Although there is no apparent reason for this, playing a game pauses the downloads for all other games. That, at least, has been my observation (Episode Two was downloading when I started on Episode One, and hasn't progressed a single per cent when I quit the game).
- The application itself is completely opaque. At no point does it give any indication of what it's doing; you can start the client, nothing happens for two minutes until it finally shows you an "updating Steam client" window. There are no visible clues when it's attempting to access a server (e.g. when clicking on Show News) or when a downloaded upgrade is being installed.
- I don't want to connect to a server to play a locally installed, legally bought game. That's just unforgivable, even if it didn't mean I sometimes have to wait for several minutes before the server actually logs me in instead of timing out.
- It might shock you, but I still play old games. Sometimes very old games (think Master of Magic). Will Half Life 2 be playable in five- or ten-year's time when the Steam servers have long been cold? I doubt it.
I know Steam probably works well for a lot of people, but for me it's a god-damned affront: I'm a paying customer, there's no reason why I should have so little control over a game that takes up gigabytes on my hard drive. To add insult to injury, the pirated versions often work better: the pirated version of Half Life 2 itself had considerably lower loading times, didn't suffer from the audio stuttering issues that plagued the original, and didn't waste hours of your CPU time on decrypting the game content once it was finally downloaded. If Valve wants to keep my business, here's what they should do: - Switch to an open distribution model (HTTP or, preferably, BitTorrent) so I can use my own software to download their games if I so wish;
- Get rid of the dependency on Steam for their games. When I click on the HL2E2 icon I want the game to come up, and I don't give a rat's ass about Steam;
- Move to an asynchronous, transparent update mechanism for their games, preferably one that allows me to download game updates and install them on my own.
With the original versions becoming increasingly irritating and pirated versions becoming better than the originals (not to mention less costly), does paying for media still make sense? Remember, that's just one example, I could give a great many more.
Bits and pieces: - Apparently everything is closed on Christmas day, which I suppose is obvious to you unless you live in a predominantly Jewish or Islamic country in which Christmas isn't really celebrated.
- Spamalot is brilliant.
- Manchester is a really cool city with terrific pubs and shopping districts.
- The dominant ethnic group in London is not, in fact, cockney brits, but rather Indians (i.e. immigrants from India).
- I'll post some pictures as soon as I upload them to Flickr.
Bottom line: As promised. Would buy again.
I'm flying to England tomorrow for a week's vacation, which will hopefully give me a bunch of ideas what to write about (it's quite difficult for me not to focus on my current area of work, which I doubt would be of much interest to readers...) If you happen to be in London or Manchester some time within the next week, get in touch and maybe we'll get together for a beer
Well the title is actually a semi-private joke, but the point of the post is to draw attention to long-time friend, coworker and Mentor cofounder Shlomo Priymak's new blog. Shlomo is our sharp-but-misanthropic DBA, precisely the kind of person you'd want to pay attention to for hardcore MySQL (and other) problems and solutions. Speaking of Semingo, we're gearing up to a relatively close alpha launch and have a new corporate website. Now would still be a good time to hop on the bandwagon and join a fast-growing company made up entirely of crazy-ass people out to do the implausible. If this sounds right to you, get in touch! (keywords: web 2.0 startup search .net java developers qa algorithms nlp and others)
With the web host giving me trouble, just to add insult to injury the comment captcha generator stopped working. I don't know how long it's been this way and I sincerely hope it's a new problem; at any rate I disabled captchas and added Akismet spam filtering in the hopes that it'll keep everyone comfortable and the blog clear of spam... I'm getting a little tired of all these issues with dasBlog (I still haven't been successful in configuring it on the new webhost) and am seriously considering replacing it; I'm basically really happy with the application, but configuration and installation issues are taking a little too much of my time. If anyone has an easy-to-use platform in mind, preferably one with a straightforward migration path, I'd appreciate the suggestion.
After losing several days' worth of e-mails (twice) because of issues with my web host provider, I've decided to switch to a different host. That was a few weeks ago; since then I've created hosting accounts with no less than 7 different hosting providers before I settled on a new one. Since then I've been trying to get DasBlog 2.0 to run properly on the new host, so far with little or no success (if anyone can tell me what would case an ASP.NET parser error with a Could not load type 'newtelligence.DasBlog.Web.Global' error message, I'll be forever in your debt ). The point here is that I've refrained from posting new content before I got this all sorted out, but since the process appears to take considerably more time than I thought I'll probably just go ahead and post everything in the coming days. The first meaningful post in a while is coming, stay tuned
I didn't want to post this before all formalities were complete, and now that they are I can finally announce my new workplace: a shiny new Israeli startup called Semingo. I can't currently say much about what it is we're doing, but it's a huge challenge and it's quite a change of pace from my previous job. It's also a nice plus working alongside fellow bloggers Oren Ellenbogen and Pasha Bitz, and trying out New and Improved™ methodologies such as Scrum. As an aside, here's a couple of videos of the last project I worked on running on the eMobile EM-ONE device (the second video appears to be a leaked beta version. Curious!) If you can read Japanese, there's more about it here. There's absolutely no way to demonstrate this without one of these devices, so while I regret the poor video quality, it's definitely better than nothing... Update: Now that we've enjoyed a bit of spotlight in Israeli publication The Marker (Hebrew only, sorry) I'll be able to progressively discuss more about what we do at Semingo. Heads up!
And they're getting better at it: I mean, what the hell? That looks like a goddamned phi (φ) in italics! I couldn't even figure it out, it took a coworker to figure out that it's supposed to be "cp"...
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.
Long time no update. Reason? A vacation in Europe - mostly centered around the Netherlands (which I like very much). In the meantime I'll just post some random musings: - Radiohead rock. I have this thing where, when I hear music that I immediately dislike or "don't get," I feel obliged to give it another go every year or so. It took my years to learn to like Pink Floyd, and even more time to learn to like Radiohead, but after a serious listening session I have to concede that my friend (who we shall term "the rhesus") was right to call OK Computer "one of the 20th century's sublime records."
- At Outline 2007 (on which I will expand in a seperate post) I got acquainted with a Dutch tracker who styles himself Cosmiq. Take a listen to his second album, which I actually really liked (particularly track 3, "A Shine Too Much").
- You'll notice that I added a button for the FSF's latest campaign, Play OGG, under "advocacy" on the right. I'll take OGG over MP3 any day (on account of better sound quality for size, and no licensing fees for anyone); I don't expect the campaign to be wildly successful, but you never know. Maybe I'll actually be able to enjoy my next iPod or car audio set on my own terms.
- Had a bit of time to spare, so I watched The Karate Kid again. The movie certainly looks different after 10 or so years -- it actually looks better (if you discount the obligatory '80s movie influences). Pat Morita is extremely funny, and I've seen much worse actors than Ralph Macchio (who looks much younger than his 23 years at the time). It also happens to be a really quotable movie, mock Eastern wisdom notwithstanding: "to make honey, young bee need young flower, not old prune."
Next on the agenda: Spiderman 3.
All I can say is: YES! Breakpoint 2007 was amazing. I went with Mickey (my brother) and we had an absolute blast! On the first day of the event we happened to spot an open bag one of the tables that had a newly-bought cellphone package sticking out of it, and were astonished to see that it had a sticker in Hebrew on it. We left a note saying "contact us!" and the anonymous Israeli guy turned out to be no other than Bacter! Left to right: Mickey, Itzik (a.k.a Bacter) and myself The entire 3-day event was an absolute blast. I got to hang out with really great guys like Havoc (one of the Outline organizers), who was cool enough to give Mickey and me a ride to the Netherlands after the party; Jeenio who also hosted the party prize-giving ceremony; Andy Voss (a.k.a Phoenix/Hornet and MindCandy fame) and a whole bunch of others. I also went to a couple of intereting seminars (one on new optimization strategies for realtime raytracing and one on moving from demos to the gaming industry, both of which you can find here), spoke to quite a few demoscene legens (including Chaos and KB of Farbrausch) and had a really awesome time. People dancing to a live cover of Bubble Bobble? You bet! Press Play on Tape gave a really good concert in the main hall, and you have to see it to believe it - people were literally dancing to live covers of C64 classics (Bubble Bobble and Commando, to name but a few). They also re-did their classic console-controlled Cannon Fodder, which was even cooler in real life... One of the Scene.org Awards Amiga demo nominees on the big screen For the first time I also got to watch the annual Scene.org Awards ceremony play out, and it was really impressive - the level of crowd involvement was utterly fantastic, and the whole hour-long event was amazingly well-received. Some of the compos were really quite funny - a "speech coding" compo was held, in which someone had a piece of original code and had to transliterate it using the built-in Windows Vista voice recognition. That feature, apparently, sucks eggs, but the wide range of mistakes it made gave the audience a very good laugh for nearly an hour. The video compo had a wicked-cool entry by Jakob Bienenhalm called LOL, Internet - see it, spread it, it got a standing goddamn ovation! fr-041: debris by farbrausch, the winner of the Breakpoint 2007 demo compo By far the highlight of the party was the PC demo-compo. In this somewhat daunting, several-hour event, no less than 23 demos were shown, and there were some really astounding entries: Andromeda (the oldskool Amiga group) made a huge comeback with Noumenon (2nd place), which was not only cool fanservice but also a really impressive demo; Synesthetics won a very well-deserved 3rd place with the excellent STS-01: Lucy in the Sky with Deities; and Traction and Brainstorm collaborated on a very impressive demo called Fairytale. Of the lesser-appreciated entries I particularly favored Kikumoto by Vovoid. Farbrausch really rocked the house with fr-041: debris though - this demo had at least three standing ovations while it was still playing, and as much as I loved the other demos... you just have to see this. As a regular demo it's impressive. On the big screen it's bigger than life. And when you take into account that it's only 177KB... it easily becomes the new Second Reality. Only one other time in my life have I felt this exhilirated to be a part of an audience. Whew. There are more pictures and anecdotes I may share on occasion, but for now I'm spent
Also had some personal issues to take care of, and my family are all out of the country, which means I have a dog to take care of, which means less free time. All of this results in a lower posting frequency, which I intend to remedy in the coming weeks. In the pipeline (in case you're wondering, this is also a placeholder so I know what's left): - More posts about .NET Compact Framework (memory and string handling, nonmodal dialog boxes, bizarre method overloads in the BCL, issues with CAB generation)
- Issues with Windows Media Player Mobile
- Some articles I want to link to and discuss
- A couple additional articles on using wikis in the workplace (with additional insight on real-world scalability and usability)
I use Trillian for my IM needs, and a few days ago ICQ abruptly stopped working with an "invalid password" error. Attempting to log in using Icq2Go resulted in the same error; logging in on ICQ's site also indicated that the password is wrong. Oddly enough, the security question remained the same but the system would accept none of my answers; furthermore it wouldn't accept any of my e-mails (current or previous) for resetting my password. I searched the help system. ICQ's answer? Please note: If you are unable to get a new password using the password assistance system, then you will have to register a new ICQ number. So basically, my ICQ number since 1999 or so is useless. I'll update my contact information and try to get in touch with my older ICQ contacts, but if you're looking to contact me please don't use ICQ anymore (I'm not going to register a new number, not much of a point with everyone having an MSN account anyway). I'll be changing passwords on all my accounts in the meantime.
This is an absolute must-read for anyone who gives even a bit of a damn about their rights as consumers. (via Aynde) My brother thinks it's basically FUD-based propaganda, but I suppose if it's a way to make people listen it works for me (when fighting fair just isn't enough...) Update (02-Jan-2007): Read this rebuttal. It's extremely cynical, but also makes several valid points. Update (03-Jan-2007): For a more cynical and consumer-oriented view, check out this scathing editorial from The Inquirer. It's amazing how much it echoes my thoughts - as a consumer - on the subject. I wrote a few sentences about the subject before I realized it deserved a proper post, which I'll handle later this week.
... from Alex Feinman. Don't ask me why. In other news, the .NET Compact Framework doesn't decode alpha channels even in bitmaps that has them (well, it might decode the alpha channel, but it doesn't survive a Bitmap.LockBits call - maybe because there's no ImageFormat with alpha...) Still working around that.
Amazon used to be all about simplicity and usability - at least that's what I remember from my last order there, maybe 4 years ago. Now it seems my account is long-since deleted, and I figured I'll just go ahead and create a new one. To make a long story short, there is absolutely no obvious way of knowing whether or not you're logged on, whether or not your account is active, or anything of the sort. I clicked on "Your Account," got a million different account management options and not even one "You're not logged in, click here to register" or somesuch option. That, in my book, is very stupid.
Update: Seems to work fine now, please let me know by e-mail if there are any problems (tomer at tomergabel dot com).
Apparently there is some sort of problem with the comment system, and it breaks in at least one case. I'm working on the problem, in the meantime feel free to use any of the other methods of contacting me if you need to.
As I mentioned before, I've had well over 300 trackback/pingback spam notifications from dasBlog. Since this was well beyond what I was willing to mess with by hand, I whipped up a quick Outlook macro to do the work for me: Sub DeleteTrackback()
Dim oSel As Outlook.Selection
Dim oItem As Outlook.MailItem
Dim oShell
Set oShell = CreateObject("Shell.Application")
Set oSel = Application.ActiveExplorer.Selection
For x = 1 To oSel.Count
Set oItem = oSel.Item(x)
If (Left(oItem.Subject, 19) = "Weblog trackback by") Or _
(Left(oItem.Subject, 18) = "Weblog pingback by") Then
Index = InStr(1, oItem.Body, "Delete Trackback:")
If (Index <> 0) Then
URL = Mid(oItem.Body, Index + 18)
URL = Left(URL, Len(URL) - 1)
oShell.ShellExecute URL, "", "", "open", 1
End If
End If
Next
End Sub
To use this macro, create a new macro and paste the source code; then select all the "Trackback/Pingback" notifications messages and run the macro. It could obviously be customized to work on entire folders or whatever, but that I leave to you. One final suggestion: if you (like me) keep a 15-tab Firefox window open at all times, you may want to open a new window (not tab, window!) so that you can then close all the URLs at once.
Ever since I upgraded to dasBlog 1.9 this blog was quite literally FLOODED with trackback spam. At first I tried to cut down on the spam using the various available techniques (IP-based blacklists, word-based blacklists, 404 responses to offenders), but unlike e-mail bayesian filtering, it's far more difficult to properly rate seemingly innocent URLs. Even if the current crop of spambots are relatively stupid and use blacklisted words in the page title, the next generation is bound to be more obscure. At any rate I couldn't cope with the volume of spam (I have well over 200 spam trackbacks waiting to be deleted, and that's just from the last few days) and decided to turn off trackbacks and pingbacks. I wish I didn't have to do this - in many ways it feels like switching off what makes blogging special to begin with - but I don't have the time to deal with the impossible amounts of spam. If anyone has any ideas on how to resolve this without turning off trackbacks, though, I'm definitely willing to give it a try...
Scenario: a couple friends and I want to go on vacation. So we go to a local travel agency's website and order a bunch of flight tickets. I give my credit card information, and a few seconds later I get a "transaction complete" notice and merrily call my friends to let them know that the deal is sealed. Half an hour later, I get a phone call from said company. Oh they're so very sorry, but actually the flight is booked and they can't give me my tickets. Instead they offer a cheaper flight which either leaves or returns at a different time, or a much more expensive ($90 per person) flight instead of the one we were interested in. Bait and switch? Who knows, but working under the assumption that their ass is covered I took the liberty of examining their terms of service page (warning: Hebrew) and managed to find some very interesting bits (my own translation): - The part of the document where you "authorize" the company to bill you also includes, at the very end, a statement in which you (the customer) say you are "interested in details regarding call-card benefits outside the country, and hereby agree to be contacted by a representative of [the travel agency] or [associated phone carrier]." I would think that this is the sort of opt-in they would at least provide a check-box for.
- Regarding hotels: "For your information, the supplier reserves the right to transfer you to an alternative hotel of similar rating, or higher for an extra payment of up to $100 per person... The hotel rating is according to the local Tourism Office and should not be used for comparing hotels in different countries." So basically, the carrier can (at their whim) screw you over, which may even incur additional charges.
- Still on hotels: "In the case where, as a result of changes to the flight schedule, the customer loses prepaid sleeping privileges at the hotel or additional costs are incurred, [the travel agency] will not be held responsible to said costs." I wonder who is responsible - the flight carrier? I seriously doubt it, their ass is probably just as well-covered.
- Otherwise, the document is basically full of "we're not responsible if" statements. Beautiful, I don't think the travel agency can be legally held responsible for just about anything.
Aside from being seriously pissed off at having my vacation ruined before it even started, it really annoys me that the various travel agencies in Israel are perfectly OK with screwing their customers over. The fact that it's legal (and maybe it damn well shouldn't be. Doesn't this fall under the definition of "false advertising?") doesn't make it any more reasonable. I hope the situation isn't quite as bad elsewhere.
Just when I was about to resume posting with full speed, my laptop breaks down. Another day, another dead hard drive. Hope to have it all sorted out in a few days. As an aside, I updated to dasBlog 1.9. The upgrade was smooth (couple merged files and a lot of binary uploads) and everything seems to work - please let me know if something's wrong.
These last few months have been some of the busiest of my life. Back in May I decided to postpone my studies in the Technion to resume working for Monfort full-time, and in the interim managed to complete several projects, visit several countries (besides China, which I already wrote about, I visited Japan, Hong Kong and Korea).
The net result was very little free time, which reflects in the post count:
(if you can't see this, you need glasses)
I want to get back on the horse, as it were, but I would also like to avoid ridiculous pledges that I have no idea whether or not I'll be able to hold up ("I pledge to write at least two major posts a week! No no, lets aim for something more feasible. I pledge to establish contact with an alien civilization by the end of the year!"), I'll make whomever is reading this a trade: I'll do my best to write more and more content, and you'll do your best to let me know what interests you.
Just to get the taste buds going, here are the current posts in the pipeline (i.e. open draft in Live Writer I'm trying to consistently work on):
- Some free power tools (gnuplot, SVG, other GNU tools)
- A comprehensive post about wikis, specifically MediaWiki and how our organization uses it to our advantage
- A post about my two trips to Tokyo
- Thorough review of the new audio equipment I've been buying lately
- Occasional music/movie recommendation
If there are any specific points of interest, give me a holler...
Microsoft has done a stellar job on Windows Live Writer. Even at beta it already supports (out of the box, no less!) a vast number of blogging engines, including dasBlog. It also supports a blog autodiscovery feature called RSD, which according to Omar will be featured in the upcoming dasBlog 1.9. The draft feature is simply awesome: open up Writer, start typing and you never have to worry about your text going to hell (there is also an autosave feature). The WYSIWYG editor is extremely robust, lets you edit your posts using your own blog's stylesheet and has excellent picture embedding features. Although I could easily go into HTML editing mode and edit the HTML directly, I no longer see any point doing it, which saves a hell of a lot of hassle and time! Never a sucker for web applications (AJAX or otherwise), this is a positive boon for me. Good job, Microsofties!
After my foray into the world of IBM Model M keyboards, followed by a few months using the impressive Microsoft Natural Ergo 4000 I eventually came to the conclusion that the Model M was the better keyboard of the two. The tactile response of the Model M is unmatched on any keyboard I've ever used, however the lack of Windows keys (and misbehaving Shift key - that was one old keyboard!) was a real pain in the ass. I was anxious to try out two keyboards: the elitist Das Keyboard (the original version - there was no Das Keyboard II at the time) and the Unicomp Customizer, which is based on the original Model M technology. The possibility of a brand new Model M with Windows keys was simply too difficult to pass up and I opted for a black, 104-key USB Customizer (which looks wicked cool, check out the image on the right!) Although I've only been using this keyboard for a few hours I can safely say that it's the best keyboard I've ever used. The tactile response is simply astounding -- basically everything I've said before about the Model M is equally true for this keyboard. Unfortunately this also includes the fact that it's a very large keyboard, which can sometimes mean too large; the finger travel for some of the keystrokes is a little much for my really small fingers (particularly when I have to right-shift or use one of the function keys). I guess the best thing ever would be a Microsoft Natural-style ergonomic keyboard with buckling spring keys (a la Model M). Maybe even one with blank caps... one can only hope As an aside, the Israeli tax is murder. Aside from exorbitant shipping price (not PCKeyboard's fault, it's just the way things are...), the Israeli customs laws dicatate a 15.5% VAT on every package whose value is higher than $50 (the tax can be higher, depending on the content), but they include shipping in the tax calculation!
Despite having a lot to write about, the current state in Israel doesn't lend
very well to my writing habit. I need to be in a specific mood to write
properly, and my mood this past week could hardly have been further away.
I'm still up north; Monfort is
situated in Kibbutz Sa'ar, just north of
Nahariya. It means that when I'm at work I can hear everything - the Israeli
artillery attacks, the choppers and planes constantly flying to and from
Lebanon, and the Hezbollah-fired Katyusha rockets crashing down on most
Israeli cities and settlements up north. When I go home, be it to my parents in
Qiryat Haim or my own apartment in Haifa, the rockets follow. There are
air-raid sirens every few hours, and explosions to complement the waiting.
Ironically it's not the rockets that really scare me; the air-raid sirens are
the ones that really give me a fright, a throwback to yet another conflict that had
absolutely nothing to do with us. Even wrose, there is nothing quite as jarring
as walking the streets of Nahariya or Haifa; the usually busy streets and packed
shops are shut down, closed, devoid of life. I make it a point to support
whatever businesses that choose to remain open despite the situation (such as my
own company). There is solidarity, and there is also exasperation.
Lebanon has no claim in Israel. There is no Israeli-Lebanese dispute. Two
nations which could under other circumstances live happily in
peace are now actively busy with survival because a bunch of
freaking lunatics claiming to act under the volition of a nonexistant deity
decided the time was ripe to kill. So here you are, assholes: the killing has
begun, on both sides. I hope you're fucking happy.
Seeing as I had quite a few hours to spend in Beijing and no agenda
what-so-ever, I figured I'd just go with a guided tour. While a good idea in
concept this proved to be impractical because the guided tours provided by the
hotel require a reservation at least one day in advance. I suppose I could try
and look up a different guided tour, but as hardly anyone speaks English in
Beijing it didn't seem worth the time.
I took my luggage on me and started walking around Jianguomen district;
although the area directly near the hotel is strictly geared to tourists it was
still a fascinating walk. For starters, DVD shops are rampant (I saw at least 7
different stores in a two-street block) - I wouldn't be half-surprised to find
out that these were mostly pirated/fake DVDs, particularly considering the kind
of people who were attempting to lure me inside. In fact, just about everywhere
salespeople were practically dragging me inside their stores to look at their
merchandise; I suppose it's a good thing that I'm about 10cm taller
than the average Chinese, and an annoyed look was usually enough to make them
back off. It wasn't nearly as easy with the beggars and street urchins though,
firstly because they're much more persistent and second because it's a lot
harder to ignore a child and/or give him/her an angry look. The day
before one of my Japanese associates made the mistake of giving a kid some
change, and we were busy fending off other kids for the rest of the way.
Tiananmen East
Station (source)
Just walking about Jianguomen got old after a couple of hours, and I was
looking for something more intelligent to do, at which point I decided to do
some sightseeing. Tiananmen Square seemed like the right place to visit, and
since I was already in tourist mode I figured I'd take the subway instead of a
taxi. This turned out to have been a very good idea for two reasons: first, the
Beijing subway is quite efficient, with two stations directly on either side of
Tiananmen Square (not to mention saving quite a bit of time and money on the cab
ride); second, it provided a fantastic opportunity to witness Chinese culture
firsthand. I was the only European anywhere in sight on the subway both on the
way there and the way back and the train was packed. At one point I was
standing near one of the doors and a women came in - the Chinese are an
amazingly small people, this particular woman was probably around 1.45m tall -
and almost ran into me. She looked up and, to my utter amusement, gave an
incredibly fearful look and practically ran away to the other side of the
subway car.
This would be a good opportunity to mention that the Chinese women are
absolutely beautiful. Besides the fact that they are an apparently slim
people (I saw ridiculously few obese, or even mildly fat, people during my time
there), the percentage of good looking women in China is amazingly high, as is
just how beautiful they are. Going back to Israel was something of a
downer in this respect...
Beautiful drawing on rice
paper
Anyway, 3 Yuen and about 10 minutes later I was standing at the outskirts of
Tiananmen Square. I walked the perimeter to get a good look around (and was
surprised at how serious the looks on the honour guard's faces were). The National Museum of China is
located directly in front of the square; I realized this when a woman (who
spoke very good English) addressed me and tried to get me to go to an art
exhibition just above the museum entrance where "some of her work is shown."
Regardless of my artistic inclinations - or, more to the point, lack thereof - I
was completely put off by her tendency to shower me with ridiculous compliments
to get my attention. I do not appreciate a compliment from someone who doesn't
know me at all and has an agenda. I did, however, consider going into the museum
when a young art student who also spoke very good English approached me. Where
the previous woman failed due to dishonest praise, this kid won my attention
with sheer enthusiasm and happy disposition. I followed him to the art gallery
(which, as he promised, was air conditioned - a very good thing when you're
walking around with 15kg of luggage and it's 35 degrees centigrade!) and spent
the next hour looking at various drawings while the art student explained the
various techniques. His own work was (to my untrained eye) techincally
impressive but didn't really inspire me; a series of four drawings on rice paper
depicting the four seasons really impressed me, though. The drawings had
several details in common (house, boat and birds) but were completely different
in spirit. For a short while there I actually considered buying all four, as
they were so engaging, but the cost was prohibitive (starting price of 400 Yuen
- over $50 - per painting). I eventually bought the drawing for autumn (picture
on the left) for my mom and after a bit of haggling got the price down to 250
Yuen. I was probably ripped off, but my negotiation skills are still rather
lacking and, frankly, the kid was really doing his best and deserved his
commission.
After leaving the art gallery I strolled around Tiananmen Square for almost
an hour. It is huge, packed with tourists and duly impressive irrespective of
its history. I didn't have the time to go the Forbidden
City (according to people I spoke with, this alone can take an entire day)
and didn't have any other reasonable plans, so I eventually took the subway back
to Yonganli station (near the hotel) and headed to a local massage parlor for
another hour of rest and relaxation. Although not nearly up to the standards of
the hotel masseur (and significantly cheaper at that) it was still very
pleasant. After a shower and a rest I still had almost five hours before I
was to leave for the airport. Deciding to avoid exerting myself again - spending
10 hours on a plane in a drenched shirt is not my idea of fun - I searched
for a local internet café. A local Starbucks was supposed to have wireless
internet access, but apparently didn't - no-one could tell me why; I settled on
a small ice-cream parlor which had wired access and spent almost an hour
there.
I was trying to decide what to do next when my brother reminded me he's
looking for a new pair of headphones. I googled a bit and three minutes
later had a couple of speciality shops to visit. The sites were completely
in Chinese, so I asked the owner of the establishment I was sitting in to copy
down the address of one
of the stores (whose name I can't even pronounce) onto a note. Not only
was he willing to do this, but he called the store directly to make sure that
they'll still be open by the time I got there; I've come to the conclusion that
the Chinese people are amazingly curteous and helpful if you can get over the
language barrier. The shopowner explained that the shop is located about 20km
away so I decided to take a cab; it was a smart move in that I would have gotten
completely lost had it not been for the taxi, and a less-than-smart move in that
it turned out to be a fairly expensive (in Chinese terms) 45 minute ride. I had
no idea what to expect when I got there, and was completely dumbfounded to find
that I've just entered a huge mall (almost as large as the biggest
general-purpose mall in Israel) completely dedicated to electronics! It would've
been heaven had it not been for the fact that I arrived just minutes before
closing time. The shop numbering scheme didn't make a whole lot of sense and I
was getting extremely anxious, thinking that when I find the shop it'll be past
closing time. I also got a lot of curious stares from the completely Chinese
shopkeepers and customers, apparently not used to having a European guy moving
purposefully about their mall with a large bag...
New hi-end
toys
When I finally found the shop, its owners were apparently just preparing to
close down. After all the effort it took to get there I wasn't about to let them
close down before I've had my fill; I asked (using mostly sign language, as the
shopowner didn't know a word of English, nor did any member of her family -
which were all present by the way) to hear the Beyerdynamic
DT880 headphones. I've been reading about these cans for a while and they've
been said to compare favorably to my aging Sennheiser
HD600; it seemed to be a good time to replace the latter, and I was
interested in what Beyerdynamic had to offer. I'll leave the detailed review for
a later post, but suffice to say I was extremely impressed with these cans. I
then requested to listen to headphone amplifiers; I spent about five minutes
each with amps from G&W Tsinghua
University (a Chinese manufacturer of hi-end audio equipment which was
previously unknown to me), including AT-F100 and
the (apparently very popular) TW-J1.
Neither one really struck a chord with me, so I gestured to the shopowner that
I'm interested in other equipment; she then pulled a brand new box from a
storage cabinet and took out a T-2.6F
headphone amplifier from the same manufacturer. I was so utterly blown away
that I took out my credit card on the spot and bought two pairs of DT880 and the
T-2.6F: about $260 for each can - not cheap compared to the US, but
about 30% lower than the price in Israel - and an additional $350 or so for the
amp.
When I was done with the shop I took a cab back to the airport, which took
over an hour but still cost only 100 Yuen ($14 or so) including the 10 Yuen
for the expressway toll. The cabby apparently didn't know precisely where to go
because although he did get me to the airport, he dropped me off quite far away
from the terminal entrance; this was especially annoying with all the luggage I
was carrying (a couple of plastic bags, my laptop, the large side bag and now
also the relatively heavy headphone amp in a cardboard box). I made it through
customs and check-in to find one of the smallest but best-kept lounges I've yet
been to; it was very clean, very quiet and very comfortable. I spent a couple of
hours there before the flight back and had a very pleasant time (despite a
spotty wireless internet connection) before it was time to get on the flight to
Istanbul. The flight back was almost exactly the same as the flight to Beijing,
so if you're interested in the details you can check out the previous
post.
I'm currently on El-Al flight LY075 to Hong Kong. Imagine my surprise when I
turned on the laptop and found an active wireless network; then ponder upon just
how baffled I was to find that it points to the Boeing Connexion log-in site.
Finally, imagine my utter astonishment when the internet connection proved to be
working, reliable and even quite fast!
Intercontinental flights will never be the same again.
I'll pick up where I left off: Beijing
International Airport. I'm getting the feeling that all airports are
alike, psuedo-European and industrial; on the inside, Beijing International
Airport is exactly the same as Ben-Gurion or Atatürk, the only difference being
the faces that scrutinize you over the counter. I must admit that given China's
image in western journalism I've felt somewhat apprehensive at this
point, but the officials there are as efficient and courteous (if not more so)
than any other government agency I've ever dealt with. Oddly enough I was
required to fill in customs and health statements before I was allowed in the
country. I never could figure it out: why would anyone bother asking you a
question such as "do you carry a horrific, easily contractible disease?" -
presumably if I were I wouldn't be travelling in the first place, and if I
were travelling with a contagion for some
clandestine reason I certainly wouldn't tell anyone about it. I had a
vague and apparently misplaced belief that a non-democratic government would be
less prone to pointless bureaucracy. Ever the optimist.
The difference between China and, well, everywhere else I've been to up
until that point, became pronounced the minute I stepped out of the airport
gate. There are a lot of people in China. As obvious as that may be
when looking at the numbers (approximately 1.3 billion according to the CIA
factbook), it only really becomes evident when you actually walk the streets
of Beijing. Israel is a very small country, both in size and in population (6.2
million, same source) and the difference is staggering. I was so overwhelmed at
the sheer volume of people moving about that, after getting out of their way, I
had to simply sit down and shake it off. The previous picture hardly does
it justice.
I then took a shuttle to Jianguomen, which I was told was near the hotel I
was to stay in. This proved to be both a fascinating experience and a really bad
idea: fascinating because I got to experience a little slice of Beijing
immediately after landing, and because it forced me to learn new ways to
communicate. The average resident of Beijing (including bus and taxi drivers)
does not speak a word of English. This is also why taking a shuttle bus was a
very bad idea. Aside from it being very small (unlike myself and my luggage) and
without any air conditioning (it was 35°C outside!), it also dropped me in what
I then thought was the middle of nowhere, with no map and hardly any way of
asking for directions. I walked around a bit but was soon exhausted, what with
the heat, the lingering tiredness from the flight and the bloody luggage; I
eventually stopped a taxi and had it drop me off at the hotel, which turned out
to be about 10 minutes' walk away from where the shuttle dropped me off. This
would be a good time to mention that taxis in Beijing are quite cheap; a short
ride costs 10 RMB (about $1.25 US), and even an hour-long trip to the
airport cost 100 RMB including toll. That is amazingly cheap compared to Israel
-- I'm wondering if this has anything to do with the Chinese government
subsidizing the prices in preperation for the 2008 olympics.
Speaking of the olympics, I'm still awed by the sheer scale of the
modifications, reconstruction and improvement efforts in Beijing. The Chinese
government evidently takes the olympic games very seriously from a public
relations standpoint, and is sparing no expense in preparation. I imagine that
if the 2008 olympics were to take place in Israel, the same efforts on a much
smaller scale would probably begin a few months before the games.
Jianguo Hotel
lobby
My next stop was the Jianguo Hotel
Beijing. Located two seconds from the Yonganli subway station and ten
minutes (by subway) from Tiananmen Square, the hotel is pretty much a standard
5-star European hotel, with the exception of a magnificent artificial
river-garden running smack in the middle of it. Although not bad by any means, I
was somewhat disappointed at how artificially European the hotel is; everything
from the large, golden lobby, the wooden architecture in the guest rooms, the
oversized dining room with its inevitably ridiculous decor ("old
masters"-inspired paintings and even a full-size harp in the corner!) and
finally the diner which serves American-style food (to which I'm not partial
even at the best of times). I mean, this is China! Where is the Chinese
decor?
Jianguo Hotel guest
room
Anyway, having found myself fully checked into the hotel and post-shower by
16:00 (local time) I had several hours to burn until the business
associates I was to rendezvous with were slated to arrive. I spent a couple
of hours doing some work and also finishing up the first post on the trip; this
still left me with about three hours before said associates arrive. I sent the
suit to be professionally ironed (I can certainly use an iron, but not nearly as
well as a professional) and then elected to happily spend the next two hours
getting an oil massage. Having read some books that discuss Chinese culture
- albeit from a fiction standpoint - I should've realized Chinese
pragmatism extends to sex just as it does to business, but I was
ill-prepared for the barrage of overt questions and propositions. It appears
that the Chinese business culture comprises chiefly of two principles: you'd
better haggle and everything is for sale. European puritanism
aside, I wasn't interested and settled for a simple massage with no added
value; suffice to say that it was the best massage I've ever had, so
evidently there were no hard feelings on the hostess' part (Chinese
pragmatism in action?).
I spent the rest of the evening and the next morning's breakfast in pleasant
conversation with our business associates. The next morning we went to the
business meeting which was the original purpose of this trip; for obvious
reasons I won't go into details. We then proceeded to a restaurant situated very
close to where the meeting took place; I'd offer a name or address, except that
I can't read Chinese and absolutely none of the restaurant's staff could speak
English. Ironically this was never a hindrance - we made do with a combination
of sign language and the pictures in the menu. We were served several dishes
(pictured on the right); the dish nearest the rice bowl was quite possibly the
best dish I've ever had. It was a mixture of hot green and red peppers with
bacon (I think it was bacon. I couldn't really ask and would rather not
know) stir-fried in some sort of soy-based sauce; the combination was utterly
staggering, and I sincerely hope to find a dish worthy of this one at some point
in my life. The other dishes were also terrific: chicken in some sort of sweet
thick sauce, and a mix of vegetables with goose and bacon (the dish nearest the
camera). All of this along with rice and lots of juice meant that I was soon
completely satisfied, and then came the really pleasant surprise: although all
three of us were unable to tackle even half the food, the total cost of the meal
was less than 200 RMB (about $25). I've had meals that cost as much for
just myself in Israel, and were certainly not up to this quality!
It was time to bid farewell to my pleasant companions who had to catch an
early flight, and also about time to get out of the damned business suit (it was
stifling hot!) and find something to do for the next few hours (it was about
13:00 at this point, and I only had to be at the airport around 22:00...). I'll
blog about what I did during that time in the next (and final)
post.
OK, I concede the point: Notepad++ is awesome!
I configured Total Commander so it brings
up Notepad++ on edit, and it's ridiculously useful: you get syntax
colouring, line numbering, tabbed windows and more at the cost of a
slight increase in startup times (it's about 200ms slower than Notepad on
startup, and it's worth it). I feel really stupid for not having tried it
before.
Also, I've always shied away from application launchers, but have decided to
finally give Slickrun a try. So
far it's only mildly useful (I used to do the exact same thing with batch files)
but that might change. I'll post an update in a month or two.
As a sidenote, although the Natural Ergo 4000 is a terrific keyboard I've
decided that the IBM Model M is still the better of the two. I think I'll try
the black 104-key Customizer next,
except that you can't get those in Israel. Ideas?
Around 21:00, June 22nd 2006, Neve
Shalom.
Roger Waters appears on stage for the first time in Israel.
This is the biggest thing to happen here all year, and one of the most
important events in my life. I'm still finding it a little difficult to find the
right words... and as they say, a picture is a lot more economic, so:
Image by Assaf Carmeli. Click
here for more
pictures
54,000 people singing in unison the lyrics for some of the best known rock
songs in history. It was a three-hour aureal orgasm.
I want to go back.
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.
Last month was full of interesting occasions and happenings for me - most of
those of an uninteresting, personal nature. It was hectic, to say the least.
Which is why my posts over the last month or so were extremely sporadic. I
intend to remedy the situation; now it's just a question of what to post about,
and this is where the problem lies: I am not familiar with my readership, such
as it is. Most of the comments I get in response to blogposts are either from
direct friends or occasional Google searchers; I appreciate these comments a
great deal, but they don't provide me with equally important information:
who are the people who consistently read this? What are the RSS subscribers
interested in? This is more or less a personal blog, which has its advantages
(freedom) and disadvantages (lack of focus), and I have no real way of
telling which of the subjects I touch gets more attention or interest.
This is where I'd really appreciate feedback! There are (presumably) reasons
why you read this blog. Is it for the development-related bits? Which posts do
you find useful/interesting, which are completely pointless? Please, help me to
keep you interested. Post a comment, e-mail me or whatever, and let
me know!
The other day my laptop started acting up - it slowed down to a crawl then
barfed on burning a disc (which I originally attributed to irregular
I/O behavior on the side of µTorrent); that in itself was annoying, but
it only raised warning signs when another burn (this time without any active
background applications) failed in the exact same spot.
I decided to run scandisk (which, being that I'm running only one
partition, would not run until the next reboot), and over the next three hours I
could do nothing but stare at what any seasoned computer professional will
sadly tell you is one of the most horrible sights in existence:
Three hours later I have a fully-functional laptop with over 5MB of bad
sectors (and, as the same seasoned computer professional will tell you, the
problem is only exacerbated with time) that runs somewhat slower than it ought
to on I/O operations. Luckily the warrantee is still in effect, but invoking it
means having to spend days without my laptop.
Almost makes me wish I bought an HP (unless I'm mistaken, they have a "if it
breaks we'll replace it for you at home within 24 hours" kind of policy), but
then I remembered that my laptop has been customized by the shop in which I
bought it (with a 7200RPM Hitachi drive instead of the standard 5400RPM one).
Since I'm not even (remotely) new to hard drive crashes I knew what this meant -
a trip to the store, which sends the drive to the local importer, waiting for
days while it's being "examined" and then another trip to the store to get it
back. What makes it even worse is that the shop where I bought the laptop (Lamir) is situated in another part of the
country.
Luckily the lab guys were kind enough to allow me to remove the hard drive
and send it to them via courier, which should save me a couple of unnecessary
trips to the centre of Israel. I'm not sure how support services work in other
countries, but this is quite unusual here - normally warrantee on branded
products is voided if you tamper with them (even if it's something as trivial
as removing or installing a hard drive yourself), so in that I have to
thank them. I just hope the rest of the experience is as pleasant.
Now I'm off to get myself a NAS device to back up my stuff
on.
I've been playing around with Leonard Maltin's Movie
Guide for the PocketPC for a couple of days now, trying to find a useful
program for cataloguing and keeping track of my DVD collection. I couldn't find
any free software that didn't outright suck, so I turned to commercial software
instead; LMMG seemed to fit the bill - mini-database of DVD releases, the
ability to easily categorize and keep track of my DVDs and all sorts of nice
features.
I did find out, though, that I'm sorely missing an import/export feature. It
would be cool to be able to post my movie list somewhere, or send reminders to
friends to whom I"ve lent movies that those movies are due back and all sorts of
neat stuff that you can only do if you have access to the movie list.
Not even a customer yet, I've fired an e-mail to LandWare's support
department:
I'm seriously considering
purchasing the Movie Guide (I've been testing it thoroughly for the last hour
or so), but have one serious qualm with it: my movie collection can not be
imported/exported (preferably to a well-documented CSV or XML-based file
format). Additionally, although my PDA does not feature internet connectivity
it would be great if movies could link to IMDB/some other online movie
repository (either directly or via title search).
Are either of these features likely to be included in the software? The
import/export feature is practically a show-stopper for me (I'd like to be
able to e-mail my DVD list to friends and that sort of thing).
A day or so later I get the following reply:
Hi Tomer,
As of last night, Movie Guide for Pocket PC now provides an import/export
feature, using tab-delimited files.
Product info: http://www.landware.com/movieguide/ppc/ Conduit
Documentation: http://www.landware.com/movieguide/conduit/ppc/
I'll log your other comments for our developers; what exactly are you
looking for with regard to online connectivity?
Josh
If that isn't good service, I don't know what is. I'm
sold.
Mio 168 RS
In the process of "going legit" with my laptop (i.e. getting rid of all
commercial software I won't pay for, trading proprietary software for
free/open-source alternatives etc.) I've reached several important
conclusions:
- There are very few commercial applications I can't live without
(specifically, Windows; Visual Studio; Total
Commander)
- Some free/open-source alternatives are actually superiour to their
commercial counterparts (Firefox, Thunderbird and OpenOffice.org [Hebrew version] are three such
examples)
- The sheer amount of tools and applications I require just to get things
done is
astounding
Despite the impressive efforts by the free/open-source community, there are
still a few areas where commercial companies (in this case, Microsoft) have the
upper hand: PDAs. I was recently handed down a MIO 168 RS
handheld which my dad replaced, and ended up trying to learn the quirks of
Windows Mobile and how to best make use of it.
Apparently the whole deal of synchronizing with mobile devices is not as
trivial as you'd think; there is only one standard, SyncML,
which is apparently supported only in part and inconsistently by various mobile
devices, and is basically not supported by Thundebird (nor, to my knowledge,
Outlook). The Windows Mobile connectivity solution from Microsoft, known as
ActiveSync, is perfectly adequate if you intend to use Outlook; however I do not
own a license for Outlook (one is provided with the PDA, however it is for the
obsolete Outlook 2002) and would prefer to keep using Thunderbird anyway.
The one glimmer of hope is an application called FinchSync - a combination of java sever on
the PC and a .NET agent installed on the PocketPC device (strange, wouldn't you
agree?). There are several problems with this solution:
- It is incredibly cumbersome. Having to install a seperate server and
client application is in itself a chore, but having to install the server
application on each and every host machine is really very annoying.
- Although it supports .ics files (which appear to be the standard calendar
file format used by Mozilla applications), these files do not appear to be
employed by the Lightning extension to
Thunderbird by default and I couldn't figure out how to get it to work.
- Finally, the software works over TCP/IP; this was probably the easiest
solution, however PocketPC devices that are not WLAN-capable are not
configured for TCP/IP by default; it might be possible to configure a TCP/IP
bridge over the device's USB connection, but up to this point I have spent so
much time with so few results I've conceded that there is no way to do this
easily.
As you can see, in this case Microsoft takes the cake: synchronizing to
anything but Outlook is a real chore, if not next to impossible. I'd consider
getting a license for Outlook, but at roughtly $70 for an academic license of a
version of the software that's three years old and about to be replaced it's
hard to justify the expense; additionally I would much prefer to keep using
Thunderbird as my e-mail client of choice.
With the upcoming competition from Office 12 and the far-superiour
integration of Outlook in the corporate environment along with its tight
integration with PocketPC-based solutions (which I've come to understand are the
majority in this market segment), the open-source alternatives are in pretty
grave trouble.
I didn't really believe there were any genuinely crapy onboard sound card
this day and age. Being a gamer and audio enthusiast I've always considered
sound cards to be one of the most important aspects of my PC (along with the
monitor, keyboard and mouse). My PC soundcard timeline goes something
like:
When I bought my latest desktop at the end of 2003 I had a
newly found faith in onboard solutions; onboard network adapters were
finally up to snuff and the latest SoundStorm (the onboard sound
solution found in nForce2-class boards) was
being heralded by the online hardware press as the next best thing.
Seeing as I was serving my stint in the army at the time and was relatively low
on cash I opted to save money on a dedicated sound card and went with the
onboard solution. This turned out to be a mistake; the audio quality of
SoundStorm was not on par with the five year-old Live! and has pretty major
bugs in the hardware acceleration layer; mixing would sometimes clip -
particularly when very low rumbles were mixed in the general sound, as in System Shock 2's
elevator shaft - and the EAX implementation was so poor it was next to
unplayable. There were also major compatibility issues, such as the sound cutoff
problem prevalent in a lot of Ubisoft
titles and the extreme sound stuttering with Half
Life 2. This was probably the game developers' fault for not ensuring
compatibility, but nVidia did not seem overly inclined to work with developers
to resolve these issues; conversely I would seriously doubt Creative would stake
its reputation on this sort of bug.
At work I have an Athlon 64-based machine with the ubiquitous onboard Realtek
AC97 codec (Gigabyte
GA-K8NF-9 mainboard). I constantly listen to my music collection, streaming
audio etc.; I don't game, I don't edit audio, I don't do anything that requires
more than a passable audio solution. The onboard audio should have been
perfectly acceptable, and so it was. Until a few days ago when I started
noticing crosstalk from the I/O subsystem to the audio lines; in other words,
there was a weak sort of static hiss which would change pattern and frequency
depending on how hard my hard drive was churning. I probably wouldn't have
noticed that with lesser headphones, but that's no excuse! Why is it that in the
year 2006, 18 years after the first commercial sound card for the PC was
developed, I can't even get reasonable, 2D stereo audio from onboard
solutions?
The only reasonably-priced sound card in the market at the moment is the
Sound Blaster Audigy 2 Value (around $70 in Israel - the price of a new Audigy 4
in eBay!). Guess I better start hammering at those auctions.
Chris has finally released a beta
version of PostXING v2.0 (an opensource
blog client for Windows)! The development version is pretty stable and usable,
but the more people that use it and post
bugs and feature requests the more motivated the developers get
Grab it from Project
Distributor (requires .NET
2.0).
I couldn't access the comments on my own website for an indeterminate amount of time (at least a week) and had to dig in the sourcecode to find the culprit (now described in bug 1439112). To make a long story short, it appears I got my dasBlog cookies mangled, so if you have the same issue either contact me or get rid of all cookies from www.tomergabel.com. (If you're using Firefox and don't know how to access your cookies, here's how. If you use IE just go to d:/Documents and Settings/ username/Cookies).
I came back to my apartment today after not being there for a couple of days,
to find that our (my flatmate and I) router died due to a power outage. I
needed internet access so I hooked up my laptop directly to the cable modem (a
Motorolla) and for some reason couldn't get a ping anywhere; some digging showed
me that for some reason the modem, which acts as a DHCP server, gives me a local
(192.168.x.x) IP address, no DNS servers and no default gateway.
The modem would return pings and the operational web interface showed
everything to be fine and dandy, so I spent the next 15 minutes having the most
futile conversation I've ever had with a tech support guy. Now as a programmer
and reasonably hardware- and network-savvy individual I figured that if a modem
and computer restart won't solve the issue it must have something to do with the
cable/ISP networks; there was nothing to indicate local failure, so I didn't
think to examine the obvious.
The Motorolla modem has a standby button.
I'll be damned if I know why, but it does. And someone pressed it. All it
took to get my internet connectivity back is to press it again. Which brings me
to the point: it is well known that one of the cardinal sins is vanity, it is
equally well known that programmers generally exhibit the three cadinal sins
(vanity, hubris and laziness, I think?). So if you're a programmer, whenever you
talk to tech support don't be a smartass. You'll save yourself time in
the long run.
I'm a self-proclaimed part-time, low-budget audiophile (there's a
mouthful), so I often try to combine good performance with reasonable cost. To
that end, considering I spend about 80% of my time at work (and, up until
recently, home as well) with headphones on my head, the Sennheiser
HD600s I got about five years ago for the price of about 200 of today's US
dollars after shipping and taxes were the absolute best bargain I've
ever made. The Jean-Marie Reynaud Twin
MK2 speakers I also bought at about the same time were so impressive that
the lowest-priced comparable speakers were 60% more expensive.
Things have somewhat improved since then; the taxes on audio equipment in
Israel have been considerably reduced, although at some 34% they're still very
high (down from 70%...). I mentioned this before in my post regarding the Yakumo Hypersound Car. Since
then I went to an auto shop for some additional equipment, specifically a 6x9"
component set, 3.5" mids to replace the crappy ones in my Punto, a 12" Pioneer
sub and 2x60w (continuous) amp (I'll post the models number later - damned if I
remember).
On
the left: Pioneer sub under the component speak, on the right: Yakumo Hypersound
Car installed
While the CD receiver was a breeze to install, I'm pretty glad I didn't
attempt to do the rest of it alone; I don't know jack about car electronics and
some of the stuff involving the installation of the amp I didn't know to begin
with (such as hooking up the negative terminal to the car chassis) and I
would've done a heck of nasty job if I tried running some of the wires on my
own. On the other hand, contrary to my usual cautious self I didn't do much
market research and ended up paying considerably more than the equipment
was worth. It was definitely a learning experience, though, and I won't make
these mistakes next time.
That said, the sound is great - not perfect but I'm still tweaking it. The
Yakumo unit turns out to have very poor amplification; at first I thought the
specified 65dB signal-to-noise
ratio was a mistype in the product manual, but it turns out rather accurate;
there is a very audible hiss at even moderate volume levels (which I couldn't
hear earlier because of the crappy speakers I bought the car with) and the
rear-speaker sound is bright to the point of being harsh. This may or may not be
attributed to the Pioneer component speakers - if so you can bet that they'll be
replaced - but in the meanwhile I've found the amplification so horrid that I'm
replacing the 2-channel monobridged Pioneer amp with a quad-channel amp to drive
both sub and rear speakers (5- and 6-channel amplifiers are prohibitively
expensive, so I'll skip those for now).
The Yakumo unit also suffers from some pretty severe usability issues; the
TOC indexing times for USB devices (tested with a fully loaded iRiver
H320) were nothing short of abhorring (about 3 minutes from iRiver boot).
With CDs the problem is less of an issue, about 20 seconds for a 700MB CD, but I
still think it's rather stupid that the unit can boot up to the exact location I
last powered it off in but has to index the TOC first. The random mode is
extremely useful with compressed files, but why does it change track when I turn
it on? The fact that I can't navigate by folder (particularly with the existence
of a jog dial!) without going through the tedious search function is
ridiculous, and I've actually managed to get the unit's firmware to crash once
or twice (Update: actually, the unit seems to be extremely crash-prone). I believe most if not all of these problems can be solved with a
little work on the drive's firmware, but there is none from Yakumo. In my
opinion the solution would be to simply open-source the firmware; it's
probably based mostly on LGPL'd code to begin with,
and it would allow community involvement in empowering the brand. I, for one,
would be delighted to tweak the source code to my heart's content; it would make
the unit all that more useful. With the lackluster amplification and usability
issues it's very hard to recommend the unit to anyone but a die-hard OGG Vorbis fan. Update: Having owned this unit for several months I can safely say that it, quite plainly, sucks. It is crash-prone, error-prone, extremely slow on boot up, requires constant resets and provides very low sound quality to boot. Its one saving grace is Vorbis support, and even for me that's not enough to save it from a "piece of crap" verdict. I'm going to replace this thing as soon as I find a decent alternative; the XiphWiki points at a similar product from Silvercrest, but given the track record of these things I'm inclined to forego in-dash players altogether and go for a hard-drive based solution. Now if I can only find a decent one...
Whenever I get a new machine (at work, at home, anywhere) I'm always
astounded by the sheer amount of time it takes to get it up and running. I
don't mean just the basics, I mean a fully-functional platform that is set up
just the way I'm used to, right down to the folder display settings in Explorer
and the toolstrip I always like on the right side of the screen.
I mean, seriously, there's gotta be a better way to do this. The following
applications are just the basic things I need to be efficient:
- Windows XP Professional, drivers, settings
- Mozilla Firefox, extensions,
profile import
- Thunderbird, profile
import
- Maxthon
- Microsoft.NET 1.1 and 2.0
- Visual Studio 2003 and 2005
- ReSharper (one version
for each), import settings, resolve keyboard conflicts
- GhostDoc (one
version for each)
- Gaim, profile import
- FileZilla
- Latest JRE (java runtime environment)
- RssOwl, profile import
- Total Commander, plugins,
customization
- 7-zip
- Microsoft Office, OpenOffice.org (Hebrew version)
- SourceGear Vault client
- CDBurnerXP Pro
And that's just to get me through the day. It doesn't include all the
multimedia and development tidbits, like:
I reckon the net installation and customization time is over 10 hours
(some installations can be done in parallel, some can be deferred to a later
time). That is a lot of time to spend on just setting up your machine.
The problem with using Ghost or some similar software is that I get a system
without all of my current data (profiles, files, documents etc.), and as for
virtual machines, they're simply not fast enough yet for constant use (at least
on my modest home desktop or laptop).
... there's an online video of 8088 Corruption that is an absolute must-see.
Trixter, you rock!
1. Ever since I bought my car several months ago I've been looking for a
decent audio platform to put on it. My primary concern was support for the
excellent Vorbis audio codec - this is the
codec I use most often in my music archive due to its superiour quality (I spent
hours and hours comparing best-case rips encoded with LAME [MP3] and Vorbis and have found
Vorbis to be the better codec - I'll write another post about that if anyone's
interested), smaller footprint and patent-free nature.
Although Vorbis (and its container format OGG) has seen lackluster support
from hardware vendors since its introduction in 2001, the past two years have
seen thoroughly improved support for the codec -- most portable players
(including oblique Chinese models) now support Vorbis just fine. Cars, however,
are a completely different issue: there are exactly four car-oriented products
that support Vorbis (the Vorbis wiki contains a complete list)
and I wouldn't settle for 'just' an MP3 player. For a time I was considering
building an ITX-based car computer, orevaluated products such as the PhatBox;
eventually I settled on a more mundane in-dash CD receiver called Yakumo
Hypersound Car. The decision was mostly based on the cost of the more exotic
solutions and the much higher risk of someone trying to break into my car.
The Yakumo is very difficult to get; you can either get it from
Amazon UK (but they don't deliver electronics overseas) or from certain
German vendors. I eventually ordered the unit from a very efficient
eBay shop and it finally arrived last week.
Anecdote: Israeli tax is murder; not only did I have to pay the
16% European VAT (having bought the unit from a German reseller), which I may or
may not be able to get back, and the €40 shipping fee; on top of that I had
to pay an additional 15% customs tax and 16.5%
Israeli VAT, and that's on the shipping too! So bottom line, a €96 unit cost me
close to €200, shipping included. That's an insane amount of money to pay just
for the privilege of buying something you can't get in your own country, and
even if you could you'd probably be forced to pay the local importer handsomely.
And imposing a tax on the shipping fee should be proper illegal.
Installation was a breeze (any experienced technician should be able to
do it in 20 minutes; I'm not an experienced technician so it took close to an
hour with my dad helping out), and with everything hooked up I inserted a
freshly-burned CD, held my breath and... woah! Iris playing in my car in gorgeous
Vorbis! That alone was worth the price of admission. I do have some qualms with
the device, though, primarily the lackluster display (yeah, OK, blue
backlighting has been out of fashion for at least a couple years) and the
awkward navigation (you can't easily navigate by album), but considering the
very reasonable initial cost of the unit, which also comes with an SD
card-reader, USB port for mass storage devices and remote control (!) and the
so-far excellent sound quality which easily rivals the generic JVC CD receiver I
had earlier, this product comes highly recommended. Update (after a short period of constant use): I do NOT recommend this product.
2. I just got my second Microsoft
Natural Ergonomic Keyboard 4000 (a.k.a Ergo 4000). It has replaced the
trusty Model M; we'll see if it lives up to the hype. I actually got one last
month, but returned it the same day because Hebrew character engraving looked as
though they were hand-drawn by a five year-old with severe ADD.
This one feels a bit different but is so far extremely comfortable; I'm
astounded that no other keyboard features a cushioned hand-rest like this
one, it makes working with the keyboard infinitely more comfortable to the point
where I don't know how I managed to live without it all these
years. I've used Microsoft Natural keyboards for the last ten years so the
ergonomic ("split") design is one I'm very familiar with. There are some
differences though - some keys are aligned a bit differently and require
different finger movements, but so far I seem to be getting used to the layout
very rapidly. The tactile feel of the keyboard is also different from the
Microsoft Natural Elite I've been using these past few years ('till I switched
to the Model M); it's softer and at first seems slightly less responsive (during
the first couple hours of working with the keyboard I was very prone to the
classic manglign-of-the-last-two-lettesr syndrome) but as soon as you adjust the
strength with which you depress the keys it becomes very natural (no pun
intended). Unlike my dad's crappy Microsoft Desktop Multimedia keyboard
this one has the f-lock enabled by default, and so far I haven't touched the
extra keys or zoom slider. At $65 it's not cheap but not prohibitively expensive
either (unlike the $80 Logitech
MX1000 mouse I use).
So far, so good. I'll post further comments on the keyboard when I've used it
for a while.
Or: How I Learned To Stop Worrying And Love Firefox
(this is a Dr.
Strangelove reference, in case that wasn't
obvious).
There are some fundamental principles of UI design
most developers have not taken to heart. Developing a
good UI is hard, designing one is excruciatingly
hard. A good UI designer needs to have a very
developed sense of how a typical user thinks; it is
therefore a commonly held belief that most
programmers make lousy UI designers because they
can't "stoop to the level of the non-technical user" (a slightly less rehearsed mantra is that developers are users as well and are susceptible to the same problems with crappy UI, although possibly a little more forgiving).
The developer-oriented UI trend is most obvious with open source software,
but it is actually exacerbated when we're talking
properietary, even if free, software. An open source
tool that is essentially really good but has crappy
UI will eventually attract someone who is actually
capable in that department. Take a look at Eclipse,
OpenOffice.org, The Gimp etc. - although based on a
more or less solid foundation, these tools were
practically useless a few years ago and have only
become mainstream when they made leaps and bounds in
usability. An even better example is Firefox;
although I was personally attracted to Firefox on
merit of its technical achievements, I was only able
to sell it to friends and relatives becaues it is
infinitely more usable than IE and just as free (I
mean come on, does anyone doubt why Opera never
gained marketshare?)
A proprietary program however, even if
fundamentally sound and useful, can only grow better
by the efforts of its owners. Even the most obvious
bugs can never be fixed by a 3rd party. w.bloggar is a
classic example of this; the last version was out in
January and, despite being fundamentally stable and
usable, has huge flaws which the author never fixed,
instead allowing the software to stagnate. I reckon a
lot of you, at this point, are thinking along the
lines of "hey, you get what you pay for; you
should be thankful that w.bloggar is free, let alone
supported!" In a way you are right, but also
dead wrong. As far as I know Marcelo (the author of
w.bloggar) isn't seeing much money from his work on the software; what money he does get is from donations.
So why not release the source? Donation systems seem
to work for high-profile open-source projects at
large, why not for w.bloggar? At least that way
someone can fix the bugs that
(for me) turned w.bloggar from a useful tool to a
constant cause of frustration.
To get to the point, I wrote a blog entry in
w.bloggar (specifically the one about missing tools), published it and went on with my
work. At the end of the day I left the machine
running (as I always do when I'm not leaving for days
at a time) along with w.bloggar. Why'd I leave
w.bloggar open, you ask? Simple: one of these glaring
bugs I mentioned is that w.bloggar does not retain my
preview template options (CSS links and so forth),
and it's a pain in the ass to enter them manually
whenever I want to edit or write a new post. Anyway,
w.bloggar has a "Clear Editor after Post"
option which in my case was disabled. This means that
whenever w.bloggar finishes uploading a post, it retains the
text and changes its internal state so that
subsequent clicks on Post update the same entry (as opposed to creating a new one). So what basically happened is that when I came in today and wanted to write the note on OpenOffice.org, the previous post was still "live" on w.bloggar. Usually at that point I click on New (which shows a nice, useless warning dialog) and get on with it; this time I guess I was distracted, just shift-deleted everything and proceeded to write. When I next clicked on Post and got the "Post so-and-so-GUID updated successfully" notice I knew I was up the creek: my earlier post was overwritten with no prior warning, no delay and worst of all: no backup.
Which brings me to my first point: w.bloggar sucks. Bugs (like not retaining options and the most defective HTML syntax highlighting known to man) aside, this is a huge usability problem - a user can (and evidently will) inadvertently erase his/her own work and have no way to recover it. The undo buffer is not even remotely deep enough; there are no dialogs to warn you that you're about to update a live post, and there are no backups-shadow copies-anything of published posts if you do not actively save them. Worst of all, there is no-one to mail, no bug tracker, not even a forum (the forum link on the w.bloggar site is broken). My first resolution for 2006: make more effort on PostXING and help Chris make it actually useful.
Now that that's out of the way, time for some damage control; w.bloggar is useless in recovering the lost content, dasBlog does not maintain any sort of backup (side resolution: implement shadow copies into dasBlog) and considering how cheap my hosting package is I seriously doubt my ISP would help me recover yesterday's daily backup (assuming there even is one) without significant trouble and/or cost. The only option that comes to mind is the browser cache; in case it isn't obvious from the title (and the large "take back the web" icon on the right), I use Firefox. Going over the cache files manually proved futile as most of them seemed to be binaries of some sort; some research showed me that you can access cache statistics by navigating to about:cache; from there you can access an actual dump of the in-memory and on-disk hashes. Looking at the on-disk cache via about:cache?device=disk and searching for something useful, I found a cache entry for the editing page. Clicking the link did not prove readily useful (the actual content is not displayed), but the information displayed shows two important details: the file location and the content encoding (in this case, gzip). This explains the strange binaries I found in the cache! A quick decompression via the excellent 7-zip and I had my content back. Second point of the day: Firefox has once again proved its mettle. Firefox rocks!
Feelings are often paradoxical in nature. Sometimes the result is called hypocrisy, sometimes merely confusion or stupidity. Being something of a software evangelist I always try to convince people to switch to greener pastures, although my ideas of what is better are not always consistent with what is commonly accepted. For example, I would not try to persuade someone to use Linux, because although the OS appeals to my sense of geekiness and my inherent attraction to free, communal efforts (read: open source), my experience with Linux has all but discouraged me from using (and certainly recommending) the system. That said, when I find something I like and appreciate I certainly stick by it and try to evangelize it to the best of my abilities.
So why was I utterly pissed off when, clicking on this link via a blog post I read using RSSOwl (ironically, another great open source program), I was presented with a large "Please update your web browser!" box right at the top of the website urging me to "upgrade" to Firefox/Safari/Opera/whatever?
I'll tell you why. Because in-your-face evangelism pisses me off. Ilya, a friend of mine, introduced me to Firefox when it was still Firebird 0.5 alpha, and I've been using it ever since. I've been telling about it to everyone who'd listen; I've recommended it to friends, family, colleagues and even just random people I have occassionaly found myself talking tech with. Back in May, when I remade my personal website into a blog, I've designed it for CSS compliance and tested with Firefox first, IE second (and found quite a few incompatibilities in IE in the process). I've placed a "Take Back the Web" icon right under the navbar, in hope that perhaps a casual IE user would stumble upon it and wonder what it's all about. But I don't nag, or at least try very hard not to. I consider people who visit my website as guests, and just as I wouldn't shove my goddamn tree-hugging, vegetarian, free-love, energy-conservation way of life* under your nose if you came to visit my house I wouldn't want you to feel uncomfortable when you enter my website. Which ToastyTech did.
My open-source hippie friends, do us all a favor and take it easy. This sort of thing will not win people over to your cause; at most they'll just get pissed off and avoid your sites altogether. A regular joe stumbling onto spreadfirefox.com (or, for that matter, slashdot) would be just as likely to return to it as Luke would to the "wretched hive of scum and villainy" that is Mos-Eisley.
* In case you were wondering, I'm no tree-hugging hippie, I'm not a vegetarian, my love is an equal-trade business and I drive a benzine-powered vehicle the same as everyone else. But I care.
Chris Frazier has been kind
enough to let me in on the PostXING v2.0
alpha program. I tried PostXING v1.0 ages ago and it struck me as an open-source
program with lots of potential but (like many other open source projects) not
nearly ready for prime-time. I very much hope to be able to help Chris make v2.0
a practical contender to my regular blogging tool, w.bloggar. It certinaly seems on the right
track, and as you can see is already reasonably usable.
If anyone has anything they wished for in a blogging tool, let Chris know -
he may yet make it worth your while
I wonder if bitrate is to bits what titrate is to...
Here's today's tidbits. I don't have much time so I'll keep the list relatively short (it currently amounts to about 10% of the stuff I have in my "pending" file):
Development
- Here's a bizarre trick (via Ayende): apparenly when binary-searching an array (via Array.BinarySearch) if the specified value is not found, you can get the index of the next largest value by bitwise-complementing the result (index =~ index;). Convoluted, but useful.
- Here's a cool shell extension improvement from Jeff Atwood called Clean Sources Plus (based on the original codebase by Omar Shahine); it allows you to "clean up" a VS.NET solution from intermediate files and source control bindings for sharing with other developers. Dead useful.
- Fascinating discussion in response to Jeff's post about eliminating the user field from login screens. Personally I don't think there's anything wrong with the current system (I read the post too late to participate meaningfully in the discussion), but there's a lot of interesting stuff to read there.
- Nifty demonstration of basic CSS 1.1 and JavaScript. It doesn't work in Internet Explorer because IE does not support alpha in PNGs (a very annoying limitation in itself) and does not fully implement DOM events.
- I stumbled upon an old article by Joel, which states something so absolutely obvious most people completely fail to realize it: people (and programmers specifically) are only very good at doing one complex thing at a time. Giving a programmer (even a good one) more than one project, or alternatively interrupting his project for "right here, right now" kind of work, is hazardous to his or her productivity. It reminds me of Fred Brooks' excellent The Mythical Man-Month; in retrospect the conclusion is just so obvious it seems almost impossible that people didn't realize it at the time.
Stuff
- DARPA challenge finally beaten! This is a huge event for robotics fans, which I'm not - however I recognize that this is a landmark in AI and robotics. Impressive stuff.
- My next keyboard is probably going to be the new Microsoft Natural Ergo 4000. I intensely dislike most keyboards out in the market these days (still use a Microsoft Natural Elite or IBM Model M) and it would be a nice change of pace to get a new Natural with added features (padded wrist-pad, standard page-up/down cluster etc.) which doesn't suck. I hope the tactile response is at least as good as the Elite's. I was looking to get one of those, but apparently only Dagesh carry those in Israel so far (for 380 shekels, shipping included ~ $75 + VAT); I would get it from eBay, but it won't cost any less and it's a warrantee nightmare. Guess I'll just wait.
- Here's an interesting concept: labs.zarate.org allows you to create passwords on a per-site basis by providing a master password and target URL. It works by MD5-hashing the master-password with the site URL. Cool idea and seemingly quite secure (assuming the hashing function is strong enough; considering the general quality of passwords people use, I'd say it's about 1,482,918 times better).
- The Flying Spaghetti Monster is apparently old news, but completely hysterical never-the-less, particularly in today's age of religious zealots and their "intelligent design" dogma.
Politics
- Assuimg this article is to be believed, post-Taliban Afghanistan is about to put a journalist on trial for charges of blasphemy. You'd think that the US with its self-proclaimed desire to bring democracy to the world would not have left a radical Islamic government in Afghanistan. You'd be wrong.
- UK Labor party member Walter Wolfgang, 82, was forcibly ejected from a conference for heckling the foreign secretary. This in itself is common in stupid political strife; what worries me is that a second delegate (Steve Forrest) who protested the treatment was also forcibly ejected and then denied access to the venue under the powers of the Terrorism Act. If said act can be used to circumvent lawful political activity by democratically-elected public officials, I cringe at the thought of what kind of power it gives the police over, say, an ex-Israeli army officer visiting London.
- A Delaware public official lost in court against an anonymous blogger who posted what said official perceived were defamatory comments against him. The court ruled that the blogger's ISP may not expose his identity, which I consider a major win for free speech. Too bad other courts are not quite as sensible.
About a month ago I invited a bunch of people to an impromptu LAN party to be held at my parent's house (as they were out of the country at the time). Despite some organizational hurdles (primarily the lack of a network switch with enough ports) we eventually managed to overcome the party was sweet, short and to the point.
Omer playing StarCraft
During the course of about 20 hours we played loads of Call of Duty, some StarCraft: Brood War, a bit of WarCraft III and a whole lot of my personal favourite: UT2k4. UT flavours included regular deathmatch, quite a bit of Onslaught (not my favourite of gaming modes, but nevermind that), a little bombing match and what I consider the best gaming-mode: instagib deathmatch. It's hillarious, and you can't beat the andrenaline rush (well, except maybe Q3 DM17 with 5 bots at hardcore).
Myself, concentrating on a round of UT
As usual we saved StarCraft for the wee hours of the night. The two games I played prove that I can still hold my own; my personal preference is for team melee where I control base contruction and expansion at first and combat later, with a second player supporting me on construction and exploration at first and maintenance later. I find that I'm extremely capable when it comes to fast micromanagement but am terrible when I have to do more than one big task at once (for example managing combat while micromanaging fleet construction). Playing with my brother that way was an extremely effective combination and we took the game by a large margin, which was very satisfying.
Oren next to Call of Duty
My personal
forté is first person shooters though, so it's no surprise that's what I played the most (I couldn't be bothered joining in on WarCraft III). We played Call of Duty and UT2k4 for several hours each; Call of Duty proved to be an excellent multiplayer game, but only if there are a lot of players in the game. 8 players are enough for a good game, but say 5 or less simply aren't enough to keep the action up and the game becomes very dull indeed.
I wish I could convince the others to give Tron 2.0 a multiplayer spin, but other than that I don't even know where to start in looking for good multiplayer games. Halo proved to be a big disappointment for me (way too slow - not in performance but in gameplay - and too much emphasis on vehicles) and trying Counter Strike: Source for a bit only strengthened my resolve not to play tactical shooters.
And now for the rest of it.
General Stuff
- The Deer Park (Firefox 1.5) beta has been out for a couple of weeks now and is very stable and fast; beta 2 is due to come out any minute now. Despite the lack of a compatible Noia 2.0 eXtreme (my favourite Firefox theme) I highly recommend the upgrade.
- Fasterfox is a major performance tweak for Firefox. We don't have the fastest internet connection here so it's difficult to tell how effective it is, but I'll try and gauge it over the next few days anyway.
- Metal Gear Solid fans owe it to themselves to hear virt's remix titled My Frequency Is 140.85.
- Martin of Tipmonkies (heh. Tipmonkies. Heh.) published a list of free disposable e-mail address services. My personal favourite is DodgeIt.
- Finally, Serenity seems to be doing rather badly financially. I haven't seen the movie yet (and I doubt I'll get to see it in the Israeli theaters, with all the crap movies taking valuable theater space) but I have a very good feeling about it, and I hate to see anything original, interesting or (in Firefly's case) underdog do badly.
- Mystified by Virgill is awesome. For that matter, so is elements. The guy knows his shit.
Politics
- It bothers me a great deal when American agencies (or goverment agencies in general) presume to tell me what I'm entitled, or not entitled, to. As far as I'm concerned the default should be "I can do whatever the hell I want as long as it's not declared illegal", not "I can do whatever is declared legal". Very important distinction. So it's no surprise I was really pissed off to read an FCC document in which a statement began with "consumers are entitled to run applications and use servics of their choice". Thanks! I always wanted a government to officially allow me the liberties I've always taken for granted. But that's nothing compared to the rest of the statement: "... subject to the needs of law enforcement." You know what? To hell with the needs of law enforcement. I won't have police/FBI/shabak/whatever goons telling me what programs I can or can't use. I realize that it's like that in practice (the old issue of >128-bit RSA encryption not allowed outside the US, for one), but it's no excuse to make it official policy. I'll run whatever the hell I want on my machine. If it's illegal, have the police come up with sufficient justification for a search warrant, signed by an independant judge.
- The US Patent Office upholds a patent owned by Eolas, which has bearing on their case against Microsoft. I don't know the details of the patent and don't care. Ideas and thoughts should not be patentable, as simple as that. As Florian Mueller puts it (direct quote from the linked article):
Pro-patent politicians told us that broad and trivial patents can be invalidated. If even Microsoft with all of its resources doesn't always succeed in that, what can smaller companies do?
- Apparently a single, disabled mom has found the strength to sue the RIAA back for wrongful legal practices. Any dent in the RIAA litigation behemoth is a good thing in my book.
- An ISP owner from Oklahoma wins a $10M lawsuit against a known spammer. It's doubtful he'll be getting any of his money, but the precedent-setting case is good in the long run anyway.
There is one particularly nasty blogspammer which every few days posts a spam comment to this post. MT blacklist doesn't seem to cut it in stopping the bastard.
Has anyone had success fighting off blogspammers? Do you have any advice?
I've been doing some reading on the Chernobyl nuclear disaster. The reading turned out to be a genuinely frightening experience. A series of small but unfortunate errors resulted in hundreds of thousands of people evacuated from their homes and irradiated large sections of the world...
I got a similar sensation of dread by reading the Fallout manual, which starts with a perfectly dry and scientific description of the effects of a particular type of nuclear bombing. The game comes highly recommended, by the way.
Something a friend of mine said when we were discussing it over lunch yesterday triggered a memory from Jeff Wayne's War of the Worlds, to quote (this was more difficult to find than you might think):
It seems totally incredible to me now that everyone spent that evening as though it were just like any other. From the railway station came the sound of shunting trains, ringing and rumbling, softened almost into melody by the distance. It all seemed so safe and tranquil.
I haven't had that much time on my hands lately to do any proper writing (what with a full-time job, four martial arts classes a week, making arrangements for a trip abroad and a LAN party, looking for an apartment and car and being to several family occassions), which is why content has been a little drab lately. So I'll start today's tidbits with a request: if you have an interesting programming dilemma, issue, question etc. don't hesitate to contact me - I'm most prolific when challenged with an uncommon problem.
That said, lets get to the goods:
- I was researching an issue we had in the current project (specifically, finding out which physical monitor was connected to which video controller), and at first turned to WMI which is usually good enough to give you such answers. Although I have some WMI experience under my belt I was looking for a tool to aid me in developing WMI applications - a WMI "explorer" if you will - and after a little Googling about stumbled onto a very useful tool written by French programmer Coq. The tool, aptly named "WMI explorer", is an open source Windows Forms application which allows you to query the WMI schema as well as object instances, and also generate C# classes for WMI classes. I've found it immensely valuable; go ahead and download it, just be warned - it's currently in French. I'm contacting the author to ask his permission to translate and distribute this thing (I'm not sure under which license it is distributed because, well, I can't read French!)
- I'm really very excited about HDR (High Dynamic Range rendering/imaging), and my excitement only grew after seeing the screenshots from Half Life 2: Lost Coast. Check out the screenshots in the article - they're simply staggering! The overexposed building on the third page is precisely the kind of thing you simply cannot do faithfully with bloom and which changes the entire gameplay; this means that when attempting to attack the castle from below you are partially blinded and at a massive disadvantage. And it looks absolutely stunning to boot - check out the curch on the fourth page!
- Amiga demo afictionados should check out the video for Control by Oxygene - extremely impressive visuals on a (in my understanding) vanilla A4000, along with a superb soundtrack by Clawz.
- Microsoft's specs for C# 3.0 are out, and it looks like the C# guys went haywire. I'll be digging more into that for comments. In the meantime you can check out this discussion (via Aynde Rahein)
- Go check out Indigo Prophecy. I'm very, very, very much looking forward to it (and Tycho at Penny Arcade seems to concur).
I'm hosting a LAN party this weekend, so hopefully I'll have some interesting experiences and/or pictures to share by Sunday. On Sunday itself I'm going for my first trip out of Israel in 8 years (the last, and technically first, one was to London for a week when I was 14). I'm going to Turkey for a week of treks, jeeps, rafting and of course some classic R&R (the trip's programme for Hebrew speakers can be found here). Hopefully it'll be a great trip - pictures and experiences when I get back.
Lots of generic crap for today. Without further ado:
- What in the bleeding hell.
I have to admit that this whole "code/hacker-caffeine" trend is
starting to get on my nerves. After years and years of caffeine
addiction (I could probably have won the world record for most coke
drank in a day) a couple of years ago I decided to let go of it -
almost completely. I now enjoy the occasional coke and, if I'm
genuinely tired and need a pick-me-up, a coffee always helps. Back in
the day I could've drowned a triple espresso without any effect. Bottom
line, it never ceases to amaze me how dependant people allow themselves
to become.
- Joku posted a worthy comment on Mike Stall's blog:
Not really related, but it would be good if technical
bloggers writing about X,Y & Z would also mention what is the
closest public release they are using. Now if you go google and find
some older blog entry it maybe the stuff being talked about was in
relation to for example VS Beta 1 and might be completely wrong today.
I don't think everyone who come to blogs.msdn from google will figure
out that many of the blog entries that talk about say VS2005 are
actually talking about something that's specific to non-RTM build. If
there were tags for every public build and they were visible and easy
to put on the blog entry... Well some day perhaps.
It is a valid point, and I shall endeavour to do that from now on.
- RMS never ceases to amaze me in how he takes theories (conspiratorial, political or otherwise) and treats them like facts. "Israel's real nuclear weapons",
says he. It is commonly accepted that Israel does have a nuclear
arsenal, but no-one knows for sure, myself included. Admittedly RMS's
never purported to be unbiased or politically-correct, but it bothers
me never-the-less.
- Fellow Israeli developer-blogger Oren Ellenbogen mentioned a few weeks ago a subtlety in the usage of interfaces
in C# I was not aware of. I've since used explicit interface
declarations with great success, however one caveat is that you can't
use the interface members even from a private scope (i.e. from a member
method within the class implementing the interface). So use this
feature with caution - it can reduce messiness (particularly where
intellisense is concerned), but often at the cost of forcing you to add
lots of unnecessary casts.
- Software patents are taking an increasingly alarming foothold in
common business practice. Litigation has always been part of business,
but when Creative sues Apple
for patent infringement over the iPod's navigation interface, to me it
means things have gotten completely out of hand. Face it, people:
one-click shopping, song navigation in menus etc. should not be patentable.
It's ridiculous, any UI-designer with more than 3 IQ could've come up
with that concept. Yes, Creative went to market first, but that is
completely irrelevant; just imagine if someone patented the "ability to
close a user interface component by clicking a button" - none of us
would be able to close windows. Does that make sense to you?
- This little hard-drive hack is really damn cool.
- The Blizzard vs BnetD
case is worrisome to say the least. I'm not versed in the particulars
of the case, but assuming the BnetD programers did not actually
reverse-engineer Blizzard proprietary code they should not have had a
case. I wonder how this case compares to the Microsoft vs Samba
litigation - I reckon I should do some further reading.
- I've been playing with Total Commander for several days now. Originally I couldn't stand the software, but admittedly it gives Servant Salamander a serious run for its money, and has quite a few features SS does not.
- I promised Oran (one of my colleagues) that if he found an IBM Model M keyboard
for me I would try it out for a week. He managed to find one and I've
spend a couple of hours on Sunday cleaning it up, and have been using
it since. It's a very nice keyboard; the buckling spring key design has
terrific tactile response and typing on it feels great. There are
several things I do not like about it, though: for one, it's missing
the Windows keys which I've grown accustomed to using (Left Windows key
+ D or L two dozen times a day...); the right shift occasionally gets
stuck; finally, it's a little big for my hands so certain keypresses
are far less convenient than they were with the trusty Microsoft
Natural Elite. It doesn't seem that the new keyboard has improved my
errors/character rate any, but it is a little early to tell. That said,
it's amazing that a keyboard manufactured in 1991 can favorably compare
to a modern, ergonomic keyboard. My model is a 1391408, in case you
were wondering. All in all, I still miss the old Microsoft Natural
classic (I've used one from 1996 to about 2001 when it crashed on the
floor one too many times. It's still working, by the way, just missing
some keys.)
- I came home from a pub last night and made the mistake of turning on the TV. Twelve Kingdoms
episodes 14 and 15 were on. No sleep for me tonight. Do yourself a
favour and watch that show; I own it in its entirety on DVD and it was
some of the finest money I've ever spent. Other anime favorites include
Trigun, Full Metal Alchemist and Cowboy Bebop. If you're curious about anime, NGE might be a good primer, although I have my gripes with it.
- Finally, I've made a list of all my DVD movies on IMDB, but unfortunately there is no way to link to it externally. I'll find some other catalogue, or write one on my own.
The game reviews I promised are still in the pipeline (it takes a lot of effort to get myself in the "reviewer state"), but I did post other stuff instead (mostly software- and development-related). Now it's time for tidbits:
- I've been sorely lacking a "navigation" submenu in Microsoft Word. I use a lot of internal hyperlinks in my documents (and have been reading and writing quite a few of those for the past few weeks), and it's a pain in the ass not to be able to navigate back and forth. Apparently it's just hidden in the Web toolbar and is readily accessible using Alt+Left and Alt+Right keyboard shortcuts. Oddly enough the keyboard customization dialog shows a GoBack function as well as the WebGoBack-WebGoForward duo; I'm not entirely clear on the difference yet. Anyways it's amazing how much better life is all of a sudden.
- There are numerous updates to the ReSharper 2.0 beta post.
- Thanks to Ofer for introducing me to the kickass bugmenot.com. It's basically a user-contributed database of registration information for any and all websites (there's even an entry for Nectarine!) which should prove amazingly useful, particularly when complemented by services like DodgeIt. They also have a petition asking content providers to stop with the pointless mandatory registration procedures. Not sure if I'll sign or not, but the site itself is damn useful.
- DevBoi seems to be a very useful development tool: it is a sidebar extension for Mozilla browsers offering easy access to online/offline documentation repositories for standards such as HTML, CSS and more.
- Apparently them christian preachers weren't kidding around: pr0n can indeed make you blind. Consider yourself, er, warned.
Light load this time. More to come.
Check this out: How to install Windows XP in 5 hours or less. I found this one particularly funny:
56. Time passes. It is getting dark. You are likely to be eaten by a grue.
I'll give a shekel (don't ask) to anyone who knows what that's all about (well no, not really, but it's funny anyway).
Scott's released dasBlog 1.8!
I don't have time to install it just yet - will probably save that for
tomorrow. Since all the bugs I filed were fixed the new version is
bound to be da bomb!
Update (August 15th, 11:32 GMT+2): dasBlog 1.8 is up and running. Oddly enough it seems to be compiled, or at least set up, to run in debug mode (web.config is set to <complication debug="true"... />), so I changed that. Everything seems to be in order. The new BlogXP theme is very slick, but it's going to take quite a
bit of time to rework it to fit the site design (get rid of the
calendar, change the title, add a bit of personality...), so I'll stick
with my modified DiscreetBlue in the meantime.
I've converted. Three of what I considered the most useless Windows
features have one me over. Specifically: large font sizes, large icons
and ClearType.
Now let me make myself clear: for the vast majority of people on the
vast majority of equipment, these features are indeed absolutely
useless. Six months ago I bought an LG LM50
laptop (which is absolutely terrific, by the way) with an 1400x1050
SXGA+ display. I was stunned by the resolution, particularly the
desktop real-estate and sharpness the new display provided, and never
felt that the default font sizes were too small: they were certainly
smaller, but the display was sharper and when typing on the laptop I
was sitting much closer to the display than I was used to. Then I
figured what the hell, I'll give it a try, enabled the three features
and was absolutely stunned: I had (at worst) the same desktop
real-estate I did on the old CRTs with much clearer fonts and icons.
The whole experience is that much easier on the eyes, and I still get
the added bonus of extra desktop real-estate (particularly when
browsing) and much better resolution when displaying images etc.
I'm never moving back to CRTs!
I had started to write an article about event shimming in .NET Remoting (yes, I know there are such articles already, but I couldn't find one that was easily accessible and understood) yesterday, but simply crashed and slept over 9 hours. Now I'm at work, so I guess it'll just have to wait until later today or tomorrow. That said, there's the usual variety of things of interest:
- GuestMaps are a really awesome third party tool based on Google Maps; the idea is that you basically put a map on your site and it allows your readers to mark where in the world they are. I would've put one myself, but I'd rather save myself the embarresment of finding out how many readers I have
- China's on the news again, this time for putting a young man behind bars for political activies (posting "harmful" essays on the 'net). There are two things I find extremely worrying about this: the first is the way the Chinese propaganda machine operates, specifically the official reasons for incarcarating the man: "[he] jeopardised national unity and territorial sovereignty, spread lies and disturbed public order and social stability". There is also the reason given by the Chinese government for its attempts to monitor internet cafés: "[they] can affect the mental health of teenagers while spreading unhealthy information". The second is that any "western" country with its eyes on Chinese business is decidedly ignoring these increasingly dangerous signs of human rights violations, turning a blind eye to what will undoubtedly come back to bite everyone on the ass.
- The Commentator is really funny. I'm very glad it is a joke, because after showing it to some of my colleagues I was a bit worried that they might actually use it.
- There is this movie I was attempting to find for ages. I haven't seen it since I was 6 or so and only knew it by its Hebrew name, the direct translation being "hole in time". Well thanks to the wonders of the 'net I was finally able to find it: it's called Biggles: Adventures in Time, and according to one reviewer it sucks rather badly. Excellent! I'm waiting for my copy and will post my opinion when I have one.
- Go play Psychonauts.
- Here's an interesting article explaining why you must never use "double-checked locking", which is an (apparently broken) technique for saving some CPU cycles on synchronization checks. If you do any performance-savvy multithreading code it's an absolute must-read.
- This is absolutely awful.
Things to expect in the (reasonably) near future:
- The .NET Remoting vs Events article I was talking about
- My experiences with Linux
- Reviews for Psychonauts, Half Life 2, Chronicles of Riddick
Or to quote Penny Arcade from a while back:
Quit whatever you're doing, it's not important. Maybe
you're performing a surgery. Put the scalpel down. Maybe you're holding
a runaway car back from rolling over a carriage which contains an
infant. There's no baby shortage, and even if there were, they're
apparently a lot of fun to make. Run over the roof of the car, go home,
and open up a browser.
It's rare that I encounter something which I can't find the proper amount of superlatives to describe. That something is Charly and the Chocolate Factory, the latest Tim Burton/Johnny Depp movie based on the famous novel by Roald Dahl (which I admit not to have read). I will not bother you with the list of superlatives I did manage to come up with, but trust me: you owe it to yourself to watch this movie. Just stop whatever it is you're doing and go.
Another recommendation that's bound to steal a few days of your life
(and repay you by making the remaining days worth living) is the
fantastic Psychonauts. It hardly matters what you're playing now, it can't compare. Remember Monkey Island? Day of the Tentacle? Grim Fandango? Same guy, and Psychonauts just might be his best work ever. You owe it to yourself to play this game. Just stop whatever it is you're doing and go.
Mailinator's been down for a while, and also slow and quite limited. I've been looking for a replacement and was recommended DodgeIt, which hits the spot. Highly recommended!
I was rather surprised to find comment spam in my blog (considering
it's new and relatively unknown), but then it was Outlook-specific spam
and I did have some Outlook-related blogposts.
Anyway in an attempt to fight it off I've enabled Movable-Type Blacklists as well as CAPTCHA images in the comments. I hope this isn't too annoying for you; if it is let me know and I'll remove it.
- Ever have someone ask you a question a question he could've
easily answered by spending two seconds searching Google? If not, there
must be something genuinely wrong with you. In any case, this is
absolutely brilliant: just send him/her/it the appropriate justfuckinggoogleit.com link! That way you're bitch-slapping them for being stupid while still being helpful.
- Old news but I haven't found the time to address this yet: an Australian citizen was judged guilty
of copyright infringement for having direct links to downloadable MP3s
(he wasn't hosting the files, mind you) on his website. I have a
tendency to play devil's advocate in these matters, but in this case I
can't understand the decision; merely linking to sites (illegal or
otherwise) is, in my eyes, equivalent to saying "I don't employ whores,
but if you want there's a pimp right around the corner". It might be
morally questionable but it's certainly not in itself illegal.
- Also old news but important never-the-less: the Wayback Machine has come under legal threat
due to its use in a trademark dispute. Apparently the company that lost
in said dispute was displeased with the Wayback Machine's involvement
and filed a suit. What's really ironic is that they're claiming the
Machine as well as lawyers making use of it were in violation of the DMCA, because they somehow circumvented the Machine's robot.txt mechanism (read more about it in the previous links). Needless to say, that claim is absolutely preposterous.
What worries me is that, by the time this lawsuit is thrown out the
door, lots of money will have been paid and the non-for-profit Internet
Archive organization (which maintains the Wayback Machine) might be
irrevocably damaged.
- I wrote a review for Rez on MobyGames. Go have a look, then find a way and play the game.
- I started playing Psychonauts yesterday and so far it seems to kick a whole lot of ass. I'll post a review when I finish it.
- I also found the time to update my have list
on MobyGames. It currently only contains 10-15 percent of the total
amount of games I own, and missing a whole bunch of comments, but I'm
getting there.
Scott Henselman has released dasBlog 1.8 RC1! Since dasBlog is one of the most impressive pieces of
open-source software I've ever used (solid, stable, impressive codebase
and very intuitive to boot) and seemed to be in hiatus for a while,
this is some of the best news I've heard in a while.
I went ahead and upgraded, and the transition seems to be impressively smooth. Atom 1.0
is now fully supported, and having done some reading on it I think I
will be evangelizing it a lot more in the coming weeks, since it seems
to solve a lot of issues with RSS (not the least of which is a properly
written schema).
dasBlog 1.8 also comes with a pretty nifty theme called BlogXP,
which I intend to provide as an alternative theme as soon as I get
around to reworking it a little bit. So far I'm very pleased with the
performance and usability enhancements, and will report further.
Update (14:28 GMT+2):
I just spent the last couple of hours hunting down what I perceived was
an output caching issue with either dasBlog or ASP.NET. I updated this
entry with a trackback link to Scott's website, but it was not properly
handled (no trackback, and the linked text did not show to boot). To
make a very long story short, apparently dasBlog has several "content
filters" enabled by default; these content filters are regular
expressions which match, among other things, the strings dasBlog, Newtelligence and Clemens Vasters
and replace them with the appropriate links. Aside from these default
filters being horribly out of date (the current maintainers are Scott
and Omar Shahine), implicit
defaults such as these really annoy me because they cause unexpected
behavior (in my case, the string dasBlog inside an <a> tag was replaced with a complete hyperlink) and the behavior in itself is not necessarily desirable.
Also, a bug I neglected to report is yet to be fixed (it's now reported), and there are several other minor issues (such as this). Otherwise, dasBlog is a very solid piece of work indeed.
I find that I keep reverting to MobyGames
for game-related links, searches etc. Trixter's baby project is an
awesome resource for the sort of info I often look for, and I figured
that it would be really great if I could do a MobyGames search directly
from Firefox (much like
I constantly do with eBay, Amazon etc.). I spent a couple of minutes
looking through MobyGames' prominent navigation links for a solution
with none to be found, so I figured I'll just add it to Firefox myself.
The browser linked me to Firefox's "add engines"
web page, but as luck would have it, the Mozilla servers were down at
that exact moment. I figured that since I can't do it myself at the
moment I might as well have a look if someone else'd already done it -
which apparently they did; if you click through the Friends of Moby page in MobyGames you'd get a very improperly-positioned link to their Firefox search button. I happily clicked it, it works like a charm and dead useful.
This only goes to show that even the most useful tool, application
or whatever will be completely ignored if it's not prominently
showcased! I'll be sending an e-mail to the great guys at MobyGames
about this.
ToastyTech has images, descriptions and miscallenous trivia for most popular microcomputer GUIs. Seems to lack a few (NeXT etc.) but is still a really terrific read. Also, you can now read scans of the 1971 and 1979 versions of "'How It Works': The Computer" books, intended as an ease-into guide for the computer-illiterate.
As a history buff I've always found older computers fascinating, both the computers themselves and the social phenomena they represent. If you're also interested in such things, make sure to read Fire in the Valley: the making of the personal computer, which is an astounding read which delves (in interviews, pictures and background stories) into the various aspects of the early PC era. Another interesting read is Steven Levy's Hackers: Heroes of the Computer Revolution (which my brother Mickey bought me as a birthday present couple of years back. Thanks, man!)
Been busy doing absolutely nothing of value over the last few days including, but not limited, to: going to the kinneret for a Saturday afternoon, watching Batman Begins (seperate post on that later), finishing Half Life 2 again (review coming up), going to a pub, watching Who Framed Roger Rabbit and almost finishing King Rat (will probably blog a bit on that at a later date too).
I also blogged practically nothing interesting/useful for the past
couple of weeks, so here's a collection of stuff I have in my "context"
file (sort of a geek's to-do list):
- Apparently I've managed to thoroughly miss the whole Annoying Thing revolution; I've always known the source to be DengDeng but apparently it's evolved and is now officially out of control. Here's an interesting read.
- If you have any inclination towards industrial and/or goth music, check out In Strict Confidence.
Of particular note are Zauberschloss and Engelsstaub (in German) and
the terrific Love Will Never Be The Same (English). I've also given
good listening time to Massive Attack's Mezzanine. On the web radio front I still listen to a lot of Nectarine radio.
- RMS has another thought-provoking artlce
about software patents. RMS's usually extremist opnions aside, I'm
finding what I see around me less and less to my taste, and as a
software developer for a relatively small company I occasionally feel
the results of software patents on my flesh, and it scares me. Patents
are a necessary evil, but leglislators must be extremely careful in
maintaining the balance between protecting innovators and stiffling
innovation. I'll probably write a proper post about this soon.
- Get your own, before they run out!
- Ever had trouble remembering what a toilet in a particular computer game looks like? This site should alleviate your concerns.
- These are really cool. Too bad they probably sound like crap.
- Ho-lee shit.
- Evidently the Israeli customs office does not believe in free software (Hebrew only). Fortunately the story ends happily.
And here are some development-related tidbits:
- A couple of interesting articles on the BCL team blog: this one elaborates on which language features cannot be expressed using CodeDOM (including .NET 2.0), and this one
explains why parsers aren't included with CodeDOM (which would've saved
me a hell of a lot of time on the C# to java source-level compiler I
wrote a few months ago).
- BCL team's libcheck is an immensely useful tool if your team provides public APIs to other teams or customers (via Roy Osherove's ISerializable).
- Balanced matching with regular expressions: apparently the .NET regex implementation allows you to create
"stack"-style expressions (so you can parse, for example, mathematical
expressions with parentheses, C-style comments etc.). The syntax is
somewhat convoluted and tricky to use though (via Roy Osherove's ISerializable).
- I've been asked how to create windows services in .NET on numerous occasions; it is, in fact, incredibly easy. Enter another great post from the BCL team, which will hopefully save me some hours of repeating the same explanations. Thanks, Dave!
- These seem like incredibly useful tools, though (seeing that my
development focus has changed over the last few months) I haven't yet
been able to try out: ComTrace hooks the COM system calls and gives you a filtered view, which is definitely handy for debugging COM issues. Conversely, the PINVOKE.NET add-in is a front-end for the PINVOKE.NET wiki - a respository for unmanaged API P/Invoke signatures and best practices.
- I always thought overhyped, powerful language features can be dangerous in the hands of the uninspired, but this is just ridiculous (thanks, Kuperstein).
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
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...
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!
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.
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.
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:
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.
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.
Eric Lippert
has an incredibly interesting five-part blogpost about the mathematical
essence of musical theory, along with some pretty nifty demonstrations.
I've dabbled a little in the more practical applications of musical
theory before (writing wave and module players and some basic software
synths) but honestly have never been really interested in its
mathematical/physical aspects.
This, ladies and gentleman, is interesting shit.
A bunch of tidbits to get you through the day:
- Three words: what. the. fuck.
- Do you recall that classic picture of the back of a girl? I recall
seeing that picture demonstrating the graphic prowess of generations of
computers and video cards (from the earlier Macs, through a friend's
286/VGA machine and the first true color-capable PGA video card another
friend used to own). Ilya sent me a link detailing the original story. Interesting, if you're a history buff like me.
- This (Hebrew only) news post only goes to show that stupidity knows no bounds.
- While not American, I find the very concept of a senate intelligence committee voting on expanding an already-problematic Patriot Act extremely disturbing. What really yanks my chain, though, was that the vote was held during a secret meeting,
to which members of the press were barred entry. Does anyone else
consider the very concept of legislation in secret anti-democratic in
the extreme?
- I came across an amusing definition of a particular class of bugs, dubbed heisenbugs. I think I'll start using the term.
- Finally, it appears we have an Aibo here at work! The damn thing is really disturbing. Photos and experiences to come (as soon as I get my ass off the chair long enough).
So I haven't had a proper vacation in ages. Sure, I've had days off on
occasion, went on trips on Saturdays etc., but not a vacation per se.
The last time I spent any amount of time doing nothing specific was
about a year and a half ago when I went with my family to Eilat (the southernmost city in Israel, and its most [only?] popular tourist attraction).
A very good friend of mine went to live in Eilat a few months ago,
so I figured since I haven't seen him for a while it might be a chance
to make good use of a few days off (weekend combined with the Shavu'ot
holiday). So midnight on Thursday I took a bus from my home town of
Haifa to Eilat. I'll take this opportunity to extend a hand of
friendship and understanding to the poor buggers who live in countries
where several hours-long bus rides are a fact of life; busses suck. It's the most uncomfortable thing in the universe. I spent two 5.5 hour trips trying to find "the position"
which would actually allow me to sleep a bit and failed miserably, the
direct result of which is my coming to work today tired and quite off,
not to mention cramped muscles, knees and back. Yech.
That said, Eilat kicks much ass. First off, coming to Eilat in your
own vehicle is idiotic: to begin with parking is difficult
(particularly around the city center, promenade and major attractions),
the roads are quite packed and there's a constant stream of pedestrians
crossing the street everywhere at all hours. Add to that the amazing
availability of low-cost (particularly compared to the Tel-Aviv area)
taxis that literally materialize out of thin air the second you raise
your hand, where the cabbies are knowledgable and even courteous (in
Israel, no less!). All that combined with the fact that everything is a
short walking distance away (the entire city center, promenade
included, can be crossed in a comfortable one-hour stroll) mean that
it's cheaper, more efficient and certainly healthier and more enjoyable
to just stroll around the city. The climate was difficult to get used
to at first: the temperatures are considerably higher in Eilat than in
my native Haifa bay area (37C vs 27C by day), however moisture is
considerably lower - 20% vs 65%. The direct result is that it's
generally quite a bit hotter but far easier to breath, and it's much
more convenient to move around by foot: I'm now back north and a short
walk from the bus to work got my all sticky, whereas in Eilat I would
walk the 2km from my friend's house to the promenade and not feel the
worse for wear.
Eilat is either a shopping heaven or a shopping nightmare, depending
on what you're looking for and how hard you're willing to look. Being a
free trade zone the prices in Eilat are VAT free - Israeli VAT is
currently at 17% - the direct result of which is that certain
commodities (CDs, cameras and books for example) are considerably
cheaper, whereas simpler things are ridiculously expensive (like a can
of coke). The promenade offers an insane variety of tidbits mostly
aimed at tourists, but there's still pretty cool stuff to be found: I
finally tried on a sharwal (also known as "fisherman's pants")
and actually liked it in the extreme - I'm starting to understand the
Japanese and the scots, even though the lack of pockets can be an
encumbrance. Even the local shopping mall has its moments: every time
I'm in Eilat I find myself spending $100-$200 on CDs; the local CD shop
(Disc Club) is VAT free and cheap to begin with.
The beaches in Eilat are terrific. I've only been out of Israel once
so I wouldn't know how they compare, but the beaches are clean, the
water is cold and transparent and you get to swim alongside a huge
diversity of wildlife. If you're into diving I probably don't have to
tell you about the possibilities as the city's pretty famous for its
diving attractions. There are various tourist attractions (desert trips
on jeeps and camels, etc.) and it's also pretty relaxing just strolling
all over the place on foot.
Being used to some pretty high quality pubs back north I was
slightly disappointed with what Eilat had to offer in this area as it
was particularly hard to find reasonable beer. I've found a couple
places that sold Leffe Blond and Weinstephan (and the mandatory
Guiness, Carlsberg, Heineken and local Goldstar that I personally
dislike), but that's pretty much it. The pubs themselves however are
pretty good - at least the ones I've been to (DeBar was absolutely
terrific, thumbs up David!) Lastly, food-wise there are some really
great places to eat in Eilat, my personally favourite being Casa Do Brasil:
an absolutely terrific all-you-can-eat south-American grille. I make it
a point to go there and crunch my body weight's worth in meat whenever
I'm in Eilat, and this time was no different (with one exception:
apparently they make the best beef fillet I've had yet in Israel).
Basically everywhere you look there's great food in abundance, just
take your pick and ask around for recommendations.
I thought I wouldn't bother with the third Star Wars movie. I really
did. Well no, not really; it took me exactly five minutes to snap out
of it and stop lying to myself: I was going to watch the movie in the
theater even though I knew it's going to suck, much like Matrix Revolutions or Terminator 3.
I can't help myself. It retrospect it amuses me that I'm willing to
spend money on a purely mainstream product I know there's no chance
I'll enjoy, but then - it's Star Wars, if I didn't go I'd feel left
out...
Anyway, bottom line - I did go and did see it in the theaters. And it did not
suck. Not even remotely as much as I feared it would. Now admittedly
I've read the various "it doesn't suck" quotes on the 'net, but being
my usual sceptic self I had to see for myself. I wouldn't call it
terrific, though; it has two major problems without which it would
probably have been the best in the series: crappy dialogues that seem to have been written by a 6-year old (particularly the various Padme vs Anakin scenes), and Hayden Christensen. Not even Ewan McGregor, whom I hold in very high regard since Big Fish,
was able to keep me from noticing how poorly the dialogue is written,
and not even the really terrific action scenes and utterly astounding
visuals could keep the grimace off my face whenever Anakin came
on-screen. Add to that an anti-climaxic Darth Vader experience and what
you have is a pretty decent movie that could've been the biggest thing
since, well, Lord of the Rings. A crying shame.
I had a completely opposite experience with The Hitchhiker's Guide to the Galaxy:
I was never a big fan of the series (yes, I read all of them) and had
very low expectations. When the trailer came out I was plesently
surprised to find that I thoroughly enjoyed it and laughed quite a bit,
so it was with mixed feelings that I went to see it in the theater.
Suffice to say that when the lights came on for the half-time break I
was quite surprised: 45 minutes had gone by, and I didn't even notice.
This movie is funny as hell! It's well-written, well-acted and
even well-designed (visually); there are a lot of subtle jokes (as
opposed to the incoherent in-jokes I originally expected) and this just
made everything even better. I'm also very happy that the authors of
this movie didn't give in to the fanboys, which means the authors did
have some artistic license - I actually prefer the movie to the book
this way. So in summary: this movie rocks. Watch it.
I had reasonably high expectations for Sin City:
I like dark films and the trailer seemed very nifty. I had no idea what
the movie was about though (never read the comic, nor could be bothered
with previews) so I had no idea what I was getting into when I went to
watch it. All in all I dub this film "high quality garbage." The
production values are as high as it gets, but it doesn't stop the movie
from being generic comic-based film-noir. The plot lines are overly
simplistic and what the movie lacks in story-line it makes up for in
insane amounts of gratuituous violence. When I made this argument a
friend of mine challenged it, saying that I enjoyed Kill Bill
immensely despite the level of violence which was at least as high; now
don't get me wrong - I'm not squeamish and enjoy a good violence scene
at least as much as the next guy, but the difference is that where
violence in Kill Bill is intentionally portrayed as ludicrous and works
to advance a simplistic plot (not to mention homage to '70s Hong Kong
action flics), the violence in Sin City is not portrayed as ludicrous
at all and works mostly to take the place of a nonexistant plot. It may
work in the context of a comic, but I've never been a comic fan, so for
me it merely detracts from a quality production. That said, the acting
is top notch and the graphic design is absolutely beautiful, but as a
whole Sin City is one movie I'm probably not going to watch again.
Finally I have a recommendation to make: grab Oldboy
from the nearest Blockbuster and watch it. It's a Korean movie and I'm
not sure how to best define it, but it's combination violent,
disturbing and thought-provoking, with incredible acting, visual design
and music to boot. Heartily recommended. Also, if you get the time,
check out Kung Fu Hustle - I think it's in the theaters (in Israel) right now, or will be soon.
Tidbit time:
- Raymond has an über-interesting post on the potential security issues with C's strncpy, including an interesting bit of history.
- Senthil Kumar's found out an interesting detail regarding the equality (==) operator in .NET System.String.
- GAIM joins in on Google's Summer of Code project. I just wish I were a student living in the States with enough free time...
- Remember the old Amiga game Cannon Fodder? Well I found this promitional (?) video for the CD-32 version of Cannon Fodder - so funny it's disturbing.
- A pretty interesting post
at The Register claims Microsoft's Windows 2000 operating system was a
complete flop as far as security's concerned, but it marked an
interesting shift in the company (and therefore the industry).
- I don't find myself completely disagreeing with Roy Osherove that often, but his his take on The Grudge
is completely opposite my own: the movie was not scary at all, for the
most part very poorly acted and I came out of the theater feeling as
though I've just wasted 37 NIS (the price for a preordered movie ticket
in Israel, approximately $9 US - way too high anyway) and two hours of
my life. On the other hand, I've found White Noise quite appealing; it didn't scare me proper (only System Shock 2's
managed to do that in recent memory), but it did leave me unsettled,
which is also pretty unusual. Probably the only good horror/thriller
I've seen in ages is 2002's The Ring. I openly admit to not having seen the original Japanese version, nor have I seen the supposedly great The Sixth Sense. Working on it.
Paniq came out with a new album a couple of weeks ago, the second track from which is called Elektronische Musik (can be downloaded from here). It's in German though, so make sure you read the lyrics.
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
migration.
- 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
proprietary software.
- 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.
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
will tell.
- 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
the dark.
- 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
it.
- 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
with it.
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
use:
- 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
its
money.
- 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.
- Gaming
- MobyGames - the most complete repository for computer game-related information on the planet
- Hardware
- 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
content.
- Demoscene
- Humour
- 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.
So it took me a couple of years instead of a couple of hours. I'm lazy,
I know. Sue me. Well at least I got of my arse and actually did
something, although it's (currently) not much...
So what's to find in this 'ere spot on the 'net? - Development links, advise, rants and tidbits
- I'll bore you to death with what I consider to be good, bad or just plain stupid
- Various kinds of generic thoughts about movies, music, history etc.
Hopefully you may be able to find something interesting or useful here; that's the plan, anyway. Enjoy your stay!
|