Pull to refresh
13
0
Виталий Шумаков @starfair

Программист широкого профиля

Send message

Полезные рецепты ручного создания SVG

Level of difficultyEasy
Reading time19 min
Views2.1K



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


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


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

Читать дальше →
Total votes 21: ↑21 and ↓0+33
Comments4

Рабочая C++ IDE в docker container

Level of difficultyMedium
Reading time10 min
Views6.3K

Привет, хабр! Программирую на C++ / Qt / QML в среде разработки QtCreator уже 6-ой год. У меня есть определенные пересечения мыслей с мозгом груга и еще мне постоянно хочется избавиться от глупой и рутинной работы, которая есть на разных этапах разработки. Одна из таких работ - возня с IDE и рабочим окружением, особенно в мире C++ разработки. В статье постараюсь раскрыть проблему и описать свой текущий подход к решению.

Читать далее
Total votes 13: ↑13 and ↓0+15
Comments29

Кодирование с кодеком HEVC простым языком — гайд на FFmpeg. Высокое качество, но низкий вес

Level of difficultyEasy
Reading time11 min
Views22K

Казалось бы, довольно простой вопрос: «Чем сжать видео?». На ум сразу приходят Handbrake, Movavi Converter или ещё что-нибудь пострашнее. Однако когда речь заходит о более гиковском подходе с упором на максимальное качество и экономию места, такие программы сложно назвать инструментами. Равно как и для обратной ситуации, когда картинку нужно сильно сжать и сохранить в целостности большую часть полезной информации. Все эти программы только лишь предоставляют набор наиболее общих конфигов для обычной съёмки и 2D.

В этой статье мы изучим, как при помощи самого большого сборника свободных библиотек FFmpeg научиться кодировать видео самому именно под ваши задачи.
Читать дальше →
Total votes 95: ↑94 and ↓1+123
Comments144

Булевы операции двумерных тел

Level of difficultyMedium
Reading time4 min
Views8.9K

В детстве меня всегда завараживали игры с динамическим ландшафтом: The Castle и Worms Armageddon. В то время я не понимал, как реализована эта удивительная механика разрушения и изменения мира. Позже я узнал, что секрет заключался в использовании растровой графики, но интерес к теме не исчез. В этой статье я хочу рассказать о векторном решении аналогичной задачи.

Читать далее
Total votes 25: ↑25 and ↓0+33
Comments15

Launcher для GoodbyeDPI – понятный способ обойти все блокировки и восстановить YouTube в России

Level of difficultyEasy
Reading time2 min
Views274K

Сейчас опишу интуитивно понятный способ восстановления работоспособности YouTube и обхождения любых блокировок провайдера на Windows компьютере. Уверен, что статью по указке РКН быстро удалят, так что если тема вам интересна, дочитайте до конца, сразу скачайте себе программу, даже если планируете использовать после. Заносить в закладки особого смысла нет. Ну и ставьте лайк. Отдельно также следует повысить карму ValdikSS - Пользователь / Хабр (habr.com) автору уникального решения GoodbyeDPI, который публиковал статью с описанием своего решения пару недель назад тут: Автономный способ обхода DPI и эффективный способ обхода блокировок сайтов по IP-адресу, теперь там банер РКН и слова «Эта интернет-страница удалена из публичного доступа по юридическим причинам».

Я не буду заново описывать техническое решение GoodbyeDPI, кратко это программа (или служба ОС Windows) позволяющая обнаруживать «заглушки» созданные провайдерами по указанию РКН для блокировки небогоугодных сайтов. Программа бесплатно распространяется на GitHub, является консольной утилитой мало понятной рядовому пользователю. Полное описание и ссылки есть на NNMClub ⚡ Автономный способ обхода DPI и эффективный способ обхода блокировок сайтов по IP-адресу. GoodbyeDPI и ReQrypt + Blockcheck – ресурс, конечно же, заблокирован у вас, если еще не установлен какой-либо способ обхода блокировок.

Сейчас появилось решение в виде графической оболочки для GoodbyeDPI, которое на русском языке позволяет в пару кликов решить проблемы медленного YouTube и не работающих сайтов. Решение Launcher for GoodbyeDPI, это простое окошко настройки к GoodbyeDPI, который также идёт в комплекте. Скачивайте с сайта автора, или с моего зеркала.

