Как стать автором
Обновить
62
0
Николай Зубач @zuborg

Highload

Отправить сообщение

Логическая репликация в PostgreSQL. Репликационные идентификаторы и популярные ошибки

Время на прочтение42 мин
Количество просмотров45K
image

Начиная с 10 версии, перенести данные с одной базы PostgreSQL на другую несложно, с обновлением, без обновления — неважно. Об этом немало сказано и сказанное сводится к следующему: на мастере, 10 версии и выше, устанавливаем параметр конфигурации wal_level="logical". В pg_hba.conf добавляем такую строку:

host    db_name    postgres    192.168.1.3/32     trust

Затем рестартуем на мастере postgres и выполняем на реплике из-под пользователя postgres:

pg_dumpall --database=postgres --host=192.168.1.2 --no-password --globals-only --no-privileges | psql
pg_dump --dbname db_name --host=192.168.1.2 --no-password --create --schema-only | psql

Теперь подключаемся на мастере пользователем postgres к базе db_name и создаём публикацию:

CREATE PUBLICATION db_pub FOR ALL TABLES;

а на реплике создаём подписку:

CREATE SUBSCRIPTION db_sub CONNECTION 'host=192.168.1.2 dbname=db_name' PUBLICATION db_pub;

По завершении репликации переключаем приложение или балансировщик на новую базу.

Теперь вы знаете постгрес (и с какой стороны доить слонеску) и можете идти устраиваться ДБА.
Для любознательных есть пара небольших деталей под катом.
Читать дальше →
Всего голосов 11: ↑10 и ↓1+9
Комментарии5

Пробоина выше ватерлинии. Как починить гематоэнцефалический барьер

Время на прочтение7 мин
Количество просмотров12K

Привет, на связи сообщество RISE. На неделе у пользователей возник вопрос касательно основной системы безопасности мозга — гематоэнцефалического барьера. Обсуждение привело к короткому посту про ГЭБ и этому лонгриду о «прохудившемся гематоэнцефалическом барьере» . Разберем кратко, что такое ГЭБ, в чем угроза его целостности и как с этим бороться.

Читать далее
Всего голосов 16: ↑12 и ↓4+8
Комментарии12

Калибровка и профилирование мониторов

Время на прочтение13 мин
Количество просмотров30K

В этой статье автор делится тем, что узнал сам, когда заинтересовался темой о калибровке монитора и создании его цветового профиля в домашних условиях. Автор применил свои знания при создании программы предназначенной для визуальной калибровки монитора написав её на Python.

В чём существенные отличия между профилированием и калибровкой? Доступны ли эти процедуры домашнему пользователю компьютера? Возможна ли программная реализация калибровки монитора не уступающая по качеству аппаратному профилированию?

Читать далее
Всего голосов 11: ↑11 и ↓0+11
Комментарии25

Список ноотропов, покупка которых не окажется пустой тратой денег

Время на прочтение5 мин
Количество просмотров297K

Небольшая подборка веществ помогающих нашим мозгам работать чуточку лучше. Большинство из них продается в ближайшей аптеке, отпускается без рецепта, имеют доказательную базу и плюс-минус универсальны, так как «качают» самое важное — мотивацию, энергию и память.

Читать далее
Всего голосов 121: ↑85 и ↓36+49
Комментарии238

Камера против эвакуаторов, угонщиков, дачных «гостей»

Время на прочтение6 мин
Количество просмотров21K


Есть понимание, что видеокамера, доступная по цене и функционально несложная поможет решить некоторые вопросы как автолюбителей, так и дачников.

В статье не будет затрагиваться этическая сторона вопроса продукта формата DIY (сделай сам) и кому он больше пригодится — нарушителям или законопослушным гражданам. Вместо этого, предлагается сконцентрироваться на технической стороне решения, которое наверняка будет интересно в ситуациях, вынесенных в заголовок статьи.

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

Алгоритм работы следующий. Камера после включения «поднимает соединение» через usb 3G модем, соединяется с VPN, мониторит картинку и, при появлении движения на ней, делает фото и, заодно, отправляет фото в телеграм-канал владельца. Из опций — возможность записывать timelapse, видео и… возможность «покрутить головой» удаленно, то есть поуправлять камерой и посмотреть «что к чему». Нейросетей здесь нет, все достаточно просто.
Читать дальше →
Всего голосов 19: ↑17 и ↓2+15
Комментарии57

