Q&A: ImageMagick and Code Organization in Express.js

We continue with the Q&A from our readers. This is a question from Ian, the reader of Rapid Prototyping with JS.

We continue with the Q&A from our readers. This is a question from Ian, the reader of Rapid Prototyping with JS.

Continue reading “Q&A: ImageMagick and Code Organization in Express.js”

Goodby MediaTemple and Hello WPEngine

This week I transferred webapplog.com from MediaTemple to WPEngine. MT was orders of magnitude better than my previous frugal shared hosting. Nevertheless, lately my weblog was choking on the days when the traffic was higher than 1,000 visitors. The transition was as easy as uploading SQL dump file and the wp-content folder. At the same time, I changed my nameservers which resulted in insonsistency and the slight downtime was cause by some kinks which WPEngine team was able to solve. However, so far the overall experience of WPE is pleasant and most importantly the speed is lightning fast!

No, WPEngine didn’t pay me credits to write this post. :-) Here is a coupon if you decide to switch: ARTOFBLOG.

This week I transferred webapplog.com from MediaTemple to WPEngine. MT was orders of magnitude better than my previous frugal shared hosting. Nevertheless, lately my weblog was choking (anywhere from 6–12s to load) on the days when the traffic was higher than 1,000 visitors. The transition was as easy as uploading SQL dump file and the wp-content folder. At the same time, I changed my nameservers which resulted in insonsistency and the slight downtime was cause by some kinks which WPEngine team was able to solve. However, so far the overall experience of WPE is pleasant and most importantly the speed is lightning fast!

No, WPEngine didn’t pay me credits to write this post. :-) Here is a coupon if you decide to switch: ARTOFBLOG.

Express.js FUNdamentals: An Essential Overview of Express.js

Note: This text is a part of upcoming ebook JavaScript and Node FUNdamentals: A Collection of Essential Basics.

Express.js is an amazing framework for Node.js projects and used in the majority of such web apps. Unfortunately, there’s a lack of tutorials and examples on how to write good production-ready code. To mitigate this need, we released Express.js Guide: The Comprehesive Book on Express.js. However, all things start from basics, and for that reason we’ll give you a taste of the framework in this post, so you can decide if you want to continue the learning further.

Continue reading “Express.js FUNdamentals: An Essential Overview of Express.js”

Why You Should Not Work at a Startup

I have nothing against startups per se. I think they are great places for exceptionally bright individuals to work on ground breaking products. However, I think there are some misconceptions and myths about working at a startup, especially working in an early stage startup as a technical person, i.e., software engineer (or web developer, or coder, or programmer). Here is my list of reasons why someone should not work at a startup.

Continue reading “Why You Should Not Work at a Startup”

Foreword to Express.js Guide: The Comprehensive Book on Expresss.js

Dear reader, you are holding a book which will open you to understanding and fluent usage of the Express.js framework – standard de facto in web application programming on Node.js. And I would especially recommend this book because it was written by a practicing engineer, one who has a comprehensive knowledge about the full stack of web application development and Express.js in particular…

Dear reader, you are holding a book which will open you to understanding and fluent usage of the Express.js framework – standard de facto in web application programming on Node.js. And I would especially recommend this book because it was written by a practicing engineer, one who has a comprehensive knowledge about the full stack of web application development and Express.js in particular.

Continue reading “Foreword to Express.js Guide: The Comprehensive Book on Expresss.js”

ExpressWorks: an Automated Express.js/Node.js Workshop and Tutorial

ExpressWorks is an automated Express.js/Node.js workshop.

TL;DR: ExpressWorks is an automated Express.js/Node.js workshop.

Continue reading “ExpressWorks: an Automated Express.js/Node.js Workshop and Tutorial”

Q&A: Thank You Web App, Express.js and Emails

I recently received a question from Joanne Daudier. She is a up and coming web developer, middle term student at a JS/Node.js bootcamp called RefactorU and a reader of Express.js Guide. This is what she wrote:

Hi Azat:

