Top 10 ES6 Features Every Busy JavaScript Developer Must Know

I recently went to HTML5 Dev conference in San Francisco. Half of the talks I went to were about ES6 or, as it’s now called officially, ECMAScript2015. I prefer the more succinct ES6 though.

This essay will give you a quick introduction to ES6. If you don’t know what is ES6, it’s a new JavaScript implementation. If you’re a busy JavaScript software engineer (and who is not?), then proceed reading to learn the best 10 features of the new generation of the most popular programming language—JavaScript.

Here’s the list of the top 10 best ES6 features for a busy software engineer (in no particular order):

  1. Default Parameters in ES6
  2. Template Literals in ES6
  3. Multi-line Strings in ES6
  4. Destructuring Assignment in ES6
  5. Enhanced Object Literals in ES6
  6. Arrow Functions in ES6
  7. Promises in ES6
  8. Block-Scoped Constructs Let and Const
  9. Classes in ES6
  10. Modules in ES6

Continue reading “Top 10 ES6 Features Every Busy JavaScript Developer Must Know”

HTML5 Dev Conf 2015 Recap with Notes and Slides

Last week, I attended the HTML5Dev conference in San Francisco which was just across from Capital One SF office at 201 3rd St. The conference was split across a few building which made it hard to navigate and find talks.

The whole conference was along the lines of React is amazing, ES6 is the future and Node.js is everywhere. There were a few talks on the Internet of Things, design, UX and HTTP/2 as well. Here’s the recap of the talks to which I went to.

Continue reading “HTML5 Dev Conf 2015 Recap with Notes and Slides”

Contrasting Enterprise Node.js Frameworks: Hapi vs. Kraken vs. Sails.js vs. Loopback

I published this essay Contrasting Enterprise Node.js Frameworks: Hapi vs. Kraken vs. Sails.js vs. Loopback on the Capital One engineering blog . Feel free to leave a comment! Here’s a blurb:

Node.js/Io.js is a non-blocking I/O platform based on the JavaScript language. It has been capturing the hearts and minds of software developers for the past couple of years. It has been doing this not only for developers in startups And small companies, but more interestingly for enterprise developers as well. For example, PayPal, LinkedIn, Walmart, Netflix, eBay, Uber and other tech giants switched from Java and the likes to Node. Its popularity is attributed to better performance and having one language (JavaScript) for all layers: back-end, database and front-end.

As with any new platform, there are a lot of Node.js/Io.js frameworks to choose from. However, before we proceed, we need to define what enterprise means. For the sake of simplicity, an enterprise project is one where you have teams of more than 10 developers working on it, where you have huge traffic to handle and high stakes, meaning the services must be running 24x7x365.

Judging frameworks is highly subjective. When it comes to building enterprise-level applications, we need to consider some of the following things:

  1. Best practices and patterns: Whether the framework is DIY or provides clear patterns to use.
  2. Configuration: How easy it is to configure the framework.
  3. Convention: Is there a convention to follow if that’s the preferred route?
  4. Horizontal scaling: How easy it is to scale apps built with this framework.
  5. Testing: How to test the application.
  6. Scaffolding: How much developers have to code manually vs. using built-in code generators.
  7. Monitoring: How to monitor the application
  8. Track record: How proven a framework is, i.e., who supports it and how well it is maintained.
  9. Integration: How rich the ecosystem of plugins/connectors is.
  10. ORM/ODM: Is there an object relational/document mapper.

While performance is important, it varies on the requirements and business logic of a particular project. Running meaningful benchmark tests is non-trivial.

The main focus of this post is to compare the four Node.js/Io.js frameworks: Hapi, Kraken, Sails.js and Loopback.

 

The full essay is at http://www.capitalone.io/blog/contrasting-enterprise-nodejs-frameworks.

Joining Capital One, a Technology Startup

Most of the people outside of Capital One think of it as a bank with those visigoths commercials and the “What’s in your wallet?” slogan. Few people know that Capital One is a startup in the financial world if you compare it other big names such as Wells Fargo, Bank of America or Chase. Capital One started only a couple decades ago as a data driven technology company. Before it, there was only one type of credit card and people with less than stellar credit just weren’t eligible for it. Capital One revolutionized the credit card industry by analyzing risks and consumer profiles. It turned out to be a big success. Then came the visigoths, along with the acquisitions of traditional brink and mortar (such as Chevy Chase) and online banks (ING DIRECT which is Capital One 360).

Continue reading “Joining Capital One, a Technology Startup”

How to Use Jade and Handlebars in Express.js

I hated Jade as many other Node.js developes do.  But I changed 180 after I realized that it has tons of features.

At Storify and DocuSign we used Jade for EVERYTHING. We used Jade even in the browser. There is a little trick called jade-browser. It was developed by folks at Storify. I maintained it for a bit.

