Skip to content

Instantly share code, notes, and snippets.

View Bregor's full-sized avatar

Maxim Filatov Bregor

View GitHub Profile
@Bregor
Bregor / kubedump.sh
Created November 18, 2022 12:08 — forked from negz/kubedump.sh
Dump Kubernetes cluster resources as YAML
#!/usr/bin/env bash
set -e
CONTEXT="$1"
if [[ -z ${CONTEXT} ]]; then
echo "Usage: $0 KUBE-CONTEXT"
exit 1
fi
@Bregor
Bregor / composition-normalization-and-morons.markdown
Created February 19, 2022 04:47 — forked from julik/composition-normalization-and-morons.markdown
Композиция, нормализация и уроды

В своих разговорах о Юникоде я не затронул несколько интересных моментов, о которых полезно знать. Кофейный столик "Юлик о Юникоде" продолжает прием посетителей.

Байт, кодпойнт, глиф

Юникод - многобайтовый способ кодирования текста. Текст состоит из codepoints (кодовых позиций), все позиции присутствуют в каталоге символов Unicode. Кодпойнты включают базовые компоненты графем и графемы в целом. При этом:

Каждый кодпойнт можно выразить в байтовом виде как минимум 5 разными способами

Один из них - UTF-8, в котором все латинские буквы заменены на однобайтовые ASCII-эквиваленты. Другие варианты - UTF-16 и UTF-32. UTF-16 - стандартный способ хранения Unicode-строк в операционных системах. InDesign импортирует тексты именно в UTF-16 например.

Keybase proof

I hereby claim:

  • I am bregor on github.
  • I am bregor (https://keybase.io/bregor) on keybase.
  • I have a public key ASAR55uKvZ_bsyLelhDeAUAsrJiQWJ3uJMtFFL9fCdqjqAo

To claim this, I am signing this object:

SELECT bdw.schemaname,
bdw.relname,
bdw.datawidth,
cc.reltuples::bigint AS reltuples,
cc.relpages::bigint AS relpages,
ceil(cc.reltuples * bdw.datawidth / current_setting('block_size'::text)::numeric::double precision)::bigint AS expectedpages,
100::double precision - cc.reltuples * 100::double precision * bdw.datawidth / (current_setting('block_size'::text)::numeric * cc.relpages::numeric)::double precision AS bloatpct
FROM ( SELECT ns.nspname AS schemaname,
tbl.oid AS relid,
tbl.relname,
---
- name: Deploy blog app
hosts: blog
vars_files:
- vars.yml
tasks:
- name: Send slack alert
local_action:
module: slack
#!/usr/bin/env ruby
# Ruby implementation of Tor's password hashing OpenPGP S2K algorithm
require 'securerandom'
require 'digest/sha1'
secret = 'some very secret phrase'
salt = SecureRandom.random_bytes(8)
count = 65536
Latency Comparison Numbers
--------------------------
L1 cache reference 0.5 ns
Branch mispredict 5 ns
L2 cache reference 7 ns 14x L1 cache
Mutex lock/unlock 25 ns
Main memory reference 100 ns 20x L2 cache, 200x L1 cache
Compress 1K bytes with Zippy 3,000 ns
Send 1K bytes over 1 Gbps network 10,000 ns 0.01 ms
Read 4K randomly from SSD* 150,000 ns 0.15 ms
describe AccountsController do
before(:each) do
login_user
end
@Bregor
Bregor / spec__requests__history_items_spec.rb
Created June 29, 2011 09:09
Capybara request helpers for devise
require 'spec_helper'
describe "HistoryItems" do
before(:each) {login_as :user}
describe "GET /history_items" do
it "works!" do
visit history_items_path
response.should be_success
end
end
@Bregor
Bregor / gentoo.zsh-theme
Created May 18, 2011 15:08
Gentoo theme for oh-my-zsh with dollar sign instead of percent in unprivileged user prompt (as in gentoo).
function prompt_char {
if [ $UID -eq 0 ]; then echo "#"; else echo $; fi
}
PROMPT='%(!.%{$fg_bold[red]%}.%{$fg_bold[green]%}%n@)%m %{$fg_bold[blue]%}%(!.%1~.%~) $(git_prompt_info)%_$(prompt_char)%{$reset_color%} '
ZSH_THEME_GIT_PROMPT_PREFIX="("
ZSH_THEME_GIT_PROMPT_SUFFIX=") "