Better world by better software

Gleb Bahmutov PhD

Our planet 🌏 is in danger

Act today: what you can do

Aug 27 2018
process

Mocking process.env

How to quickly mock process.env during unit testing.

Read More

Share Comments
  • testing
Aug 10 2018
products

Zeit Now GitHub app + Renovate app + Cypress tests = 💝

How Cypress, Zeit Now GitHub app and Renovate app play well together to give you well tested PRs and keep your dependencies up to date with zero effort.

Read More

Share Comments
  • cypress
  • github
  • renovate
  • testing
  • vercel
Aug 3 2018
products

Carriage return

Carriage return character, progress bar and progressive enhancement.

Read More

Share Comments
  • docker
  • nodejs
Jun 29 2018
products

Gatsby Netlify Circle and Cypress

How to test Gatsby static blog locally, on Netlify before deploying, and after deployment using Circle.

Read More

Share Comments
  • ci
  • circle
  • cypress
  • immutable
  • netlify
Jun 27 2018
products

Incredibly Powerful cy.task

How to run any Node code from your end-to-end Cypress tests using `cy.task` command.

Read More

Share Comments
  • cypress
Jun 25 2018
products

Rolling for a Test

How to bundle individual components using Rollup for each Cypress test

Read More

Share Comments
  • cypress
  • hyperapp
Jun 24 2018
products

Tested live documentation is a thing with MDX, Docz and Cypress

You can quickly write live interactive component documentation and make sure it works as expected by testing it.

Read More

Share Comments
  • cypress
  • documentation
Jun 15 2018
products

Trying GraphQL

Starting with GraphQL - from zero to hero.

Read More

Share Comments
  • graphql
  • tutorial
Apr 28 2018
products

Trying Redis

Playing with remote Redis service for quick caching.

Read More

Share Comments
  • db
  • tutorial
Apr 23 2018
products

VuePress and some Cypress end-to-end testing tips

Using DOM snapshot to catch a disappearing element plus sharing application config.

Read More

Share Comments
  • cypress
  • testing
  • vuejs
Apr 7 2018
products

Lock Down Sinon Stub

How to ensure your stubs are not called with unexpected arguments.

Read More

Share Comments
  • testing
Mar 24 2018
process

How I Organize README

Must have sections, badges, flow.

Read More

Share Comments
  • advice
Mar 14 2018
products

Painless Dependency Upgrades with Renovate App

Flexible and powerful automatic dependency upgrades for NPM packages.

Read More

Share Comments
  • modular development
  • renovate
  • testing
Mar 12 2018
products

Debugging Mocha from Node using Chrome Inspector

How to debug Mocha tests running in Node using Chrome DevTools inspector.

Read More

Share Comments
  • browser
  • nodejs
Mar 3 2018
products

Subfolders as Dependencies

Use subfolders installed as NPM dependencies to avoid long relative paths in require.

Read More

Share Comments
  • nodejs
Feb 13 2018
products

Parcel Bundler

A quick look at the new bundler.

Read More

Share Comments
  • javascript
Jan 15 2018
products

Use Lenses in Hyperapp

You can shorted your state mutations by using functional lenses.

Read More

Share Comments
  • hyperapp
  • ramda
Jan 14 2018
products

Testing ES6 Module in Cypress Electron Browser

Adding support to script type=module while testing Hyperapp as ES6 module.

Read More

Share Comments
  • cypress
  • es6
  • hyperapp
Jan 8 2018
products

Drive-by Testing Array Explorer

Step by step end-to-end testing project "array-explorer".

Read More

Share Comments
  • cypress
  • testing
  • vuejs
Jan 7 2018
products

Testing Vue CLI reload

Testing dev server hot reload using Cypress.

Read More

Share Comments
  • cypress
  • testing
  • vuejs
Jan 5 2018
process

Quick functional refactoring

Quickly stringing data transformation using standard Ramda functions.

Read More

Share Comments
  • functional
  • ramda
Dec 21 2017
products

JSON schema for the win

How to get IntelliSense help for your JSON files in modern IDEs.

Read More

Share Comments
  • cypress
Dec 19 2017

Sync callbacks

Do not think every callbacks is sync or async.

