Skip to content

Instantly share code, notes, and snippets.

Avatar

Peter Keše pkese

  • Viidea
  • Ljubljana
View GitHub Profile
View fizzbuzz.fs
let (|IsMultiple|_|) n x = if x % n = 0 then Some n else None
[1..100]
|> List.map (function
| IsMultiple 15 x -> "FizzBuzz"
| IsMultiple 5 x -> "Buzz"
| IsMultiple 3 x -> "Fizz"
| x -> $"{x}")
|> List.iter (printfn "%s")
@pkese
pkese / nixos.try.md
Last active Jul 25, 2020
My NixOS experience
View nixos.try.md

My first steps with NixOS

Background:

  • I'd like to use NixOS to manage a 'container' with some services (e.g. Solr) on my headless server.
  • I'm currently running lxc, lxd and docker containers which is tech that I'm familiar with.
  • I'm assuming Nix can provide similar experience: presumably a pure λ(nix-config) -> reproducible container.

Ideally there'd be a short getting started tutorial. My familiarity is:

@pkese
pkese / adaptive_demo.fs
Last active Aug 13, 2020
FSharp.Data.Adaptive sample with React
View adaptive_demo.fs
module AdaptiveSample
open Fable.React
open Fable.React.Props
open FSharp.Data.Adaptive
let useAdaptive (v: aval<'T>) =
// initialize hook with initial value
let stateHook = Hooks.useState (AVal.force v)
let onChange () =
@pkese
pkese / BoolExpr.fs
Created Jun 14, 2019
BoolExpr eval in F#
View BoolExpr.fs
type Expr =
| And of Expr * Expr
| Or of Expr * Expr
| Not of Expr
| Const of bool
let rec eval = function
| And (x,y) -> eval x && eval y
| Or (x,y) -> eval x || eval y
| Not x -> not (eval x)
View feathers-rethinkdb issue.md

I have setup a table with custom id field as follows:

  app.use('session', new Service({
    Model: r,
    db,
    id: 'hash',
    name: 'sessions',
  }));
View dash-avc264 command lines
See my DASH-IF presentation from October, 2014:
https://s3.amazonaws.com/misc.meltymedia/dash-if-reveal/index.html#/
1. encode multiple bitrates with keyframe alignment:
ffmpeg -i ~/Movies/5D2_Portrait.MOV -s 1280x720 -c:v libx264 -b:v 1450k -bf 2 \
-g 90 -sc_threshold 0 -c:a aac -strict experimental -b:a 96k -ar 32000 out.mp4
My input was 30 fps = 3000 ms. If it were 29.97, then a GOP size of 90 frames will yield a base segment
size of 3003 milliseconds. You can make the segment size some multiple of this, e.g.: 6006, 9009, 12012.
@pkese
pkese / gist:2790749
Created May 25, 2012
Django&PostgreSQL: LISTEN + NOTIFY = Async notifications
View gist:2790749
##########################################################
# django postgres polling - LISTEN
import psycopg2.extensions
import select
from django.db import connection
crs = connection.cursor() # get the cursor and establish the connection.connection
pg_con = connection.connection