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