I skimmed over your book today. I feel like it is a bit advanced for me since I’m just learning Express. I do have a few questions for you though.

I recently received a question from Joanne Daudier. She is an up and coming web developer, middle term student at a JS/Node.js bootcamp called RefactorU and a reader of Express.js Guide. This is what she wrote:

Continue reading “Q&A: Thank You Web App, Express.js and Emails”

Solving Programming Problems

Programming problems are not that much different from mathematics or physics problems. There are usually an input and an output to which someone needs to arrive by providing an algorithm. This algorithm is typically a function or series of functions.

Programming puzzles and toy problems are good exercises to sharpen skills and prepare for technical interviews. No wonder that more and more online coding schools (e.g., CodeAcademy) make those metal workouts main staple of their courses.

Beginner programmers might benefit by applying these steps to their process of solving a programming problem:

Programming problems are not that much different from mathematics or physics problems. There are usually an input and an output to which someone needs to arrive by providing an algorithm. This algorithm is typically a function or series of functions.

Programming puzzles and toy problems are good exercises to sharpen skills and prepare for technical interviews. No wonder that more and more online coding schools (e.g., CodeAcademy) make those metal workouts main staple of their courses.

Beginner programmers might benefit by applying these steps to their process of solving a programming problem:

Continue reading “Solving Programming Problems”

The Release of Express.js Guide: The Comprehensive Book on Express.js

After weeks of writing and editing, Azat and his team are happy to announce the release of Express.js Guide: The Most Popular Node.js Framework Manual! The book is very approachable and suitable for beginners. If someone wants to save time searching the web and learn the best practices from the trenches, Express.js Guide is the book that has everything: Express.js API reference, quick start guides, 20+ meticulously explained examples and tutorials on over 270 pages with more than 60 illustrations.

Express.js is a de facto standard of Node.js development and the most popular NPM library as of today! However, as with any framework, sometimes the learning curve is steep. At HackReactor, I often asked the same questions about code organization, authentication, database connections and deployment.

Continue reading “The Release of Express.js Guide: The Comprehensive Book on Express.js”

Todo App with Express.js/Node.js and MongoDB

Todo apps are considered to be quintessential in showcasing frameworks akin to famous Todomvc.com for front-end JavaScript frameworks. In this example, we’ll use Jade, forms, LESS, AJAX/XHR and CSRF.

Note: This tutorial is a part of Express.js Guide: The Comprehensive Book on Express.js.

Todo apps are considered to be quintessential in showcasing frameworks akin to famous Todomvc.com for front-end JavaScript frameworks. In this example, we’ll use Jade, forms, LESS, AJAX/XHR and CSRF.

In our Todo app, we’ll intentionally not use Backbone.js or Angular to demonstrate how to build traditional websites with the use of forms and redirects. In addition to that, we’ll explain how to plug-in CSRF and LESS.

Example: All the source code is in the github.com/azat-co/todo-express for your convenience.

Continue reading “Todo App with Express.js/Node.js and MongoDB”

Notes from Startup School 2013 by YCombinator

The Startup School 2013 event organized by YCombinator and Paul Graham had an impressive list of speakers including Mark Zuckerberg, Jack Dorsey, Ron Conway, Phil Libin and others. Here are the notes if you weren’t at Flint center or missed live online translation:

All notes in MS Word
Archive of all notes in Markdown
All notes on GitHub
All notes on Google Docs

The Startup School 2013 event organized by YCombinator and Paul Graham had an impressive list of speakers including Mark Zuckerberg of Facebook, Jack Dorsey of Twitter/Square, Ron Conway of SV Angles, Phil Libin of Evernote and others.

Here are the notes if yesterday you weren’t at Flint center or missed the live online translation:

Here are the notes from the talk by Jack Dorsey — Founder, Square, Twitter

Reading to us from books that have helped him along the way, adding his own thoughts.

Continue reading “Notes from Startup School 2013 by YCombinator”

NodeFramework.com: 5 New Node.js Frameworks and Express.js Todo app

