Как стать автором
Обновить
-4
0
Артём @3263927

Инженер-программист

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

Как мы переехали с Oracle на PostgreSQL в нагруженном сервисе без даунтайма

Уровень сложностиСредний
Время на прочтение30 мин
Количество просмотров21K

Всем привет! Я Сергей, работаю в B2B-команде Яндекс Маркета последние 3,5 года. Как уже понятно из заголовка, сейчас я вам расскажу про yet-another-миграцию с базы на базу, которая началась в середине 2021 года и заняла почти год. Получается, мемуары.

Вас ждёт рассказ о том, как мы:

- несколько месяцев чинили тесты и делали трансформер;

- десятки раз переливали данные;

- чинили баги незаметно для пользователей;

- заставили сервис работать на PostgreSQL быстрее, чем он работал на Oracle.

Читать далее
Всего голосов 87: ↑88.5 и ↓-1.5+90
Комментарии15

Zigbee шлюз для счетчиков Меркурий

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

Давно удивлялся, почему не смотря на распространенность счетчиков Меркурий и возможность съема с них показаний через RS-485, на рынке DIY устройств не было Zigbee шлюза для них. Этот пробел я решил восполнить самостоятельно.

Читать далее
Всего голосов 56: ↑54 и ↓2+52
Комментарии25

Использование diagnostic observers для изоляции кода логгирования

Уровень сложностиСредний
Время на прочтение16 мин
Количество просмотров1.1K

В этой статье мы рассмотрим использование DiagnosticListener для изоляции кода, отвечающего за логгирование инфраструктурных операций - таких как работа с базой данных и отправка и получение HTTP запросов.

Класс DiagnosticListener определен в пакете System.Diagnostics, и особенности его использования описаны в разных статьях, включая одну-две на Хабре.

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

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

Вы за это заплатите! Цена Чистой Архитектуры. Часть 1

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров23K

Всем привет, меня зовут Артемий, я работаю старшим Android-разработчиком в команде пользовательского профиля в RuStore. Мой опыт в индустрии уже 8 лет. За это время я успел поработать в разных проектах и компаниях. У меня был опыт работы в проекте, в котором было свыше 300 модулей и больше 60 Android-разработчиков. Такие условия заставляют задуматься о масштабируемости на принципиально ином уровне.

Сегодня я расскажу о способах обеспечения масштабируемости проекта и как этому может навредить неправильное восприятие Чистой Архитектуры (далее — ЧА). Предупреждаю сразу, это лонгрид в двух частях!

Читать далее
Всего голосов 64: ↑61 и ↓3+58
Комментарии65

Большой код. Учимся генерировать F#-исходники с помощью Fantomas. Часть 3. Модули и типы

Уровень сложностиСложный
Время на прочтение20 мин
Количество просмотров1.1K

В прошлых двух частях мы ознакомились с синтаксической моделью F#-кода и с инструментами для неё. Объёмный пример туда уже не влез, но необходимость в нём осталась. Так родились ещё две заключительные части цикла. Их объединяет общий проект, но в остальном они представляют собой сборную солянку фактов, практик и наблюдений, которые было бы трудно разместить в каталогизированной документации.

Мы возьмём сугубо игровую задачу с понятным результатом и на её примере узнаем:

• на какие ноды AST стоит обратить внимание в первую очередь;
• где Fantomas-у нельзя доверять;
• где можно хакать;
• где лучше придерживаться пуризма;
• и как на F# можно строить Fluent API.

В этой части мы сосредоточимся на общей организации генератора, входных данных и основных элементах AST. В следующей сделаем то же самое, но на более сложном уровне, сместив повествование в сторону устройства Fluent API.

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

Защита микросхем от реверс-инжиниринга и несанкционированного проникновения

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

“CVAX — когда вы забатите довольно воровать настоящий лучший”.
Надпись, оставленная американскими инженерами для советских коллег в топологии микропроцессора.

Реверс-инжиниринг микросхем — головная боль производителей с самых первых лет существования микроэлектроники. Вся советская электроника в какой-то момент была построена на нем, а сейчас с гораздо большим размахом тем же самым занимаются в Поднебесной, да и не только в ней. На самом деле, реверс-инжиниринг абсолютно легален в США, Евросоюзе и многих других местах, с целью (цитирую американский закон) “teaching, analyzing, or evaluating the concepts or techniques embodied in the mask work or circuitry”.

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

Другое не менее (а то и более) важное направление защиты микросхем от реверс-инжиниринга — обеспечение безопасности информации, хранимой в памяти. Такой информацией может быть как прошивка ПЛИС (то есть опять-таки интеллектуальная собственность разработчика), так и, например, пин-код от банковской карты или ключ шифрования защищенной флэшки. Чем больше ценной информации мы доверяем окружающему миру, тем важнее защищать эту информацию на всех уровнях работы обрабатывающих ее систем, и хардварный уровень — не исключение.
Читать дальше →
Всего голосов 237: ↑234 и ↓3+231
Комментарии130

