Better world by better software

Gleb Bahmutov PhD

Our planet 🌏 is in danger

Act today: what you can do

Jun 2 2016
products

Shell variables in NPM scripts

Small shortcut for using shell variable with default values in NPM scripts.

Read More

Share Comments
  • nodejs
May 26 2016
products

Conditional breakpoints in Chrome DevTools

How to stop only if a specific expression becomes true.

Read More

Share Comments
  • browser
May 18 2016
products

OReilly OSCON

Links to additional information included in my OSCON 2016 presentation.

Read More

Share Comments
  • javascript
May 4 2016
products

Turning code coverage into live stream

A neat trick for making object property updates into a live event stream.

Read More

Share Comments
  • code coverage
  • testing
May 3 2016

Getting good at FP

How to start and get better at using JavaScript in functional way.

Read More

Share Comments
  • advice
  • functional
  • javascript
  • ramda
May 2 2016
products

Web testing nirvana with Cypress

A short guide to using Cypress.io for feature testing web pages.

Read More

Share Comments
  • cypress
  • testing
Apr 22 2016
process

CycleConf

Links to additional information included in my CycleCond 2016 presentation.

Read More

Share Comments
  • angularjs
  • cyclejs
  • functional
  • presentation
Apr 17 2016
products

Counting promises vs Rx

The difficulty using Promises vs the simplicity using reactive streams

Read More

Share Comments
  • functional
  • reactive
Apr 16 2016
products

Is framework pure or not?

How is Cycle.js a pure framework if I can listen to the UI events and output new DOM?

Read More

Share Comments
  • cyclejs
  • functional
Apr 14 2016
products

Extra FP for RxJS

Small functional tips for RxJS

Read More

Share Comments
  • functional
  • ramda
  • reactive
Apr 12 2016
products

Not tested - not included!

How much code do you need to run Cycle.js program?

Read More

Share Comments
  • ast
  • cyclejs
  • testing
Apr 9 2016
products

Jade (now Pug) nuggets

Common code snippets for using Pug (formerly Jade) template language.

Read More

Share Comments
  • advice
Apr 7 2016
products

Test if a function is pure revisited

Test function for purity using isolated v8 execution context.

Read More

Share Comments
  • functional
  • javascript
Apr 3 2016
products

Running multiple applications in Dokku

Setting up multiple applications in a single DigitalOcean instance via Dokku.

Read More

Share Comments
  • docker
Mar 24 2016
products

Angular nuggets

Helpful AngularJS code snippets.

Read More

Share Comments
  • angularjs
Mar 24 2016
products

JavaScript nuggets

Helpful JavaScript code snippets.

Read More

Share Comments
  • javascript
Mar 24 2016
process

Replacing the wheels on the running car

How to use semantic versioning with external services.

Read More

Share Comments
  • modular development
Mar 22 2016
products

Simple Ajax testing

Verifying that a request to external service happens.

Read More

Share Comments
  • sentry
  • testing
Mar 14 2016
products

Moving commits

Shepherding Git commits from dev to stage to production.

Read More

Share Comments
  • git
Mar 10 2016
products

Parameter destructuring

The benefits of using ES6 parameter destructuring over options object pattern.

Read More

Share Comments
  • es6
Mar 8 2016
process

Refactoring to compose

What to do if you want to compose multiple functions (hint - make them unary).

Read More

Share Comments
  • boilerplate
  • functional
  • ramda
Mar 3 2016
products

Playing havoc with Node module system

Node.js is really really really susceptible to code injection attacks.

Read More

Share Comments
  • nodejs
  • security
Mar 2 2016
products

How to crash

How to make sure your Express or Koa server correctly sends crashes to exception monitoring service.

Read More

Share Comments
  • assertions
  • promises
  • sentry
  • testing
Mar 1 2016
process

Developing Wiseli

How I came up with idea and how I wrote wiseli

Read More

Share Comments
  • advice
Feb 17 2016
products

Testing reactive code

How to unit test Rx code on Node with Mocha (and Ava).

Read More

Share Comments
  • reactive
  • testing
Feb 11 2016
products

Microservices in the cloud with Tutum

Deploying several microservices into the cloud with Tutum.

Read More

