Hello, reader!

My name is Eugene Lazutkin.

I'm a software developer based in the Dallas-Fort Worth metroplex. Lazutkin.com is my professional blog, which contains short writeups and presentations regarding modern web applications. All articles here are written by myself, unless stated otherwise.

Recent posts

The many benefits of pot

10 Apr, 2009 - 2 minutes
Steve Yegge is one of the bloggers I read almost religiously. His posts are full of insights on the software development topics and in general, and he is always ready with an amusing anecdote from his rich life. His last post Have you ever legalized marijuana? didn’t disappoint either. The author explains “Shit’s Easy Syndrome” (a difficult topic even for seasoned bloggers) in a gay romp that takes a reader from a light-hearted review of a book on “bugs in our mental software” to hapless VPs to many technical difficulties of legalizing a psychoactive drug extracted from the plant Cannabis sativa.

JavaScript explained

1 Mar, 2009 - 5 minutes
Explaining some dark corners of JavaScript, browsers, or Dojo for the 100th time I realized that I already did it on numerous occasions, and some of my answers are published on public web sites. So I decided to round up the most general ones I posted on StackOverflow and publish links to them here for a future reference. JavaScript This section is for language-specific topics. They can be equally applied in any environment.

Trying out Google Friend Connect

4 Dec, 2008 - 2 minutes
As you may know today Google released Friend Connect. I decided to give it a try. It took about 20 minutes to set up my blog with 4 gadgets: Members, Sign In, Rate/Review, and Wall/Comments. It took about 30 minutes to separate the skin from all these widgets, and set up the Canvas so users can see gadgets in a separate window, if they want to. Google Friend Connect doesn’t have any server-side components on user’s server — everything is handled by Google.

Using recursion combinators in JavaScript

In the previous post we explored “array extras” and how they can help us to write concise yet performant and clean code. In this post we take a look at generalizing recursive algorithms with recursion combinators — high-level functions that encapsulate all boilerplate code needed to set up the recursion. These functions were added to dojox.lang.functional and will be officially released with Dojo 1.2. In general the recursion is a form of iterative problem solving in the same category as loops.

AOP aspect of JavaScript with Dojo

Finally: my open source JavaScript project DCL is built on ideas described in this article. Available for node.js and modern browsers, it implements OOP with mixins and AOP at "class" and object level. Read documentation and background articles on www.dcljs.org, clone its code on github.com/uhop/dcl, and follow @dcl_js. If we look at the history of computer programming languages, we can see that practically all new programming methodologies were about one thing: taming complexity.

Google App Engine: the first look

8 Apr, 2008 - 5 minutes
Yesterday Google announced its new offering: Google App Engine. These are my random notes I did yesterday when I studied the new service. Google didn’t go the same way as Amazon with its AWS. The former offers a form of shared hosting (think “distributed WebFaction"), while the latter offers a virtualized environment (think “distributed SliceHost"). So basically we are talking about more high-level approach to web applications, which is easy even for novices.

Dojo 1.1 is out

30 Mar, 2008 - 2 minutes
As you all know by now Dojo 1.1 was released in the wild. You can get a lot of useful links and info from James Burke’s post on Dojo 1.1, but let me tell you why you should be excited: Dojo 1.1 is the first official release, which contains dojox.lang.functional. It was available in the trunk for awhile, but now you can use it without deploying Dojo courtesy of AOL CDN.

On JavaScript, EDP, and 0ms timeouts

23 Mar, 2008 - 11 minutes
What makes JavaScript so different from other languages? Is it its dynamic nature? Its prototype-based funky inheritance? No. The most unusual thing for newcomers is how JavaScript programs handle the workflow. The program looks like a bowl of spaghetti. There is no start or end of the program. What we have here is a bunch of functions, which are called in response to some external events. In most cases we have no way to predict the order of these events.

Dojo docs: gfx and dnd

15 Mar, 2008 - 1 minutes
I just finished the first cut of the dojo.dnd 1.1 technical documentation. Let me use this post to remind you about the dojox.gfx 1.1 documentation. I hope I satisfied the curiosity of many developers, but the ultimate proof will be the number of simple questions on Dojo Forum. Let’s hope it will go down. And don’t forget that the Dojo Book has a DnD chapter too. Both documents are hosted on Google Docs, and are “live” documents — as soon as I update the document it is updated for you too.

What open source is about

27 Jan, 2008 - 4 minutes
F/OSS is a phenomenon of the modern life. But what makes it successful? Ben Laurie is convinced that Open Source Is Just Economics. I beg to differ. Yes, it does make sense for several companies to gang together and develop something jointly. And they did it for years without the open source. Not always successfully, but they did it. For example, IBM has cooperated with Microsoft on OS/2 back in the days, and there are more examples.