Pull to refresh
33
0.5
ionicman @ionicman

User

Send message

Ваше мнение очень важно для нас (нет)

Reading time3 min
Views18K

Привет, Хабр! Меня по-прежнему зовут Александр, я всё ещё Linux-инженер с десятилетним стажем, завсегдатай Q&A и даже целый куратор парочки тэгов в нём. Но все эти сомнительные регалии в контексте данной статьи не важны и приведены тут ради красного словца, а обратиться к вам я хочу как (не совсем) обычный пользователь Хабра.

Дело в том, что месяц назад мне, не нарушившему ни одно из правил ресурса, выдали кармический shadow ban.

Какой ещё кармический shadow ban?!

Сможет ли AI создать идеального Шрека? Тестируем 3D-генераторы в поисках лучшего огра

Level of difficultyEasy
Reading time15 min
Views13K

В мире современных технологий 3D-модели стали незаменимым инструментом — их используют в кино, играх, дизайне, анимации и даже в промышленности. Они помогают создавать реалистичные объекты, персонажей и целые миры, которые мы видим на экране или в виртуальной реальности. Но что если процесс создания таких моделей может стать проще и быстрее? Сегодня, благодаря AI, любой может попробовать себя в роли 3D-дизайнера, не имея специальных навыков. Нейросети умеют генерировать различные объекты, просто опираясь на текстовый запрос.

Читать далее

Использование Proxy и Reflect для создания реактивных объектов в JavaScript

Level of difficultyEasy
Reading time10 min
Views3.1K

Привет, на связи снова Дмитрий, React-разработчик, и сегодня захотелось написать про Proxy и Reflect.

Что такое Proxy в JavaScript?

Proxy — это встроенный объект в JavaScript, который позволяет создавать обертки для объектов и перехватывать стандартные операции с ними, такие как: доступ к свойствам, их изменение, удаление и другие. Это мощный инструмент, который можно использовать для реализации различных паттернов, например, для создания реактивных объектов, создания ленивая инициализации свойств, проверки прав доступа и выполнения других задач.

Читать далее

Вебсокеты на FastAPI: Реализация простого чата с комнатами за 20 минут

Reading time18 min
Views25K

Хотите освоить WebSocket и создать собственный чат с комнатами? В этой статье мы разберем:

В чем разница между WebSocket и классическим HTTP

Как реализовать сервер на FastAPI с поддержкой WebSocket

Как создать простой FullStack-чат для мгновенного обмена сообщениями

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

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

Читать далее

Компилятор за выходные: синтаксический анализатор Уорли

Level of difficultyMedium
Reading time11 min
Views6.2K

Изначально, когда я решил написать компилятор за выходные, я решил, что нет смысла заморачиваться, и использовал сторонний лексический / синтаксический анализатор. Мой выбор пал на SLY, довольно известную библиотеку. И действительно, пара часов работы, и мой компилятор прекрасно строил синтаксические деревья из исходного кода на wend. Я пытался было заглянуть под капот, утонул в море технических терминов (LL(1), LR, LALR(1) и тому подобное), и решил, что парсинг своими руками - это не для меня, теория формальных языков меня слабо интересует. Однако же в итоге выяснилось, что базовый синтаксический анализатор - это не так сложно, и я закатал рукава.

Читать далее

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

Level of difficultyMedium
Reading time6 min
Views44K

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

Читать далее

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

Level of difficultyMedium
Reading time4 min
Views2.3K

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

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

Level of difficultyEasy
Reading time3 min
Views26K


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

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

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

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

Level of difficultyMedium
Reading time21 min
Views8.2K

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

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


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

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

Level of difficultyEasy
Reading time11 min
Views29K

Самое главное стоит понимать, что 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
Views20K

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

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

Читать далее

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

Level of difficultyEasy
Reading time7 min
Views26K

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

Читать далее

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

Reading time6 min
Views50K

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


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


SRP не SRP


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

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

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

Level of difficultyMedium
Reading time9 min
Views3.9K

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

Читать далее

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

Level of difficultyMedium
Reading time9 min
Views9.8K

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

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

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

Level of difficultyMedium
Reading time17 min
Views5.9K

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

Читать далее

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

Level of difficultyMedium
Reading time9 min
Views10K

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
Views173K

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

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

Читать далее

Information

Rating
2,074-th
Registered
Activity