Share Comments
  • docker
  • modular development
  • nodejs
Feb 8 2016
process

Redux and RethinkDB

A single data structure holding program's state has a name - database.

Read More

Share Comments
  • db
  • immutable
Feb 5 2016
products

From callbacks to Tasks

Refactoring common auth flow from callbacks into Tasks.

Read More

Share Comments
  • functional
Feb 4 2016
products

Local microservice containers

Deploying website and microservice containers to production.

Read More

Share Comments
  • docker
  • modular development
  • nodejs
Jan 30 2016
products

Microservices with fuge

Building microservices with Fuge

Read More

Share Comments
  • docker
  • modular development
  • nodejs
Jan 29 2016
products

Node server with Rx and Cycle.js

Manage side effects when coding NodeJS servers with Rx and Cycle.js (NOT about server-side rendering).

Read More

Share Comments
  • cyclejs
  • nodejs
  • reactive
Jan 27 2016
process

How to become a better hacker

How to write innovative, unusual and simply cool software.

Read More

Share Comments
  • advice
Jan 22 2016
products

Difference between a Promise and a Task

Once you have a Promise instance the action has already started. Task instance does not run until someone calls .fork()

Read More

Share Comments
  • functional
  • javascript
Jan 20 2016
process

Precompiled JavaScript

How to use ES6 and target older NodeJS platforms without mangling the code to the lowest common denominator

Read More

Share Comments
  • javascript
Jan 16 2016
process

JavaScript needs the compile step (on install)

My build process that can precisely target any Nodejs environment using Rollup, ES6 Feature tests and Babel.

Read More

Share Comments
  • javascript
Jan 12 2016
process

I write 3 types of software

Single function modules, flat libraries and applications.

Read More

Share Comments
  • javascript
Jan 4 2016
products

Run Express server in your browser

Plus how to run a web application when the JavaScript itself is disabled*.

Read More

Share Comments
  • browser
  • javascript
  • nodejs
  • performance
  • service workers
Dec 28 2015
products

Using webpack

How to build and distribute libraries via NPM using WebPack bundler.

Read More

Share Comments
  • javascript
  • tutorial
  • webpack
Dec 27 2015
people

The senior engineer role

Three things I try to do as a senior engineer

Read More

Share Comments
  • advice
Dec 24 2015
process

Instant Web Application

An instantly loading, self-rewriting application using ServiceWorker - it is like server rendering inside your browser.

Read More

Share Comments
  • performance
  • service workers
Dec 21 2015
process

Hydrate at build time

Generate the initial HTML markup from web app at build time to avoid blank screen.

Read More

Share Comments
  • advice
  • javascript
  • performance
Dec 16 2015
process

Hydrate your apps

Remove the empty page flicker on web application startup.

Read More

Share Comments
  • advice
  • javascript
  • performance
Dec 13 2015
products

My Node tools

My collection of personal CLI apps to speed up NodeJS development.

Read More

Share Comments
  • javascript
  • nodejs
Dec 5 2015
process

Pass the logic

How to pass logic instead of data in functional programming.

Read More

Share Comments
  • functional
  • javascript
Dec 3 2015
products

Use some ES6 in CLI apps

What useful ES6 features can we use right now?

Read More

Share Comments
  • advice
  • es6
  • nodejs
Dec 2 2015
products

1, 2, 3, linted

Preventing easy to catch JavaScript bugs using linters.

Read More

Share Comments
  • nodejs
  • testing
  • tutorial
Nov 26 2015
products

How to setup semantic release on Circle CI

How to use CircleCI to publish new versions of your NPM modules.

Read More

Share Comments
  • advice
  • ci
  • modular development
  • nodejs
  • testing
Nov 25 2015
process

The great conference tour of October 2015

The most interesting presentations I have seen last month.

Read More

Share Comments
  • advice
  • angularjs
  • javascript
  • nodejs
Nov 22 2015
products

JavaScript to JavaScript template language

Generating JavaScript configurtion snippets from templates to be used with the Content-Security-Policy and disabled inline scripts.

Read More

Share Comments
  • javascript
  • nodejs
  • security
Nov 21 2015
products

Disable inline JavaScript for security

Use JS to JS template engine in Express to ban all inlined JavaScript.

Read More

Share Comments
  • javascript
  • security
Nov 20 2015
products

Patching global Node tools

How to monkey patch a broken global Node package, if you have to.

Read More

Share Comments
  • modular development
  • nodejs
Nov 19 2015
products

Smaller published NPM modules

How to measure size and publish smaller modules to NPM.

Read More

Share Comments
  • modular development
  • nodejs
Nov 13 2015
products

Stand your own crash server

How to deploy your own server to receive real time crash data.

Read More

Share Comments
  • javascript
  • nodejs
  • sentry
  • testing
Nov 11 2015
process

Winning hackathons

How to finish strong in any hackathon.

Read More

Share Comments
  • advice
Oct 28 2015
products

Changing the function arguments trick

Modify the function's variables after the function executed.

Read More

Share Comments
  • javascript
Oct 15 2015
process

Angular performance testing via ports

Leave hooks in the AngularJS application to allow measuring how long individual actions take.

Read More

Share Comments
  • angularjs
  • testing
Oct 14 2015
products

Async Angular filter

How to compute the filter's result asynchronously.

Read More

Share Comments
  • angularjs
Oct 3 2015
process

Remove the boilerplate

Remove unnecessary code while preserving the same code semantics.

Read More

Share Comments
  • advice
  • boilerplate
  • javascript
  • ramda
Sep 18 2015
products

Dependency injection vs IO Monad example

How to wrap functions that depend on the environment for clean unit testing.

Read More

Share Comments
  • functional
  • javascript
  • ramda
Sep 16 2015
products

Variable assignment shortcut

Eval is limited in its power plus the only time I found `this` variable useful.

Read More

Share Comments
  • functional
  • javascript
Sep 12 2015
products

Avoid this common Angular refactoring mistake

How to preserve reference to data when factoring out model data to services.

Read More

Share Comments
  • angularjs
Sep 10 2015
process

Bending JavaScript rules

Change live Angular application plus unit test private code from Node.

Read More

Share Comments
  • angularjs
  • javascript
  • nodejs
  • testing
Aug 30 2015
products

Unit testing Angular from Node like a boss

Building Angular application from CommonJS modules and powerful unit testing.

Read More

Share Comments
  • angularjs
  • nodejs
  • testing
  • tutorial
Aug 26 2015
products

Imperative to compose example

Changing a piece of imperative code to be purely functional

Read More

Share Comments
  • functional
  • ramda
Aug 24 2015
products

Angular Model intro

Introduction to Angular data model vs view update.

Read More

Share Comments
  • angularjs
Aug 23 2015
products

Return a promise for cleaner API

Instead of returning an error code or value, return a Promise.

Read More

Share Comments
  • advice
  • javascript
  • promises
Aug 17 2015
products

Express sessions

Using and observing ExpressJS sessions from the client code.

Read More

Share Comments
  • nodejs
  • security
  • tutorial
Aug 15 2015
products

1, 2, 3, tested

Unit testing AngularJS code in record time using ng-describe.

Read More

Share Comments
  • angularjs
  • testing
  • tutorial
Aug 14 2015
products

Perfect code, zero effort

Autofix JavaScript style issues using jscs.

Read More

Share Comments
  • javascript
Aug 11 2015
products

Controller prototype

Scope-based vs object-oriented controllers in Angular

Read More

Share Comments
  • angularjs
Aug 7 2015
products

ES2015 in Dev Tools console without extensions

How to load and use ES2015 in the Chrome DevTools console without any 3rd party extensions.

Read More

Share Comments
  • browser
  • javascript
Aug 5 2015
products

You don't need global grunt

Building projects without having Grunt installed globally.

Read More

Share Comments
  • grunt
Aug 3 2015
products

I want library X in my Dev Tools console

How to always load a 3rd party library in DevTools console

Read More

Share Comments
  • advice
  • browser
  • javascript
Jul 31 2015
products

Unit test Node code in 10 seconds

Use Mocha and the package script commands to quickly start unit testing CommonJS code.

Read More

Share Comments
  • javascript
  • nodejs
  • testing
  • tutorial
Jul 14 2015
products

Promisify Seneca microservice

Convert an asynchronous operation to promise-returning one.

Read More

Share Comments
  • promises
Jul 4 2015
process

Leaving examples in code

Leave executable examples inside source files for future reference.

Read More

Share Comments
  • advice
Jul 3 2015
products

Passing more than single value through promise chain

How to store multiple values in a promise chain using an object.

Read More

Share Comments
  • javascript
  • promises
Jun 24 2015
products

Self-improving software

Companion notes to the "Self-improving software" presentation

Read More

Share Comments
  • javascript
  • modular development
  • nodejs
Jun 24 2015
process

User friendly API

How to design a simple to use and powerful library API.

Read More

Share Comments
  • advice
  • javascript
Jun 17 2015
products

Solid ExpressJS server

Steps to develop good ExpressJS based application server.

Read More

Share Comments
  • advice
  • nodejs
Jun 11 2015
products

Starting to React

Links and resources for learning ReactJS.

Read More

Share Comments
  • reactjs
Jun 10 2015
products

Automatically publish to NPM

Publish tagged versions to NPM after successful CI build.

Read More

Share Comments
  • nodejs
Jun 9 2015
people

Rating recruiter pitches

Scoring the cold recruiter pitches I received. Plus a few examples.

Read More

Share Comments
  • advice
  • hiring
Jun 3 2015
products

Put mock data into Node require cache

Avoid loading source files - put the code directly into the require cache.

Read More

Share Comments
  • nodejs
Jun 2 2015
products

Angular module info

How to embed and fetch version information for a specific Angular module.

Read More

Share Comments
  • angularjs
Jun 1 2015
process

Embed version info

How to include version and useful meta information in the JavaScript libraries.

Read More

Share Comments
  • advice
  • javascript
  • modular development
May 28 2015
process

Treasure your product managers

What is wrong with Google Play? Is there anyone who listens to any music at that company?

Read More

Share Comments
  • ui
May 27 2015
products

Unapply attack

Compromise functions private to closures via partially applied references.

Read More

Share Comments
  • javascript
  • security
May 25 2015
products

Partial application for options object

Bind some properties in the options object.

Read More

Share Comments
  • functional
  • javascript
May 14 2015
products

Deep picking

Grab a subset of a complex object using functional-extract utility.

Read More

Share Comments
  • functional
  • javascript
May 13 2015
products

Fast legoization

Optimizing "legoizer" web worker application to run 10 times faster.

Read More

Share Comments
  • browser
  • performance
  • web workers
May 7 2015
products

Heavy lifting

Adding new features to an existing function via lifting.

Read More

Share Comments
  • functional
  • javascript
May 3 2015
products

Unit testing CLI programs

Writing mock stdin text in your Nodejs unit tests.

Read More

Share Comments
  • nodejs
  • promises
  • testing
May 2 2015
people

Great League of Engineers

Notes from a unique team productivity event.

Read More

Share Comments
Apr 28 2015
products

Use JavaScript functor today

Replace if conditions with functors and applicatives.

Read More

Share Comments
  • functional
  • javascript
Apr 27 2015
products

How to correctly unit test Express server

Create and destroy an Express.js server in each unit test.

Read More

Share Comments
  • javascript
  • testing
Apr 26 2015
products

Faster Node app require

Speed up Node.js application startup by caching require path resolutions.

Read More

Share Comments
  • nodejs
  • performance
Apr 26 2015
products

Pyramid of lexical scope Doom

How to avoid creeping lexical scope in asynchronous code.

Read More

Share Comments
  • boilerplate
  • javascript
  • promises
Apr 23 2015
products

RethinkDB and BDD on CI

How to unit test Node applications that use RethinkDB.

Read More

Share Comments
  • ci
  • db
  • nodejs
  • testing
Apr 20 2015
products

Nice touch, RethinkDB

Small feature in RethinkDB data explorer that shows they get it.

Read More

Share Comments
  • db
⬅ Prev1…456789Next ➡
 

Categories

  • book review15
  • climate10
  • people26
  • process176
  • products597