Read More

Share Comments
  • javascript
Dec 13 2017
products

Split CI Jobs

How to execute multiple test tasks in parallel on CircleCI and TravisCI.

Read More

Share Comments
  • ci
Nov 26 2017
products

Testing Svelte Store

Writing E2E tests for Svelte.js app store using Cypress.

Read More

Share Comments
  • cypress
  • testing
Nov 20 2017
products

Vue Vuex REST TodoMVC example

Small example of TodoMVC implemented using Vue.js and Vuex data store against REST backend.

Read More

Share Comments
  • vuejs
Nov 18 2017
products

Making small Docker image

How to make a very small Docker image with a Node application.

Read More

Share Comments
  • docker
Nov 7 2017
products

Local overrides

How to see a customized version of any website locally.

Read More

Share Comments
  • browser
Sep 28 2017
process

DevOps Testing Panel

Notes from DevOps meetup panel on testing.

Read More

Share Comments
  • testing
Sep 8 2017
products

Test Runners

Interesting ideas in JavaScript test runners.

Read More

Share Comments
  • testing
Aug 30 2017
products

Tests, closures and arrow functions

Using Mocha test context and its pitfalls.

Read More

Share Comments
  • testing
Aug 18 2017
process

Semantic Action

Perform any action based on commits since last action.

Read More

Share Comments
  • ci
  • git
  • modular development
Aug 17 2017
products

Use a little bit of FP

A few examples of introducing functional programming into existing code.

Read More

Share Comments
  • functional
  • ramda
Aug 16 2017
process

Slow updates

Automatic period dependency update without much hassle.

Read More

Share Comments
  • modular development
Aug 15 2017
products

Kliesli composition

Connecting Kliesli compositions or the advantages of good pipe insulation.

Read More

Share Comments
  • functional
  • ramda
Aug 7 2017
process

Releasing for old Node

How I publish modules for older versions of Node.

Read More

Share Comments
  • nodejs
Aug 4 2017
process

SSH Deploy from CI

How to deploy to GitHub pages from CI using SSH to authenticate.

Read More

Share Comments
  • ci
Aug 3 2017
products

Quick and dirty CURL use

Quickly run complex HTTP requests from terminal.

Read More

Share Comments
  • advice
Aug 2 2017
products

Linters Gonna Lint

Incremental lint, Prettier, immutable rules.

Read More

Share Comments
  • javascript
Jul 22 2017
products

I can see clearly now

Using functional lenses to modify objects by example.

Read More

Share Comments
  • functional
  • ramda
Jul 18 2017
process

Mocking vs Refactoring

Sometimes code refactoring removes need for advanced mocking in tests.

Read More

Share Comments
  • testing
Jul 13 2017
process

Mock system APIs

Do not mock your internal modules, mock system APIs instead!

Read More

Share Comments
  • testing
Jul 12 2017
process

Quick Solid NPM Module

Setting up a rock solid NPM module with semantic release in 30 seconds.

Read More

Share Comments
  • advice
  • modular development
  • nodejs
Jun 19 2017
products

Rocha and Focha

Randomize tests and run previously failed ones first for speed.

Read More

Share Comments
  • testing
Jun 11 2017
people

VP of Success

How a new VP should be judged.

Read More

Share Comments
Jun 5 2017
process

How To Draw An Owl

Refactor code using functional approach (Maybe, immutable).

Read More

Share Comments
  • functional
  • ramda
Jun 1 2017
products

Docker User

Use non-root user inside Docker container.

Read More

Share Comments
  • docker
May 4 2017
process

Data Coverage

Collecting all inputs to each function to figure out missing test data.

Read More

Share Comments
  • code coverage
  • testing
May 2 2017
process

Deriving Y Combinator

Deriving Y Combinator that makes recursive functions without assignments possible.

Read More

Share Comments
  • functional
Apr 28 2017
people

Worst Code I Have Written Lately

A self-critique of my own code as a poster for the office.

Read More

Share Comments
Apr 19 2017
products

Picking snapshot library

How to pick the right JavaScript snapshot testing library.

Read More

Share Comments
  • testing
Apr 14 2017
process

Ramda for reactive streams

