A few of my thoughts on a few web-related issues. Feel free to contact me at michal@charemza.name or post a comment.

S3 path/pseudo-folder locking

Efficient concurrent access when using S3 as a filesystem using read/write tree locking

Python asyncio read/write lock

Using asynccontextmanager to create a read/write lock

You might not need Boto 3

To call AWS APIs all you need are the right headers

Questions to ask yourself when handling exceptions

Safety is not always marching forwards

Structured data in environment variables

A straightforward way to store nested dictionaries and lists in environment variables

Programming design choices in the face of changing requirements

The best gift you can give to the future is code that makes its current behaviour clear

Type simplicity

If you can't have type safety, have the next best thing

Questions to ask yourself when writing tests

Talk to yourself to make sure your tests help you achieve your aims

The list monad's bind

It can map, filter, and locally transform a list

Hidden structure

The unexpected similarities between mapping over a list and function composition

The beauty and the horror of Haskell monads

They are wonderful, but terrible

Haskell do notation protects you from parentheses

Nested monads and function application $ do not play well with bind >>=

Long files are not the enemy

Spend your time wisely: moving code about may be counterproductive

Avoid stateful variables

How I gently prod myself to write purer code

Non atomic deployments

Cron-free deferred delete of obsolete static resources

Overriding methods is spaghetti in disguise

An argument for composition over inheritance

E2E Tests: Test as a user would

Make your E2E tests less of a time-sink

Reasons to not use page objects in E2E tests

They can result in code that is harder to reason about

Say no to more optional arguments

They're often smelly and biased towards historical code

Pragmatic Purity

Keep pure and impure code separate, with fewer impure code paths

Blue-Green Deployment of Static Site on S3

API Gateway in a blue-green deployment strategy

Defer node stream processing

Delay chain of piped streams until a promise is resolved

Animating elements moving between lists

Anchored CSS transitions to move elements between ng-repeat lists

Throttled variable changes

Delay variable changes in AngularJS templates using shadowing

Same-domain iframe communication

AngularJS scope events for same-domain bi-directional iframe communication

AngularJS Transclude

Break free from the DOM: move compiled elements to arbitrary locations

AngularJS Promises

Chaining, failures, notifications

ECONNRESET Errors in node.js

Socket.io and Express on the same port

Dependency-Based Cache Invalidation

Russian doll dependency-based cache invalidation system for PHP and Memcached. Part 1: Design.

About This Site

Jekyll, S3 and Cloudfront

JQuery UI Datepicker Incorrect Century

On certain yearRange options

Thinking Fast and Slow

A few thoughts / review

AWS Load Balancer

Beware long POSTS: they duplicate