Strict mode (see Annex C in ECMAScript 5 specification) is known as a mechanism to use the a restricted variant of JavaScript. Some developers donβt really like it, however my personal experiences demonstrates a lot of good advantages (including catching the unintentional globals) when leveraging th...
What Github does to project repository and collaboration, Travis CI does it to continuous integration. If you have an open-source project, there is a huge chance that you can benefit a lot from hooking your testing via Travis CI. As of now, it supports projects using Clojure, Erlang, Groovy, Java, N...
A pre-commit check is invoked right before a change is committed into the repository. This is a perfect place to run a quick smoke test to ensure that no broken code is ever checked in. Many source control systems, including the powerful Git, support pre-commit check as part of its hooks system. Unf...
Inconsistency begets insanity. If every developer follows the agreed coding conventions, life feels more wonderful. When a string literal can be enclosed in single or double quotes (ECMAScript 5 specification section 7.8.4), often it helps to stick with one type of quotes. For example, jQuery code s...
A software engineerβs life is not complete without implementing a programming language. While I did create a lightweight BASIC interpreter targeting embedded systems eighteen years ago, Iβm still longing to design and work on my own style of programming language. Looking around various languages whi...
Work-life balance always fascinates me. After all, we all have personal and work email addresses for a good reason. Sometimes it helps to avoid conflicts of interests, often it is useful to draw the demarcation line between the career and personal life.
Modern CPU is equipped with a branch predictor to help with optimizing program execution. For example, a loop typically exits only once and the flow is kept inside the loop for a while (itβs called a loop for a reason). Since the terminal condition to quit the loop is only hit once, the loop predict...
A common pattern to speed-up the performance of your JavaScript code is to leverage the optimized property access found in modern JavaScript engines. In fact, fast property access is a key in design elements of V8. It is also achieved in JavaScriptCore, the default engine behind WebKit, via polymorp...
Application startup time gives the first perception of the overall performance. When your app launches in 3 seconds, your user may think twice before he runs it again. Optimizing the startup time involves a lot of investigation effort, covering areas from fast transport/delivery to compact (minified...
Frog is the name of the new Dart-to-JavaScript compiler (if the name does not ring a bell, read about poison dart frog first). In the near future, it will be the only way to compile Dart code to be usable in various JavaScript environments.
V8 is the JavaScript engine of Google Chrome. Itβs also useful as a stand-alone library, for example I use it as the basis for EightPack, a collection of command-line utilities for web-oriented continuous integration tools. Of course, itβs well known that the famous Node.js project leverages V8 for ...
Lately there has been a change on how Dart can be started in the browser. Since no other browser except Dartium, a special build of Chromium, has built-in Dart support, the process has two possible strategies. This is evidenced if you start a simple project from Dart Editor and peek at the HTML file...
This blog post describes various ways to install PhantomJS, the scriptable headless WebKit, on Mac OS X system (Snow Leopard and Lion), sorted from the most recommended way to the least recommended way.
If you are a regular reader of The Altucher Confidential, his recently published book I Was Blind But Now I See can be high on your reading list. The book is essentially the βbest ofβ collection of his blog posts, often expanded with some new supporting materials. This is both good and bad: it feels...
Have you encountered a case where you are suspicious about the performance issue in some part of the application and your concern was dismissed? Imagine a typical comment like:
I had a lot of fun writing about the Boolean trap issue. I also have more similar API-related discussions in the pipeline. Rather than writing a long-ish essay again, I decide to put out more bite-size chunks. Here is the first.
This year alone, Sencha blog corner hosts around 190 blog posts of assorted topics, anything from product announcements, basic learning guides, HTML5 scorecards, to web technologies highlights. The winning blog posts, in terms of how many tweets they got (at the time of this writing), are listed her...
In a nutshell, Esprima (esprima.org) is a JavaScript parser written in pure JavaScript. In the near future, it will expand itself to something even more cooler, but as of now itβs just a parser. It uses the common recursive descent approach. The main parsing routine is not machine generated, everyth...
Last week, WebGL Camp #4 was held at the main office of Mozilla in Mountain View downtown. Nicolas has written an excellent wrap-up. Slides are getting uploaded, recorded video will be available some time in the future. Such a camp always works as a reminder that if you arenβt yet excited about WebG...