Tonight I merged and closed two pull requests and made a few additions to the nodeframeworkc.com project. The updates include 5 new frameworks and Express.js Todo App which is one of the four major tutorials in my new book Express.js Guide which is coming in a next 1-2 weeks. The ebook is sent to editors and it’s the main cause for the lack of new posts at this weblog.

Tonight I merged and closed two pull requests, and made a few additions to the nodeframework.com project. The updates include new logos (NPM+JS), typo fixes, 5 new frameworks and Express.js Todo App which is one of the four major tutorials in my new book Express.js Guide. The ebook is virtually ready and is sent to editors. It was the main cause for the lack of new posts at this weblog. Express.js Guide: The Most Popular Node.js Framework Manual is coming in a next 1-2 weeks. It’s almost 300 pages thick and has over 50 illustrations of many code examples. Hurry up if you want to get advantage of the 3x low pre-order price of $9.99 vs. the regular price of $29.99.

Continue reading “NodeFramework.com: 5 New Node.js Frameworks and Express.js Todo app”

JS FUNdamentals: An Essential Overview of JavaScript

Programming languages like BASIC, Python, C has boring machine-like nature which requires developers to write extra code that’s not directly related to the solution itself. Think about line numbers in BASIC or interfaces, classes and patterns in Java.

On the other hand JavaScript inherits the best traits of pure mathematics, LISP, C# which lead to a great deal of expressiveness (and fun!).

More about Expressive Power in this post: What does “expressive” mean when referring to programming languages?

If it’s not fun, it’s not JavaScript.

Note: This text is a part of upcoming ebook JavaScript and Node FUNdamentals: A Collection of Essential Basics.

Expressiveness

Programming languages like BASIC, Python, C has boring machine-like nature which requires developers to write extra code that’s not directly related to the solution itself. Think about line numbers in BASIC or interfaces, classes and patterns in Java.

Continue reading “JS FUNdamentals: An Essential Overview of JavaScript”

My First Week at DocuSign

For those of you unfamiliar with DocuSign, it’s an industry leader in sending, signing and managing documents in the cloud. Contrary to its competitors (EchoSign, HelloSign and RightSignature), DocuSign is more enterprise oriented, the oldest (founded in 2003), and the most advanced in terms of security and number features. Continue reading “My First Week at DocuSign”

Markdown Web Publishing

TL;DR: Know and use Markdown because it’s fast and convenient.

Meet Markdown

“What is a Markdown?” my editor asked me the other day. She is an experienced content and copy editor and has worked for magazines and book publishers. However, she is not familiar with the powerful and convenient Markdown because it’s still a rather unknown approach to publishing except for an elite circle of early adopters and technology professionals. Even the so called re-invented web publishing experience Medium doesn’t support Markdown, but many other services and apps including my favorites (ByWord and LeanPub) build their whole flow around Markdown! In fact, I’m such a huge fan of Markdown that I’m writing my daily journals in it as well as this blog post.

Continue reading “Markdown Web Publishing”

Good Bye Storify

For almost a year I’ve been helping social media curation tool Storify as a software engineer with their Node.js apps, Backbone.js front-end development as well as supporting Storify API, implementing Twitter API v1.1 intergration, writing blog posts and answering Storify API questions. We had some great moments and a few weeks ago I summed them up in a post.

Continue reading “Good Bye Storify”

Interview Hacks

About a year and a half ago I wrote a ranting post about same old boring technical interview questions. Those pesky hash tables, arrays and trees! Now it’s time to revisit the topic, and enhance it with some useful tips, tricks and insights (a.k.a., hacks) that I’ve observed over the years in software engineering.

Continue reading “Interview Hacks”

PHP vs. Node.js

TL;DR: PHP is not going to disappear immediately, but its positions are undermined even further by the nascent Node.js.

When the Internet exploded in the 2000s, PHP was a thing all the cool kids did. It was extremely revolutionary, because:

  • It was an interpreted language unlike C++ or Java which require the source code compilation
  • It had the ability to be used directly with HTML by mixing within its template files with a <%php ... %> markup tags
  • It had cheap shared hosting providers on Apache servers with a Linux, Apache, MySQL and PHP (LAMP) stack
  • It had a functional nature which is easier to learn than the object-oriented programming

