Search
Write a publication
Pull to refresh
34
0
ionicman @ionicman

User

Send message

Мой первый контейнер без Docker

Level of difficultyMedium
Reading time6 min
Views42K

Технологии контейнеризации, возможно, как и у большинства из нас, плотно засели в моей голове. И казалось бы, просто пиши Dockerfile и не выпендривайся. Но всегда же хочется узнавать что‑то новое и углубляться в уже освоенные темы. По этой причине я решил разобраться в реализации контейнеров в ОС на базе ядра linux и в последствие создать свой «контейнер» через cmd.

Читать далее

Угломеры разные нужны, разбираем до винтика. Часть 3

Level of difficultyMedium
Reading time4 min
Views2.2K

В предыдущих статьях мы уже рассмотрели несколько угломеров: в первой части речь шла о модели HW300, а во второй — о двух других устройствах. Чтобы не утомлять читателей, я решил объединить оставшиеся три угломера в одну статью. Все они абсолютно разные по конструкции, но каждый из них полностью функционален и показал достойные результаты при измерениях. Давайте разберём их внутреннее устройство по очереди.
Под катом много фото и текста

Код-послание из сериала «Черное зеркало: Захват голубя» расшифрован отечественным клоном ZX Spectrum 1992 года

Level of difficultyEasy
Reading time3 min
Views26K


Здравствуйте, дорогие друзья!

Вкратце, введу в курс дела. В сериале «Черное зеркало», есть серия «Захват голубя», иначе «Брандешмыг». Нас, любителей ретрокомпьютерной техники, эта серия может заинтересовать, не только видеорядом, но и присутствием настоящего компьютерного кода, включенного в сюжетную линию. Давайте не просто посмотрим серию, а загрузим фрагмент звуковой дорожки фильма, в ZX-Spectrum, с объемом ОЗУ 48к и посмотрим, что же там закодировано.

Под катом-детали исполнения. Добро пожаловать в «Брандешмыг»!
Читать дальше →

Операционная система в 1 000 строках кода (часть 5)

Level of difficultyMedium
Reading time21 min
Views7.7K

Это завершающая часть проекта по написанию собственно ОС. Здесь мы реализуем дисковый ввод/вывод и файловую систему, а также вкратце подведём итоги и наметим дальнейшие шаги на пути доработки системы.

▍ Навигация по частям


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

Памятка по XSD и XML

Level of difficultyEasy
Reading time11 min
Views18K

Самое главное стоит понимать, что XSD (XML Schema Definition) – это схема, то есть описание данных взаимодействия. Схемы бывают разные, например, наша XSD, которую обычно используют для описания структур в формате XML, или JSON-schema - для описания структур в формате JSON. Использование схем в контрактах API сейчас уже является стандартом де-факто, так как это удобно.

Основные объекты, из которых состоит XSD-схема:
- Элементы;
- Типы;
- Индикаторы порядка.

Читать далее

Маркировка DC/DC-преобразователей в корпусе SOT-23-5 и SOT-23-6

Level of difficultyEasy
Reading time3 min
Views14K

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

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

Читать далее

Мастер-класс по точечному переносу изменений между ветками в git

Level of difficultyEasy
Reading time7 min
Views20K

Представьте ситуацию: вы нашли критический баг в проекте, исправили его в feature-ветке, но до полного слияния ещё далеко. Или вам срочно нужно перенести одно конкретное изменение из текущей ветки в другую. В таких случаях git cherry-pick становится вашим секретным оружием.

Читать далее

Перестаньте молиться на принципы S.O.L.I.D

Reading time6 min
Views48K

В мире разработки программного обеспечения существует множество "священных коров" — принципов и практик, которые принимаются как данность и редко подвергаются критическому анализу. Особенно показательна ситуация с принципами SOLID на русскоязычных ресурсах: достаточно открыть Хабр, чтобы найти 100500 статей о SOLID, и в каждой из них принципы интерпретируются по-разному.


Само существование такого количества "объяснительных" статей говорит о фундаментальной проблеме: если принципы требуют толкования, значит их названия не являются самодостаточными и интуитивно понятными. А если каждый разработчик понимает принципы по-своему, возникает вопрос — зачем вообще нужны принципы, которые не дают однозначного руководства к действию? Принципы SOLID, предложенные Робертом Мартином, давно стали одной из таких "священных коров". Однако пришло время честно признать: то, как мы используем SOLID сегодня, часто противоречит изначальным идеям и в целом иногда может приносить больше вреда, чем пользы. Зависит от контекста.


SRP не SRP


Самый яркий пример искажения первоначального замысла — это интерпретация принципа единственной ответственности (SRP).

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

Type-level программирование в TypeScript: практические кейсы и обзор возможностей

Level of difficultyMedium
Reading time9 min
Views3.6K

Как использовать мощь системы типов TypeScript для вычисления логики ещё на этапе компиляции и автоматической генерации кода. Разбираем условные типы, шаблонные литералы, рекурсивные типы и другие приёмы, чтобы упростить разработку, сократить дублирование кода и снизить вероятность ошибок на runtime.

