Igor Ostrovsky on September 9th, 2009

Not many developers have the insights of Michael Abrash. He is a game developer with decades of experience building commercial games, including a game you may recognize as "Quake". His Graphics Programming Black Book is years old, but much of it is just as interesting as it was at the time of writing. And, the [...]

Continue reading about Program like a Quake developer

Igor Ostrovsky on August 30th, 2009

pre.code { margin-left: 40px; } Over the past couple of years, auto-complete has popped up all over the web. Facebook, YouTube, Google, Bing, MSDN, LinkedIn and lots of other websites all try to complete your phrase as soon as you start typing. Auto-complete definitely makes for a nice user experience, but it can be a [...]

Continue reading about Efficient auto-complete with a ternary search tree

Silverlight 2 is an awesome platform for development of rich web applications. One issue to be aware of, though, is that some browser features do not extend into Silverlight apps. For example, the Back and Forward browser buttons do not always work as the user may expect with Silverlight apps. The set of browser features [...]

Continue reading about 7 tips for extending browser functionality to Silverlight apps

Igor Ostrovsky on May 1st, 2009

It took significantly longer than I expected, but the RoboZZle demo video is finally on YouTube. The video made the reddit front page, so you can read the usual mixture of insightful, funny, and outright insane comments on the reddit page and the YouTube page. My favorite funny comment is this one: And finally, this is [...]

Continue reading about My YouTube debut: a RoboZZle demo video

Igor Ostrovsky on April 14th, 2009

In database terminology, a view is a named query that typically aggregates data from multiple tables. When using views, it is important to remember that querying a view will evaluate the query that defines the view. Repeated evaluation of the view – say from within a nested query – may seriously impact or even kill [...]

Continue reading about Precomputed view: A cool and useful SQL pattern

Igor Ostrovsky on April 1st, 2009

Notice that this post was published on April 1, 2009. For decades, computer science students have been taught that so-called NP-hard problems do not have known efficient solutions. These problems include the infamous Travelling salesman problem, subset sum, 3SAT, and many more. But – as is often the case – where theoretical Computer Science failed, [...]

Continue reading about Choose expression: proposal for a revolutionary C# construct

Igor Ostrovsky on March 23rd, 2009

It’s now been a month since I launched RoboZZle, so it is a good time to reflect on how things went so far. It has been a great experience, and the project took up all of my free time and then some. For fun, I’ll discuss different aspects of RoboZZle and assign each a letter [...]

Continue reading about The first month of my online game

Igor Ostrovsky on February 22nd, 2009

After about 3 months of evening coding, the game that I’ve been working on is now live. RoboZZle is an online puzzle game that challenges you to program a robot to pick up all stars on a game board. The game mechanics are simple, yet allow for a wide variety of challenges that call for [...]

Continue reading about My hobby project: a social puzzle game developed in Silverlight

Igor Ostrovsky on February 2nd, 2009

Here is a little puzzle for C# developers reading my blog. What is the error in the program below? using System.Collections.Generic; class Program { public static void Main() { int[] arr = new int[10]; IEnumerator<int> e = arr.GetEnumerator(); } }

Continue reading about Puzzling over arrays and enumerators in C#

Igor Ostrovsky on November 19th, 2008

Windows Live Writer is an awesome tool that I use to write all of my blog posts. I am so used to it that I can’t imagine blogging without it, but I have also found ways to shoot myself in the foot with it. Here are two ways in which I managed to lose a [...]

Continue reading about How to recover a lost post in Windows Live Writer