Предлагаю ознакомиться с расшифровкой доклада 2019 года Сергея Печенко "Ansible — это вам не bash!"
User
PostgreSQL Antipatterns: сражаемся с ордами «мертвецов»
Кратко сюжет из отличной статьи:
Когда строка изменяется командой UPDATE, фактически выполняются две операции: DELETE и INSERT. В текущей версии строки устанавливается xmax, равный номеру транзакции, выполнившей UPDATE. Затем создается новая версия той же строки; значение xmin у нее совпадает с значением xmax предыдущей версии.Через какое-то время после завершения этой транзакции старая или новая версии, в зависимости от
COMMIT/ROOLBACK
, будут признаны «мертвыми» (dead tuples) при проходе VACUUM
по таблице и зачищены.Но это произойдет далеко не сразу, а вот проблемы с «мертвецами» можно нажить очень быстро — при многократном или массовом обновлении записей в большой таблице, а чуть позже столкнуться с ситуацией, что и VACUUM не сможет помочь.
10 отличных Github репозиториев, которые должен знать каждый веб-разработчик
Кроме огромных репозиториев с источниками для подготовки к интервью, здесь много чего интересного
Я собрал список из десяти отличных репозиториев на Github, которые помогут вам существенно расширить свои знания.
А я его перевел, т.к. показалось, что пост многим будет интересен. Перевод очень вольный: я опустил нерелевантные промо-ссылки и гипер эмоциональные похвалы автора оригинала, чтобы оставить только суть. Еще, обновил цифры, чтобы информация была более актуальной к моменту публикации этого перевода. Итак, перейдем к списку.
TCP против UDP или будущее сетевых протоколов
По идее, если бы, к примеру, однажды один ленивый разработчик не попробовал развернуть свой ML на Python (потому что только его и знал), мир скорее всего никогда не проникся бы такой любовью к презренному «супер-джава-кодерами» языку. А сегодня слабости этого языка в прошлом контексте применения безоговорочно обеспечивают ему первенство в развертывании и запуске многочисленных майнерских А/Б.
Сравнивать можно многое: ARM с Intel, iOS и Android, а Mortal Kombat с Injustice. И нарваться на космический холивар, поэтому вернемся к теме доставки огромных объемов разноформатного контента.
Десять лет назад все были абсолютно уверены, UDP — это что-то про негарантированную доставку. Если нужен надежный протокол — это TCP. И вопреки традициям в этой статье мы будем сравнивать такие, кажущиеся несравнимыми вещи, как TCP и UDP.
Осторожно, под катом 99 иллюстраций и схем и все важные.
Как оценить производительность Linux-сервера: открытые инструменты для бенчмаркинга
Другие наши подборки с бенчмарками:
370 лампочек
Прислали лампы двенадцати брендов: REV, Smartbuy, Эра, Camelion, Gauss, Navigator, Онлайт, Philips, Ecola, Фотон, Космос, General.
Bitmap-индексы в Go: поиск на дикой скорости
Вступительное слово
Я выступил с этим докладом на английском языке на конференции GopherCon Russia 2019 в Москве и на русском — на митапе в Нижнем Новгороде. Речь в нём идёт о bitmap-индексе — менее распространённом, чем B-tree, но не менее интересном. Делюсь записью выступления на конференции на английском и текстовой расшифровкой на русском.
Мы рассмотрим, как устроен bitmap-индекс, когда он лучше, когда — хуже других индексов и в каких случаях он значительно быстрее них; увидим, в каких популярных СУБД уже есть bitmap-индексы; попробуем написать свой на Go. А «на десерт» мы воспользуемся готовыми библиотеками, чтобы создать свою супербыструю специализированную базу данных.
Очень надеюсь, что мои труды окажутся для вас полезными и интересными. Поехали!
Переход Tinder на Kubernetes
Хакаем CAN шину авто. Виртуальная панель приборов
В первой статье «Хакаем CAN шину авто для голосового управления» я подключался непосредственно к CAN шине Comfort в двери своего авто и исследовал пролетающий траффик, это позволило определить команды управления стеклоподъемниками, центральным замком и др.
В этой статье я расскажу как собрать свою уникальную виртуальную или цифровую панель приборов и получить данные с любых датчиков в автомобилях группы VAG (Volkswagen, Audi, Seat, Skoda).
Мною был собран новый CAN сниффер и CAN шилд для Raspberry Pi на базе модуля MCP2515 TJA1050 Niren, полученные с их помощью данные я применил в разработке цифровой панели приборов с использованием 7″ дисплея для Raspberry Pi. Помимо простого отображения информации цифровая панель реагирует на кнопки подрулевого переключателя и другие события в машине.
В качестве фреймворка для рисования приборов отлично подошел Kivy для Python. Работает без Иксов и для вывода графики использует GL.
- CAN сниффер из Arduino Uno
- Подслушиваем запросы с помощью диагностической системы VAG-COM (VCDS)
- Разработка панели приборов на основе Raspberry Pi и 7″ дисплея
- Софт панели приборов на Python и Kivy (UI framework)
- Видео работы цифровой панели приборов на базе Raspberry Pi
Под катом полная реализация проекта, будет интересно!
Mkcert: валидные HTTPS-сертификаты для localhost
В наше время использование HTTPS становится обязательным для всех сайтов и веб-приложений. Но в процессе разработки возникает проблема корректного тестирования. Естественно, Let’s Encrypt и другие CA не выдают сертификаты для localhost.
Традиционно есть два решения.
Где и как делают атомные реакторы
Фоторепортаж с «Атоммаша» — гордости Росатома — гигантского производства, где делают корпуса одних из самых востребованных ядерных реакторов для атомных электростанций: ВВЭР-1000 И ВВЭР-1200.
Недавно, меня пригласили поделиться опытом популяризации науки на мероприятии Нефорум Наука. Встреча была организована при участии Росатома, и там предложили включить и атомную тему в свои обзоры. Начать решили с фоторепортажей. За один день удалось посетить завод ядерных реакторов и атомную электростанцию. Сегодня репортаж с производства.
Как общаться в англоязычном офисе: 14 полезных идиом
На Хабре в последние годы публикуется довольно много статей о переезде, в том числе в США и Великобританию. Обычно в таких материалах рассказывают о поиске работы и визовых вопросах, но не так много внимания уделяется дальнейшей интеграции, в том числе в рабочий коллектив.
Команда сервиса Textly опубликовала в своем блоге подборку английских идиом, которые часто используются в офисных коммуникациях. Я решила подготовить перевод этого полезного материала
Выбор вендора в корпоративном Wi-Fi
Выбор этот всегда непростой, ибо времена, когда была актуальна фраза “Вы можете получить “Форд-Т” любого цвета, при условии, что этот цвет будет черным” прошли. Выбор есть. Как же сделать его правильно?
Ошибка, которая мешает дизайнеру расти
Обдумывая тему новой статьи, я попытался понять, почему многие дизайнеры надолго застревают в статусе начинающих и не могут сделать в своей карьере рывок.
Не сумев четко сформулировать проблему, я задал в Instagram вопрос “Какую тему затронуть в следующей статье?”, чтобы выяснить трудности, стоящие перед молодыми специалистами.
Получив ряд толковых идей, я заметил одну, которая косвенно фигурировала в нескольких ответах. Погрузившись в ее суть, я понял, что именно она является основным барьером, который мешает начинающим дизайнерам расти и достигать высокого уровня, не тратя на это лишние годы.
Как работают библиотеки виртуального окружения
Изначально, в Python не было встроенной возможности создавать окружения, и такая возможность была реализована в виде хака. Как оказалось, все библиотеки базируются на очень простой особенности интерпретатора питона.
Когда Python запускает интерпретатор, он начинает искать директорию с модулями (site-packages). Поиск начинается с родительской директории относительно физического расположения исполняемого файла интерпретатора (python.exe). Если папка с модулями не найдена, то Python переходит на уровень выше, и делает это до тех пор, пока не будет достигнута корневая директория. Для того, чтобы понять, что это директория с модулями, Python ищет модуль os, который должен лежать в файле os.py и является обязательным для работы питона.
По дороге к 100% покрытия кода тестами в Go на примере sql-dumper
В этом посте я расскажу о том, как я писал консольную программу на языке Go для выгрузки данных из БД в файлы, стремясь покрыть весь код тестами на 100%. Начну с описания, зачем мне нужна была это программа. Продолжу описанием первых трудностей, некоторые из которых вызваны особенностями языка Go. Дальше немного упомяну сборку на Travis CI, а затем расскажу о том, как я писал тесты, пытаясь покрыть код на 100%. Немного затрону тестирование работы с БД и файловой системой. А в заключении скажу о том, к чему приводит стремление максимально покрыть код тестами и о чём говорит этот показатель. Материал я сопровожу ссылками как на документацию, так и на примеры коммитов из своего проекта.
Используем Apple Pay и карту Тройка в качестве пропуска на работу
TL;DR В статье описывается процесс создания системы контроля доступа (СКУД), в которой в качестве идентификатора могут использоваться карты Тройка, любые бесконтактные банковские карты EMV, а также телефоны с Apple Pay и Android Pay. Управление системой происходит через Telegram-бота.
Основные задачи системы
- Избавиться от лишних карт — в качестве идентификатора используется то, что уже есть у пользователя: транспортная карта, телефон или банковская карта. Какой идентификатор использовать — каждый выбирает сам. Система работает со всеми типами идентификаторов одновременно.
- Избавиться от бюро пропусков и сложных программ управления — нам надоело выдавать и забирать карты у пользователей, держать отдельные компьютеры для управления пропусками, изучать переусложненные программы.
- Управление через Telegram — заведение и удаления пользователей происходит удаленно и не требует компьютера.
17 самых неочевидных возможностей iOS, о которых вы могли не знать
1. Знаете ли вы, что в приложении камеры на iPhone есть режим фокусировки? Наверняка знаете. Для этого достаточно тапнуть по экрану в той области, где нужен фокус. Но вот ведь незадача, если рука дрогнет, фокус сместится. Оказывается, его можно зафиксировать. Для этого нужно долгим нажатием на место фокуса вызвать меню фиксации. После фиксации фокус уже не сместится и можно выбирать нужный угол съемки.
2. В iOS 11 добавился очень удобный способ поделиться паролем к Wi-Fi. Для того, чтобы функция сработала, нужно чтобы оба устройства были с iOS 11 и включенным Bluetooth соединением. С устройства, которому неизвестен пароль, нужно зайти в Настройки → Wi-Fi и сделать попытку подключения к нужной сети. Устройство, уже подключенное к сети, должно находиться физически рядом (да, лучше прям поднести устройства друг к другу), а контакт человека, который расшаривает пароль должен быть в вашем списке контактов. На нем высветится окно с предложением поделиться паролем, нужно будет подтвердить данное действие и новое устройство подключится к сети. Функция может быть полезна, когда диктовать ваш 20-символьный пароль }X9}I|zxEyw23}4@Ym8>}X9}I|zxEyw23}4@Ym8 реально долго, а таким нехитрым трюком можно сократить себе время и нервы, забыв про объяснения вроде «Эс как доллар», «Си как эс русская» и т.п.
Information
- Rating
- Does not participate
- Location
- Украина
- Date of birth
- Registered
- Activity