The funny thing is that DocuSign team used jade-browser long before they met me. They swear they hired me without knowing that I was involved in that library. :-)

Anyway, after covering Jade and Handlebars in previous posts, it’s time to apply them to do some real work. In this post, I’ll cover:

  • Jade and Handlebars usage in Express.js 4
  • Project: adding Jade templates to Blog

Continue reading “How to Use Jade and Handlebars in Express.js”

5 Hacks to Getting the Job of Your Dreams to Live a Happier and Healthier Life

Getting a job of your dreams might be easier than you think. Apply these five hacks and see for yourself.

Study after study has showed that being satisfied and happy at a job is paramount for a healthy, productive and long life. In other words, if you’re miserable at a job, then other areas of your life will suffer as well: personal life, health, spirituality, family, friends, etc.

Here are the 5 Hacks that will help you to get your dream job:

  1. Write a book
  2. Create a strong web presence
  3. Boost your LinkedIn profile
  4. Speak at a conference
  5. Take a MOOC (Massive open-online course)

You can use these five hacks to get the job of your dreams in pretty much any industry or field. And most of them will cost you nothing or close to nothing!

Of course, any of these hacks are useless if you don’t know what your dream job is. If you are not sure, then before reading any further, answer these questions:

  • How much money do you want to make in a year or an hour?
  • How much maximum commute can you tolerate (e.g., 30min, 1hr)?
  • Do you like a certain area of your city?
  • Do you want to work with certain technologies or in a particular industry?
  • What kind of benefits do you want to have (ideally)?

Go crazy with these questions, let your fantasies go wild… yet remain realistic, otherwise you won’t believe it’s possible.

We are not separate people when we go to work and come back from it. We cannot separate our jobs from the rest of our lives. The quality of your job and its factors are in direct proportion to your happiness and physical and mental health.

So let’s start with my favorite hack.

Continue reading “5 Hacks to Getting the Job of Your Dreams to Live a Happier and Healthier Life”

The Astonishing Power of High Performance JavaScript, Without The Headache or A Steep Learning Curve

Stop struggling to code front-end the hard way. React.js is performing fast DOM manipulations and is easy to learn.

I stumbled upon some guy from Zurich, Switzerland who was arguing that you don’t need MVC (model, view, controller) with React.js.

What?

I love controversial topics! How refreshing to hear such a brave opinion after almost a decade of MVC-domitaion.

VIDEO —>>>> The Astonishing Power of High Performance JavaScript, Without Headache or Steep Learning Curve from Azat Mardan on Vimeo.

Continue reading “The Astonishing Power of High Performance JavaScript, Without The Headache or A Steep Learning Curve”

Write Templates Like A Node.js Pro: Handlebars Tutorial

I’ve wrote how I struggled with Jade, but I had no choice except to master it. However, before beginning to understand Jade, I admired Handlebars GREATLY. I did it mostly for its simplicity and similarity with plain HTML.

If you want to write templates for Node.js apps, then consider Handlebars. This short tutorial will get you started on the path of becoming a pro. And if you haven’t even heard about Handlebars, then you’re missing out big time!

Here’s the outline of this post:

  • Handlebars syntax
  • Handlebars standalone usage

Continue reading “Write Templates Like A Node.js Pro: Handlebars Tutorial”

To Engineers Who Tried to Use Jade Template Engine and Can’t Get Started

When I started working at Storify as a Node.js Engineer. The tech stack was Express and Jade. I hate to admit it, but I struggled with Jade a lot!

Before, I mostly worked with Underscore, and Handlebars. I attempted to modify some HTML in the Jade templates. Other times I would only change the text. Those were trivial updates, but very often they cause the whole server to crash.

I was failing miserably to learn by trial and error. I hated Jade. I was starting to hate editing templates as well. Then I had a light bulb moment: I need a tutorial. I went to the official docs. I wish this article existed at that time. After spending just an hour learning Jade, I was able to use Jade and make all the changes to templates smoothly.

Smart people learn by their mistakes, and wise people learn from others. Don’t repeat my folly. Skim through this Jade tutorial to harness the power of this wonderful template language.

Continue reading “To Engineers Who Tried to Use Jade Template Engine and Can’t Get Started”

How to Write Your First Test With Mocha

The goal of this mini-project is to add a few tests for Blog.
The project is on GitHub at https://github.com/azat-co/blog-express.

We won’t get into headless browsers and UI testing, but we can send a few HTTP requests and parse their responses from the app’s REST end points.

Continue reading “How to Write Your First Test With Mocha”

How To Use Mocha With Node.js For Test-Driven Development to Avoid Pain and Ship Products Faster

Test-driven development (TDD) , as many of you might know, is one of the main, agile development techniques. The genius of TDD lies in increased quality of code, faster development resulting from greater programmer confidence, and improved bug detection (duh!).