Восстановите YouTube и запрещенные сайты
Total votes 207: ↑194 and ↓13+217
Comments182

Как построить мост между JavaScript и C++ через WASM, или гайд для самых маленьких

Level of difficultyEasy
Reading time11 min
Views5.8K

Всем привет. Сегодня я хочу рассказать об использовании WASM с C++ и разберу, как взаимодействовать с этим всем делом через JavaScript.

Материал предназначен для новичков в данной теме.

Читать далее
Total votes 15: ↑14 and ↓1+16
Comments8

Как сделать анализатор кода за два дня

Level of difficultyMedium
Reading time23 min
Views8.4K

Статический анализ — это очень мощный инструмент, позволяющий следить за качеством кода. Предлагаем вместе попробовать написать простой Lua анализатор на Java, чтобы понять, как устроены статические анализаторы кода внутри.

Читать далее
Total votes 24: ↑24 and ↓0+30
Comments16

Разнообразные орбиобразия

Level of difficultyEasy
Reading time9 min
Views3.5K

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

Читать далее
Total votes 20: ↑20 and ↓0+27
Comments6

Тысяча и одна библиотека С++

Reading time65 min
Views30K

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

Столкнувшись много раз подряд с тем, что найти что-то толковое довольно непросто, я решил попробовать распутать это узел и предложить для русскоязычных читателей свой справочник классных библиотек на С++. Я исходил из этого источника. Это очень многогранный и объемный список библиотек языка С++, но, скажем так, у меня были к нему вопросы. Потому я сделал перевод, затем значительно улучшил его в плане содержания (далее объясню, как, почему и зачем). На выходе получилось около 1000 библиотек. Как в сказке). Они, конечно, не покрывают все возможные задачи и предметные области, но поверьте, они затрагивают действительно многое.

Прикоснуться к сокровищнице языка С++
Total votes 82: ↑81 and ↓1+92
Comments23

Недокументированные функции загрузки DLL. Стек вызовов LoadLibrary

Level of difficultyMedium
Reading time14 min
Views4.1K

Рассмотрели способы загрузки DLL и написали инструмент загрузки библиотек с нестандартным способом получения адресов функций.

Читать далее
Total votes 15: ↑15 and ↓0+20
Comments3

Насколько быстр Javascript? Симулируем 20 миллионов частиц

Level of difficultyEasy
Reading time23 min
Views23K

Я бросил себе вызов: симулировать 1000000 (миллион) частиц на чистом Javascript на телефоне, используя только CPU и добившись 60 FPS.

Поехали.

Задача не особо сложна, если выполнять всю работу на GPU, но правило гласит, что нужно пользоваться только CPU, при этом работая на JS, так что никакого WASM.

Читать далее
Total votes 109: ↑108 and ↓1+133
Comments34

Кажется, LLM программирует лучше меня

Level of difficultyEasy
Reading time15 min
Views34K

Может ли искусственный интеллект (ИИ) превзойти программиста-человека при написании кода? Проведя ряд экспериментов, становится понятно, что ответ на этот вопрос – уверенное да!

Давайте в этом убедимся
Total votes 52: ↑30 and ↓22+14
Comments250

Полный гайд по CSS Flexbox с примерами из практики

Level of difficultyEasy
Reading time10 min
Views13K

Привет! Сегодня мы поговорим про flexbox в css. Это очень важная тема, в которой должен разбираться каждый фронтенд-разработчик или верстальщик. Я покажу вам как flexbox работает на реальных примерах. А в конце статьи покажу лайфхаки, которыми сам постоянно пользуюсь на работе.

Читать далее
Total votes 30: ↑28 and ↓2+30
Comments8

О контра- и ковариантных тензорах

Level of difficultyMedium
Reading time57 min
Views12K

Записки «чайника», травмированного тензорным исчислением

Тема, заявленная в названии, пожалуй, самая запутанная в тензорном исчислении. Высокоучёные авторы мудрых книг в большинстве случаев ограничиваются только формальными определениями понятий ко- и контравариантности, не опускаясь до подробного пояснения их геометрической и физической сути. Похоже, в этом вопросе они сознательно или бессознательно воспроизводят ситуацию, характерную для квантовой физики: «Не старайтесь понять, просто считайте!». Но если в квантовой физике подобный подход безальтернативен, то в данном случае – вряд ли.

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

