Обновить
16
0
Александр Демченко @braindamagedman

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

Отправить сообщение

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

Уровень сложностиСредний
Время на прочтение25 мин
Количество просмотров4.5K

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

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

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

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров2.5K

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

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

Читать далее

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

Время на прочтение9 мин
Количество просмотров83K

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

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

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

Читать далее

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

Уровень сложностиСредний
Время на прочтение21 мин
Количество просмотров6.6K

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

Читать далее

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

Время на прочтение9 мин
Количество просмотров23K

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

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

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

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

Читать далее

Я не люблю NumPy

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров18K

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

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

Читать далее

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

Уровень сложностиСредний
Время на прочтение27 мин
Количество просмотров55K

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

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

Читать далее

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

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров43K
Картинка Freepik

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

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

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

Время на прочтение4 мин
Количество просмотров25K

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

Читать далее

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

Время на прочтение14 мин
Количество просмотров26K

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

Читать далее

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

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров20K

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

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

Читать далее

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

Время на прочтение13 мин
Количество просмотров7.7K

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

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

Читать далее

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

Время на прочтение3 мин
Количество просмотров4.4K

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

Читать далее

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

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров3.1K

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

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

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

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

Читать далее

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

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров7.2K

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

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

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

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров29K

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

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

Читать далее

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

Время на прочтение12 мин
Количество просмотров2.7K

Привет, меня зовут Иван и я 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: перезагрузка

Время на прочтение5 мин
Количество просмотров25K
Представляем вам вольный перевод эссе Жана-Луи Гассе, бывшего исполнительного директора Apple Computer (1981—1990).

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


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

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

Время на прочтение17 мин
Количество просмотров71K

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


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


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




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

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

Время на прочтение5 мин
Количество просмотров9.9K

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

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

Информация

В рейтинге
Не участвует
Откуда
Владивосток, Приморский край, Россия
Дата рождения
Зарегистрирован
Активность