Разрешение отображения во фрейме при работе с яндекс-метрикой

  • 2017-02-19

При просмотре firefox'ом данных с вебвизора плагин uBlock может заблокировать отображение сайта во фрейме, с сообщением: Установлен запрет на отображение страницы во фрейме

Для разрешения проблемы нужно добавить эти адреса в белый список:

  • mc.yandex.ru
  • webvisor.com
  • metrika.yandex.ru

Находится он по адресу: Add-ons -> uBlock -> Preferences -> Dashboard -> Whitelist

Читать...

Добавление агрегатных функций в postgresql

К сожалению в стандарте SQL нет возможности посчитать медиану. Для добавление агрегатных функций в postgresql есть любопытное расширение quantile. Для установки нужен только pgxn client. У меня его не оказалось, поэтому сначала поставим этот клиент:

sudo aptitude install pgxnclient 
Читать...

Настройка сертификата для nginx

Защищать соединение будем с помощью сертификатов от Let's Encrypt. Проект был создан для широкого распространения https среди веб-сайтов. В отличии от коммерческих центров сертификации, Let's Encrypt не требует оплаты, но существует ряд ограничений:

  • сертификат выдаётся на 90 дней
  • нет wildcard (сертификат дают строга на один домер)
  • ограничение 5-7 сертификатов в неделю

Огромный плюс Let's Encrypt в том, что процедура выдачи и обновления сертификатов полностью автоматизирована.

Оглавление:

  1. Установка Let's Encrypt
  2. Настройка Nginx
  3. Настройка Let's Encrypt
  4. Донастройка Nginx
  5. Настройка автообновления
Читать...

Установка и настройка postgresql под ubuntu 16.04

Добавление репозитория

Необязательно, но зато будет последняя версия Подробнее: https://www.postgresql.org/download/linux/ubuntu

sudo bash -c "echo 'deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main' >> /etc/apt/sources.list.d/pgdg.list"
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | \
  sudo apt-key add -
sudo apt-get update 

Установка

sudo apt-get install -y postgresql postgresql-client libpq-dev pgadmin3
Читать...

Ethernet over USB

Протокол для работы сети через usb -- rndis

Для работы с маками есть вот такая штука: https://github.com/jwise/HoRNDIS

Читать...

Генератор случайных чисел

Линейный конгруэнтный генератор

Не обладает криптографичемкой стойкостью, но полезен в простых случаях.

$$X_{n+1} = (a X_n + c)~~\%~~m,$$ где $m$ — количество значений из которых формируется последовательность $(2 \leqslant m)$, $\%$ — остаток от деления, $a$ — множитель $(0 \leqslant a < m)$, $c$ — приращение $(0 \leqslant c < m)$, $X_{0}$ — начальное значение $(0 \leqslant X_{0} < m)$.

Пример использования

long seed = 1L;
long a = 25214903917L;
long c = 11L;
long m = (long) Math.pow(2, 48);
Stream<Long> stream = Stream.iterate(seed, x -> (a*x + c) % m);
stream.limit(11).skip(1).forEach(System.out::println);

Первые 10 чисел:

25214903928
206026503483683
245470556921330
105707381795861
-57898044054788
102497929776471
-194212777388010
266094224901481
-237412980546624
-133636318119733
Читать...

Комбинаторика

Основые формулы и обозначения

$K$-сочетания без повторений

$ C^k_n = \frac{A^k_n}{k!} = \frac{n!}{k!(n-k)!} $

Произносится как "$C$ из $ n $ по $k$", иностранное обозначение как $\begin{pmatrix} n \\ k \end{pmatrix}$ "n choose k"

$K$-размещения без повторений

$ A^k_n=n(n-1)\cdots(n-k+1)=\frac{n!}{(n-k)!} $

"$A$ из $ n $ по $k$"

$K$-сочетания с повторениями

$ \overline{C^k_n} = C^k_{n+k-1} $

