Pull to refresh
33
0.1
ionicman@ionicman

User

Send message

Использование Node.js Stream для пакетной построчной обработки файлов

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

Node.js Stream предоставляют мощное средство для эффективной обработки большого обьема данных, например файлов с миллионами строк. Тем не менее их использование сопряжено с некоторыми трудностями, такими как не совсем прозрачное API и не тривиальная построчная обработка текстовых файлов. Чтобы разобраться в этом процессе, напишем несколько Transform стримов, изучим преобразование chunk и декодирование байт в строки.

Читать далее

Вы больше не новичок в Git. Повышаем квалификацию с помощью 7 команд

Level of difficultyMedium
Reading time10 min
Reach and readers24K

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

Читать далее

Многофункциональная утилита для работы с HDD, SSD и флешками

Level of difficultyEasy
Reading time4 min
Reach and readers16K

Обзор многофункциональной программы для работы с жёсткими дисками, SSD и флешками на «физическом» с точки зрения OS Windows уровне, независимо от файловой системы или её отсутствия. Проверка секторов, анализ SMART а том числе Seagate FARM, определение фейковых флешек, чтение и запись посекторных образов дисков (клонирование).

Читать далее

Изящные, ненормальные и удивительные алгоритмы на C

Level of difficultyMedium
Reading time10 min
Reach and readers17K

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

Идея написать эту статью зародилась из моего поста, после него я написал статью «Математика, биты, магия и немного ненормального программирования на C», «Фокусы, хаки, магия и прочее ненормальное программирование на C» и «Тёмная сторона Си: трюки, хаки, магия и алгоритмы», которые раскрывали много интересных моментов.

Увидев, что многим понравилась, я решил продолжить, чтобы узнать насколько глубоко кроличья нора!

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

Всех, кто заинтересовался — прошу под кат.

Читать далее

Скажи yay -S say

Level of difficultyMedium
Reading time8 min
Reach and readers18K

Статья содержит описание работы утилиты для видео звонков из командной строки say. Рассказывается о том как всё устроено под капотом, как оптимизированно и почему всё работает так быстро с минимальным размером памяти и нагрузки на CPU.
Так же небольшой обзор утилиты see для просмотра фильмов опять же в окне терминала.

Читать далее

Lord of the Prints: Filament Fellowship. Путешествие в мир филаментов для FDM-печати

Level of difficultyEasy
Reading time12 min
Reach and readers14K

Привет, Хабр! Это снова Лера из Selectel. В прошлой статье я рассказала о двух технологиях в 3D-печати. В комментариях попросили сделать разбор материалов — и вот он. Сегодня продолжим заниматься извращениями под видом технических текстов. Все сравнения и оценочные суждения — исключительно личное мнение. Экспертов в FDM, гуру печати, а также любителей активных обсуждений прошу принять приглашение на чашечку чая в комментариях, посплетничаем там вместе.

Шорткат под кат

Собираем Linux, который весит меньше, чем мем с котиком, ну или почти…

Level of difficultyMedium
Reading time13 min
Reach and readers34K

Мне всегда было интересно, насколько минимальным может быть Linux.

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

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

Зачем вообще нужно создавать такие сборки Linux?

Установил готовый дистрибутив или загрузился в Live — работай и изучай. Но такой подход не даёт настоящей уверенности в знаниях. Представьте: водитель и шофёр. Водитель просто ездит. Шофёр знает устройство автомобиля и может его починить.

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

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

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

В комментариях к моей предыдущей статье я видел замечания, что можно использовать buildroot или книгу Linux From Scratch. Скажу только, что я преследую другие цели: собрать минимальный Linux без использования специализированных программ и сделать это как можно проще.

Всем, кого заинтересовало, добро пожаловать под кат.

Читать далее

Секреты Apache Kafka API: обработка сообщений без потерь и дублей

Level of difficultyMedium
Reading time9 min
Reach and readers15K

Меня зовут Андрей Серебрянский, и я люблю Apache Kafka. И гарантии доставки exactly once. И рассказывать обо всём этом на конференциях. Пять лет я строил платформы потоковой обработки данных в финтехе, а теперь вместе с командой работаю над YDB Topics: частью YDB (СУБД Яндекса), которая заменяет Apache Kafka в роли брокера сообщений. СУБД Яндекса уже некоторое время поддерживает Apache Kafka API. Недавно мы расширили этот API, добавив поддержку Kafka-транзакций.

Но наличия транзакций в брокере сообщений недостаточно для получения гарантий exactly once. Чтобы неудачно зависший или перезагрузившийся сервер не привёл к дублированию или потере сообщений, нужно хорошо понимать, как именно работают транзакции в брокерах сообщений вообще и в Apache Kafka в частности.

Эта статья будет полезна начинающим разработчикам и тем, кто хочет освежить знания или разобраться в тонкостях exactly once обработки данных с помощью YDB Topics или других брокеров сообщений.

Читать далее

Chrome, Xfce и очень страшное кино

Level of difficultyMedium
Reading time8 min
Reach and readers18K

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

Читать далее

Роевой интеллект: как 15 строк кода заменяют централизованное управление дронами

Reading time5 min
Reach and readers11K

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