Tags

  • 11ty2
  • QUnit5
  • a11y3
  • advice126
  • algolia3
  • angular3
  • angularjs58
  • angularjs21
  • assertions9
  • ast8
  • boilerplate14
  • browser22
  • ci35
  • circle14
  • climate16
  • code coverage17
  • concurrency1
  • cyclejs7
  • cypress350
  • cypress dashboard13
  • d33
  • db13
  • docker12
  • documentation6
  • email3
  • es613
  • es71
  • functional70
  • generators5
  • git15
  • github42
  • graphql5
  • grunt7
  • gulp3
  • hiring5
  • hyperapp7
  • immutable5
  • interview3
  • jade4
  • javascript166
  • jshint3
  • markdown11
  • model-based testing1
  • modular development28
  • netlify4
  • nodejs85
  • performance25
  • presentation7
  • promises31
  • proposal2
  • ramda28
  • react7
  • react native6
  • reactive12
  • reactjs5
  • renovate5
  • screencast1
  • security11
  • sentry11
  • service workers6
  • state machine1
  • testing208
  • tutorial29
  • typescript11
  • ui2
  • vercel10
  • visual testing5
  • vuejs5
  • web workers6
  • webpack3

Tag Cloud

11ty QUnit a11y advice algolia angular angularjs angularjs2 assertions ast boilerplate browser ci circle climate code coverage concurrency cyclejs cypress cypress dashboard d3 db docker documentation email es6 es7 functional generators git github graphql grunt gulp hiring hyperapp immutable interview jade javascript jshint markdown model-based testing modular development netlify nodejs performance presentation promises proposal ramda react react native reactive reactjs renovate screencast security sentry service workers state machine testing tutorial typescript ui vercel visual testing vuejs web workers webpack

Archives

  • May 20251
  • April 20252
  • March 20255
  • February 20253
  • January 20255
  • December 20243
  • November 20242
  • October 20245
  • September 20244
  • August 20242
  • July 20244
  • June 20242
  • April 20242
  • March 20245
  • February 20245
  • January 20243
  • December 20232
  • November 20233
  • October 20233
  • September 20234
  • August 20233
  • July 20233
  • June 20235
  • May 20235
  • April 202310
  • March 20236
  • February 20239
  • January 202310
  • December 20228
  • November 20224
  • October 20226
  • September 20225
  • August 20224
  • July 20227
  • June 20225
  • May 20228
  • April 20226
  • March 202210
  • February 20227
  • January 202211
  • December 202111
  • November 20217
  • October 20218
  • September 20214
  • August 20219
  • July 202110
  • June 202111
  • May 20215
  • April 20219
  • March 20219
  • February 20219
  • January 20217
  • December 20206
  • November 20208
  • October 202010
  • September 20205
  • August 20203
  • July 20203
  • June 20204
  • May 20203
  • April 20202
  • March 20207
  • February 20201
  • January 20201
  • December 20193
  • November 20193
  • October 20192
  • September 20196
  • August 20195
  • July 20192
  • June 20191
  • May 20195
  • April 20194
  • March 20193
  • February 20191
  • January 20194
  • December 20183
  • November 20182
  • October 20183
  • September 20184
  • August 20184
  • June 20185
  • April 20183
  • March 20184
  • February 20181
  • January 20185
  • December 20173
  • November 20174
  • September 20172
  • August 20179
  • July 20174
  • June 20174
  • May 20172
  • April 20179
  • March 201710
  • February 20175
  • January 20174
  • December 20165
  • November 20161
  • October 20162
  • September 20161
  • August 20165
  • July 20162
  • June 20167
  • May 20165
  • April 20168
  • March 201610
  • February 20165
  • January 20168
  • December 20159
  • November 20158
  • October 20154
  • September 20154
  • August 201511
  • July 20154
  • June 20159
  • May 20158
  • April 201510
  • March 201515
  • February 201513
  • January 201510
  • December 20148
  • November 201419
  • October 20148
  • September 201413
  • August 201412
  • July 201413
  • June 20149
  • May 201411
  • April 201413
  • March 201411
  • February 201412
  • January 201411
  • December 201311
  • November 201314
  • October 201311
  • September 201310

Recents

  • How I Stay Productive
  • Pick Tests By Network Calls
  • Cypress Is Joining John Deere
  • Rest Easy Example
  • Rest Easy
© 2025 Gleb Bahmutov
Powered by Hexo