Search
Write a publication
Pull to refresh
3
0
Егор @Ommonick

SDET teamlead

Send message

Коммуникатор судного дня «Armachat» LoRa

Reading time8 min
Views25K
Технология LoRa отлично подходит не только для сбора информации с удалённых датчиков. Её можно использовать как основу системы для обмена сообщениями. Именно такую систему я воплотил в жизнь в виде персонального коммуникатора Armachat. Для меня это самый настоящий учебный проект, на котором я оттачивал навыки создания печатных плат с беспроводными модулями и графическими дисплеями. Устройство питается от аккумулятора, оно представляет собой нечто вроде высокотехнологичной портативной рации, поддерживающей обмен текстовыми сообщениями. При этом для сборки этой рации нужно сравнительно мало компонентов — всего около 25.

Для этого проекта я, чтобы удобнее было выполнять паяльные работы, выбрал микроконтроллер SAMD21E18 в корпусе TQFP32 (того же размера, что и популярный контроллер ATmega328). Правда, к сожалению, этот микроконтроллер продаётся пустым. Для того чтобы прошить в него загрузчик, необходимо специальное устройство — Atmel-ICE. Прошивка загрузчика оказалась самой сложной частью проекта. А в остальном тому, кто решит воспроизвести мой проект, никаких специальных инструментов не понадобится. Всё, что нужно, собрано на плате коммуникатора. А на передней панели, что необязательно, можно разместить подсветку клавиатуры.

image

Сначала я назвал моё устройство «Armageddon communicator» (отсюда и его теперешнее название — «Armachat»), но я не думаю, что оно способно пережить какую-нибудь воображаемую всемирную катастрофу.
Читать дальше →

HTTP/3 от А до Я: основные концепции. Часть 1

Reading time20 min
Views96K

image
Фото Florencia Viadana, Unsplash.com


После почти пятилетних разработок протокол HTTP/3 наконец приближается к окончательному выпуску. Предыдущие итерации уже доступны как экспериментальная функция, но в 2021 году мы ждём широкого распространения протокола. Что такое HTTP/3? Зачем выпускать его так рано после HTTP/2? Как его можно или нужно использовать? Как он влияет на производительность?

Читать дальше →

Real-time мониторинг тормозящих запросов PostgreSQL своими руками за полчаса

Reading time4 min
Views17K

В моей практике не раз были ситуации, когда хотелось посмотреть, какие именно запросы долго тупили в базе в определённый (конкретный) момент времени. А может, запросы не тупили, но каких-то запросов было слишком много.


Ключевое слово — в конкретный момент времени. Например, база непонятно от чего напряглась на 5 минут, потом всё само рассосалось, и очень хочется знать, почему. Отчёты за сутки, присылаемые dba на основе pg_stats_statements, не всегда проясняют ситуацию. Другие графики и логи могут помочь. Но всё же хочется не гадать на кофейной гуще, а конкретно посмотреть, что такому-то запросу в такое-то время было плохо, или его было много.


Можно, конечно, подключить системы а ля okmeter, но okmeter стоит денег. Да ещё и отсылает запросы в чужое облако — что, понятно, не в каждой организации можно считать безопасным.


На удивление, сделать такой мониторинг самому занимает всего полчаса времени, буквально с помощью нескольких строк Go-кода и палок.

Читать дальше →

Используем Bash в SQL-стиле

Reading time5 min
Views13K
Приветствую! Данная небольшая статья призвана осветить некоторые аспекты применения Bash для анализа файлов в SQL-стиле. Будет интересна для новичков, возможно, опытные пользователи также найдут для себя что-нибудь новое.

Структура задачи:

  • projects
    1. project1/ — проекты
      • conf/
        • <run_configurations>*.conf — конфигурации построения отчетов по таблицам
      • reports/
        • <run_configurations>/
          • report1.json — сами отчеты, содержат статистику по таблицам Apache Hive
          • report2.json
    2. project2/
      ...

Надо: найти просроченные отчеты.

Итак, расчехляем Bash, открываем отдельный терминал для man-ов и приступаем)

Всех, кому интересно — прошу под кат.
Читать дальше →

Немного про современные технологии Greybox-фаззинга

Reading time20 min
Views9K


Автор: Иннокентий Сенновский


Как найти баги, о которых вы и не догадывались, или что такое фаззинг


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


Чтобы справиться с этой проблемой, придумали фаззеры — инструменты тестирования, которые сами пытаются найти баги в программе. В этой статье я рассмотрю, какие они вообще бывают (для C/C++, потому что баги в таких программах особенно болезненны), но сделаю упор на Greybox-фаззеры (почему, расскажу в статье).

Обожаю статьи, где много букв

Автоматизация UI-тестирования в приложении Недвижимости на Android. Доклад Яндекса