*Код и симуляция: Python 3.8+, matplotlib, numpy

Проблема централизованного управления

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

Читать далее

Архитектура слежки: Сравнительный анализ приватности веб-браузеров

Level of difficultyMedium
Reading time21 min
Reach and readers20K

Ваш браузер — это окно в интернет или двустороннее зеркало? По умолчанию многие из них спроектированы как настоящие терминалы для сбора данных.

Внутри статьи — детальный разбор телеметрии, оценка уровня шпионажа и, самое главное, исчерпывающее практическое руководство. Вы узнаете, как превратить Firefox в крепость с помощью about:config и настроить AdNauseam для тотальной блокировки слежки. Пора вернуть контроль над своей приватностью.

Читать анализ и руководство

Рецензия на книгу «Основы JetPack Compose: Разработка приложений для Android»

Level of difficultyEasy
Reading time7 min
Reach and readers8.5K

За последние несколько лет Jetpack Compose стал не просто новым способом создания интерфейсов под Android, а фактически основным инструментом UI-разработки. Google активно развивает Compose как декларативный фреймворк, заменяющий устаревший XML-подход, а экосистема вокруг него — от Material Design 3 до Compose Multiplatform — превратилась в полноценную платформу для современной мобильной разработки. Теперь учебник по Jetpack Compose уровня монографии (около 700 стр.) доступен на русском языке. Перевод книги по версии 1.6 — удобная отправная точка для тех, кто делает первые шаги или развивает компетенции в Compose-разработке.

Читать далее

Введение в Xray

Level of difficultyMedium
Reading time15 min
Reach and readers27K

Документ для тех, кто совсем не знает, что такое Vless, Xray и прочие штуки, связанные с «ВПН», но кому это нужно для планирования организации доступа через данные инструменты. Или если кому-то просто интересен принцип работы «на пальцах».

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

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

Читать далее

Продолжаем вкатываться в Go — таблица компетенций. Что ты должен знать на джуна/мидла?

Level of difficultyEasy
Reading time1 min
Reach and readers14K

Всем привет!

Не так давно я выкладывал RoadMap для самостоятельного изучения Go. Но во время обучения всегда встаёт важный вопрос: «А что учить дальше и на каком я уровне?».

Чтобы закрыть и его, я подготовил логичное продолжение — таблицу с вопросами и темами для самопроверки по грейдам (Junior, Middle, Senior).

Читать далее

Паттерны ООП, так не издевались даже… Структурные шаблоны с примерами на Java

Level of difficultyMedium
Reading time15 min
Reach and readers18K

Привет! Меня зовут Бромбин Андрей. В этой статье разберём структурные паттерны ООП. Используя примеры на Java и простые метафоры, поймём природу шаблонов: как они работают, зачем нужны и чего требуют от нас взамен. Почему дизайн называют удачным при использовании паттернов по назначению, и почему так бывает не всегда.

Книг и статей о шаблонах проектирования, как песен о любви, потому что в разработке эта тема волнует каждого начинающего и не очень специалиста. Помните, как пели Чиж и Ко: «а не спеть ли мне песню о любви?» — давайте и я попробую.

Шаблонизироваться

Веб. К черту фреймворки! Пишем свой starter-kit с роутером и сторами. Часть 2

Level of difficultyHard
Reading time15 min
Reach and readers7.3K

Пробуем собрать свой минималистичный starter-kit.

Туториал из трех частей.

В предыдущей части мы реализовали причудливый конфиг на webpack + собственный роутинг.

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

В следующей рассмотрим работу с web-компонентами.

Читать далее

Kubernetes на пальцах: самое простое объяснение, что это такое

Reading time7 min
Reach and readers37K

Вы наверняка знаете, Kubernetes просто повсюду. От разработчиков, тестировщиков, DevOps-инженеров и системных аналитиков ожидают умения работать с этим инструментом. Даже продакт-менеджеры иногда интересуются, что это такое.

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

Читать далее

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

Level of difficultyMedium
Reading time13 min
Reach and readers20K

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

Читать далее

Pytest. Гайд для тех, кто ни разу про него не слышал

Level of difficultyEasy
Reading time24 min
Reach and readers19K

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

Всем интересующимся — добро пожаловать под кат!

Читать далее

Техническое руководство по реализации цифро-аналогового двухрежимного модуля рации DMR818S для системной интеграции

Level of difficultyMedium
Reading time14 min
Reach and readers8.1K

DMR818S — это высокоинтегрированный радиочастотный приемопередающий модуль, в который встроены микроконтроллер (MCU), основной чип цифровой рации и радиочастотный усилитель мощности (PA). Он поддерживает как цифровой режим связи DMR, так и традиционный аналоговый. Серия в основном состоит из двух основных моделей: стандартной версии DMR818S (номинальная мощность 2 Вт) и версии высокой мощности DMR818S-5W (номинальная мощность 5 Вт). Обе модели совместимы по распиновке и физическим размерам корпуса. Эта особенность позволяет поддерживать варианты продуктов с разным уровнем мощности за счет унифицированной конструкции печатной платы, что упрощает разработку и управление производством аппаратных платформ.

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

Information

Rating
3,595-th
Registered
Activity