svgbobrus - Convert your ascii diagram scribbles into happy little SVG

With HMR enabled you can’t use [chunkhash] for technical reasons.

>

> For dev builds with HMR -> use [hash].

Leap seconds, go and cloudflare

hyperHTML - great virtual dom

svg lazyload jpeg

Code duplication on github

xkeshi/image-compressor

A simple JavaScript image compressor. Uses the Browser's native canvas.toBlob API to do the compression work. General use this to precompress a client image file before upload it.

Writing an automatic code formatter

Data transfer

Error correcting codes

Text

5 things about unicode

Let’s talk about usernames

Time

Just use UTC. For transfering time over the wire - ISO 8601. RFC 3339 - basically ISO 8601, just a little bit more strict.

color advice for cartography

Where to store dotfiles data - XDG Base Directory Specification

$XDG_DATA_HOME

$XDG_DATA_HOME defines the base directory relative to which user specific data files should be stored. If $XDG_DATA_HOME is either not set or empty, a default equal to $HOME/.local/share should be used.

Example usage: storing plugins downloaded by the user, databases created by your program, user's input history, bookmarks, emails, and so on.

$XDG_CONFIG_HOME

$XDG_CONFIG_HOME defines the base directory relative to which user specific configuration files should be stored. If $XDG_CONFIG_HOME is either not set or empty, a default equal to $HOME/.config should be used.

You should use this directory to store user-specific configuration files for your program. You will most likely want to create a default configuration file with sane and sensible default values the first time your program is executed.

$XDG_CACHE_HOME

$XDG_CACHE_HOME defines the base directory relative to which user specific non-essential data files should be stored. If $XDG_CACHE_HOME is either not set or empty, a default equal to $HOME/.cache should be used.

Example: caching thumbnails generated by your file manager, songs that the user of a music straming software is often listening to, and so on. Your program should continue to function without any problems if this directory is removed by the user. Ensure that the files that are no longer needed are properly removed. Remember that exceeding the sensible amount of storage space used by your files will most likely upset the user who will quickly track down your program as a culprit.

$XDG_RUNTIME_DIR

$XDG_RUNTIME_DIR defines the base directory relative to which user-specific non-essential runtime files and other file objects (such as sockets, named pipes, ...) should be stored.

The specification lists a series of requirements that have to be fulfilled by this directory. As described by the specification you should use this directory to store sockets and similar files used for communication.

System-level variables

$XDG_CONFIG_DIRS

$XDG_CONFIG_DIRS defines the preference-ordered set of base directories to search for configuration files in addition to the $XDG_CONFIG_HOME base directory. The directories in $XDG_CONFIG_DIRS should be seperated with a colon ':'.

If $XDG_CONFIG_DIRS is either not set or empty, a value equal to /etc/xdg should be used.

This directory should be used for storing system-wide configuration files that can be overwriten by user-specific configuration files. This directory would most likely be populated during the installation process.

$XDG_DATA_DIRS

$XDG_DATA_DIRS defines the preference-ordered set of base directories to search for data files in addition to the $XDG_DATA_HOME base directory. The directories in $XDG_DATA_DIRS should be seperated with a colon ':'.

If $XDG_DATA_DIRS is either not set or empty, a value equal to /usr/local/share/:/usr/share/ should be used.

Example: storing plugins or themes that can be used by all users of your program. This directory would most likely be populated during the installation process.

Reliability

In God we trust, all others must bring e2e tests.

The flakiness of your integration tests is a lower bound for the flakiness of your user experience.

I recently learned about Hyrum's Law, which states:

With a sufficient number of users of an API, it does not matter what you promise in the contract: all observable behaviors of your system will be depended on by somebody.

XKCD

Kevin Mahoney has provided a new neat mathematical illustration of the availability problem of inter-connecting services:

Take the example where service C depends on services A and B[…]

If A has an availability of 0.8 (80%) and B 0.95 (95%), C will have a best case of 0.8 (80%), an average case of 0.8 × 0.95 = 0.76 (76%), and a worst case of 1 - ((1 - 0.8) + (1 - 0.95)) = 0.75 (75%)

results matching ""

    No results matching ""