Skip to content

Instantly share code, notes, and snippets.

Medallion - Silver layer - Variants
3 variants:
*"Schema normalization"*: still semistructured OBT, but with an interpretation of facts according to protocols and sources, into a standardized business-oriented schema.
*"Value extraction"*: records are extracted (through MVs) to tables that represent business use-cases. These tables are "regular", where relevant values are mapped to their own columns.
*"Projection"*: as above, but only values necessary for filtering (determined by business needs) are extracted to their own columns in projections. The content is still mainly stored in the raw fact. Aliases or (non-M) views are used to simplify interpretation at the querying stage.
@perfaram
perfaram / turing.sql
Created December 13, 2025 15:33
a turing machine in clickhouse?
WITH RECURSIVE turing AS (
SELECT
[
('RSET', 3, 42), -- Register SET (register#, int val): set register #LHS to value in RHS
('PASS', 0, 0), -- is no-op
('IADD', 2, 2), -- Integer ADD (register#, int val): add the value in RHS to the register #LHS
('RGTE', 2, 3), -- Register Greater Than or Equal (register#, register#): sets the comparison register (register #1) to truthy if register #LHS is >= register #RHS
('CJMP', 7, 0), -- Conditional JuMP: jump to the program index #LHS if the comparison register (register #1) is truthy (> 0)
('UJMP', 2, 0), -- Unconditional JUMP: jump to the program index #LHS (here never reached)
('STOP', 0, 0) -- STOP: stop the VM (terminates the request)
@perfaram
perfaram / index.js
Last active May 1, 2024 15:15
dump product descriptions for all products in the "pasta" category sold at Migros (Switzerland)
import pkg from 'migros-api-wrapper';
const { MigrosAPI, ILoginCookies } = pkg;
import fs from 'fs';
main();
async function main() {
// Search for products matching a certain string.
const guestInfo = await MigrosAPI.account.oauth2.getGuestToken();
const responseCategoryList = await MigrosAPI.products.productSearch.category({
@perfaram
perfaram / k3_keys.html
Created October 15, 2017 13:44
A backup of parhelia.ch's SMC key informations and structs declarations.
<html><head>
<body>
<center><h1>SMC Keys</h1></center>
<center><h2>K3 Version: 1.30f1
</h2></center>
<p>
<table cellpadding="2" cellspacing="2" border="1" width="100%">
<tr>
<th align=middle>KEY</th>
<th align=middle>TYPE</th>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>#KEY</key>
<string>ui32</string>
<key>+LKS</key>
<string>flag</string>
<key>AL!</key>
<string>ui8</string>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>#KEY</key>
<string>Total key count</string>
<key>+LKS</key>
<string>Returns 3 bit value, where each bit represents one of the three lock bit regions.</string>
<key>AL!</key>
<string>ALS variables overriding</string>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>T*</key>
<string>Temperature</string>
<key>V*</key>
<string>Voltage</string>
<key>I* (upper-case i, not lower-case L)</key>
<string>Intensity (current)</string>
@perfaram
perfaram / encode_ascii_as_dna.py
Last active July 19, 2017 17:46
Encoding ASCII text as DNA (quaternary base)
def to_base(n, bse):
digs = "0123456789abcdefghijklmnopqrstuvwxyz"
tmp = []
while n:
n, i = divmod(n, bse)
tmp.append(digs[i])
return "".join(tmp[::-1])
def chng_frm_base(s, frm_bse, to_bse):
if to_bse < 2 or to_bse > 36 or frm_bse < 2 or frm_bse > 36:
import UIKit
public class Vertex {
var key: String?
var neighbors: Array<Edge>
init() {
self.neighbors = Array<Edge>()
}
}
@perfaram
perfaram / semiprivate.md
Created November 21, 2015 19:57 — forked from tarcieri/semiprivate.md
Ed25519-based semi-private keys

Semiprivate Keys

Semi-private keys are an expansion of the traditional idea of asymmetric keys, which have a public/private keypair, to N keys which can each represent a different capability level. In the degenerate case, a semi-private key system has 3 different types of keys. These are, to use the Tahoe terminology:

  • writecap: can publish new ciphertexts
  • readcap: can read/authenticate ciphertexts