Pull to refresh
62
0
Николай Зубач @zuborg

Highload

Send message

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

Reading time42 min
Views45K
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;

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

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

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

Reading time7 min
Views12K

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

Читать далее
Total votes 16: ↑12 and ↓4+8
Comments12

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

Reading time13 min
Views30K

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

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

Читать далее
Total votes 11: ↑11 and ↓0+11
Comments25

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

Reading time5 min
Views297K

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

Читать далее
Total votes 121: ↑85 and ↓36+49
Comments238

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

Reading time6 min
Views21K


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

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

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

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

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

Reading time12 min
Views22K

Lingtrain parallel books


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


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


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


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


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


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

Выровнять пересмешника
Total votes 106: ↑106 and ↓0+106
Comments67

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

Reading time16 min
Views238K

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

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

...При помощи NGINX!
Total votes 246: ↑245 and ↓1+244
Comments187

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

Reading time6 min
Views62K

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

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


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

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

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

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

Обменяться рекомендациями
Total votes 44: ↑41 and ↓3+38
Comments253

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

Reading time18 min
Views13K

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

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

Читать далее
Total votes 17: ↑17 and ↓0+17
Comments17

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

Reading time8 min
Views60K
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 с русскими субтитрами


Total votes 33: ↑30 and ↓3+27
Comments10

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

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

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

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

Читать дальше →
Total votes 17: ↑15 and ↓2+13
Comments6

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

Reading time11 min
Views14K
Бывает, что системы глючат, тормозят, ломаются. Чем больше система, тем сложнее найти причину. Чтобы узнать, почему что-то работает не так, как ожидалось, исправить или предотвратить будущие проблемы, нужно посмотреть внутрь. Для этого системы должны обладать свойством наблюдаемости, которая достигается инструментацией в широком смысле этого слова.


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

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

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

Читать дальше →
Total votes 82: ↑82 and ↓0+82
Comments92

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

Reading time7 min
Views37K

В последнее десятилетие мы успешно пользовались тем, что 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() }
Читать дальше →
Total votes 73: ↑68 and ↓5+63
Comments21

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

Reading time5 min
Views84K

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


Sampler


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


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

Читать дальше →
Total votes 298: ↑297 and ↓1+296
Comments54

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

Reading time11 min
Views15K
Я всегда забочусь о производительности. Точно не знаю, почему. Но меня просто бесят медленные сервисы и программы. Похоже, я не одинок.

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

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

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

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

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


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

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

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

Вторая часть.
Читать дальше →
Total votes 22: ↑18 and ↓4+14
Comments145

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

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


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

Total votes 61: ↑61 and ↓0+61
Comments41

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

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

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

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

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



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


Читать дальше →
Total votes 46: ↑43 and ↓3+40
Comments110

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Date of birth
Registered
Activity