"$C$ из $ n $ по $k$ с чертой"

$K$-размещения с повторениями

$ \overline{A^k_n}=n^k $

"$A$ из $ n $ по $k$ с чертой"

Бином Ньютона

$(x+y)^n = C^0_n x^n y^0 + C^1_{n-1} x^{n-1} y^1 + \dots + C^n_n x^0 y^n $

Тождества с участием биномиальных коэффициентов

  1. $ C^k_n = C^{n-k}_n $
  2. $ C^k_n = C^k_{n-1} + C^{k+1}_{n-1} $
  3. $ C^0_n + C^1_n + \dots + C^n_n = 2^n $
  4. $ (C^0_n)^2 + (C^1_n)^2 + \dots + (C^n_n)^2 = C^n_{2n} $
  5. $ C^{n-1}_{n+m-1} + C^{n-1}_{n+m-2} + \dots + C^{n-1}_{n-1} = C^{n-1}_{n+m} $
  6. $ C^0_n - C^1_n + C^2_n + \dots + (-1)^n(C^n_n) = \begin{cases} 1, & если & n=0 \
    0, & если & n \ge 0 \end{cases} $

Перестановки

$ P(n_1, ..., n_k) = \frac{n!}{n_1! \cdot ... \cdot n_k!} $

Например, может применятся для подсчета перестановок букв в слове.

Полиномиальная формула в общем виде

$$ (x_1 + x_2 + ... + x_k)^n = \sum_{(n_1,...,n_k): n_i \ge 0, n_1+...n_k=n} P(n_1, ... , n_k) x_1^{n_1} , ... , x_k^{n_k} $$

Формула включений и исключений

$$ N(\alpha_{1}^{'},...,\alpha_{n}^{'}) = N - N(\alpha_{1}) - ... - N(\alpha_{n}) + N(\alpha_{1},\alpha_{2}) + ... + N(\alpha_{n-1},\alpha_{n}) + ... + (-1)^n N(\alpha_{1},...,\alpha_{n}) $$

$ \alpha $ свойство $ \alpha^{'} $ исключающее свойство $ N(\alpha_{n-1},\alpha_{n}) = C_n^2 $

$$ \sum_{k=0}^{n} (-1)^k C_n^k (n-k)^m = 0 $$

Читать...

При невозможности запуска виртуальной машины

sudo /usr/lib/virtualbox/vboxdrv.sh setup
Читать...

Установка rails приложения с нуля на ubuntu

В этой заметке я рассмотрю полный цикл развертывания rails приложения на ubuntu-server. Использованный стэк технологий:

  • Ubuntu server
  • Postgresql
  • Nginx
  • RVM
  • Puma
  • Ruby
  • Git
  • Sidekiq
  • Redis
  • Rails
  • Capistrano
Читать...

Переход с Posgresql 9.4 на 9.5

Правим конфиги в соответствии с предыдущей версией:

Важно поставить одинаковые порты в postgresql.conf для того, чтобы был мягкий переход для приложений, использующих базу данных.

sudo nano --syntax=sh /etc/postgresql/9.5/main/pg_hba.conf
sudo nano --syntax=sh /etc/postgresql/9.5/main/postgresql.conf

 

Останавливаем сервисы:

sudo service postgresql stop

 

Дропаем новый кластер:

sudo pg_dropcluster 9.5 main

 

Обновляем предыдущий:

sudo pg_upgradecluster 9.4 main

 

Дропаем предыдущий:

sudo pg_dropcluster 9.4 main

 

Проверяем:

pg_lsclusters

 

Теперь удалим ненужные пакеты:

dpkg --get-selections | grep postgres

 

Удаляем пакеты с предыдущей версией:

sudo aptitude purge postgresql-9.4 postgresql-client-9.4 postgresql-contrib-9.4 postgresql-server-dev-9.4
Читать...

All: 18