Search
Write a publication
Pull to refresh
@resetmeread⁠-⁠only

Скромный пастух нулей и единиц…

Send message

Контроль привычек на запястье: как Mi Smart Band 7 поможет не забывать важное

Reading time13 min
Views12K

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

«Если это действительно важно, то отмечайте даты на упаковке, используйте таблетницу или заведите будильник на телефоне», — скажете вы. Да, это решение. Но у меня есть фитнес-браслет, который, как заявляется, следит за моим здоровьем. Почему бы не научить его отвечать на вопрос «Не забыл ли я “…”»?

В тексте я расскажу про тернистый путь разработки под Mi Smart Band 7 и объясню важные детали для быстрого старта. В результате получится циферблат, который позволяет считать количество наиболее важных рутинных действий за день. Бонусом расскажу о приложении для броска кубиков 1d20 и 2d20.
Читать дальше →

OSINT: Разведка в ЕВРОПЕ

Reading time9 min
Views13K

В статье на сегодня пойдёт разговор про OSINT на территории Европы.
Тема обширная, европа разношерстная, стран много, людей много, менталитет местами разный.

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

Итак, начнем с GEOINT и его основ.

Часовые пояса

Континент Европа разделен на следующие часовые пояса:
Часовой пояс Азорских островов (UTC-1);
Западноевропейский часовой пояс / Часовой пояс по Гринвичу/
Ирландский часовой пояс (UTC+0);
Центрально европейское время (UTC+1);
Восточноевропейское время (UTC+2);
Калининградский часовой пояс (UTC+2);
Восточноевропейский часовой пояс и Московский часовой пояс (UTC+3).

Часовой пояс достаточно сильно сужает объем мест поиска.
Так например, если вам попалась фотография с метаданными (что с одной стороны редкость, а с другой реальность), то в ней может быть прописано дата её создания или редактирования. Эта дата обычна указана в формате timestamp - это формат хранения даты и времени с учетом часового пояса.

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

К примеру exiftool, вот пример её работы.

Читать далее

Детекторный приёмник. Немного практики

Level of difficultyEasy
Reading time15 min
Views17K

Несмотря на то, что при Союзе огромное количество детей собирало детекторные приёмники в школе или радиокружках, моё пост советское детство такая забава не затронула. Я с самых ранних лет хотел попробовать, но всё вечно упиралось в отсутствие компонентов, а когда они появились, то в размышления, вроде «откуда я возьму такую антенну?». И вот, я наконец-то решил попробовать и собрал приёмник, который, как не странно, успешно заработал, и хотел бы поделиться своим скромным опытом в этом деле. Возможно, кого-то мои эксперименты воодушевят или поддержат, может быть, кто-то как я обуреваем сомнениями в том, что может не получиться и мой опыт будет полезен, что будет, несомненно, большой радостью для меня.

Читать далее

Настройка кластера высокой доступности: PostgreSQL + (Patroni и etcd)

Level of difficultyMedium
Reading time10 min
Views23K

Хабр, привет!

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

Немного теории. Patroni — это инструмент для управления высокодоступными кластерами PostgreSQL. Он упрощает настройку и управление репликацией благодаря автоматическому переключению на резервные узлы и восстановлению после сбоев.

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

Зачем мы это делаем?

Во-первых, интересно. Во-вторых, это нам позволит установить последние версии пакетов без открытого доступа в интернет с серверов. Во многих компаниях изолированная сетевая среда — поэтому вот вам памятка по такой задаче.:)

Итак, приступим.

Читать далее

Использование диаграммы вариантов использования UML при проектировании программного обеспечения

Reading time10 min
Views490K

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

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

Читать далее

Кодирование с кодеком HEVC простым языком — гайд на FFmpeg. Высокое качество, но низкий вес

Level of difficultyEasy
Reading time11 min
Views35K

Казалось бы, довольно простой вопрос: «Чем сжать видео?». На ум сразу приходят Handbrake, Movavi Converter или ещё что-нибудь пострашнее. Однако когда речь заходит о более гиковском подходе с упором на максимальное качество и экономию места, такие программы сложно назвать инструментами. Равно как и для обратной ситуации, когда картинку нужно сильно сжать и сохранить в целостности большую часть полезной информации. Все эти программы только лишь предоставляют набор наиболее общих конфигов для обычной съёмки и 2D.

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

50 оттенков линейной регрессии, или почему всё, что вы знаете об A/B тестах, помещается в одно уравнение

Reading time18 min
Views27K

Всем привет! A/B тестирование уже давно стало стандартом в проверке гипотез и улучшении продуктов в X5. Но, как ни странно, многие из «модных» техник, которые применяются в A/B тестировании, на самом деле, не что иное, как вариации старой доброй линейной регрессии. 

Основная идея здесь проста: правильное добавление новых переменных в модель помогает лучше контролировать внешние факторы и уменьшать шум в данных. Это позволяет точнее оценить эффект от воздействия и объединить разные статистические подходы, которые обычно рассматриваются отдельно. Но почему это работает? Почему всё сводится к тому, что добавление переменных помогает объединить, казалось бы, разрозненные техники? 

