Skip to content

Instantly share code, notes, and snippets.

View gasi's full-sized avatar

Daniel Gasienica gasi

View GitHub Profile
@gasi
gasi / Main.purs
Created February 8, 2022 21:15
PureScript: Pattern matching and @ syntax
module Main where
import Prelude
import Data.Maybe (Maybe(..))
import Effect (Effect)
import Effect.Console (log)
data Dish = Dish Pasta (Maybe Sauce)
{
"dih": 1033723067,
"data": "{\"cid\":\"89524997\",\"ibs\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAlgAAAFzCAYAAADi5Xe0AAAgAElEQVR4Xu3cX+jWZ90H8MtpOzCRKZLsYMyByAYFMiORncTOdrKy/QnnYATqdOUf/DOb1qbFmMVYiRRtVFT+SZNyB53FTupgJxOiEIogMI/qwBC3uSXz93B/cSP3+Pj4+X6/3vf3c18vQXjqua77vq7X+/rd15vv/ctZMzMzM8UfAgQIECBAgACB3gRmKVi9WXohAgQIECBAgEAjoGA5CAQIECBAgACBngUUrJ5BvRwBAgQIECBAQMFyBggQIECAAAECPQsoWD2DejkCBAgQIECAgILlDBAgQIAAAQIEehZQsHoG9XIECBAgQIAAAQXLGSBAgAABAgQI9CygYPUM6uUIECBAgAABAgqWM0CAAAECBAgQ6FlAweoZ1MsRIECAAAECBBQsZ4AAAQIECBAg0LOAgtUzqJcjQIAAAQIECChYzgABAgQIECBAoGcBBatnUC9HgAABAgQIEFCwnAECBAgQIECAQM8CClbPoF6OAAECBAgQIKBgOQMECBAgQIAAgZ4FFKyeQb0cAQIECBAgQEDBcgYIECBAgAABAj0LKFg9g3o5AgQIECBAgICC5QwQIECAAAECBHoWULB6BvVyBAgQIECAAAEFyxkgQIAAAQIECPQsoGD1DOrlCBAgQIAAAQIKljNAgAABAgQIEOhZQMHqGdTLESBAgAABAgQULGeAAAECBAgQINCzgILVM6iXI0CAAAECBAgoWM4AAQIECBAgQKBnAQWrZ1AvR4AAAQIECBBQsJwBAgQIECBAgEDPAgpWz6BejgABAgQIECCgYDkDBAgQIECAAIGeBRSsnkG9HAECBAgQIEBAwXIGCBAgQIAAAQI9CyhYPYN6OQIECBAgQICAguUMECBAgAABAgR6FlCwegb1cgQI
@gasi
gasi / type-safe-redux.ts
Created December 23, 2016 00:04
Type-safe Redux
interface BasicAction<T> {
type: T
}
interface PayloadAction<T, P> extends BasicAction<T> {
payload: P
}
interface ErrorAction<T> extends BasicAction<T> {
error: Error
@gasi
gasi / h.js
Created March 2, 2016 04:07
Seadragon.com Viewer for content ID **h**
/*
FILE ARCHIVED ON 0:36:48 Aug 2, 2014 AND RETRIEVED FROM THE
INTERNET ARCHIVE ON 2:31:05 Feb 28, 2016.
JAVASCRIPT APPENDED BY WAYBACK MACHINE, COPYRIGHT INTERNET ARCHIVE.
ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C.
SECTION 108(a)(3)).
*/
/**
* Zoom.it Embed (build 65069 on 2011-02-04)
@gasi
gasi / compare.c
Created May 13, 2015 21:22
VIPS compare function (`vips_stats` example)
/*
* Compile with:
*
* gcc -g -Wall compare.c `pkg-config vips --cflags --libs` -o compare
*
* Run with:
*
* ./compare actual expected
*
* Examples:
@gasi
gasi / resize-alpha.c
Created May 6, 2015 23:11
Resize images with alpha channel, e.g. PNG, using VIPS without dark fringing using premultiplication of the alpha channel
/*
* Compile with:
*
* gcc -g -Wall resize-alpha.c `pkg-config vips --cflags --libs` -o resize-alpha
*
* Run with:
*
* ./resize-alpha in out interpolation
*
* Examples:
@gasi
gasi / alpha-resizing-1024x768-paper.png
Last active August 29, 2015 14:20
`vips_affine` using non-`nearest` interpolation causes dark fringing around bright edges in transparent images
alpha-resizing-1024x768-paper.png
@gasi
gasi / composite.c
Created April 30, 2015 05:07
VIPS alpha compositing
/* compile with:
*
* gcc -g -Wall composite.c `pkg-config vips --cflags --libs`
*/
#include <stdio.h>
#include <vips/vips.h>
/* Composite images `src` and `dst`.
*/
Verifying that +gasi is my openname (Bitcoin username). https://onename.io/gasi
<!DOCTYPE html>
<html>
<head>
<title>Image Pyramid Demo</title>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width,height=device-height,initial-scale=1.0,user-scalable=no">
<script src="pyramiddemo.js"></script>
<style>
body {