Reading time16 min
Views9.1K
Чем больше процессов тестирования автоматизированы, тем эффективнее релизный пайплайн и тем быстрее пользователи получают новые возможности в сервисе. Руководитель Android-разработки Яндекс.Недвижимости Александр Рогов вспомнил, как эволюционировало UI-тестирование в его команде, как разработчики пришли к идее автоматизации, почему использовали фреймворк Espresso, с какими проблемами столкнулись и что в итоге получили.

— Начать хотелось бы с небольшого исторического экскурса.
Читать дальше →

Bash-функции и их имена, которые могут быть практически всем чем угодно

Reading time4 min
Views12K


С Bash связано одно распространённое заблуждение, которое заключается в том, что имена bash-функций должны быть составлены по тем же правилам, что и имена переменных. В руководстве по Bash даже даётся следующее определение термина name (имя):

Слово, состоящее исключительно из букв, цифр и символов подчёркивания, начинающееся с буквы или с символа подчёркивания. Такие слова используются в роли имён переменных оболочки и имён функций. Их ещё называют идентификаторами.
Читать дальше →

Растения I класса опасности. Памятка по идентификации

Reading time15 min
Views183K
Признаю честно, я не собирался сейчас писать заметку, ибо в лавине разномастного хабр-научпопа ботанике с примесью химии конкурировать достаточно сложно. Да и все, кому интересны мои публикации давным-давно координируются телеграм-каналом, а самые активные даже patreon-ируют и влияют на создание контента. Но внезапно, после того, как аннотация заметки в фэйсбуке набрала кучу репостов, я решил вынести ее на Хабр, ибо «Знание-сила». Под катом короткая статья, про растительные сверхтоксины, которые в прямом смысле вокруг нас. Как не крути, а это надо знать всем!

Вторая часть — Токсины растений. User Stories
Третья часть — Ядовитые декоративные растения в саду и огороде. Справочник
Четвертая часть — Опасные «вкусняшки». Ядовитые лесные ягоды. Памятка для детей и взрослых


Определить сверхтоксичное растение!

Автоматизация тестов на Go + Allure

Reading time16 min
Views22K

Привет всем. Меня зовут Таня. Я автоматизирую тесты на Go уже около года, до этого занималась 4 года автоматизацией на Java.

В этой статье расскажу:

- Как писала интеграционные тесты на Go + Allure

- С какими проблемами столкнулась

- С какими библиотеками и инструментами работаю

Читать далее

5 книг для летнего чтения от Билла Гейтса

Reading time3 min
Views2.8K

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

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

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

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

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

Читать далее

Как подружиться со своей интернет-зависимостью: практическое руководство

Reading time12 min
Views35K

В этом переводе автор подробно описывает 9 правил разумного потребления цифрового контента, которые он успешно протестировал на себе.



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


Возможно, вы злитесь из-за того, что не можете сконцентрироваться. А тут ещё портят настроение эти идиотские новости о том, что кто-то опять пытается разрушить нашу планету. И возможно, вы думаете: «Почему вся эта информация приплывает именно ко мне? Почему мне так важно, кто кого лайкнул в соцсетях? Почему мне есть дело до всего этого?»


Если это про вас, то у меня есть три новости — одна плохая и две хорошие.


  1. Плохая новость: в вашем мозгу нарушился естественный процесс получения вознаграждения.
  2. Первая хорошая новость: это распространённая проблема, с которой до вас справились многие. 
  3. Вторая хорошая новость: в этой статье я расскажу о девяти правилах, которые позволили мне справиться с этим.

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

Читать дальше →

Ядерная бомба для джихада

Reading time9 min
Views34K

Автор: Владимир Герасименко

28 мая 1998 года на засекреченном военном полигоне у города Чагай в Пакистане группа из двух десятков военных и гражданских кричали Аллах-Акбар и поздравляли друг друга с успехом. Среди ликующих выделялся высокий немолодой мужчина с орлиным взором, которого чествовали как героя. Для него это был грандиозный финал почти 30-летнего пути, это был триумф – триумф его воли и амбиций. Именно он – Абдул Кадыр Хан подарил ядерную бомбу Пакистану! 6 лет спустя Хан будет лишён всех своих постов и арестован за торговлю ядерными секретами. В этой истории будет всё, что вы любите – шпионаж, некомпетентность, политические сделки, преступления и много-много фраз [ЦРУ отрицает это]. Поэтому присаживайтесь поудобнее – нас ждёт путешествие длиною в 30 лет.

Читать далее

Разработка REST-серверов на Go. Часть 2: применение маршрутизатора gorilla/mux