Чтобы разобраться в этом, для начала вспомним основы линейной регрессии, после чего перейдём к различным статистическим методам снижения дисперсии и покажем, как они сводятся к линейной регрессии. Затем объединим все техники вместе и на примере покажем, как они работают на практике.

Читать далее

От REST к GraphQL: эволюция управления данными в Wagtail

Level of difficultyMedium
Reading time21 min
Views2.2K

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

Привет! Я Олег, Python-разработчик в Kokoc Group, и сегодня расскажу, как ускорить работу с данными в CMS Wagtail и сделать разработку проще и приятнее с помощью GraphQL и Graphene. В статье разберу реальные примеры и покажу процесс настройки конкретной системы.

Читать далее

HotPatching – установка обновлений без перезагрузки. Не только Windows Server, но и Windows 11. И без подписок Azure

Level of difficultyEasy
Reading time6 min
Views8.5K

Сегодня хочу поговорить с вами о наболевшем, об обновлениях Microsoft, требующих перезагрузки. Я отношусь к тем, кто обычно устанавливает рекомендуемые на широком канале Windows Update, так как считаю безопасность превыше всего. Однако, перезагрузки безумно напрягают. Не одного меня, конечно. Так сложилось, что Microsoft очень давно разрабатывала технологию установки обновлений без перезагрузок.  Мало кто знает, что еще с Windows Server 2003 SP1 была предложена технология HotPatching, позволяющая на лету устанавливать заплатки и библиотеки, не требуя перезагрузки. Правда, почему то, после выхода Windows Server 2003 SP2 выпуск обновлений, не требующих перезагрузок был свёрнут. О подробностях применения горячих обновлений в те древние времена можно почитать тут. Сегодня я расскажу о горячей установке обновлений на Windows Server 2025 и Windows 11 24H2 без всяких подписок. Но давайте по порядку…

С выходом Windows Server 2019 технология была переработана и для издания Windows Server 2019 Datacenter Azure Edition (Core) доставлялись горячие обновления, если машины размещались в Azure. С Windows Server 2022 такая возможность появилась и для версии Windows Server 2022 Datacenter Azure Edition с полным рабочим столом. Но требование издания Azure Edition и размещения в облаках Microsoft никуда не делось. Позже разрешили обновлять без перезагрузок виртуальным машины Azure Edition, развернутые в датацентрах заказчика на кластерах Azure Stack HCI при наличии подписки Azure. Гм, тоже не моя история 😊

Как ставить обновления без перезагрузок

Уровни изоляции транзакций в БД

Level of difficultyMedium
Reading time9 min
Views48K

В этой статье обсудим, что из себя представляет изолированность транзакций в БД, какие есть уровни изоляции транзакций, как их установить, какие бывают аномалии на разных уровнях, и что такое MVCC. Естественно, всё на простых примерах.

Читать далее

Небольшая хитрость для простого взаимодействия Rust и C++

Level of difficultyMedium
Reading time10 min
Views4.6K

На работе я переписываю запутанный C++ код на Rust.

Из‑за активного использования коллбеков (вздох), Rust иногда вызывает C++, а C++ иногда вызывает Rust. Все это благодаря тому, что оба языка предоставляют C API для функций, которые можно вызывать со стороны противоположного языка.

Это касается функций; но как быть с методами C++? Представляю вам небольшую хитрость, благодаря которой можно переписать, без головной боли, один метод C++ за раз. И, кстати, это работает независимо от языка, на который вы переписываете проект, это не обязательно должен быть Rust!

Читать далее

Девайсы для пентеста. Обзор хакерских девайсов. Часть 2: RF

Reading time14 min
Views69K


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

За последние годы в клирнет вышло огромное количество пентестерских устройств и постоянно появляются новые. Большинство продаётся в разрозненных магазинах по всему миру (и на алиэкспрессе в том числе), и у пентестеров появилась новая головная боль — выбирать среди десятков похожих устройств нужное или искать очередное «универсальное» решение. Наконец, крутой специалист и консультант по информационной безопасности Yago Hansen просто собрал каталог крутых девайсов, железяк и аксессуаров, доказавших свою эффективность. Сейчас каталог второй версии, в нём 177 наименований из 8 категорий. Предлагаем вашему вниманию его адаптацию в виде цикла из 7 постов (некоторые категории будут совмещены или поделены на две статьи из-за разницы в объёме).
Читать дальше →

Путь в GitOps или как мы перевели кластер Kubernetes под управление Argo CD

Reading time10 min
Views10K

Всем привет! Если вы работаете с Kubernetes, то, скорее всего, используете kubectl, kustomize или Helm для развёртывания сервисов в кластере. Про последнюю утилиту я уже писал статью — можно посмотреть тут. Тогда я рассказал о своём опыте внедрения этого инструмента для собственных нагрузок и сравнил подходы kubectl apply и helm install.