Array or Observable - Ramda can do both!

Read More

Share Comments
  • functional
  • ramda
  • reactive
Apr 11 2017
products

The intuition behind applicative

Why would you want a function in a box?

Read More

Share Comments
  • functional
Apr 10 2017
products

Rolled libraries

How to distribute a tree-shaken library for your tree-shaken apps using Rollup.

Read More

Share Comments
  • javascript
Apr 7 2017
process

Tested Curl

How to ensure your Curl code snippets are working, plus generate documentation.

Read More

Share Comments
  • testing
Apr 6 2017
products

Async functions in Service Workers

Use async / await in ServiceWorker code because browsers support both.

Read More

Share Comments
  • service workers
Apr 3 2017
products

URL type using TypeScript or FP

How to enforce a custom condition on a string.

Read More

Share Comments
  • functional
  • typescript
Apr 2 2017
products

Web app routing with fallback

How to use fallback with client-side routing to avoid 404 pages.

Read More

Share Comments
  • browser
  • hyperapp
Mar 29 2017
process

Testing Trapezoid

Replacement for testing pyramid.

Read More

Share Comments
  • advice
  • testing
Mar 26 2017
process

Fixing the Internet one NPM package at a time

How to patch a bug, use the fix in prod and submit the pull request in five minutes.

Read More

Share Comments
  • modular development
  • nodejs
Mar 25 2017
products

Web Packing the Internet

WebPack as a service for quick personal projects and examples.

Read More

Share Comments
  • browser
  • cyclejs
  • hyperapp
  • immutable
  • webpack
Mar 24 2017
products

Call me Maybe

Replacing the built-in OR and TERNARY operators with Maybe monads.

Read More

Share Comments
  • functional
  • ramda
Mar 18 2017
people

Asking coworkers to decide my career

How I asked my coworkers to give me anonymous career advice.

Read More

Share Comments
  • advice
Mar 15 2017
products

Pure programming with Hyper App

When every function is pure, advanced async actions are easy.

Read More

Share Comments
  • browser
  • functional
  • hyperapp
  • reactive
  • ui
Mar 13 2017
products

Trying TypeScript

Setting up and starting with TypeScript and Visual Studio Code editor.

Read More

Share Comments
  • tutorial
  • typescript
Mar 10 2017
products

Better slide format

A few examples of common mistakes when preparing presentation slides.

Read More

Share Comments
  • presentation
Mar 6 2017
products

Large Web App Development

Tips and tricks for larger web apps.

Read More

Share Comments
  • advice
Mar 5 2017
products

My favorite ES6

A few ways ES6 removes boilerplate code.

Read More

Share Comments
  • es6
Feb 17 2017
process

Schema-shot - snapshot testing for dynamic data

How to do snapshot testing if the data frequently changes?

Read More

Share Comments
  • testing
Feb 15 2017
process

Five times when I write tests

Writing tests should not be an afterthought.

Read More

Share Comments
  • advice
  • testing
Feb 14 2017
process

How I publish to NPM

My favorite semantic release plugins.

Read More

Share Comments
  • modular development
Feb 8 2017
products

Snapshot testing the hard way

Framework-agnostic snapshot testing for Mocha, Jest, Vue, etc.

Read More

Share Comments
  • assertions
  • ast
  • testing
Feb 6 2017
products

Accurate call sites

Call sites API does not support source maps, while exception stack does.

Read More

Share Comments
  • nodejs
Jan 28 2017
process

Accurate values in comments

How to update the code comments during program execution.

Read More

Share Comments
  • ast
  • javascript
  • nodejs
  • ramda
Jan 22 2017
products

SPA authentication with Auth0

Notes on small, simple off the shelf login solution for SPA and server.

Read More

Share Comments
  • security
Jan 16 2017
products

jscodeshift example

Simple example showing automated client code change when module API changes.

Read More

Share Comments
  • ast
  • javascript
Jan 6 2017
products

HTTP/2 server push on Dokku

Speed up resources by pushing them from a Node HTTP/2 server.

Read More

Share Comments
  • docker
  • nodejs
  • performance
Dec 30 2016
products

Cypress Tips and Tricks

A few tips on getting the most out of E2E testing tool Cypress

