| Keybinding | Action |
|---|---|
| Alt + f/b | Move cursor to previous/next word |
| Ctrl + a/e | Move cursor to beginning/end of command |
| Ctrl + xx | Toggle between the start of line and current cursor position |
This document is targeted at those who seek to build reproducible dev environment across machines, OS, and time.
It maybe easier for remote teams to work together and not spending hours each person setting up asdf/pyenv/rbenv, LSP servers, linters, runtime/libs. Nix is probably the closest thing to Docker in terms of development environment.
Flake is used here because it provides hermetic build, with absolutely no reliance on system environment (be it Arch/Catalina/Mojave). Also it freezes dependencies in flake.lock so builds are reproducible.
This gist provides the setup to develop Java/Clojure/Python applications on Nix. But it can be easily adapted to ruby, nodejs, haskell.
MIT License
Copyright (c) 2018 Josh Bode
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
| # Ideally, we would manage async access to stdin/stdout/stderr *without* | |
| # setting them to non-blocking mode, because that can break other processes. | |
| # (See https://github.com/python-trio/trio/issues/174 for much more detail.) | |
| # Of course we can call read/write in a separate thread, but then we lose | |
| # cancellation support. | |
| # This file demonstrates a weird hack to make blocking read/write cancellable, | |
| # and thus at least theoretically possible to integrate into Trio as ordinary | |
| # first-class operations. |
| import sys | |
| import functools | |
| import contextlib | |
| @contextlib.contextmanager | |
| def indented_output(indent=4, space=chr(32)): | |
| """ Precede each carriage return with some quantity of spaces. | |
| While nesting `indented_output` contexts, be prepared |
| import hashlib | |
| import json | |
| from decimal import Decimal | |
| from typing import Any, Dict, Type | |
| from typing_inspect import get_args, get_generic_bases, is_generic_type, is_union_type # type: ignore | |
| Json = Dict[str, Any] | |
| class Pool: | |
| def __init__(self, pool_size): | |
| self._size = pool_size | |
| self.send_channel, self.receive_channel = trio.open_memory_channel(pool_size) | |
If you wan't a cljs that acts like clj, but for ClojureScript, there are a few minor changes you can make:
First, add the following entry to ~/.clojure/deps.edn under the :deps key:
org.clojure/clojurescript {:mvn/version "1.10.439"}
Then make copies of clj and clojure named cljs and clojurescript, and put those copies on your path.
Just use https://github.com/ripeworks/iro which gets the challenge below right!
Picking a Color on Mac is hard. Mainly due to the fact that several applications floating around the web ( AppStore and independant ), grab the color "incorrectly".
Why incorrectly?
| :root { | |
| --ease-in-quad: cubic-bezier(.55, .085, .68, .53); | |
| --ease-in-cubic: cubic-bezier(.550, .055, .675, .19); | |
| --ease-in-quart: cubic-bezier(.895, .03, .685, .22); | |
| --ease-in-quint: cubic-bezier(.755, .05, .855, .06); | |
| --ease-in-expo: cubic-bezier(.95, .05, .795, .035); | |
| --ease-in-circ: cubic-bezier(.6, .04, .98, .335); | |
| --ease-out-quad: cubic-bezier(.25, .46, .45, .94); | |
| --ease-out-cubic: cubic-bezier(.215, .61, .355, 1); |