Управление конфигурацией в Kubernetes может осуществляться с помощью различных инструментов. Помимо Helm, можно использовать просто YAML-манифесты или же kustomize. Для каждого из этих инструментов предусмотрена своя команда.

В данной статье мы рассмотрим подход GitOps для K8s-кластеров и применим такой инструмент, как Argo CD.

Читать далее

Корпоративный OpenVPN, или как сделать тигра из кошки

Reading time16 min
Views9.8K

Говорят, из кошки не сделать тигра, но сегодня мы попробуем добавить «корпоративности» очень простому и популярному ВПН-решению. OpenVPN Community Edition является решением с открытым кодом, очень популярным в мире и довольно безопасным. В корпоративной среде его использование часто бывает проблематично – отсутствуют важные функции, позволяющие разворачивать решение большому количеству пользователей с минимальными затратами.

Читать далее

Почему десна вас покидает и как вернуть её домой?

Reading time11 min
Views18K
Десна иногда съезжает, обнажая корни зубов. Это нормально и может случиться с каждым, но штука это неприятная. Кроме повышенной чувствительности к горячей, холодной, кислой или сладкой пище, она несёт целый куст возможных последствий ― от заболеваний полости рта до изменения прикуса и нарушения жевательной функции. Да ещё и эстетически это так себе выглядит.

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

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

image
Вверху фото десны с рецессией до операции, а внизу — после операции

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

А теперь живописные подробности.

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

Обходим блокировку VPN

Level of difficultyMedium
Reading time2 min
Views76K

Мой провайдер помимо замедления (читай полная блокировка) YouTube так-же стали блокировать соединения с моими рабочими VPN. Работодатель не очень любит, когда на встречах на вопрос о прогрессе, я неделю отвечаю, что у меня не работает VPN! Своими действиями, мой провайдер сам меня подтолкнул к поиску обходных путей.

Сразу скажу, обходной путь придумал не сам, мне его подсказал автор проекта zapret, а точнее его комментарий, более того, я использую его проект, чтоб смотреть нормально YouTube. Спасибо огромное!

Добавлю, я использую nftables и nfqws, если этот вариант работает у меня — это не значит, что оно заработает и у вас! Возможно, вам придётся изменить некоторые параметры.

Читать далее

Kotlin глазами Java-разработчика

Level of difficultyEasy
Reading time6 min
Views22K

Привет, хабр! Сегодня я хочу рассказать про свой опыт взаимодействия с языком kotlin.

Представлюсь – я java разработчик, работаю в крупном банке, создаю (и поддерживаю существующие) микросервисы.

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

Итак, почему я решил изучить kotlin. Ну, во-первых, прожужали все уши, мол сокращение объема код, лаконичность, читаемость и сахар.

Читать далее

Радиолюбитель R4uab получил изображения затмения со спутника «Метеор-М2»

Reading time1 min
Views21K


Дмитрий Пашков, радиолюбитель из мордовского поселка Рузаевка, смог получить изображения затмения со спутника «Метеор-М2», принадлежащий Роскосмосу. Радиолюбитель получил фотографию лунной тени, которая приходила над Норвежским морем 20 марта. Стоит отметить, что сигналы этого и многих других спутников не шифруются, поэтому получить данные с них можно, при условии определенного опыта, уровня знаний и наличия оборудования. Конкретно этот аппарат работает по программе «Открытый космос».

Несмотря на то, что данные передаются в открытом виде, снять показания не так просто, поскольку нужно соответствующее программное обеспечение. Радиолюбитель обратился к разработчикам «Метеора», и те предоставили программу для декодирования «сырых» файлов. Кроме этого ПО, нужно было достать еще ряд программ, которые позволяют работать с информацией, передаваемой спутником.
Читать дальше →

Декодируем сигнал метеоспутника NOAA в 50 строчек кода

Reading time5 min
Views25K
Привет, Хабр.

Продолжим тему декодирования различных видов радиосигналов. Одним из интересных форматов, разработанных еще в прошлом веке, является APT (Automatic Picture Transmission). Он используется для передачи изображений Земли из космоса, и что для нас гораздо более интересно и актуально, прием сигналов APT прост и доступен радиолюбителям.


Спутник NOAA © en.wikipedia.org/wiki/NOAA-15

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

От десятков до сотен тысяч RPS: как мы создали API, который развивается 10 лет без дропа обратной совместимости

Level of difficultyMedium
Reading time10 min
Views11K

Привет! Меня зовут Вадим Клеба, я руковожу командой бэкенд-разработки в Телемосте. Последние девять лет я разрабатываю высоконагруженные распределённые системы. Раньше я разрабатывал search-as-a-service-решение с эффективным полнотекстовым поиском с учётом релевантности.

В статье расскажу, как в Яндекс 360 строили API в течение десяти лет без дропа обратной совместимости, выдерживающий сейчас сотни тысяч RPS. Вы узнаете, какие подходы мы изначально закладывали, чтобы наш API прожил так долго. 

Читать увлекательную историю

Information

Rating
Does not participate
Registered
Activity