Математика остаётся непонятной для многих потому, что нам её объясняют люди, которые понимают её на интуитивном уровне, или, выражаясь более изящно, «на уровне интуитивных образов» [1-7 ≡ Л.1, с. 7]. Нам же, нематематикам, для того, чтобы что-то понять, надо это «что-то» увидеть не в абстрактном («интуитивном»), а в реальном, физически представимом пространстве (по-научному это – «визуализация») или, ещё лучше, поковырять его пальцем (научный термин пока еще не придумали. Открыт приём предложений).

Читать далее
Total votes 44: ↑44 and ↓0+63
Comments58

Используем REM для адаптива: комфортная резиновая вёрстка для всех устройств

Level of difficultyEasy
Reading time3 min
Views14K

Все верстальщики рано или поздно сталкивались с болью, которая заключается в адаптиве сайта под различные устройства. Существуют разные технологии, упрощающие подгонку размеров под определённые устройства, например, clamp(). Эта функция удобна, так как позволяет минимизировать использование брейкпоинтов, но у неё есть свои недостатки:

Читать далее
Total votes 9: ↑9 and ↓0+9
Comments8

Автомобильный трекер из детских часов с GPS

Reading time3 min
Views13K

Приветствую, Хабр!

Когда дети пошли в школу, мы купили им часы с SIM-картой и GPS. Довольно удобное устройство для начальной школы, когда нужно чтобы ребенок минимум отвлекался на различные гаджеты на уроках. Дети уже выросли и ходят с телефонами, а пара часов осталась. Наконец я решил их использовать для чего-то полезного.
Читать дальше →
Total votes 60: ↑60 and ↓0+78
Comments75

Моделируем флюиды, огонь и дым в режиме реального времени

Reading time15 min
Views4.8K

Замечания о математике, алгоритмах и методах, применяемых при компьютерной симуляции флюидов (например, огня и дыма) в режиме реального времени.

Исходный код к этой статье выложен на GitHub.

Огонь как явление очень интересен с точки зрения компьютерной графики. Раньше огонь было принято имитировать. Например, в фильме «Властелин колец» Питера Джексона для изображения огня использовались спрайты с огромным количеством дыма (на тот момент симуляция флюидов обходилась слишком дорого, даже при бюджете блокбастера). Когда требовалось моделировать огонь в режиме реального времени, например, в видеоиграх, использовались почти исключительно нефизические подходы.

Читать далее
Total votes 32: ↑30 and ↓2+38
Comments4

Как мне взбрело в голову свой Notion-like редактор написать

Level of difficultyMedium
Reading time16 min
Views7.4K

Мне в голову пришла идея пет-проекта, который изначально никак не был связан с текстовым редактором. Однако, в процессе работы все дошло до того, что пользователям нужно где-то набирать текст. Я люблю Notion и пишу там много и часто, поэтому решил сделать похожий (но сильно упрощенный) редактор в своём проекте. Не столько из нужды, сколько из любопытства, ведь я никогда не занимался ничем подобным и мало что знал о том, как писать текстовые редакторы.

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

Читать далее
Total votes 24: ↑24 and ↓0+27
Comments12

Алгоритм пересечения полигонов

Reading time20 min
Views9.7K

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

Читать далее
Total votes 29: ↑29 and ↓0+32
Comments13

Библиотечка электровакуумщика-кустаря

Level of difficultyEasy
Reading time8 min
Views8.1K

Интересуясь историей и практикой электровакуумных приборов (ЭВП) и идя по пути к их самостоятельному изготовлению в домашней лаборатории-мастерской, с течением времени накопил массу полезной литературы. От изданий академических до описаний любительских экспериментов коллег и фото раритетных ЭВП, литературе по азам в смежных областях — кустарные работы широкопрофильны и многогранны. Некоторые старые технические книги просто приятно иметь, как летописи отважных и романтичных пионеров-первопроходцев. Здесь, приведу профильные книги к которым при работе приходится обращаться чаще всего и выглядящие наиболее перспективно. Издания по возможности будут снабжаться комментариями в смысле полезности для основного направления деятельности.
Читать дальше →
Total votes 74: ↑74 and ↓0+88
Comments61
1
23 ...

Information

Rating
5,434-th
Location
Краснодар, Краснодарский край, Россия
Date of birth
Registered
Activity

Specialization

Software Developer, Application Developer
Middle
From 120,000 ₽
C++
Visual Studio
OOP