Skip to content

Instantly share code, notes, and snippets.

Rich Hickey on becoming a better developer

Sorry, I have to disagree with the entire premise here.

A wide variety of experiences might lead to well-roundedness, but not to greatness, nor even goodness. By constantly switching from one thing to another you are always reaching above your comfort zone, yes, but doing so by resetting your skill and knowledge level to zero.

Mastery comes from a combination of at least several of the following:

  • Knowledge
  • Focus
@pjstadig
pjstadig / transducers.md
Last active June 8, 2021 13:22
The secret feature of transducers that no one talks about!

The Pledge

One thing that always made me a little sad about transducers was how map lost its ability to iterate multiple collections in parallel. This is actually my favorite feature of map. For example:

(map + (range 5) (range 5 10))
=> (5 7 9 11 13)

One somewhat practical use of this is if you want to compare two sequences, pairwise, using a comparator. Though I wish that every? took multiple collections, this is an adequate substitute:

@DamienCassou
DamienCassou / configuration.nix
Created May 29, 2016 15:52
systemd user service for Emacs daemon defined in NixOS
{
systemd.user.services.emacs = {
description = "Emacs: the extensible, self-documenting text editor";
serviceConfig = {
Type = "forking";
# ExecStart = "${bigEmacs}/bin/emacs --daemon";
# Running Emacs this way ensures environment variable are accessible:
ExecStart = "${pkgs.bash}/bin/bash -c 'source ${config.system.build.setEnvironment}; exec ${bigEmacs}/bin/emacs --daemon'";
ExecStop = "${bigEmacs}/bin/emacsclient --eval (kill-emacs)";
@DamienCassou
DamienCassou / configuration.nix
Created October 22, 2014 13:41
configuration.nix file for NixOS on my macbook pro
{ config, pkgs, ... }:
let
hostname = "luz3";
in {
imports =
[ # Include the results of the hardware scan.
./hardware-configuration.nix
# I use VirtualBox to connect to Windows and Linux guests
Clojure 1.7.0-alpha2
user=> (definline my-get [m k default] `(let [m# ~m k# ~k] (if (not (contains? m# k#)) ~default (get m# k#))))
#'user/my-get
user=> (my-get {:a :b} :a (throw (Exception. "foo")))
:b
user=> (my-get {:a :b} :not-found (throw (Exception. "foo")))
Exception foo user/eval20 (NO_SOURCE_FILE:3)
user=> (apply my-get [{:a :b} :a (throw (Exception. "foo"))])
Exception foo user/eval24 (NO_SOURCE_FILE:4)
user=> (apply my-get [{:a :b} :a :not-found])
@p120ph37
p120ph37 / VIPAccess.exp
Created January 2, 2014 01:34
Command-line implementation of Symantec's "VIP Access" token application on OSX. This will read from the same secret key and produce the same time-based one-time-passwords as the GUI application, but with output that can be captured and used in scripts. This can be useful for things like automating two-factor AnyConnect VPN logins through openco…
#!/usr/bin/expect -f
#
# VIPAccess.exp
#
# Command-line emulation of Symantec's VIP Access software token.
# Usage:
# ./VIPAccess.exp [v]
# If the "v" argument (or any argument) is specified, verbose output
# will be produced on stderr. The OTP value will be output on stdout.
#
@endolith
endolith / Has weird right-to-left characters.txt
Last active April 30, 2024 12:48
Unicode kaomoji smileys emoticons emoji
ּ_בּ
בּ_בּ
טּ_טּ
כּ‗כּ
לּ_לּ
מּ_מּ
סּ_סּ
תּ_תּ
٩(×̯×)۶
٩(̾●̮̮̃̾•̃̾)۶