Фантомное питание для микрофона

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров7K


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

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

В свою очередь, микшеру необходим микрофонный предусилитель с балансным входом, фантомным питанием и фильтром верхних частот, отсекающим низкочастотные шумы, прежде всего, от вентиляторов. Именно такое устройство мы сегодня изучим и соберём.
Заодно узнаем, какие бывают микрофоны
Всего голосов 44: ↑43 и ↓1+42
Комментарии12

Простая трубка Гейслера своими руками

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров16K

Историческая разрядная трубка – «трубка Гейслера» (1857) – воистину прабабушка множества газоразрядных и электровакуумных приборов (ЭВП) и родилась как эксперимент и развлечение с демонстрацией тлеющего разряда. Трубка Гейслера привела, ни много ни мало, к открытию электрона. Прямые её потомки – неоновая реклама и люминесцентное освещение, лишь совсем недавно сдались под натиском светодиодов. Простые разрядные трубки долгое время служили индикатором разрежения в вакуумных системах. Такие приборы показывали высокое напряжение, использовались в научных исследованиях и для индикации резонанса в контурах крупных радиопередатчиков. Разрядные трубки Гейслера специфической гантелеобразной формы используют для получения линий спектра веществ.
Читать дальше →
Всего голосов 150: ↑150 и ↓0+150
Комментарии97

Немного о метриках сложности

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

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

Читать далее
Всего голосов 5: ↑3 и ↓2+1
Комментарии1

Люди не понимают ООП

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров112K

«ООП для меня означает лишь обмен сообщениями, локальные ограничения и защиту, сокрытие состояния процесса и крайне позднее привязывание», — Алан Кэй (человек, придумавший термин «объектно-ориентированное программирование»)1

Похоже, многим не нравится объектно-ориентированное программирование. Первое, что приходит в голову, когда слышишь эту трёхбуквенную аббревиатуру — это пример с автомобилем, наследование, геттеры, сеттеры и ObjectFactoryFactorySingleton.

Мне это всегда казалось довольно странным. Мне не только нравится ООП, я ещё и считаю, что часто это лучший/наиболее очевидный способ моделирования задачи. И ниже я расскажу, почему.
Читать дальше →
Всего голосов 154: ↑147 и ↓7+140
Комментарии457

На что способен самодельный очиститель воздуха, который можно собрать за 30 секунд?

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров68K

Плохой воздух однозначно вреден, но на рынке его очистителей мы наблюдаем бардак. Каждый производитель использует свои эксклюзивные фильтры, по всей видимости, для того, чтобы клиенты были вынуждены покупать именно их. А откуда нам знать, что эти устройства вообще работают? Немногие компании публикуют лабораторные тесты. И почему какая-то большая пластиковая коробка с вентилятором и фильтром стоит аж $100-300?

Но существуют и самодельные очистители, чаще представляющие собой просто примотанный к вентилятору фильтр. Мне такая идея по душе, но в этом случае тоже нет уверенности в их эффективности. Какие-то эксперименты проводились, но недостаточно, чтобы внушить мне доверие. Поэтому я решил поэкспериментировать сам: собрал очиститель, напустил дыма и измерил, насколько эффективно он справляется с удалением мелких частиц.
Читать дальше →
Всего голосов 129: ↑124 и ↓5+119
Комментарии157

Как шутят математики. Решение первого шифра Олама

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров15K

Не так давно в одной из статей я уже касался темы, краешком связанной с Манхэттенским проектом, и этот материал также имеет к нему некоторое отношение. Более того, учитывая масштаб и количество участников проекта, я наверняка буду его упоминать и в некоторых последующих текстах. Эта статья написана на основе исследования американского разработчика программного обеспечения Пола Релкина.

Итак, Лос-Аламос объединил одной целью многих видных учёных того времени. Одним из них был замечательный учёный Ричард Фейнман. Разумеется, основным предметом его интереса всегда была физика, но помимо потрясающих познаний в ней, профессор Фейнман отличался и другими талантами. Из его автобиографии (всем, кто ещё не читал, настоятельно рекомендую) известен факт, что профессор особенно гордился своими реактивными скилами решения головоломок и математических задач.

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

11 полезных фичей Chrome DevTools

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров8.9K

Всем привет!

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

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

Погнали!

Погнали!
Всего голосов 21: ↑21 и ↓0+21
Комментарии2

Передача данных по радиоканалу

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

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

Важно! Здесь не будет информации о юридических особенностях использования радиосвязи, а также о частотах, мощности передачи, позывных и т. п. Применение радиосвязи имеет ограничения и регулируется Федеральным законом N 126-ФЗ «О связи».

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