Сам себе Гутенберг. Делаем параллельные книги

Время на прочтение12 мин
Количество просмотров22K

Lingtrain parallel books


Upd. 04.12.2021 — Наш телеграм канал


Если вам нравится изучать языки (или вы их преподаете), то вы наверняка сталкивались с таким способом освоения языка как параллельное чтение. Он помогает погрузиться в контекст, увеличивает лексикон и позволяет получить удовольствие от обучения. Читать тексты в оригинале параллельно с русскоязычными, на мой взгляд, стоит, когда уже освоены азы грамматики и фонетики, так что учебники и преподавателей никто не отменял. Но когда дело все же доходит до чтения, то хочется подобрать что-то по своему вкусу, либо что-то уже знакомое или любимое, а это часто невозможно, потому что такого варианта параллельной книги никто не выпускал. А если вы учите не английский язык, а условный японский или венгерский, то трудно найти вообще хоть какой-то интересный материал с параллельным переводом.


Сегодня мы сделаем решительный шаг в сторону исправления этой ситуации.


Из чего делаем


На входе у нас будут два текстовых файла с оригинальным текстом и его переводом. Для примера возьмем книгу "Убить пересмешника" Харпер Ли на русском и английском языках.


Начало документов выглядит так (отрывки приведены в таком виде, в котором они были найдены в сети):

Выровнять пересмешника
Всего голосов 106: ↑106 и ↓0+106
Комментарии67

Домашний DPI, или как бороться с провайдером его же методами

Время на прочтение16 мин
Количество просмотров239K

Долгое время я терпел ограничения РосКомНадзора и соответствующие действия провайдеров по различным ограничениям доступа к сайтам - но с определённого момента устал, и начал думать как бы сделать так, чтобы было и удобно, и быстро, и при этом с минимумом заморочек после настройки... Хочу оговориться, что цель анонимизации не ставилась.

Вообще, эта проблема имеет несколько решений... Но я решил бороться с провайдером их же методом.

...При помощи NGINX!
Всего голосов 246: ↑245 и ↓1+244
Комментарии187

Что почитать (НаучПоп / Научная Фантастика)

Время на прочтение6 мин
Количество просмотров62K

Некоторые время назад сильно увлёкся потреблением информации с научно-популярным уклоном. Но как не заблудиться в миллионах книг? Ресурс то ограничен. А значит придётся выбирать.

Удалось собрать библиотеку по 4 разделам:


Раздел 1. Законы науки и мышление
(Математика, Рациональность, Научный метод, Когнитивные искажения, Нейрофизиология, Ошибки мышления, Доказательная медицина)

Раздел 2. Законы природы
(Физика, Математика, Теория относительности, Квантовая механика, Астрофизика, Астрономия, Изобретения и открытия)

Раздел 3. Законы жизни
(Абиогенез, Теория эволюции, Молекулярная биология, Биоинформатика, Биология клетки, Антропогенез)

Раздел 4. Художественный научпоп / Научная фантастика

Обменяться рекомендациями
Всего голосов 44: ↑41 и ↓3+38
Комментарии253

Единый математический язык для физики и инженерного искусства в 21 веке

Время на прочтение18 мин
Количество просмотров14K

Конец 18-го и 19-й век были временем колоссального прогресса в математике. Величайшие умы тысячелетия вводили все новые математические системы и языки, такие как алгебры Клиффорда и Грассмана. Хотя эти алгебры вызвали значительный интерес, в то время они воспринимались как подспорье более прямолинейной и более общеприменимой векторной алгебры Гиббса. Это было фактически концом поисков объединяющего математического языка и началом распространения новых алгебраических систем, создаваемых по мере необходимости; например, спинорная алгебра, матричная и тензорная алгебры, дифференциальные формы и т. д.

В этой статье мы реализуем возрождение алгебр Клифорда и Грассмана в виде структуры, известной как геометрическая алгебра (ГА). Это понятие было впервые введено в середине 1960-х годов американским физиком и математиком Дэвидом Хестенсом. Прошло 40 лет, но есть признаки того, что его утверждение о том, что ГА является универсальным языком для физики и математики, теперь начинает принимать все более явственные очертания. Во всем мире растет число групп, которые применяют ГА к целому ряду проблем из многих научных областей, обеспечивая чрезвычайно мощную математическую структуру, в которой могут быть выражены самые передовые концепции квантовой механики, теории относительности, электромагнетизма и т. д. При этом, утверждается, что ГА также достаточно проста для преподавания школьникам! В этой статье мы рассмотрим развитие и недавний прогресс ГА и обсудим, действительно ли она является объединяющим языком для физики и математики 21-го века. Примеры, которые мы будем использовать для иллюстрации, будут взяты из ряда областей физики и техники.

Читать далее
Всего голосов 17: ↑17 и ↓0+17
Комментарии17

Подборка 143 переводов эссе Пола Грэма (из 184)

Время на прочтение8 мин
Количество просмотров60K
image

Пол Грэм — один из самых уважаемых людей среди ИТишников, основателей и инвесторов. Он первоклассный программист (написал два языка программирования), хакер, создатель дерзкого акселератора Y Combinator, философ. Своими помыслами и разумом Пол Грэм врывается в широкий спектр областей: от прогнозирования развития языков программирования на сто лет вперед до человеческих качеств и способов починить/хакнуть экономику. А ещё он осознает важность того, чтобы формулировать свои мысли в текст и делиться ими с окружающими.

Когда в 2015 году я начал читать Пола Грэма мой взгляд на жизнь поменялся. Я считаю его эссе одними из самых важных текстов, которые стоит прочитать все как можно раньше, чтобы сформировать у себя мышление, способ рассуждения и изложения мыслей.

Первую подборку переводов эссе Пола Грэма меня вдохновили сделать коллеги из tceh.com (60 переводов из 176). Вторую — Edison Software (125 переводов). Третью — PhilTech-акселератор (134 перевода и еще несколько в процессе). Потом был период (2017, 2018 и 2019), когда Пол Грэм не писал эссе (а занимался с детьми), а только немного в Твиттер и дал одно видео-интервью для стартап-школы. Но в конце 2019 и начале 2020 года он вновь стал публиковать глубокие тексты об которые интересно подумать. Предлагаю вашему вниманию ссылки на новые переводы (upd с прошлой подборки) и полный список всех эссе.

Novelty and Heresy (Да здравствует ересь!)
The Lesson to Unlearn (Вредные уроки)
The Bus Ticket Theory of Genius (Теория навязчивых идей)

Five Questions about Language Design (Пять вопросов о проектировании языков программирования)
What Made Lisp Different (Что сделало Lisp особенным)
After the Ladder (На смену корпоративной лестнице)
What I’ve Learned from Hacker News (Чему я научился у Hacker News)
Snapshot: Viaweb, June 1998 (разбор полетов: Viaweb июня 1998 года)
Some Heroes (Мои кумиры)
The Equity Equation (Как делить доли в стартапе)

Бонус - видео из стартап-школы 2018 с русскими субтитрами


Всего голосов 33: ↑30 и ↓3+27
Комментарии10

Вейвлет деревья

Время на прочтение10 мин
Количество просмотров6.5K
Succinct data structures свежее веяние в алгоритмистике. В русскоязычной школе материала мало, нет даже устоявшегося перевода. Будем восполнять этот пробел. На правах первопроходцев терминологию будем вводить налету. Пусть, скажем, компактные структуры данных. На Хабре уже появилась хорошая ознакомительная статья.

Под катом развитие темы с описанием пары новых(такое вы не найдете у Кнута) трюков структур, примеры применения и реализация на языке Go.

Итак — вейвлет дерево

Читать дальше →
Всего голосов 17: ↑15 и ↓2+13
Комментарии6

BpfTrace — наконец, полноценная замена Dtrace в Linux

Время на прочтение11 мин
Количество просмотров14K
Бывает, что системы глючат, тормозят, ломаются. Чем больше система, тем сложнее найти причину. Чтобы узнать, почему что-то работает не так, как ожидалось, исправить или предотвратить будущие проблемы, нужно посмотреть внутрь. Для этого системы должны обладать свойством наблюдаемости, которая достигается инструментацией в широком смысле этого слова.


На HighLoad++ Пётр Зайцев (Percona) сделал обзор доступной инфраструктуры для трейсинга в Linux и рассказал о bpfTrace, который (как видно из названия) дает много преимуществ. Мы сделали текстовую версию доклада, чтобы вам было удобно пересмотреть детали и дополнительные материалы всегда были под рукой.
Всего голосов 39: ↑39 и ↓0+39
Комментарии1

Обстоятельно о подсчёте единичных битов

Время на прочтение16 мин
Количество просмотров96K
Я хотел бы подарить сообществу Хабра статью, в которой стараюсь дать достаточно полное описание подходов к алгоритмам подсчёта единичных битов в переменных размером от 8 до 64 битов. Эти алгоритмы относятся к разделу так называемой «битовой магии» или «битовой алхимии», которая завораживает своей красотой и неочевидностью многих программистов. Я хочу показать, что в основах этой алхимии нет ничего сложного, и вы даже сможете разработать собственные методы подсчёта единичных битов, познакомившись с фундаментальными приёмами, составляющими подобные алгоритмы.

Читать дальше →
Всего голосов 82: ↑82 и ↓0+82
Комментарии92

Работа с ошибками в Go 1.13

Время на прочтение7 мин
Количество просмотров37K

В последнее десятилетие мы успешно пользовались тем, что Go обрабатывает ошибки как значения. Хотя в стандартной библиотеке была минимальная поддержка ошибок: лишь функции errors.New и fmt.Errorf, которые генерируют ошибку, содержащую только сообщение — встроенный интерфейс позволяет Go-программистам добавлять любую информацию. Нужен лишь тип, реализующий метод Error:

type QueryError struct {
    Query string
    Err   error
}

func (e *QueryError) Error() string { return e.Query + ": " + e.Err.Error() }
Читать дальше →
Всего голосов 73: ↑68 и ↓5+63
Комментарии21

Sampler. Консольная утилита для визуализации результата любых shell команд

Время на прочтение5 мин
Количество просмотров84K

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


Sampler


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


Код доступен на гитхабе. Инструкции по установке — для Linux, macOS и (экспериментально) Windows.

Читать дальше →
Всего голосов 298: ↑297 и ↓1+296
Комментарии54

Простые методы оптимизации программ Go

Время на прочтение11 мин
Количество просмотров15K
Я всегда забочусь о производительности. Точно не знаю, почему. Но меня просто бесят медленные сервисы и программы. Похоже, я не одинок.

В тестах A/B мы попытались замедлять выдачу страниц с шагом 100 миллисекунд и обнаружили, что даже очень небольшие задержки приводят к существенному падению доходов. — Грег Линден, Amazon.com

По опыту, низкая производительность проявляется одним из двух способов:

  • Операции, которые хорошо выполняются в небольших масштабах, становятся нежизнеспособными с ростом числа пользователей. Обычно это операции O(N) или O(N²). Когда база пользователей мала, всё работает отлично. Продукт спешат вывести на рынок. По мере роста базы возникает всё больше неожиданных патологических ситуаций — и сервис останавливается.
  • Много отдельных источников неоптимальной работы, «смерть от тысячи порезов».
Читать дальше →
Всего голосов 26: ↑23 и ↓3+20
Комментарии10

Книга (бытия?). Размышления о природе разума. Часть I

Время на прочтение8 мин
Количество просмотров9.8K
• Что такое разум, сознание.
• Чем отличается познание от осознания?
• Сознание, самосознание — одно и то же?
• Мысль — что такое мысль?
• Творчество, воображение — что-то загадочное, присущее человеку, или…
• Как устроен разум.
• Мотивация, целеполагание — зачем вообще что-то делать.


Искусственный интеллект — Святой Грааль любого человека, связавшего свою жизнь с ИТ. Венец развития любой автоматизации, программирования, конструирования механизмов — вершина всего. Однако, до сих пор вопрос «Что же такое сознание, интеллект?» остается открытым. Я не понимаю, как огромное количество людей может заниматься предметом, для которого не существует определения, но я действительно не нашел такой концепции, которая удовлетворила бы меня. И мне пришлось придумать ее самому.

Disclaimer: Данный опус не претендует на революцию в парадигме ИИ, или откровение свыше, это просто результат размышлений на данную тему и в какой-то степени самоанализа. Так же я не имею каких-то сколько-нибудь серьезных практических результатов, так что текст более философский, нежели технический.

UPD: Пока готовил статью, наткнулся на несколько очень близких концепций (вот, например, и даже на хабре). С одной стороны — немного обидно, что заново «переоткрыл велосипед». С другой — не так страшно выносить свои мысли на суд общественности, когда они уже не только мои!

