My book `Cross-platform Desktop Application Development Electron, Node, NW.js, and React` is out


I always fancied to write a book that would combine most of my programming experience gathered over two decades. Packtpub gave a chance that I embraced gratefully. And here we are, half a year of efforts paid off and my book is live - split the book in four tutorials, starting with basics and advancing progressively though more and more complex aspects. So the first part guides on creating a file-explorerapplication built with pure JavaScriptand NW.

Bringing Angular 2+ Development Experience into Backbone


I’ve been working with Backbone for years and it suited me pretty well. I do love its conciseness. It gives the desired abstraction and yet leaves you at the full control of your app. When you need to know what exactly is happening in your app behind your code, it’s matter of minutes to go though the Backbone annotated sources and figure out the flow. That’s something you hardly can afford with other frameworks such as Angular, React, Vue or Amber.

Guarding Functions in JavaScript


As developers we spend a lot of our time on debugging and particularly on spotting the source of a problem. DevTools guides us though the call stack, but the tracing process can be still pretty time consuming, especially on a cascade of asynchronous calls. The remedy here is early problem reporting. Let’s say we have a function to search trough a multidimensional structure for the elements containing a given string. We make a call that looks like legit:

Nightmare of End-to-End Testing

How to

Modern application get complex, we cannot go without automated testing. The canonical agile testing quadrants are split to technology-facing and business-facing tests. As for technology-facing testing I believe nowadays everybody has dealt with unit-tests. Thus we make sure that the smallest parts of the system act as intended in isolation. Also we use component tests to verify the behavior of large parts of the system and integration tests to check if communication between object isn’t broken.

Writing Backbone Applications in TypeScript


Nowadays JavaScript evolves fast. We have ECMAScript 6th and 7th editions released over just 2 years. the current support of ES6 specification in major browsers is close to 100%. So the language changed, and changed for better. It has become more expressive, much more concise and readable. It is tempting to jump into, but what about older browsers? Transpilers can translate ES.Next into the old-good JavaScript of ECMAScript 5th edition.

Enhancing User Experience: Missing chapter of my book `Unlocked JavaScript`


My book “Unlocked JavaScript” ( has been released on December 7, 2015. This book is for developers already familiar with JavaScript who want to level up to get the most out of the language. The book is practice–oriented and would be most helpful for those who is used to learn by doing as the topics are thoroughly covered with real-life examples and tutorials. This is an extract of a chapter not included in the book.

Responsive Web Design: Best Practices for Improving Performance


User are impatient. Majority would leave a resource if it failed delivering the core user experience in 1-3 seconds. Today when mobile overtakes fixed Internet access you need to think of how the app loads on a low bandwidth, what images must requested on what devices, how stylesheets and JavaScript are cached e.t.c. Fortunately there a number of amazing tools such as PageSpeed Insights, WEBPAGETEST, Pingdom Website Speed Test. So you can find out what’s wrong with your app in terms of web-performance.

Automated CSS Regressive Testing in Practice


We write unit-tests tests for server-side source code and for JavaScript. Even when putting aside benefits of TDD approach it gives us a priceless thing – early problem reporting during refactoring. So you make change, you run tests and you will know at once if anything broke. What about CSS? You encapsulate a declaration set into a separate rule, look through the site pages where dependent classes used and satisfied proceed with refactoring.

Modularizing and Packaging JavaScript for Scalable, High Performance Web Apps


Modules in JavaScript With the advance of MV* frameworks you can observe as JavaScript evolves ahead of official specs towards large scale development. It requires even higher level of maintainability and one of the first focuses here is encapsulation and information hiding. We need the code-base to be organized into independent, interchangeable components so that each of them contained code implementing only one aspect of desired functionality. Here comes to help the Module pattern.

10 Things You Need to Know About CSS

How to

CSS may look as a simple language. In fact it can be simple only to use, but definitely not simple to maintain. Observing that the maximum number of people who can productively simultaneously work on CSS is one – @threedaymonk The skills required to write good CSS code are by and large the same skills required to write good code in general. – Lea Verou Everybody who used to work on a large-scale projects knows how hard it can be to keep constantly growing CSS sources readable and consistent, styles reusable and loosely coupled.

Creating a web-component: VanillaJS vs X-Tag vs Polymer


It seems like these days the most trending concept in the HTML5 world is web components. But what the fuss is all about? In order to make such a simple thing as a container expanding on click in past we needed to write CSS and JavaScript. Today thanks to checkbox-hack and :focus or :target pseudo-selector we go on with CSS-only. In fact by using summary/details elements we do not need any tricks with CSS to make it working, considering that browser already supports this feature.

Fancy Modal Dialogs without JavaScript


What we are going to do is a modal window that opens in the center of the screen by pressing a link while everything that underlies the window becomes blurred. It can be done by [Dialog element]( “Dialog` element”), but these day we don’t need any JavaScript realy to solve this task. Well, there are two main techniques to handle onClick events in CSS – checkbox-hack and selection by :target. The second way binds our modal window to a URL hash.