Background: https://neon.tech/blog/avoid-mitm-attacks-with-psql-postgres-16
Enterprise DB 17.3
"C:\Program Files\PostgreSQL\17\bin\psql.exe" "postgresql://user:[email protected]/neondb?sslrootcert=system"
Background: https://neon.tech/blog/avoid-mitm-attacks-with-psql-postgres-16
Enterprise DB 17.3
"C:\Program Files\PostgreSQL\17\bin\psql.exe" "postgresql://user:[email protected]/neondb?sslrootcert=system"
function x509Error() { | |
throw new Error('Could not extract signature algorithm digest from server certificate to perform channel binding') | |
} | |
function readASN1Length(data, index) { | |
let length = data[index++] | |
if (length < 0x80) return { length, index } | |
const lengthBytes = length & 0x7f | |
if (lengthBytes > 4) x509Error() |
\set contents `base64 < "path/to/pgconf.eu.2023/2023.pgconf.eu Zero Downtime PostgreSQL Upgrades.pdf"` | |
insert into docs (name, fulltext) values ($$2023.pgconf.eu Zero Downtime PostgreSQL Upgrades.pdf$$, rag.text_from_pdf(decode(:'contents','base64'))); | |
\set contents `base64 < "path/to/pgconf.eu.2023/20231215_PGConfEU_What-cant-pgBackRest-do-for-you.pdf"` | |
insert into docs (name, fulltext) values ($$20231215_PGConfEU_What-cant-pgBackRest-do-for-you.pdf$$, rag.text_from_pdf(decode(:'contents','base64'))); | |
\set contents `base64 < "path/to/pgconf.eu.2023/A journey into postgresql logical replication.pdf"` | |
insert into docs (name, fulltext) values ($$A journey into postgresql logical replication.pdf$$, rag.text_from_pdf(decode(:'contents','base64'))); | |
\set contents `base64 < "path/to/pgconf.eu.2023/Breaking Up Massive Tables with Partitioning.pdf"` | |
insert into docs (name, fulltext) values ($$Breaking Up Massive Tables with Partitioning.pdf$$, rag.text_from_pdf(decode(:'contents','base64'))); | |
\set contents `base64 < |
const | |
toHexDecoder = new TextDecoder(), | |
charCodes = [48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 97, 98, 99, 100, 101, 102], // 0123456789abcdef | |
u16Lookup = new Uint16Array(256), | |
isLittleEndian = new Uint8Array((new Uint16Array([0x0102]).buffer))[0] === 0x02; | |
if (isLittleEndian) for (let i = 0; i < 256; i ++) u16Lookup[i] = charCodes[i & 0xF] << 8 | charCodes[(i >>> 4) & 0xF]; | |
else for (let i = 0; i < 256; i ++) u16Lookup[i] = charCodes[i & 0xF] | charCodes[(i >>> 4) & 0xF] << 8; | |
export function toHex(data) { |
-- == create schema == -- | |
begin; | |
drop type if exists category cascade; | |
create type category as enum ('Natural', 'Cultural', 'Mixed'); | |
drop type if exists category_short cascade; | |
create type category_short as enum ('N', 'C', 'C/N'); |
unique_number,id_no,rev_bis,name_en,name_fr,short_description_en,short_description_fr,justification_en,justification_fr,date_inscribed,secondary_dates,danger,date_end,danger_list,longitude,latitude,area_hectares,C1,C2,C3,C4,C5,C6,N7,N8,N9,N10,criteria_txt,category,category_short,states_name_en,states_name_fr,region_en,region_fr,iso_code,udnp_code,transboundary |
# using AWS Lightsail, Ubuntu 20.04 | |
# in dashboard, allow TCP on port 5901 | |
sudo apt update && sudo apt upgrade -y && sudo apt install -y \ | |
tigervnc-standalone-server tigervnc-xorg-extension \ | |
xfce4 wireshark node # pick any window mgr, say yes to non-root packet capture | |
# set up VNC |
import { DateString, strict } from 'zapatos/db'; | |
/** | |
* Convert a `DateString` (to 6dp) to microseconds since 1 January 1970. | |
* Nullability is preserved (e.g `DateString | null` becomes `number | null`) | |
* using `strict`. Note: only dates before 5 June 2255 can be represented | |
* within `Number.MAX_SAFE_INTEGER` this way. | |
*/ | |
export const toUnixMicroseconds = strict((d: DateString) => { | |
const |
// | |
// LinkableTextView.h | |
// | |
// Created by George MacKerron on 2020/01/09. | |
// Copyright © 2020 George MacKerron. MIT licenced. | |
// | |
@import UIKit; | |
@interface LinkableTextView : UITextView |
Johnson repeated the claim that leaving the EU would save £350m/week in contributions even after the ONS told him it was “a clear misuse of official statistics”. Full Fact
The Department for Work and Pensions has spent £100s of millions of public money disseminating misinformation about Universal Credit for Tory political advantage. The Guardian
During the leaders’ TV debate, the Tory press Twitter account (@CCHQPress) rebranded as factcheckUK in order to dupe people into thinking their partisan commentary was impartial. BBC News