Читать далее

Чип, подёргай ножкой ¯\_(ツ)_/¯

Level of difficultyMedium
Reading time9 min
Views9K

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

Что можно вытворять с помощью JTAG сканирования? Где применять?
Возьмите в свой арсенал этот действительно полезный и могучий инструмент!
Читать дальше →

STM32. CMSIS. Пять способов генерации (псевдо-)случайного сигнала на выводе микроконтроллера

Level of difficultyMedium
Reading time17 min
Views5.3K

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

Читать далее

Vue 3 под капотом и тонкости Composition API: Reactivity, Provide/Inject, Suspense

Level of difficultyMedium
Reading time9 min
Views9.1K

Vue 3 уже давно в строю, но его "прокси-движок" и особенности Composition API по-прежнему раскрывают себя всё глубже. В статье мы разберём, как Track/Trigger помогают отслеживать изменения, зачем нужны customRef и как грамотно использовать <Suspense> для асинхронных компонентов. Всё это - на примерах и с советами по оптимизации в крупных проектах.
Приступаем к деталям!

Читать далее

Как линейная алгебра помогла мне в разработке интерактивного редактора диаграмм

Level of difficultyEasy
Reading time9 min
Views12K

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

Читать далее

Обвиваем YouTube змеем, или как смотреть и скачивать видео с YouTube без VPN на чистом Python-е. Часть 1

Level of difficultyEasy
Reading time13 min
Views171K

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

В этой статье я хочу рассказать, как можно скачивать видео, аудио (1 часть статьи), плейлисты и целые каналы с YouTube (2 часть статьи) без использования VPN и на чистом Python-е. Сразу оговорка: VPN нам не понадобится, но мы сделаем собственное средство, которое будет решать "проблему с устаревшим и изношенным оборудованием Google Global Cache" (вы поняли, о чём я). Я думаю это средство будет особенно актуально сегодня, когда у многих россиян YouTube почти или совсем не работает.

Читать далее

Регулярные выражения простыми словами. Часть 2

Level of difficultyEasy
Reading time10 min
Views27K

Разработчики делятся на три типа: те, кто уже понимает регулярные выражения и порой решает сложные задачи одной строкой; те, кто все еще боится их и всячески избегает; и те, кто уже прочитал первую часть этой серии статей и полон оптимизма разобраться с этими магическими письменами. Эта статья специально для третьих, чтобы им было проще стать первыми.
Читать дальше →

Полезные чипсы с Vue 3 Composition API: Создание адаптивного компонента с фильтрацией и множественным выбором

Level of difficultyMedium
Reading time6 min
Views3.3K

Современные пользовательские интерфейсы требуют высокой интерактивности и удобства взаимодействия. В этой статье поговорим о том, как реализовать мощный, адаптивный компонент мульти‑выбора на основе Vue 3 Composition API. ChipsMultiSelect — это компонент, который объединяет возможности выпадающего списка, визуализации выбора в виде «чипсов» и встроенной фильтрации.

Выбранные элементы отображаются в виде «чипсов».

Читать далее

Пишем свою Diffusion модель с нуля

Level of difficultyMedium
Reading time12 min
Views16K

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

Меня зовут Юра, я - разработчик, фаундер и ML энтузиаст, также пишу свои заметки в своем ТГ канале. Я решил разобраться и понять, как устроена Diffusion модель внутри, понять ее математику и постараться объяснить и разложить ее на пальцах. Ну и конечно пописать код, который (спойлер) заработал. На гифке изображены примеры итоговых картинок на моей финальной модели.

Если вам тоже интересно, то читайте дальше

Читать далее

constexpr Game of Life

Level of difficultyMedium
Reading time20 min
Views22K

В C++ уже больше 10 лет существует constexpr, который позволяет программисту ушло возложить часть вычислений на компилятор. В свое время это взорвало мне мозг, ведь компилятор может посчитать какие-то достаточно сложные вещи еще до запуска программы!

В какой-то момент я подумал: если компилятор сможет сам посчитать все за тебя, то зачем тогда тебе вообще рантайм? Что ты там будешь делать — ответ выводить что ли? Глупости какие-то. Это неспортивно.

На этом моменте и зародился мой челлендж:

"Без рук" или "даже не думай запускать exe-файл"

Челлендж принят!

FastAPI + APScheduler: Простой пошаговый гайд по созданию асинхронного API для мониторинга валют по расписанию на Python

Reading time32 min
Views17K

Как создать асинхронный API для мониторинга курсов валют на Python? В этом практическом руководстве мы разработаем сервис на FastAPI с интеграцией APScheduler, который будет отслеживать курсы USD и EUR в банках России. Вы узнаете, как реализовать асинхронный парсинг данных, настроить планировщик задач и развернуть приложение в облаке. Проект включает систему аутентификации, фильтрацию данных и REST API — идеальный пример для изучения современной веб-разработки на Python.

Читать далее

Information

Rating
6,509-th
Registered
Activity