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 | |
230,208,Rev,Cultural Landscape and Archaeological Remains of the Bamiyan Valley,Paysage culturel et vestiges archéologiques de la vallée de Bamiyan,"<p>The cultural landscape and archaeological remains of the Bamiyan Valley represent the artistic and religious developments which from the 1st to the 13th centuries characterized ancient Bakhtria, integrating various cultural influences into the Gandhara school of Buddhist art. The area contains numerous Buddhist monastic ensembles and sanctuaries, as well as fortified edifices from the Islamic period. The site is also testimony to the tragic destruction by the Taliban of the two standing Buddha statues, w |
# 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