Reading time6 min
Views26K
Перед вами второй материал из серии статей, посвящённой разработке REST-серверов на Go. В первом материале этой серии мы создали простой сервер, пользуясь стандартными средствами Go, а после этого отрефакторили код формирования JSON-данных, вынеся его во вспомогательную функцию. Это позволило нам выйти на достаточно компактный код обработчиков маршрутов.


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



Это — проблема, с которой сталкиваются все, кто пишет HTTP-сервера, не используя зависимости. Если только сервер, принимая во внимание систему его маршрутов, не является до крайности минималистичной конструкцией (например — это некоторые специализированные серверы, имеющие лишь один-два маршрута), то оказывается, что размеры и сложность организации кода маршрутизатора — это нечто такое, на что очень быстро обращают внимание опытные программисты.
Читать дальше →

Уже не программист, ещё не предприниматель

Reading time22 min
Views5.9K
На прошлой неделе в наших соцсетях выступил Евгений Донцов, основатель стартапа Ватериус.

Евгений окончил факультет ВМК МГУ по специальности математик, системный программист. В студенческие годы верстал факультетскую газету, организовывал студенческие мероприятия, обеспечивал их техническое сопровождение, фотографировал.

После выпуска более 10 лет работал программистом в автоматизации промышленных объектов и городов. Основал стартап Ватериус. Прошёл 2 ступени Школы дизайнеров Бюро Горбунова. Участвовал в преакселераторе Сбербанка SberUP.

Делимся с вами расшифровкой эфира и записью.

Как писать кодогенераторы в Go

Reading time14 min
Views18K

Однообразный код писать неинтересно, нудно, но приходится. Испокон веков изворотливые программисты ищут Святой Грааль формализма, позволяющего переложить рутинные задачи на машину, писать только раз и переиспользовать код. Так появились структурное программирование, потом объектно-ориентированное, полиморфизм с параметризованными типами, кодогенерация на основе формальных грамматик, препроцессоры макроязыка и прочее…​ Под катом рассмотрим, как обстоят дела именно в Go.

Читать далее

Разработка REST-серверов на Go. Часть 1: стандартная библиотека

Reading time9 min
Views96K
Это — первый материал из серии статей, посвящённой разработке REST-серверов на Go. В этих статьях я планирую описать реализацию простого REST-сервера с использованием нескольких различных подходов. В результате эти подходы можно будет сравнить друг с другом, можно будет понять их относительные преимущества друг перед другом.

Первый вопрос разработчиков, которые только начинают применять Go, часто выглядит так: «Какой фреймворк стоит использовать для решения задачи X». И хотя это — совершенно нормальный вопрос, если задавать его, имея в виду веб-приложения и серверы, написанные на многих других языках, в случае с Go при ответе на этот вопрос нужно принять во внимание множество тонкостей. Существуют серьёзные аргументы как «за», так и «против» использования фреймворков в Go-проектах. Я, работая над статьями из этой серии, вижу своей целью объективное разностороннее исследование этого вопроса.


Читать дальше →

Как решать сложные (технические) проблемы

Reading time4 min
Views15K
image


Мировоззрение


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


Поиск первопричины


  • Постарайтесь воспроизвести проблему
    • Можете ли вы воспроизвести это из командной строки?
      • Другим людям легче воспроизвести проблему
      • Легче проверить исправление
  • Есть ли логи? Что за сообщение об ошибке?
    • Прочтите описание ошибки. Каждое его слово. Дважды.
    • Есть ли где-нибудь опечатка (командная строка / конфигурация / код)?
  • Изолируйте проблему
    • Удалите некоторые части системы и попробуйте воспроизвести ошибку
    • Меняйте одно за раз, сохраняя все остальное постоянным
Читать дальше →

Самодельный ламповый стереофонический усилитель из доступных деталей

Reading time28 min
Views114K

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

Читать далее

Книги, которые мы заслужили. Vol 1

Reading time5 min
Views5.9K

Пятничный привет тебе, Хабр!

Если есть возможность в выходные отдыхать, а не работать — это очень круто. А если получается отдыхать с пользой — это круто вдвойне. Как? — например, читая классные книги.

Мы, издательство ITSumma Press, постоянно ищем интересные и полезные иностранные книги, которые еще не переведены на русский язык. Я, например, частенько слушаю аудиоверсии не-технических книг, которые помогают разобраться в сложных темах без специального образования. И обзоры самых интересных находок время от времени я буду представлять здесь. Если какая-то книга многим покажется занимательной, мы поставим её в очередь на перевод!

Ну, а пока — первый выпуск "ITS книгобзор". Сегодня расскажу вам, почему прямохождение стало причиной появления выдающейся женской груди и от том, как понять, роботы — это поставщики прав и свобод или их потребители. Поехали!

Читать далее

Information

Rating
Does not participate
Works in
Date of birth
Registered
Activity

Specialization

Backend Developer, Quality Assurance Analyst
Lead