Pull to refresh
17
0
Александр Демченко @braindamagedman

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

Send message

Увеличение растровых изображений – какой максимальной схожести с оригиналом мы можем добиться и как? А можно побыстрее?

Level of difficultyMedium
Reading time25 min
Views4.2K

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

Апскейл на пределе: вперёд!

Заставляем компьютер видеть цвета без нейросетей: сегментация изображений по старинке

Level of difficultyMedium
Reading time9 min
Views1.9K

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

В этой статье рассмотрим ещё парочку методов решения этой задачи, всё ещё «классических», то есть без применения машинного обучения или нейросетей. Помогут нам во всём разобраться, как и в прошлый раз, язык программирования Julia и среда технических расчётов Engee!

Читать далее

Математика для взрослых. Дорожная карта от выпускника Хармфульского клуба математики

Reading time9 min
Views71K

Математика для взрослых. Дорожная карта от выпускника Хармфульского клуба математики.

(1) Школа. (2) Матанализ. (3) Аналитическая геометрия. (4) Линейная алгебра.

Все плейлисты, материалы, курсы в открытом доступе и бесплатны.

Читать далее

Семантический поиск по статьям Хабра в PostgreSQL + индексация текстов LLM в Ollama

Level of difficultyMedium
Reading time21 min
Views4.8K

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

Читать далее

Как делать видеоигры в 2025 году (без движка)

Reading time9 min
Views20K

На дворе 2025 год, а я всё ещё продолжаю делать видеоигры. Если верить archive.org, я начал заниматься этим двадцать лет назад! Достаточно долгий срок для одного увлечения...

Когда я рассказываю о том, над чем работаю, люди часто спрашивают меня, как я делаю игры, и их часто удивляет (а иногда и тревожит?), когда я говорю, что не пользуюсь коммерческими игровыми движками. Существует какой-то стереотип, что если ты делаешь игры не в популярном инструменте наподобие Unity или Unreal, это значит, что ты чуть ли не вручную пишешь ассемблерный код.

Я искренне считаю, что создание игр без огромного «многофункционального» движка может быть проще и интереснее, а часто и позволяет оптимальнее тратить вычислительные ресурсы. Я не делаю игру, в которой «есть всё», поэтому мне не нужны 90% фич, предоставляемых движками. Все мои игры обладают конкретным стилем и у меня есть конкретные способы работы с моими инструментами. Часто оказывается так, что используемым по умолчанию реализациям фич в крупных движках наподобие Unity не хватает столь многого, что мне всё равно приходится писать их самостоятельно. В конечном итоге, мои проекты по большей мере оказываются моими собственными инструментами и системами, а движок становится необходим лишь для создания удобного UI и части рендеринга...

Тут можно задаться вопросом, а зачем вообще использовать движок? Что он даёт? Зачем я позволяю инструменту потенциально препятствовать моей работе, когда его владельцы внезапно принимают неэтичные и ужасные бизнес-решения? Или выпускают обновление, которое требуется для запуска моей игры на консолях, но ломает всю систему в игре, заставляя переписывать её? Зачем я ежедневно борюсь с этим для работы с движком, пока я постепенно заменяю все его стандартные системы и он постепенно становится только загрузчиком ресурсов и фреймворком UI редактора?

Читать далее

Я не люблю NumPy

Level of difficultyMedium
Reading time10 min
Views18K

Говорят, что невозможно по-настоящему возненавидеть кого-то, если сначала не полюбил его. Не знаю, справедливо ли это в целом, но это определённо описывает моё отношение к NumPy.

NumPy — это ПО для выполнения вычислений с массивами на Python. Оно невероятно популярно и очень сильно повлияло на все популярные библиотеки машинного обучения, например, на PyTorch. Эти библиотеки во многом имеют те же самые проблемы, но для конкретики я рассмотрю NumPy.

Читать далее

Rust — это не «memory safe C»

Level of difficultyMedium
Reading time27 min
Views54K

TL;DR:
— в Rust намного больше достоинств, чем просто скорость и безопасность
— в Rust по умолчанию CDD (compiler-driven development, разработка через компилирование). Это как TDD, только CDD
— Rust — не сложный язык, особенно если не гнаться за максимальной производительностью

