Often when writing programs and functions, one starts off with concrete types that solve the problem at hand. At some later time, due to emerging requirements or observed patterns, or just to improve code readability and reusability, we refactor to make our code more polymorphic. The importance of not breaking your API typically ranges from nice to have (e.g. minimises rework but not essential) to paramount (e.g. in a popular, foundational library).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <stdint.h> | |
#include <stdio.h> | |
#include <unistd.h> | |
#include <signal.h> | |
#include <stdlib.h> | |
static volatile int alive = 1; | |
#define width 80 | |
#define height 48 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
CATEGORY THEORY FOR PROGRAMMERS | |
Category Theory 1.1: Motivation and Philosophy | |
https://www.youtube.com/watch?v=I8LbkfSSR58&index=1&list=PLbgaMIhjbmEnaH_LTkxLI7FMa2HsnawM_ | |
Composability, Abstraction, Reusability | |
Category Theory is a higher-level language. | |
Not a practical, executable language. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Tweak tap coordinates as you wish | |
function reactnativedev() { | |
adb shell input keyevent 82; | |
sleep 0.1; | |
adb shell input tap 150 1401; | |
sleep 0.1; | |
adb shell input tap 150 1401; | |
sleep 0.1; | |
adb shell input text "$1"; | |
sleep 0.1; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
create table if not exists migrations ( | |
key text CONSTRAINT pkey PRIMARY KEY | |
); | |
create or replace function idempotent(migration_name text,code text) returns void as $$ | |
begin | |
if exists (select key from migrations where key=migration_name) then | |
raise notice 'Migration already applied: %', migration_name; | |
else | |
raise notice 'Running migration: %', migration_name; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ config, lib, pkgs, ...}: | |
with lib; | |
let | |
cfg = config.services.batteryNotifier; | |
in { | |
options = { | |
services.batteryNotifier = { | |
enable = mkOption { |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bash | |
# TODO: Look at nixpkgs/pkgs/build-support/setup-hooks/auto-patchelf.sh | |
# https://ms-vsliveshare.gallery.vsassets.io/_apis/public/gallery/publisher/MS-vsliveshare/extension/vsliveshare/0.3.423/assetbyname/Microsoft.VisualStudio.Services.VSIXPackage | |
set -eu | |
TOOLS="patchelf xsel" | |
DEPS="utillinux.out openssl.out icu zlib curl.out lttng-ust libsecret libkrb5" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
## enable multilib see https://wiki.archlinux.org/index.php/Multilib | |
sudo vim /etc/pacman.conf | |
## this is not a comprehensive list as installed on an existing system, look for errors in the terminal after running the Eve Launcher exe | |
sudo pacman -S wine wine_gecko winetricks q4wine wine-mono lib32-gnutls samba lib32-mpg123 lib32-sdl lib32-libldap lib32-libpulse | |
mkdir ~/Wine | |
cd ~/Wine | |
WINEARCH=win32 WINEPREFIX=~/Wine/win32 winecfg |