Pull to refresh
0
Шурик@AlexBrownread⁠-⁠only

Пользователь

Send message

Скрипт для резервного копирования сообщений из Telegram

Level of difficultyEasy
Reading time1 min
Reach and readers2.7K

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

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

Читать далее

Пуск DWT Таймера на ARM Cortex-M (или Ядерный Таймер)

Level of difficultyEasy
Reading time6 min
Reach and readers5.4K

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

В ARM Cortex-M процессорах помимо SysTick есть еще один 32 битный таймер по имени DWT. Этот таймер увеличивается на 1 каждый тик ядра.

Как же воспользоваться этим ядерным таймером?

Читать далее

CryptoBuddy или как мы с другом решили сделать переписку секьюрной

Level of difficultyEasy
Reading time8 min
Reach and readers6.3K

Всем привет! Моя первая статья тут, просьба строго не судить :-)

Предыстория

Когда-то давным-давно, в прошлом десятилетии, я учился в одном техническом университете по специальности "информационная безопасность автоматизированных систем" и один из предметов, который меня заинтересовал, был криптография. В то время для меня это был какой-то вид магии, сверхспособность - возможность передавать информацию так, чтобы ее понял только тот, кому она предназначалась. Однако после учебы, столкнувшись на практике с данной областью ИБ, романтика ушла на второй план, и осталось практическое понимание необходимости использования криптографии для обмена "конфиденциальной" информацией. Там, на месте работы (одна большая государственная организация), где использовал криптографию в практическом аспекте, и познакомился со своим другом. Почти 9 лет прошло)

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

Поэтому в определенный момент решил реализовать это на практике, создав небольшого локального помощника в данном вопросе.

Читать далее

Инкапсуляция в Python: property, name mangling и никаких кофемашин

Level of difficultyEasy
Reading time11 min
Reach and readers7.7K

Когда разработчики приходят в Python из Java или C++, у них часто случается культурный шок. Они безуспешно ищут модификаторы private или protected и задают логичный вопрос: «А как здесь вообще прятать данные?»

Добро пожаловать в мир, где язык вам доверяет, а Гвидо ван Россум говорит: «Мы здесь все взрослые люди». В новой статье разбираем архитектурный дзен Python:

🔹 Почему двойное подчеркивание (__) — это не аналог private (и как его взломать в одну строчку).
🔹 Почему классические геттеры и сеттеры в Python — это антипаттерн.
🔹 Как элегантно защитить данные с помощью @property, дескрипторов и slots.
Никаких заезженных метафор про пульты от телевизора. Только суровая (и красивая) реальность Python-way.

Читать далее

Docs as Code: документация, которая живёт вместе с кодом

Level of difficultyEasy
Reading time3 min
Reach and readers9.9K

Это перевод статьи с opensource.com, которая мне показалась особенно полезной и практичной, поэтому решил поделиться адаптированной версией для русскоязычной аудитории. Оригинал доступен по ссылке: https://opensource.com/article/22/10/docs-as-code

В статье разбирается подход Docs as Code — способ встроить документацию в процесс разработки так, чтобы она проходила через Git, ревью и автоматическую сборку вместе с кодом. Материал будет полезен разработчикам, тимлидам и тем, кто выстраивает инженерные процессы в команде.

Читать далее

Sing-Box Launcher: как собрать VPN + WireGuard + split-tunneling без JSON-конфигов

Level of difficultyEasy
Reading time10 min
Reach and readers17K

Многие, наверное, хотели сделать конфигурацию чтобы и рабочие ресурсы через WireGuard, и российские сайты напрямую, и заблокированные — через VLESS, а доступные только из РФ сервисы — через RU-прокси. В статье покажу, как собрать такую схему без единой строчки JSON и почему Sing-Box Launcher постепенно превратился в GUI-оркестратор конфигураций sing-box.

Читать далее

Nikon D70 — какими были одни из первых массовых цифровых зеркалок?

Level of difficultyEasy
Reading time5 min
Reach and readers8.3K

После нескольких лет съёмок на Fujifilm неожиданно для себя я решил вернуться на Nikon. Происходило это поэтапно: сначала купил F80 — почти топовую плёночную зеркалку начала нулевых, затем взял «мыльницу», а потом — и D70. В итоге произошёл переход на современную Z5II, которая оказалась слишком крутой для своей цены. Но сегодня хочется поговорить именно про D70 — кропнутую зеркалку из начала нулевых, предназначенную для куда более широкого круга пользователей, нежели F80, которая, хоть и плёночная, по функционалу уделывала новомодную на тот момент «цифру».

Читать далее

Под чёрным льдом Байкала

Reading time10 min
Reach and readers15K

Шар медленно погружался в ледяную воду. Гладкий и прозрачный, в темной проруби он практически сразу становился невидимым: чистая стеклянная сфера в чистой воде. За ним последовал второй, затем еще один. Полуметровые шары ненадолго замирали над поверхностью, переливаясь на солнце – как золотые леденцы – а затем исчезали под черным льдом.

Это могла бы быть история про артефакты, забытые иной цивилизацией, но это история про Байкальский нейтринный телескоп.

Читать далее

Менеджер памяти CPython — проектируем с нуля, простым языком

Level of difficultyMedium
Reading time21 min
Reach and readers6.4K

Менеджер памяти CPython — одна из тех частей интерпретатора, о которых часто слышат, но редко понимают, как они устроены на самом деле.

Каждый объект Python — число, строка, список или словарь — должен где-то жить в памяти. Интерпретатор создаёт миллионы таких объектов и так же быстро их уничтожает. Чтобы это работало эффективно, CPython использует собственный аллокатор памяти и несколько уровней оптимизации.

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

Arena → Pool → Block → Reference Counting → Cycle GC

Читать далее

Чебурнет 2026: как мы дотерпелись

Level of difficultyMedium
Reading time7 min
Reach and readers50K

Снова привет, Хабр.... добро пожаловать в 2026

О белых списках, Yggdrasil и о том как мы достигли нового уровня блокировок

Читать далее

Теорема Гаусса‑Маркова и ее условия

Level of difficultyEasy
Reading time5 min
Reach and readers7.9K

Теорема Гаусса‑Маркова:

Почему метод наименьших квадратов работает? Почему ему можно доверять? И при каких условиях он действительно дает лучшие оценки?

В статье разбираю теорему Гаусса‑Маркова, ее условия и что делать, если реальность не идеальна, без сложной математики и больших формул

Читать далее

Я просто починил

Level of difficultyMedium
Reading time13 min
Reach and readers16K

Так получилось, что в моей домашней лаборатории к концу прошлого года померло двое. Ясно. Нужно вскрытие. Точнее, они не совсем померли, а только начали подавать признаки разложения. Но это — моя опора, так что вскрытие не помешает. Хоть это и не сильно сложная задача, но многим интересно, как там устроены внутренности, и что сними ещё можно сделать. Кто не любит вскрытие? — Только те, которых вскрывают. А их кто‑то спрашивал? Скальпель, паяльник, спирт, спирт, спирт, огурец, поехали!

Вскрытие!

Pandas: 4 вопроса, которые мучают 51% Python-разработчиков — и их правильные ответы

Level of difficultyEasy
Reading time6 min
Reach and readers9.7K

По данным Stack Overflow Developer Survey, pandas — самая ищемая Python-библиотека. Разбираем четыре топовых вопроса: итерация по строкам, переименование колонок, удаление NaN и фильтрация. Для каждого — несколько способов с бенчмарком и рекомендацией «как надо делать в 2026».

Читать далее

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

Level of difficultyHard
Reading time13 min
Reach and readers7.2K

Статья посвящена интеллектуальным силовым модулям, которые являются основой силовой части современных преобразователей частоты для асинхронных электродвигателей. Приводится описание российского интеллектуального силового модуля ТТМ-1000, который входит в состав преобразователей частоты концерна «Русэлпром»: его технические характеристики, особенности, преимущества и недостатки по сравнению с западным аналогом. Рассматривается преобразователь частоты мощностью 1,67 МВА на основе модуля ТТМ-1000, который является базовым преобразователем частоты для судовых систем электродвижения концерна «Русэлпром».