В этой статье я бы хотел рассказать:
— почему взгляд на Rust как на "memory safe C" очень сильно сужает область его возможного применения
— почему я смотрю на Rust как на очень удобный в разработке язык высокого уровня, которому просто случайно повезло оказаться невероятно быстрым
— почему разработка на Rust быстрее, чем многие думают
— почему Rust — это один из лучших языков общего назначения

Читать далее

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

Level of difficultyMedium
Reading time10 min
Views40K
Картинка Freepik

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

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

Как бизнес меняет личность: 10 вещей, которые ты уже не вернёшь назад

Reading time4 min
Views25K

Ты стоишь посреди пустого офиса, за окном апрель 2025 года, дождь стучит по стеклу, а ты смотришь на свой стартап — дитя, в которое вложил годы, деньги и кусок души. Ты уже не тот, кем был, когда начинал. Бизнес — это не просто цифры в Excel и питчи для инвесторов. Это алхимия, которая перекраивает твою личность, как скульптор глину. Иногда ты становишься сильнее, иногда — жёстче, а иногда теряешь то, что казалось вечным. Вот 10 вещей, которые бизнес меняет в тебе навсегда. Это не хорошо и не плохо — это просто правда.

Читать далее

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

Reading time14 min
Views26K

Инерциальные навигационные системы благодаря MEMS-датчикам инженеры сейчас начинают использовать везде, где есть движение. В зависимости уровня требуемой точности как по углу, так и по координатам применяют МЕМS-датчики разного уровня цены и интегрированности: от уровня "все датчики в одной микросхеме" до уровня "один датчик - одна микросхема". А сама инерциальная навигация, как часть инженерных систем, впервые появилась в торпедах, кораблях, ракетах и самолетах.

Читать далее

Зарплата как отражение ценностей компании

Level of difficultyEasy
Reading time9 min
Views20K

Это перевод статьи Брайана Кэнтрилла — технического директора Oxide Computer о модели оплаты труда в их распределенной по миру команде. О том, как они построили культуру открытости и откровенности, нашли одних из самых талантливых специалистов в мире и направили их усилия на достижение общей цели, пересмотрев некоторые догмы индустрии.

Зарплата. Это слово само по себе вызывает реакцию «бей или беги» во многих людях. Но нам повезло работать в IT индустрии, где наш труд неплохо компенсируется. Так почему же этот вопрос вызывает в нас столько страха, хотя, очевидно, что все наши базовые потребности закрыты? Это потому, что компенсация — это не валюта, которой расплачиваются в обмен на наш труд, а скорее выражение нашей ценности для организации. В свою очередь, это заставляет нас серьезно задаваться вопросами о смысле нашей работы и самолюбии.

Читать далее

Как сделать видео на стриминге легче и не погрязнуть в шакалах: опыт Кинопоиска

Reading time13 min
Views7.1K

Привет! Меня зовут Михаил Мазанов, я отвечаю за технологический стек работы с медиаданными в Кинопоиске: от съёмок оригинальных проектов до доставки и просмотра видео на всех экранах. Для нашей пятой ежегодной конференции про стриминг PlayButton 2024 я готовил большой доклад про оптимизацию качества видео Кинопоиска, а для Хабра решил пересобрать его в виде статьи — для тех, кому текстовый формат предпочтительнее видео.

Кроме технических графиков, вас ждёт ещё и наглядная разница в работе алгоритмов сжатия на примере «Рика и Морти» и «Джона Уика».

Читать далее

OSINT: Анализ доменов компаний

Reading time3 min
Views4K

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

Читать далее

Ornament-8. Аналоговый функциональный генератор поведения. Часть 1

Level of difficultyEasy
Reading time10 min
Views3.1K

В 2019 году я ступил на путь разработки электроники. Моим первым устройством является Орнамент-8. Не судите строго.

