Skip to content

Instantly share code, notes, and snippets.

castwide / rails.rb
Last active Jun 28, 2020
Enhance Rails Intellisense in Solargraph
View rails.rb
# The following comments fill some of the gaps in Solargraph's understanding of
# Rails apps. Since they're all in YARD, they get mapped in Solargraph but
# ignored at runtime.
# You can put this file anywhere in the project, as long as it gets included in
# the workspace maps. It's recommended that you keep it in a standalone file
# instead of pasting it into an existing one.
# @!parse
# class ActionController::Base
View monoid-comprehensions.hs
#! /usr/bin/env nix-shell
#! nix-shell -I nixpkgs=channel:nixos-18.09 -i ghci -p "haskellPackages.ghcWithPackages (p: [p.monoidal-containers p.average])"
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE MonadComprehensions #-}
import Control.Applicative ( Alternative(..) )
import Control.Monad.Trans.Cont
import Data.Map.Monoidal ( MonoidalMap )
import qualified Data.Map.Monoidal as Map
chalmagean / onSelect.elm
Last active Dec 22, 2016
Elm onSelect decoder
View onSelect.elm
-- Assuming we have a list of items in the model (type alias Model = { items : List Item }
-- where Item is a record like { id : Int, name : String }
-- this goes in the view and generates an html dropdown
[ onSelect ValueSelectedMsg ]
( (\item -> option [ value (toString ] [ text ]) model.items)
targetSelectedIndex : Json.Decoder Int
extern crate rand;
extern crate test;
extern crate nom;
use nom::*;

A description of known problems in Satoshi Nakamoto's paper, "Bitcoin: A Peer-to-Peer Electronic Cash System", as well as notes on terminology changes and how Bitcoin's implementation differs from that described in the paper.


The longest chain not only serves as proof of the sequence of events witnessed, but proof that it came from the largest pool of CPU power.


Minimum Viable Async with Node 6

With the release of Node 6.0.0, the surface of code that needs transpilation to use ES6 features has been reduced very dramatically.

This is what my current workflow looks like to set up a minimalistic and fast microservice using micro and async + await.

The promise

rauchg /
Last active Jun 7, 2020
mikehearn / threadbox.kt
Created Aug 15, 2015
More advanced ThreadBox with affinity guards
View threadbox.kt
// This is a class that attempts to stop you accessing variables outside a lock.
// It does not do a perfect job, but can catch some common kinds of mistake, in
// particular when you accidentally try to work with objects inside closures that
// end up running later, outside the locked region (or in a different thread).
val bank = ThreadBox(object {
val accounts by arrayListOf(10, 0, 0, 0).guard()
martinmoene / catch-main.cpp
Last active Sep 6, 2017
CATCH - Small complete multi-file example.
View catch-main.cpp
// This tells Catch to provide a main() - only do this in one cpp file:
#include "catch.hpp"
benjie /
Last active Nov 27, 2018
Long Live CoffeeScript and Long Live ES6

Long Live CoffeeScript and Long Live ES6

Clearly ES6 is a huge improvement over ES5, and tools like [6to5][] allow us to use these cool features now. I was reading [Replace CoffeeScript with ES6][replace coffeescript] by [Blake Williams][] and thought it was a great summary of how ES6 solves many of the same problems that CoffeeScript solves; however I'd like to comment on a few of Blake's points and talk about why I'll be sticking with CoffeeScript.


Classes in ES6 (like many of the syntax changes in ES6) are very similar to the CoffeeScript equivalent. To support browsers that are not fully ES5 compliant (e.g. IE8-), however, we still can't really use getters/setters, so ignoring these the comparison is:

You can’t perform that action at this time.