Вторая часть.
Читать дальше →
Всего голосов 22: ↑18 и ↓4+14
Комментарии145

Изменение схемы таблиц PostgreSQL без долгих блокировок. Лекция Яндекса

Время на прочтение10 мин
Количество просмотров23K
Если одновременно выполняется много операций по изменению схемы БД, сервис не может корректно работать на запись. Разработчик Владимир Колясинский объяснил, какие операции в PostgreSQL требуют длительных блокировок и как команда Яндекс.Коннекта обеспечивает почти стопроцентную доступность сервиса на запись во время выполнения подобных операций. Кроме того, вы узнаете о библиотеке для Django, которая призвана автоматизировать часть описанных процессов.


У нас большие нагрузки, тысячи RPS, и простой в несколько минут, не говоря о большем времени, недопустим. Нужно, чтобы миграции происходили незаметно для пользователя. А с такими нагрузками уже не получится встать в четыре часа ночи, что-то накатить, когда нет нагрузки, и снова лечь спать — потому что нагрузка идет круглые сутки.

Всего голосов 61: ↑61 и ↓0+61
Комментарии41

«Разум в сети». Формула сознания

Время на прочтение11 мин
Количество просмотров4.9K
Последний отрывок из рассказа "Разум в сети". В этот раз некая «претензия» на формулу сознания с объяснением его происхождения. Сразу хочу отметить, что все приведенные тезисы основаны на современных научных данных (когнитивных наук). И все равно, это мое мнение, не претендую на абсолютную истину и ни с кем не спорю. Каждый вправе иметь свое мнение, но чужие мнения мне интересны, если в них есть ценная мысль, которая поможет продвинуть и меня в поисках. Итак:

— Эми, самый главный вопрос — что такое сознание? Как сделать так, чтобы запрограммированные процессы породили свет сознания? А робот вдруг стал осознавать то, что он видит?!
— Это достаточно просто.
— Как просто? Не может быть.
— Это так. Если ты сравнишь бессознательное и сознательно, то второе отличается тем, что ты помнишь его как свое действие. Ты помнишь, что это осознавал ты в отличие от бессознательных действий. Так? Что это значит по-твоему?
— Не знаю, но кажется догадываюсь, к чему ты клонишь – помним о своих действиях?
— Да, это значит, что после совершения действия, например, узнавания чего-либо, вы еще распознаете свое узнавание как свое действие. И вписываете их в память о себе — в автобиографическую память, связанную в единую цепочку времени местоимением «Я» как стихотворения рифмой.
— Не понимаю пока, о чем ты.
— Ты осознаешь, не когда начинаешь испытывать чувства к понравившейся картине, а когда распознаешь эти чувства в себе, как свои! Вот ты входишь в музей, видишь картину Красный квадрат. Твой мозг сначала распознает, что это красное и квадрат. Ничего особенного, это может сделать и нейросеть. Но через мгновение распознаешь то, что это ты смотришь на картину «из глаз» и распознал на ней красный квадрат. Ты знаешь, что это распознание является твоим, что сопровождается чувством «знакомости». Вот при втором действии возникает чувство осознанности.
Читать дальше →
Всего голосов 19: ↑13 и ↓6+7
Комментарии13

Теория счастья. Термодинамика классового неравенства

Время на прочтение23 мин
Количество просмотров33K
Продолжаю знакомить читателей Хабра с главами из своей книжки «Теория счастья» с подзаголовком «Математические основы законов подлости». Это ещё не изданная научно-популярная книжка, очень неформально рассказывающая о том, как математика позволяет с новой степенью осознанности взглянуть на мир и жизнь людей. Она для тех кому интересна наука и для тех, кому интересна жизнь. А поскольку жизнь наша сложна и, по большому счёту, непредсказуема, упор в книжке делается, в основном, на теорию вероятностей и математическую статистику. Здесь не доказываются теоремы и не даются основы науки, это ни в коем случае не учебник, а то, что называется recreational science. Но именно такой почти игровой подход позволяет развить интуицию, скрасить яркими примерами лекции для студентов и, наконец, объяснить нематематикам и нашим детям, что же такого интересного мы нашли в своей сухой науке.



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


Читать дальше →
Всего голосов 46: ↑43 и ↓3+40
Комментарии110

Информация

В рейтинге
Не участвует
Откуда
Киев, Киевская обл., Украина
Дата рождения
Зарегистрирован
Активность