1. Erlang and web development

    First off all what is Erlang? Here’s description from the http://www.erlang.org/

    Erlang is a programming language used to build massively scalable soft real-time systems with requirements on high availability. Some of its uses are in telecoms, banking, e-commerce, computer telephony and instant messaging. Erlang's runtime system has built-in support for concurrency, distribution and fault tolerance
    First time I heard about Erlang was way back into 2007. At that time I thought about it as a great choice for development of the server applications such as game servers, instant messaging, etc. Recently I was wondering if are there any Erlang frameworks for web development exists. And as you probably expected there are Many frameworks. I made some research of the Chicago Boss. And you know it’s just awesome! One of the greatest features is Zero downtime code upgrades in production. I’m sure Chicago Boss doesn’t so mature as for example ASP.NET. But you know ASP.NET is a general solution. You can build any kind of web application using it. It could be regular HTML pages or highly interactive single-page application or just web service. I suppose Erlang (and Chicago Boss) are more specialized. For example if I plan to build web site with regular HTML pages I probably will rely on ASP.NET (or PHP). But for single-page applications with requirements on high availability I will consider Erlang (Chicago Boss) + HTML5 (jQuery, Knockout) …


  2. Tempo – tiny templating engine (JavaScript)

    Tempo is a neat JSON templating engine with No dependencies. And it’s just 8KB of the minified JavaScript code. However if we will decide to use JQuery (for example to make AJAX requests in a convenient way) probably we could just use mature jQuery Templates. Anyway I’m totally sure Tempo could be a great choice for some kind of projects. …


  3. Knockout.js - MVVM for the client-side code

    If you didn’t have a chance to review Knockoutjs library written by Steve Sanderson, please Do that Smile It’s just amazing! Furthermore it has great interactive tutorials so you’ll be able to learn the basics in a very convenient and fun way! By the way Steve shared which open-source components he used in learn.knockoutjs.com. …


  4. 12 Steps to Better Code

    Just came over the amazing article The Joel Test: 12 Steps to Better Code written way back in 2000, but it's still 100% true! Actually IMHO we could improve the article slightly (today after more than 10 years since original article was published)

    • It’s worth to add there something like – “Do you use any Test First Development technique?
    • Also “Do you have a spec?” could become something like “Do you use Acceptance Test Driven Development (ATDD)?”
    Interesting thing is that I read that article several years ago and it was very fun to read it now to compare my perception. …


  5. Acceptance Test Driven Development (ATDD) principles

    Acceptance Tests are very similar to the Functional Tests. And they actually are the Integration Tests. The main idea of the Acceptance Tests is to create Executable Specification (Spec) for the project. And that Spec will be readable by humans and machines. So ideally it could stand in place of requirement documents. To generate document all we need is just run Acceptance Tests with an parameter. Such reports could be send to the customer on the end of each iteration and could be available all the time on the CI server. It's the main advantage of the Acceptance Tests as for me. …


  6. Offshore development… and software defects

    Just read interesting overview of the Offshore development related issues. The main point is that NON Co located projects will have approximately 2.8 times as many software defects as Co located projects! Amazing thing is that Agile could fix one of the Offshoring issues (Many Defects), by cleaning up defects as earlier as possible. Since we deliver smaller releases we are able to make carefull testing of all features. So defects will be fixed earlier with a less price.


  7. CoffeeScript, Sass and Less (support for Visual Studio)

    There are new amazing stuff an Scott Hanselman’s blog (as usual Smile)! He wrote about Mindscape Web Workbench extension for the Visual Studio, which adds CoffeeScript, Sass and Less support into it. As for me I really liked CoffeeScript & Sass. Below are some quotations and screenshots from the original article. …


  8. Agile Development Management Tools

    Just read interesting research The Forrester Wave™: Agile Development Management Tools, Q2 2010 I was a little surprised that TDD, BDD, FDD are the separate Agile methodologies. Previously I was totally sure that things such as TDD & BDD are just a way to Improve an (any?) methodology! …


  9. ASP.NET MVC 4 Roadmap

    ASP.NET MVC 4 Roadmap is out there! There are so exciting themes such as simplify development process for the tablet and mobile devices (HTML5), make it easier to deploy and hosting MVC application in the cloud (such as on Windows Azure) etc. …


  10. Stateless. A C# Hierarchical State Machine.

    Today I finally got some time to research Stateless And you know, it’s awesome! Key features:

    • Generic support for states and triggers of any .NET type (numbers, strings, enums, etc.)
    • Hierarchical states
    • Entry/exit events for states
    • Guard clauses to support conditional transitions
    • Introspection
    • Ability to store state externally (for example, in a property tracked by Linq to SQL)
    • Parameterised triggers
    • Reentrant states
    Let's consider the following example (it's available in the Stateless source code). …