Update: 2023/11/30 Bruce Momjian's take on things: https://momjian.us/main/blogs/pgblog/2023.html#November_22_2023
Given a table...
CREATE TABLE foo (
id SERIAL PRIMARY KEY,
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
...
);| #!/bin/bash | |
| # Put this file at: .git/hooks/post-checkout | |
| # and make it executable | |
| # You can install it system wide too, see http://stackoverflow.com/a/2293578/685587 | |
| PREV_COMMIT=$1 | |
| POST_COMMIT=$2 | |
| NOCOLOR='\e[0m' |
Update: 2023/11/30 Bruce Momjian's take on things: https://momjian.us/main/blogs/pgblog/2023.html#November_22_2023
Given a table...
CREATE TABLE foo (
id SERIAL PRIMARY KEY,
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
...
);| #!/usr/bin/env escript | |
| -define(VERSION, 16#05). | |
| -define(CONNECT, 16#01). | |
| -define(NO_AUTH, 16#00). | |
| -define(RESERVED, 16#00). | |
| -define(ATYP_IPV4, 16#01). | |
| -define(ATYP_DOMAINNAME, 16#03). |
http://amundsen.com/media-types/collection/examples/
This format takes into consideration collections (much like Siren). It also takes into consideration versioning. However, I'm not certain version matters in the data set if it pertains to an API version. That is best left being in the API URL. It could pertain to collection version, but I'm not sure the point. Documentation says each collection should have a version - but says nothing more about meaning or why.
Items are clearly distinct in this format and are organizationally positioned separate from links.
This is by far the most collision free structure.
However, the data format itself is a bit strange...Every field being an array. Data is always an array of objects. I understand the flexibility this presents and am not 100% against it. I just believe it's perhaps not needed as things could change based on the client application.
This Gist shows how to use Open vSwitch to bridge Docker containers on two hosts. It is based on this blog post http://goldmann.pl/blog/2014/01/21/connecting-docker-containers-on-multiple-hosts/.
A similar Gist using Tinc instead of Open vSwitch is available: https://gist.github.com/noteed/11031504.
| CREATE TEXT SEARCH CONFIGURATION fr ( COPY = french ); | |
| ALTER TEXT SEARCH CONFIGURATION fr ALTER MAPPING | |
| FOR hword, hword_part, word WITH unaccent, french_stem; | |
| CREATE TEXT SEARCH CONFIGURATION en ( COPY = english ); | |
| ALTER TEXT SEARCH CONFIGURATION en ALTER MAPPING | |
| FOR hword, hword_part, word WITH unaccent, english_stem; | |
| CREATE TEXT SEARCH CONFIGURATION de ( COPY = german ); | |
| ALTER TEXT SEARCH CONFIGURATION de ALTER MAPPING |
| CREATE TABLE IF NOT EXISTS words ( | |
| word text | |
| ); | |
| CREATE TABLE IF NOT EXISTS product ( | |
| product_id int not null, | |
| name text not null, | |
| description text not null, | |
| price decimal(12,2), | |
| attributes jsonb, |
| -- Создаем базы данных | |
| CREATE DATABASE "sahrding-main" OWNER = dev; -- Основная | |
| CREATE DATABASE "sahrding-part-2016" OWNER = dev; -- Шард 1 | |
| CREATE DATABASE "sahrding-part-2017" OWNER = dev; -- Шард 2 | |
| -- Следующие запросы выполняем для каждой базы данных sahrding-part-* | |
| -- Создаем таблицы где будут храниться реальные данные. | |
| -- Со всеми необходимыми индексами и ограничениями. | |
| CREATE TABLE content ( | |
| id int not null, |
| const puppeteer = require('puppeteer'); | |
| const { defineSupportCode } = require('cucumber') | |
| defineSupportCode(({ Before, Given, When, Then }) => { | |
| Before({ timeout: 60 * 1000 }, async function testCase() { | |
| this.browser = await puppeteer.launch() | |
| }) | |
| Given('I am on google with puppeteer', { timeout: 60 * 1000 }, async function testCase() { | |
| this.page = await this.browser.newPage() |
Why should programmers care about Monoids? Because Monoids are a common pattern that shows up over and over in programming. And when patterns show up, we can abstract them and leverage work we've done in the past. This allows us to quickly develop solutions on top of proven, stable code.
Add Commutative Property to a Monoid (Commutative Monoid) and you have something that can be executed in parallel. With the end of Moore's Law, parallelism is our only hope to increasing processing speeds.
What follows is what I've learned after studying Monoids. It is hardly complete, but hopefully will prove to be helpful as an introduction for others.