Historically, web apps have been hard to autotest, and developers relied heavily on manual testing. But, certain parts such as standalone services and REST API can be and should be tested thoroughly by the TDD. At the same time, rich user interface (UI) / user experience (UX) can be tested with headless browsers such as PhantomJS.

Continue reading “How To Use Mocha With Node.js For Test-Driven Development to Avoid Pain and Ship Products Faster”

Node Program Lecture

Node Program is ideal for people new to Node, and for those who can use some help with JavaScript itself (stuff like “this”, prototype, var, etc.). In the first few lectures, I cover JavaScript fundamentals. Here’s a video of the beginning of one of the previous Node Program trainings: http://youtu.be/JPdTOJXG-hQ. It’s 19 minutes and a part of a six-hour self-study online course.

The End of Node.js?

UPDATE May 21, 2016: The io.js became Node.js and everything is better then ever. Conclusion? Avoid drama, speculations and distractions. Just keep on building useful and good applications.

There have been a lot of buzz around io.js for the past few months. Basically, io.js is a branched (forked in Git/GitHub terminology) version of Node.js.

One of the main reasons to deviate from the main Node.js project was to speed up the development. This way io.js can have more recent features from Google Chrome V8 and ECMAScript6. Those are good things, right? Then, why there has been so many concerns over the future of Node.js/io.js? Why some people were confused and skeptical?

Continue reading “The End of Node.js?”

My Predictions for 2015

Here are my ten predictions for 2015. Most of them probably will be incorrect. Yes. I’m seldom right, but I’m never without an opinion.

  • Web development, online payments, Node.js and JavaScript will continue to grow with more and better frameworks, hosting and solutions that don’t even require coding.
  • Udemy, SkillShare and similar marketplaces for online courses will increase the number of offerings. The quality bar will raise. The marketplaces might become saturated.
  • Coding academies will expand into online format to cut costs and consolidate as the geo-markets will get saturated. At the same time traditional education (colleges, universities) will continue to get people into debt and produce inadequate results.
  • The number of freelancers (coding, design, copywriting, VAs) will increase while their prices will remain competitively low.
  • Apps and small SaaS businesses will become even easier to build spiking new offerings for consumers and business.
  • Majority of unsuccessful and unpopular podcasts (~95%) will die.
  • More people will start leaving their normal jobs for entrepreneurial endeavors or start side projects. Other will look for alternative paths for their creativity (books, blogging, freelance).
  • Robots will become smarter and continue to displace blue-color jobs (driverless cars, Amazon.com delivery drones, Roomba). Hence, re-training for new jobs is vital (see #2 and #3).
  • The zen-like lifestyle stress-free trend will continue to grow supported by more studies and better diets like Paleo/Bulletproof/SCD/Slowcarbs. More farm-to-table choices and more organic and grass-fed options will be available.
  • Technical and business books will become cheaper, often times free to serve as lead generation for later upsell into other products like online trainings, seminars… and entertainment books are already at the $0.99 mark.
  • Internet television (YouTube) and shows from tech companies (Netflix, Amazon.com) is going replace traditional TV in more home. It will be even cheaper to start your own TV channel online that ever before.

What are your thoughts about my predictions? What are you predictions for 2015?

Guest Blogging

Guest blogging is writing a post on someone else’s blog. It’s a good way to get new readers and engage in a new community. For new bloggers, it’s a good way to get attention to your own blog.

Michael Hyatt, whose book Platform I’m reading now, emphases this point. Other prominent bloggers, such as Chris Brogan and Guy Kawasaki, state it as well. Moreover, for readers it provide a new perspective and variety.

I decided to offer other people to write on Webapplog.com. Send me your ideas to my email hi (at) azat (dot) co.

 

Free & Easy Hosting

If you need a simple website for your project, then use GitHub pages. It’s free and better than cheap $4.99/mo hosting, which can be easily hacked, is slow and requires you to use cPanel.

Here’s what you’ll need to get your website up and running:

  1. Create account on GitHub (do it once).
  2. Create a new repository.
  3. Send your developer a link to that repository, and a Twitter Bootstrap theme of your choice (Google it if you don’t know where to get a beatiful theme).
  4. Point your CNAME records in Godaddy, or whatever you’re using, to GitHub IPs (192.30.252.153 and 192.30.252.154).
  5. Merge pull request from you developer on GitHub.com.
  6. Boom! You’ve got your website.

I use this technique for my 10+ websites, some of them quite fancy:

There’s no need for WordPress or PHP. GitHub Pages is free and it is faster than BlueHost.

The site must be static only without any PHP, Node.js or any other server-side logic. You can use foxyform or EmailMeForm for contact forms, and Gumroad for sales. For blogs, you can use Wintersmith or Jekyll.