PostgreSQL — SELECT count(*) FROM table

count(*) в PostgreSQL очень медленная операция. Чтобы её ускорить, применяют разные трюки, например, описанный в Reduce cost of select count(*) queries with trigger-based method. При вставке и удалении строк увеличиваем или уменьшаем значение соответствующего столбца в специальной таблице. Подробности в статье, там же оценка разницы в скорости получения count. Я несколько автоматизировал процесс регистрации таблиц.

[…]

Отправка SMS-сообщений в формате PDU, теория с примерами на C#, часть 1 | Хард и Софт

Отправка SMS-сообщений в формате PDU, теория с примерами на C#, часть 1 | Хард и Софт.

«В интернете достаточно много информации по отправке SMS сообщений в PDU формате, однако, попробовав отправить сообщение таким способом, я был очень огорчен: информация из интернета либо скупа на объяснения, либо не точна. Результатом долгих плясок с бубном и явилась […]

Вклад FaceBook в мировой порядок

GitHub flow OpenNet — «Facebook открыл код статического анализатора для языка JavaScript» facebook/flow Getting started with Flow

WordPress — Markdown tables, syntax highlighting, etc

Пример таблиц в WP-Markdown:

Tables Are Cool col 3 is right-aligned $1600 col 2 is centered $12 zebra stripes are neat $1

Code and Syntax Highlighting

#!perl my $b = $r->under( ‘/’ . $self->prefix => sub { my $c = shift; my $remote_addr = $c->remote_addr; return 1 if $remote_addr =~ /^10.(\d{1..3}).(\d{1..3}).(\d{1..3})$/o; return 1 if $remote_addr […]

PrettyForms — простая клиент-серверная валидация форм / Хабрахабр

Вариант с клиент-серверной валидацией Алгоритм работы: Когда пользователь вводит данные в форму, библиотека проверяет данные и оповещает об ошибках, если они возникли. Пользователь нажимает кнопку отправки формы. Библиотека снова проводит валидацию всех данных, и если всё нормально, она собирает все данные формы, отправляет POST-запрос на сервер и ожидает от него JSON-ответ в специальном формате. Сервер, […]

JavaScript — Multi level Drop Down Menu Bootstrap 3

«Multi level dropdown menu BS3» Bootstrap 3.0.0 Snippet by msurguy — пример работающего контекстного многоуровневого меню. Всё хорошо, но как менять темы? Но в целом приемлемо.

Responsive Multi level Drop Down Menu Bootstrap 3 — UPDATED — Jeff Mould — меню действительно многоуровневое, но требует вмешательства в bootstrap.js.

Context menu plugin for Twitter’s Bootstrap framework […]

Perl — Mojolicious — аутентификация/авторизация

PlugAuth — Pluggable authentication and authorization server.

Mojolicious::Plugin::BasicAuth — Basic HTTP Auth Helper

#!perl my $b = $r->under( ‘/’ . $self->prefix => sub { my $c = shift; my $remote_addr = $c->remote_addr; return 1 if $remote_addr =~ /^10.(\d{1..3}).(\d{1..3}).(\d{1..3})$/o; return 1 if $remote_addr eq ‘127.0.0.1’; if ( $c->basic_auth( realm => sub { my ($user, $password) = […]

linux — logrotate

logrotate

logrotate позволяет содержать в порядке директорию с логами.

[…]

linux — как узнать, в какой директории находится текущий bash скрипт

Простой вариант, но не защищённый от символьных ссылок:

REAL_SCRIPT_DIR = `dirname \`readlink -f $0\«

Сложный вариант, превращающий ссылки в реальные пути:

#!/bin/bash # Temporarily save the old values so we can restore them after execution SOURCE_TEMP=$SOURCE DIR_TEMP=$DIR SOURCE=»${BASH_SOURCE[0]}» # Go through all symlinks to find the ultimate location of the source file while [ -h […]

Capture::Tiny — search.cpan.org

Capture::Tiny provides a simple, portable way to capture almost anything sent to STDOUT or STDERR, regardless of whether it comes from Perl, from XS code or from an external program. Optionally, output can be teed so that it is captured while being passed through to the original filehandles. Yes, it even works on Windows (usually). […]