- Орнамент-8 это устройство, способное реализовывать сложные конечные автоматы.
- Переход конечного автомата из одного состояния в другое определяется патчем, соединением входов и выходов ячеек Орнамента.
- Каждая из 8 ячеек Орнамента представляет собой моновибратор.
- Если моновибратор запустить, он будет удерживать высокое состояние в течение периода времени, задаваемого потенциометром TIME.
- В момент перехода моновибратора (далее ячейка) из высокого состояния в низкое происходит генерация триггера.
- Этот триггер способен запустить любую другую ячейку Орнамента, кроме самой себя. Для этого необходимо соединить тригерный выход с тригерным входом.
- Если триггер приходит на вход уже активной ячейки, он не поглощается, а поступает на тригерный выход PASS>. Этот выход реализует логику: если ячейка активна -> пусть триггер активирует другие ячейки.
- Помимо тригерных входов и выходов каждая ячейка имеет аналоговый выход, сигнал на котором пропорционален времени активации ячейки от 0 до 1 в зависимости от параметра TIME. Если моновибратор сравнить с наполняющимся сосудом, то аналоговый выход (CV>) показывает уровень жидкости в этом сосуде.
- Каждая ячейка имеет вход для управляющего напряжения (>CV). Приложенное к этому входу напряжение управляет коэффициентом, увеличивающим значение параметра TIME установленного потенциоментром. Приложение управляющего напряжения к >CV можно представить как растяжение времени в системе координат ячейки.

Кажется, что Орнамент-8 это какой-то странный артефакт, упавший из космоса. Зачем он нужен? Что с ним делать? Кто и почему придумал такую странную систему правил?

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

Читать далее

Точное увеличение растровых изображений

Level of difficultyMedium
Reading time10 min
Views7K

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

Увеличим апскейл до максимума!

Собираем удобный CAN bus сниффер с интерактивной консолью за $3

Level of difficultyMedium
Reading time13 min
Views27K

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

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

Читать далее

jugger – внедрение зависимостей как в Android

Reading time12 min
Views2.6K

Привет, меня зовут Иван и я Android разработчик. Но еще я занимаюсь Flutter разработкой. Я как разработчик, который начинает изучать новую технологию или фреймворк, начинаю сначала искать аналоги библиотек из своей основной сферы. Надеюсь я такой не один. Например Retrofit для http запросов, Dagger для di и т. д. В 2018 году, когда только познакомился с Flutter, был пакет который повторял функционал Dagger-а — это inject.dart. Но на самом деле его нельзя назвать полноценным пакетом, так как он был выложен командой гугла в открытый доступ для демонстрации того, что на dart можно написать инструмент который использует кодогенерацию. Сейчас inject.dart заброшен и не поддерживается. На GitHub у него 855 звезд, можно сказать что сообществу Flutter-а интересен такой пакет как Dagger из Java. Поэтому в 2019 году я решил написать собственный пакет, который был вдохновлен Dagger 2 и inject.dart. Целью было удовлетворить свои потребности в разработке, хотелось иметь такую же библиотеку для Di как и в Java(Android). Второстепенная цель это изучение кодогенерации в Dart.

Читать далее

Intel 2.0: перезагрузка

Reading time5 min
Views25K
Представляем вам вольный перевод эссе Жана-Луи Гассе, бывшего исполнительного директора Apple Computer (1981—1990).

Пэт Гелсингер, новый CEO компании Intel, вступил в должность совсем недавно, однако уже успел озадачить мировых ИТ-экспертов своими планами. Под катом обсудим новую стратегию Intel, личные планы Гелсингера на руководство компанией, суть «перезагрузки» Intel и, наконец, то, чем она может обернуться для рынка.


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

[Личный опыт] «Повзрослевшая Россия»: тонкости переезда в Канаду

Reading time17 min
Views70K

В июле 2020 года, в разгар уже опостылевшей всем пандемии, ValCanada получил статус резидента Канады и переехал с семьёй в Северную Америку.


Откровенно и искренне он поделился с нами особенностями страны, про которые мало говорят в инструкциях о релокации: как получить максимум баллов для ПМЖ, каким IT-специалистам легче найти работу, как законно сэкономить на съёмном жилье (но, возможно, заработать невроз), почему при переезде стоит одеваться теплее, и как обстоят дела с новомодным дайверсити.


Впереди лонгрид!




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

Как управлять марсоходом

Reading time5 min
Views9.8K

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

Большая часть этой статьи — изложение моего опыта управления «Кьюриосити». Имейте в виду, что «Спирит» и «Оппортьюнити» во многом похожи в этом плане на своего «наследника». Для управления «Персерванс» будут использоваться те же технологии и методы, так что слишком значительных отличий нет.
Читать дальше →
1
23 ...

Information

Rating
9,224-th
Location
Владивосток, Приморский край, Россия
Date of birth
Registered
Activity