Разбираемся с Bluetooth Low Energy на примере превращения USB-клавиатуры в беспроводную

Уровень сложностиСредний
Время на прочтение16 мин
Количество просмотров15K


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

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

Не имея навыков пайки, вы сможете создать полезное Bluetooth-устройство, а ваше понимание Bluetooth и Linux уже не будет прежним, если вы, конечно, не являетесь экспертом в этих областях.

Данная статья ставит целью на примере разработки собственной Bluetooth-клавиатуры помочь разобраться в базовых понятиях Bluetooth, так как чтение скучных спецификаций и статей с введением в технологию даёт мало пользы.
Читать дальше →
Всего голосов 76: ↑74 и ↓2+72
Комментарии76

Информация об информации. Энтропия Шеннона, демон Максвелла и предел Ландауэра

Уровень сложностиСредний
Время на прочтение24 мин
Количество просмотров19K

Информация – одно из самых неоднозначных и неопределённых понятий в науке и философии. Для гуманитария это любые сведения, которые можно запомнить и передать в устной или письменной форме. Для математика это абстрактная сущность, сохраняющаяся при вычислительном изоморфизме. Для физика-теоретика это набор квантовых чисел, характеризующих состояние элементарной частицы. Для программиста это цифровые данные, которые можно представить в двоичном коде и измерить в битах. Для философа-материалиста это отражение многообразия окружающего мира с помощью знаков и сигналов. Для философа-идеалиста это нематериальная, неизмеримая и нелокальная сущность, что-то связанное с духом или сознанием. Для эзотериков это некая метафизическая субстанция или информационное поле. Что же такое информация на самом деле? В данной лекции я покажу, что информация – физическая, объективная, измеряемая величина, в которой нет ничего субъективного и мистического. Заодно мы разберёмся, что такое энтропия по Шеннону, насколько избыточен естественный язык, в чём заключается принцип Ландауэра и обладает ли информация массой.

Читать далее
Всего голосов 47: ↑45 и ↓2+43
Комментарии166

Редактирование и подпись PDF в браузере локально

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


За последние месяцы появилось несколько полезных инструментов для подписи и редактирования PDF. Опенсорсные веб-приложения работают через браузер, но локально на компьютере клиента, то есть без передачи документов на сервер. Вся «установка» таких приложений сводится к сохранению HTML с сайта и запуску из кэша.

В некоторых случаях эти современные приложения могут составить альтернативу платным нативным программам, таким как Adobe Acrobat Pro и DocuSign.
Читать дальше →
Всего голосов 17: ↑16 и ↓1+15
Комментарии1

Fan Control — лучший софт для управления вентиляторами в компьютере

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров56K


Каждый владелец компьютера сталкивался с шумом вентиляторов. Хорошо, когда они качественные, не шипят и не гудят, а материнская плата каким-то чудом сама управляет ими в оптимальном режиме, и все довольны.

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

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

В этой статье я опишу очень небольшую утилиту для управления вентиляторами в ПК, которая поразила меня своей гибкостью, и вот уже многие годы является второй в списке на установку в свежую систему. Почему второй? Потому что первым делом в систему ставится браузер, желательно огнелис.
Читать дальше →
Всего голосов 61: ↑57 и ↓4+53
Комментарии77

Друиды 21-го века или «химичим напиток силы» в домашних условиях

Уровень сложностиСредний
Время на прочтение31 мин
Количество просмотров11K

Многие из нас увлекаются спортом, и даже не говоря о профессиональных спортсменах, желание немного улучшить свои результаты – присуще каждому, кто им увлечен. О способах, которые могут в этом помочь, о том как происходит данный процесс в человеческом организме, а так же о том , как самостоятельно , в домашних условиях приготовить спортивное питание, ориентированное именно на ваши потребности, мы и поговорим в этой статье. Те же , кто не увлекаются спортом, то же смогут почерпнуть для себя интересную информацию о том как работает наш организм. Кому интересно , жмите далее!

Читать далее
Всего голосов 40: ↑37 и ↓3+34
Комментарии37

Стеганоанализ в компьютерно-технической экспертизе

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров2.6K

В 1999 году на встрече по обмену опытом с представителями правоохранительных органов США я узнал о существовании цифровой стеганографии. Тогда демонстрация работы S-Tools произвела на меня эффект, сравнимый с тем, что производят фокусы Копперфильда, однако после «разоблачения» все стало понятно. Еще через несколько лет я узнал, что существует научное направление, посвященное обнаружению стеганографии. Это было что-то совсем фантастическое…

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

Цель статьи – привлечь внимание к применению стеганоанализа в компьютерной экспертизе и пригласить сообщество к дискуссии по методологическим аспектам.

Читать далее
Всего голосов 6: ↑5 и ↓1+4
Комментарии7
1
23 ...

Информация

В рейтинге
3 595-й
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность