Skip to content

Instantly share code, notes, and snippets.

module Quilt exposing (..)
import Array.Hamt as Array exposing (Array)
{-| A quilt is a datastructure for maintaining a Pinterest-like
grid of images. Each image is wrapped with a Cell which calculates
its width/height from the image, but scales the dimensions to
something that fits.
@danneu
danneu / db.rs
Created April 13, 2018 19:52
Creates a Conn wrapper around postgres::Connection and r2d2::PooledConnection so db fns work with both.
#![allow(warnings)]
// This example stubs out a Conn wrapper around postgres::Connection
// and r2d2_postgres::PooledConnection so that my database functions
// like `insert_user(&conn)` can take my wrapper as an argument and
// work regardless of the underlying connection type.
//
// Example:
//
// // conn is r2d2::PooledConnection
@danneu
danneu / main.rs
Created April 13, 2018 19:07
soa_serive to make unnest() sql ergonomic
extern crate uuid;
#[macro_use]
extern crate soa_derive;
#[derive(StructOfArray)]
struct Thing {
a: String,
b: i32,
c: uuid::Uuid
}
Warning: Each child in an array or iterator should have a unique "key" prop.
Check the top-level render call using <small>. See https://fb.me/react-warning-keys for more information.
in a
in MessagePanel
in div
in div
in Homepage
in div
in body
extern crate tokio_core;
extern crate futures_cpupool;
extern crate futures;
use std::time::Duration;
use std::thread;
use futures::stream::{self, Stream};
use futures_cpupool::CpuPool;
use tokio_core::reactor::Core;
#![feature(i128)]
#![feature(i128_type)]
use std::u128;
use std::net::{Ipv4Addr, Ipv6Addr};
use ipnetwork::IpNetwork;
// Convert 128-bit number to ipv6 address.
fn decimal_to_ipv6(n: u128) -> Ipv6Addr {
Ipv6Addr::new(
@danneu
danneu / image-upload-server.js
Created February 11, 2018 00:44
This is a naive impl of a node server that accepts image uploads at POST /uploads/:uuid but will stream inflight-uploads from GET /uploads/:uuid.
// curl -X POST --data-binary "@../massive.jpg" http://localhost:3001/uploads/xxx
// curl -X POST --data-binary "@../massive.jpg" http://localhost:3001/uploads/xxx --limit-rate 32k
'use strict'
const fs = require('fs')
const { EventEmitter } = require('events')
const express = require('express')
const PORT = 3001
// Since an Encoder and Decoder live as long as a Codec, I'd
// like for them both to share a reference to one instread
// of cloning it.
//
// And do I want refs or slices in this sort of situation? I seem to pick one at random.
// EXAMPLE
fn main() {
@danneu
danneu / 0-index.js
Last active November 21, 2017 22:34
// Middleware function creates a `ctx.render('homepage', { title, foo })`
// function on the koa context.
const reactRenderware = (root, _opts = {}) => {
const defaultOpts = () => ({ locals: {} })
const { locals: globals, opts } = { ...defaultOpts(), ..._opts }
const { extname } = require('path')
const React = require('react')
const ReactDOMServer = require('react-dom/server')
const Master = require(path.join(root, 'master.jsx'))
return async (ctx, next) => {
@danneu
danneu / .js
Created November 9, 2017 20:42
{
console.log('=== body validation')
const body = {
uname: 'foo',
email: 'me@example.com',
pass1: 'secret',
pass2: 'secret',
}
const v = Validator.succeed(body)
.andThen(() => {