Posts

JavaScript Developer Toolkit - Emmet

This is a second article about JavaScript developer's toolkit and today we're going to talk about Emmet . If you've missed the first article about the useful tools for JavaScript developers, have a look at it here . What is Emmet? Essentially it gives you shortcuts you can type that expand into full HTML or CSS. Like nav>a*5  will expand into a <nav> tag with eight links inside it with empty hrefs . <nav> <a href=""></a> <a href=""></a> <a href=""></a> <a href=""></a> <a href=""></a> </nav> Or, try div.module*2>p*2>lorem and press tab . Firstly it will convert div.module*2  into two < div> elements and associate them with a module css class. After that it will look at >p*2  and create two <p> elements. In the end >lorem  will fill the paragraphs with famous lorem ipsum text. Take a look at the prod...

Data Scientist Toolkit

Image
The history of technology is the history of the invention of tools and techniques, and is similar in many ways to the history of humanity. And since data scientists are mere mortals, they also need tools to make their work more productive and even enjoyable, but that's just me. In this article we'll be talking about main languages and tools used by data scientists. For ones who have recently entered this field of science, it will be a great overview about mostly used tools. R A great advantage of R is that scientists adopted it as their de facto standard. As a consequence, the latest cutting-edge techniques are first available in R. It also seems to be the preference of most Kaggle competition winners . Most of R practitioners use R Studio , and while they do offer a free community version, enterprise edition is a bit expensive. I use the community version only when I compete in Kaggle, haven't won anything yet :( Commercially I find  Sublime Text  a good alternat...

Modular Design Patterns in JavaScript

Last week we've discussed how to create classes and namespaces in JavaScript. For those who missed it, you can read it here . There is however something else you need to know regarding the topic, which is modules. Modules When we say an application is modular, we generally mean it's composed of a set of highly decoupled, distinct pieces of functionality stored in modules. Module can and are implemented using classes, which we already know how to define. So what is the problem? When you try to build a complex piece of software, you end up with hundreds of classes. All of them somehow interact with one another and since JavaScript is not compiled, your job is to reference and load these classes in a correct order. This is why module loaders specification was invented - the most prominent of which are CommonJS and AMD . CommonJS Currently, CommonJS is a de facto standard. Many third-party vendors are making modules or module-load systems according to the CommonJS...

Big Data Buzz Words Overview

Image
I wanted to start this blog by a quick overview of current state of Big Data playground. There was a lot of noise during this year from everywhere making it nearly impossible for a newcomer to learn this world without being overwhelmed. So let's start. How does Big Data differ from NoSQL? NoSql is a type of database, which provides a mechanism for storage and retrieval of data modelled in means other than the tabular relations used in relational databases. The most prominent representatives are Cassandra ,  MongoDB ,  Neo4j and Redis each taking a different approach in data representation. It is important to notice, that NoSql databases have nothing to do with the amount of stored data, but merely it's representation. On contrary Big Data is commonly referred to technologies used to store and operate on huge amounts of data. Usually it is referred to a Apache Hadoop  ecosystem. In fact Hadoop it's file system based databased, so it's also NoSql database. However if Re...

Object Oriented JavaScript

The JavaScript language is simple and straightforward and often there’s no special syntax for features you may be used to in other languages, such as namespaces, modules, packages, private properties, and static members. For this reason, a lot of ambiguity lingers thought the streets of JavaScriptville. Namespaces Before we start creating classes, I would like to introduce the concept of namespaces. Namespaces help reduce the number of globals required by our programs and at the same time also help avoid naming collisions or excessive name prefixing. JavaScript doesn’t have namespaces built into the language syntax, but this is a feature that is quite easy to achieve. We'll create a global function, which will create a namespace according to the received fully qualified namespace name (e.g. JsDeepDive.Common.Managers). We'll iterate over each segment of the namespace and create namespaces where are needed. Full implementation looks like this: function namespace(names...

What Is Bower And Why You Need It

So you've heard everyone talking about this mythical creature called Bower. But what exactly is it? Better to see once than to hear 100 times, so before we proceed any further take a peek at their  site . The problem Recall how you used to manage, and maybe still do, your 3rd party libraries. Firstly you went to their official site or maybe github repository. After finding the latest minified version, you would  get something like this - xxx-1.0.1.min.js, then  downloaded and saved it into your project. At last referencing it in the HTML would do the trick by copy pasting the script tag - <script src="//code.jquery.com/jquery-1.11.0.min.js">. But what would have happened if a new version came up? Well, if you were aware of the update, you would repeat the process again and put xxx-1.0.2.min.js in your library folder. Then you would change the reference in your HTMLs or JavaScript files. You could of course rename the file to xxx.js and omitting the version...

JavaScript Developer Toolkit

The world has changed as it must. JavaScript developers are no longer considered the outcasts of developer community, but a boutique club gaining followers like no one else. However with its popularity and chic, comes the complexity and burden of maintenance. A JavaScript developer can no longer write one's code in a text editor and rely on ad-hock solutions copy pasted from various forums, but surround oneself with professional tools specifically designed and customized for the language. In this article, I'll present  must have  tools, which will assist any JavaScript developer in the crafting of awesomeness. Environment Your OS is largely dependent upon our habits or company's policy, however for server side developers, I would strongly suggest migrating towards Unix base OS like OS X or Linux of some sort - my preference is Ubuntu. The reason behind the choice is the enviroment on which your node.js application runs on, which is Unix machine. The sooner you work on the c...