Skip to content

Instantly share code, notes, and snippets.

View vastus's full-sized avatar
🦅
all(good)

Juho Hautala vastus

🦅
all(good)
View GitHub Profile
@vastus
vastus / hidutil_map_caps_lock_to_ctrl.sh
Last active June 20, 2020 03:43
Map caps lock to control (ctrl) on macOS 10.12 Sierra and later using hidutil
#!/bin/bash
# https://stackoverflow.com/a/46460200
hidutil property --set \
'{"UserKeyMapping": [{"HIDKeyboardModifierMappingSrc": 0x700000039, "HIDKeyboardModifierMappingDst": 0x7000000e0 }] }'
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.xserver.windowManager.dwm;
dwm =
if cfg.configFile
then (pkgs.dwm.overrideAttrs (old: { postPatch = "cp ${cfg.configFile} config.h"; }))
@vastus
vastus / airflow_local_settings.py
Created May 2, 2019 09:03
Airflow cluster policy
"""Local Airflow settings (policy)"""
from datetime import timedelta
from airflow.models import TaskInstance
DEFAULT_EXECUTION_TIMEOUT = timedelta(hours=48)
def policy(task: TaskInstance) -> None:
@vastus
vastus / impdec.js
Last active April 6, 2023 21:57
Imperative and declarative
/*
* Notes
*
* Make sure you know the size of your data and use proper functions or style
* to not introduce bottlenecks by mistake.
*
* If we get inlined functions to Node/JS, using declarative programs will be
* almost as fast as imperative ones by the magic of transducers. Transducers
* will do a single pass (reduce) on the input with the composition of the
* given transformation functions.
@vastus
vastus / invoice.ts
Last active October 28, 2018 14:02
Composition in TypeScript with Ramda
import R from 'ramda';
type Invoice = {
invoiceDate: Date;
};
// latestInvoice :: Invoice[] -> Invoice
const latestInvoice = R.compose<Invoice[], Invoice[], Invoice[], Invoice>(
R.head,
R.sort(R.descend(R.prop('invoiceDate'))),
@vastus
vastus / wp-config.php
Last active April 6, 2024 09:40
Fix too many redirects on Wordpress when serving through CloudFront
<?php
/*
* Getting too many redirects when SSL is not on and the WP_HOME and
* WP_SITEURL settings are set.
*
* These settings should work with CloudFront and a WP instance.
* You have to set custom headers for the origin for this fix to work.
*
* x-protocol: https
<?php
/*
* Getting too many redirects when SSL is not on and the WP_HOME and
* WP_SITEURL settings are set.
*
* These settings should work with CloudFront and a WP instance.
*/
$protocol = (isset($_SERVER['HTTP_X_FORWARDED_PROTO'])) ? $_SERVER['HTTP_X_FORWARDED_PROTO'] : 'http';
function compose2<T, U>(g: (n: T) => U, f: (m: T) => T) {
return function (x: T) {
return g(f(x));
}
}
const inc = (x: number) =>
x + 1;
const add = (x: number) => (y: number) =>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="theme-color" content="#000000">
<!--
manifest.json provides metadata used when your web app is added to the
homescreen on Android. See https://developers.google.com/web/fundamentals/engage-and-retain/web-app-manifest/
-- customer IDs and ID types
DELETE FROM dm_b2c_marketing.customer_b2c;
INSERT INTO dm_b2c_marketing.customer_b2c (
customer_id,
id_domain,
dp_customer_id
) VALUES (
'shogun-alice',
'shogun',
'dp-inner-alice'