Вторая часть статьи

Талант эксперта или скрытая угроза: История спасения СТМ от миллионных убытков

Level of difficultyEasy
Reading time3 min
Reach and readers5.9K

В этой статье я поделюсь опытом, кейсом из моей практики в российском ритейле. Ко мне обратился заказчик с проблемой. На производстве чипсов (СТМ в Краснодарском крае) возникали проблемные возвраты целых партий картофеля от производителей по причине брака 80–90%. Внешний осмотр показывает, что картофель снаружи весь в чёрных пятнах. Сами производители утверждали, что отправляют картофель качеством не превышающим 5% брака, и ссылались на отчёт сюрвейера.

Проект требовал присутствия в формате 90%, поэтому с заказчиком мы определились с посещением двух поставщиков и самого филиала по производству.

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

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

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

Читать далее

Знакомьтесь, Ричард Джонс (цикл заметок о выдающихся питонистах)

Level of difficultyEasy
Reading time8 min
Reach and readers15K

PyPI — централизованный каталог Python-пакетов. Сегодня в нем более 865 тысяч проектов общим весом 36 терабайт.

PyPI создал Ричард Джонс. В октябре 2002-го, в электричке, по дороге на работу в Мельбурн.

Будет интересно

Реверс инжиниринг чистой архитектуры

Level of difficultyHard
Reading time86 min
Reach and readers14K

Часть 1: Обход защиты

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

Я попросил прислать мне саму программу, но мне ответили, что без аппаратного ключа она не работает. Ключ при этом находится в Бразилии, и прислать его не могут, так как он нужен медикам для работы. «Присылайте так, разберусь», — сказал я. Была мысль глянуть, что там да как статически, а если получится — заставить её работать без ключа и смотреть уже в динамике.

Читать далее

О радости программирования и невесомости достижений

Reading time8 min
Reach and readers16K

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

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

Я делал это не потому, что меня кто-то заставлял или потому что так требовало начальство, а просто потому что сам процесс создания работающей системы из ничего, исправление хитрых багов, построение сложных систем из простых компонентов – всё это было по-настоящему весело, приносило какое-то детское удовольствие от созидания. Когда наконец откидываешься в кресле от монитора после многих часов работы, смотришь на то что построил своими руками, и видишь что всё работает как задумано, и думаешь: "Да, я, блин, чертов гений, это всё сделал только я, и никто мне не помогал". Ну разве что SO и немного гуглежки.

Читать

Как резать стекло ножницами и не только: эффект Ребиндера

Level of difficultyMedium
Reading time7 min
Reach and readers34K

Картинка: freepik.com

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

Да, сегодня мы поговорим как раз о таком примечательном эффекте — эффекте Ребиндера!

Читать далее

Месседжер MAX следит за пользователями VPN? Реверс инжиниринг говорит — да (добавлено обновление)

Level of difficultyEasy
Reading time9 min
Reach and readers379K

И этот заголовок - не кликбейт. Подвергнув реверс инжинирингу клиент российского мессенджера MAX удалось подтвердить самые худшие предположения.

В сети начали появляться сообщения о странных обращениях мессенджера MAX к Telegram и WhatsApp, из-за чего в сети начали выдвигаться предположения касательно природы и целей этих запросов. Но одно дело предполагать, другое дело знать. Мало ли это какая-то интеграция или случайный аналитический модуль. Поэтому чтобы понять самому и рассказать вам я решил посмотреть внутрь клиента и понять что и зачем он делает.

TL;DR - содержит шпионский модуль, который сделали разработчики MAX для слежки за теми кто использует VPN, они постарались сделать этот модуль неблокируемым и прикрутили удаленное управление.

Читать далее
1
23 ...

Information

Rating
Does not participate
Location
Красноярск, Красноярский край, Россия
Registered
Activity