Read More

Share Comments
  • cypress
  • testing
Dec 28 2016
products

Functors encapsulate imperative logic

A functor hides some piece of common imperative code (and makes it composable)

Read More

Share Comments
  • functional
Dec 18 2016
process

Why use reactive streams for components?

How exchanging a set of streams solves component communication.

Read More

Share Comments
  • reactive
Dec 14 2016
products

Connecting crash reporting with end to end tests

How to send additional context for crashes that happen during E2E tests.

Read More

Share Comments
  • cypress
  • sentry
  • testing
Dec 12 2016
products

If Else vs Either Monad vs FRP

Imperative If/Else example implemented using Either monads and reactive style.

Read More

Share Comments
  • functional
  • reactive
Nov 1 2016
products

Electron app with custom protocol

How to open custom protocol links from external applications in your Electron desktop app.

Read More

Share Comments
Oct 31 2016
products

Git bisect

How to quickly find an error by bisecting the Git commit log.

Read More

Share Comments
  • git
Oct 25 2016
products

Subresource integrity (SRI)

How to use hashes for CDN resources.

Read More

Share Comments
  • security
Sep 16 2016
products

Synching PouchdDB with remote DB

How to run a database locally that syncs with central one.

Read More

Share Comments
  • db
Aug 25 2016
process

Think inside the box

4 Ops things that I am excited about today.

Read More

Share Comments
  • docker
  • immutable
  • modular development
  • vercel
Aug 24 2016
products

ServiceWorker intro

A screencast of ServiceWorker technology.

Read More

Share Comments
  • screencast
  • service workers
Aug 19 2016
products

Splitting pull request

How to split a large pull request into several smaller ones.

Read More

Share Comments
  • git
Aug 18 2016
products

Semantic release on GitLab

How to setup semantic release on private GitLab and on-premises NPM registry.

Read More

Share Comments
  • advice
  • ci
  • modular development
  • nodejs
  • tutorial
Aug 16 2016
products

Monads

Array, Promise and Maybe monads. Plus Docker is a functor.

Read More

Share Comments
  • functional
Jul 18 2016
products

Preloading Node module

Examples of useful functionality that can be used in Node without code changes.

Read More

Share Comments
  • nodejs
Jul 10 2016
products

CycleJS FrontEnd Camp

FrontEndCamp NYC presentation about Cycle.js framework.

Read More

Share Comments
  • cyclejs
  • functional
  • presentation
  • reactive
Jun 30 2016
products

Deploying private NPM modules to Zeit

How to bundle a server including private modules and static files.

Read More

Share Comments
  • advice
  • modular development
  • vercel
Jun 26 2016
products

Parallel end to end testing with Cypress, Docker and GitLab

How to build multiple test bundles and run E2E test jobs in parallel.

Read More

Share Comments
  • browser
  • cypress
  • db
  • docker
  • testing
Jun 24 2016
products

Immutable deploys with data and testing

How to roll over data when doing clean deploys using Zeit. Plus testing with Cypress!

Read More

Share Comments
  • cypress
  • db
  • testing
  • vercel
Jun 15 2016
products

Publish release notes to Slack

Using NPM hooks and Zeit to send the semantic release notes to Slack.

Read More

Share Comments
  • modular development
  • vercel
Jun 5 2016
products

Manual semantic release setup

How to set the semantic release tokens without going through the wizard.

Read More

Share Comments
Jun 3 2016

Which JavaScript framework should I use next?

Links to projects mentioned during BuzzJS presentation.

Read More

Share Comments
  • advice
  • angularjs
  • cyclejs
  • functional
  • javascript
  • performance
  • presentation
  • reactive
  • service workers
  • web workers
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
⬅ Prev1…34567…9Next ➡
 

Categories

  • book review15
  • climate10
  • people26
  • process175
  • products597

Tags

  • 11ty2
  • QUnit5
  • a11y3
  • advice125
  • 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

  • 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

  • Pick Tests By Network Calls
  • Cypress Is Joining John Deere
  • Rest Easy Example
  • Rest Easy
  • Cypress Steps Plugin
© 2025 Gleb Bahmutov
Powered by Hexo