Skip to content

Instantly share code, notes, and snippets.

@mgold
mgold / using_mailboxes_in_elm.md
Last active March 24, 2020 16:05
Using Mailboxes in Elm: a tutorial blog post

Using Mailboxes in Elm

Max Goldstein | July 30, 2015 | Elm 0.15.1

In Elm, signals always have a data source associated with them. Window.dimensions is exactly what you think it is, and you can't send your own events on it. You can derive your own signals from these primitives using map, filter, and merge, but the timing of events is beyond your control.

This becomes a problem when you try to add UI elements. We want to be able to add checkboxes and dropdown menus, and to receive the current state of these elements as a signal. So how do we do that?

The Bad Old Days

import Timer
import Signal exposing (Address,Mailbox,mailbox)
import Html exposing (div, button, text, Html)
import Html.Events exposing (onClick)
import Task exposing (Task,andThen)
import Http
import Time exposing (every,second)
@bmispelon
bmispelon / placeholderify.py
Created April 27, 2015 22:03
Automatic placeholder attributes from field labels in Django forms
from functools import partial
def placeholderify(form=None, fields=None):
"""
A decorator for Django forms that sets a `placeholder` attribute to all
fields. Each field's label is used as a placeholder.
Use it like so:
@yoavniran
yoavniran / ultimate-ut-cheat-sheet.md
Last active July 16, 2025 06:32
The Ultimate Unit Testing Cheat-sheet For Mocha, Chai, Sinon, and Jest
@seansawyer
seansawyer / README.md
Last active August 25, 2022 14:49
Managing OpenStack instances with Ansible through an SSH bastion host

Managing OpenStack instances with Ansible through an SSH bastion host

I'm be using DreamCompute as my OpenStack provider, but there are dozens to choose from. I assume you already have Ansible and the OpenStack CLI tools installed.

Motivation

With the proliferation of OpenStack public clouds offering free and intro tiers, it's becoming very easy to effectively run a simple application for free or nearly free. Also with the emergence of Ansible, you don't need to learn and deploy complicated tools to do configuration management.

@sebz
sebz / grunt-hugo-lunrjs.md
Last active December 28, 2025 18:24
hugo + gruntjs + lunrjs = <3 search
@unbracketed
unbracketed / branch-fu.md
Created April 7, 2015 17:49
Moving commits between branches

Example: Moving up to a few commits to another branch

Branch A has commits (X,Y) that also need to be in Branch B. The cherry-pick operations should be done in the same chronological order that the commits appear in Branch A.

cherry-pick does support a range of commits, but if you have merge commits in that range, it gets really complicated

git checkout branch-B
git cherry-pick X
git cherry-pick Y

Rich Hickey on becoming a better developer

Rich Hickey • 3 years ago

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:

@acowley
acowley / EmacsHaskellDemo.md
Last active May 18, 2023 17:31
Emacs Haskell Demo Show Notes

Org Editing in haskell-mode

The video opens with a regular Haskell source file in haskell-mode. We start off by adding headings that break the file into meaningful chunks. A section heading is indicated by an asterisk following Haskell single-line comment characters, i.e. -- *. These are top-level headings, sub-headings are indicated by adding more asterisks.

These section markers are given meaning by

@carlosmmelo
carlosmmelo / browser.py
Last active March 20, 2021 09:00
Python Behave example using selenium webdriver (with page object model)
from selenium import webdriver
from features.apps.portal import Portal
class Browser(object):
driver = webdriver.Chrome()
driver.implicitly_wait(15)
def close(context):
context.driver.close()