Over the years, PHP and its apps became a monstrous technology vulnerable to security threats (e.g., SQL injections), lack of a centralized packaging registry (was Composer inspired by Node Package Manager?), inconsistent API and subpar performance. There are many better alternatives to PHP, e.g., Ruby on Rails and Django, however nothing is as approachable as Node.js.

For those of you who aren’t familiar with Node.js, or who have heard of it but can’t quite grasp the concept, here is my analogy:

Node.js is functionally similar to the PHP + Apache or ASP + IIS stacks.

Nowadays, Node.js is gaining momentum. The platform uses JavaScript. It’s functional, and its non-blocking I/O mechanism allows for a better performance. Node.js comes with a robust Node Package Manager solution and the specification, i.e., ECMAScript.

Because Node.js is a lower-level technology, it is not comparable to complex frameworks like Struts, Rails or Django directly.

Therefore, many people, whether software engineers or entrepreneurs, are often faced with the decision of “What tech stack to use” In this article PHP vs. Node.js, we’ll compare apples-to-apples approaching the question from different angles, such as:

  • Syntax
  • Context switch
  • Modules
  • Ecosystem
  • Frameworks
  • Real-time apps
  • Database apps
  • Third-party services apps
  • Web servers
  • Hosting
  • Performance

Continue reading “PHP vs. Node.js”

Web Frameworks for Node.js

Note: For a detailed Express.js learning resource, please check out Express.js Guide: The Most Popular Node.js Framework Manual book.

TL;DR Visit nodeframework.com.

Node.js is one of the fastest growing platforms, but its’s relatively young. Therefore, there’s no dominant framework like Django for Python, Rails for Ruby or Cake for PHP. Node.js frameworks niche is level playing field.

There are multiple libraries and philosophies including MVC concept, configuration over convention, applying principles from Ruby on Rails, and the approach of merging front-end and back-end. It becomes more tedious for developers to make an educated right choice. Because of it, we put together a resource called nodeframework.com (also nodeframeworks.com and mvcnode.com, which one you like the best?) which serves as a hand-picked registry of web frameworks for Node.js. It’s an open-source project so please feel free to contribute examples, descriptions or awesome new Node.js frameworks!

Startup Life Balance and My Mexican Vacation

Over the past eight months, I’ve been juggling extremely demanding startup work at Storify, exceptionally fulfilling teaching assignments at Hack Reactor, General Assembly and Marakana, and writing my books and webapplog posts. By applying Yerkes–Dodson law, stress helped me to boost my productivity and I was happier than ever. However, in the last few weeks I slightly overestimated my capacity to endure the fast-paced startup life. Happily, I was able to take two weeks off and to spend them in Los Cabos, Baja California, Mexico.

The famous Los Cabos Arch at the Lands End
The famous Los Cabos Arch at the Lands End

A passive quiet leisure time seemed like a great way to reflect, and to fill up my mental tanks for the future. I opted for Los Cabos due to its proximity to the Bay Area, convenience and friendliness of the local people. Indeed, there are plenty of English-speaking staff and my favorite chain stores, like Starbucks, Ruth’s Steakhouse, OXXO, Mega, Walmart and of course (not so favorite but still familiar) McDonald’s, and Burger King.

By the end of the vacation, I’d read a few good books and stumbled upon some amazingly fantastic podcasts about entrepreneurship:

I also started reading Smashing Node.js. It’s a very approachable beginner’s Node.js book. Nevertheless, I found there some gems such as answers to why we do things the way we do them at Storify, because the tech stack described in the book and JavaScript patterns are astonishingly similar to the ones that we have.

Pirate style party cruise ship
Pirate style party cruise ship

At the end of the break, I learned an important lesson that we need to be more realistic about our present (but unrealistic about our future), and step aside for a bit to take a look at a bigger picture. In addition, I pledged to myself to prioritize my life and the side-projects I undertake.