Pull to refresh
0
0.1
Евгений @pewpew

Бэкенд разработчик

Send message

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

Level of difficultyMedium
Reading time22 min
Views4.9K

Попытаемся отреверсить и заглянуть в реализацию фото-эффектов приложения камеры Xiaomi 8 летней давности

[Начать реверс!]

Как я боролся с TPU-полимером при 3D печати и победил (но процесс ещё идёт)

Level of difficultyEasy
Reading time11 min
Views12K

Каждый 3D-печатник должен посадить дерево напечатать что-то из PLA, ABS, PETG и, конечно же, из TPU (ну ок, ещё SBS Glass, но сегодня не о нём речь).

И вот с этим последним пунктом, как правило, у всех возникают проблемы. О моём пути решения этого вопроса и будет дальнейший рассказ (речь пойдёт только о FDM-печати).

Дальше буду говорить о direct (директ) и bowden (боуден) экструдерах, и поэтому сначала дам небольшую справку, для тех, кто не в курсе.
Смотреть тут


И небольшое отступление, зачем это вообще надо: дело в том, что долгое время, владея 3D-принтером и печатая разнообразные модели, рано или поздно приходишь к тому, что необходимо выйти за пределы «жёстких» распечаток, так как возникает потребность изготовления произвольной формы разнообразных прокладок для герметизации, передаточных пассиков, гусениц для самодельных радиоуправляемых (и просто настольных) моделей, резиновых покрышек для них же, гибких декоративных браслетов для ношения и т. д. и т. п.
Читать дальше →

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

Level of difficultyEasy
Reading time4 min
Views12K

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

Так появилась задача однотипной замены номера договора и его даты в каждом из *.xlsx файлов, которые были расположены в папках, названных по адресу объекта. Таких папок было множество и некоторые ещё имели вложенные подкаталоги.

Ручной способ, который состоит из использования сочетания клавиш Ctrl + H хоть и позволял сделать замену во всей книге Microsoft Excel сразу, но подразумевал что придётся открыть каждый файл по отдельности, нажимать несколько раз (под замену не только номер, но и дата) сочетания клавиш для замены, сохранять книгу Экселя, закрывать книгу, открывать новую книгу. В общем совершать множество механических действий.

Я конечно же стал думать, как можно наиболее простым для себя способом сделать это множество автозамен. Выбор сразу пал на VBA - Visual Basic для приложений. Ведь при помощи VBA можно заставить Эксель делать то, чего он не умеет по умолчанию.

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

VBA Excel автозамена

Создание собственного ключа Android приложения

Level of difficultyEasy
Reading time3 min
Views5K

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

Итак, пройдемся по всему процессу. Перед добавление версии сборки приложения в самом начале этого процесса консоль предложит выбрать ключ подписи.

Читать далее

Создаем изометрические уровни игры с помощью Stable Diffusion

Level of difficultyEasy
Reading time5 min
Views25K

Всем привет. Сегодня я покажу вам, как можно создавать 2.5D уровни в изометрии с помощью быстрого прототипирования техникой grayboxing, и генеративного искусственного интеллекта, а именно Stable Diffusion. Практически весь процесс, описываемый в статье, довольно легко автоматизируется.

Если интересно, добро пожаловать под кат.

Читать далее

Мега-Учебник Flask Глава 1: Привет, мир! (издание 2024)

Level of difficultyMedium
Reading time18 min
Views68K

Добро пожаловать! Вы собираетесь отправиться в путешествие, чтобы научиться создавать веб‑приложения с помощью Python и фреймворка Flask. В этой первой главе вы узнаете, как настроить проект Flask. К концу этой главы на вашем компьютере будет запущено простое веб‑приложение Flask!

Начать изучение

Система инвентаря на Godot. Костыль первый

Level of difficultyEasy
Reading time15 min
Views12K

Годот, немного костылей и прямые руки (по желанию).

Самый подробный гайд о создании системы инвентаря, без воды, по факту и с кодом!

Начать гайд

Как получить Midjourney’s API

Level of difficultyEasy
Reading time3 min
Views14K

В этой статье показано, как получить полный функционал Midjourney с помощью АПИ

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

Читать далее

Мигрируем с SQL Server на PostgreSQL двумя способами

Reading time6 min
Views23K

Будучи одной из самых популярных баз данных, SQL Server славится простотой установки и настройки, функциями безопасности, среди которых есть шифрование, великолепными возможностями восстановления данных и множеством удобных инструментов.

Однако из-за ряда ограничений SQL Server постепенно теряет своих пользователей. SQL Server имеет достаточно сковывающую лицензию и стоимость обслуживания, растущую по мере увеличения размера базы данных или числа клиентов. Ее максимальный размер составляет 10 ГБ, а буферный кэш — 1 МБ. Она работает только под Windows.

Переманить же пользователей SQL Server может PostgreSQL — полностью бесплатная база данных с открытым исходным кодом. Эта база данных может похвастаться поддержкой международного сообщества и доступна под Windows, Mac, Linux, FreeBSD и Solaris. Кроме того, для нее существуют множество опенсорсных дополнений.

Я начну эту статью со знакомства с двумя бесплатными инструментами для миграции с SQL Server на PostgreSQL, затем поэтапно продемонстрирую, как выполнить миграцию между этими двумя базами данных, а в конце расскажу о полноценном решении для резервного копирования с защитой для управления сразу несколькими базами данных.

Читать далее

Рекурсивная генерация подземелий на Godot 4.1

Level of difficultyMedium
Reading time8 min
Views6.6K

В данной статье рассмотрим способ процедурной генерации подземелий, с помощью рекурсивную функцию на Godot 4.1.

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

Читать далее

Как я склеил картон и продал на маркетплейсах на 50 млн в год

Level of difficultyEasy
Reading time8 min
Views306K

В 2020-м мой работодатель начал прижимать меня по условиям, я забрал команду, снял склад и запустил свое производство когтеточек. Казалось бы, ничего сложного: закупаешь клей, картон, и находишь людей, которые 5 000 раз в день готовы повторять одни и ту же операцию. Но есть нюансы.

Читать далее

Ограничения в телеграм-бот (Bot API), о которых никто не расскажет

Level of difficultyEasy
Reading time2 min
Views40K

Привет! Меня зовут Оля, я программист учебного центра компании «Тензор».

В декабре 23-го мне поступила творческая задача разработать телеграм-бот для проведения новогоднего марафона-тренинга по личностному росту.

В этой статье расскажу о проблеме, с которой столкнулась при разработке телеграм-бота. Разберем ошибку 429 (Too Many Requests) и лимиты на доступ к API.

Читать далее

Оживляем контроллер машиниста от ушедшего в историю электропоезда

Level of difficultyEasy
Reading time9 min
Views12K
Приветствую всех!

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

И вот наконец в мои руки попал не просто какой-то контроллер, а очень примечательный экземпляр — от «концептуальной» электрички ЭМ2И, коих в наши дни уже не осталось.



Итак, в сегодняшней статье поговорим о том, как устроен такой контроллер и как его подключить. Традиционно будет много интересного.
Читать дальше →

REST API сервер на Bash с использованием сокетов и Apache

Level of difficultyMedium
Reading time14 min
Views9.2K

Всем привет! Ранее рассказывал о том, как создать REST API и Web-сервер на PowerShell для Windows, а также упоминал, что подобный сервер будет работать и в системе Linux, благодаря кроссплатформенной версии PowerShell Core. Безусловно, для подобных целей лучше используются специализированные серверные фреймворки или библиотеки, такие как Flask или Django в Python, но меня не покидала идея реализации похожего сервера, где описание логики будет производиться на языке одного только Bash. Приведу примеры, с помощью которых можно создать такой сервер используя сетевые сокеты netcat , socat и ncat, а также веб-сервера Apache с использованием встроенных модулей.

Читать далее

Wubuntu: Linux с интерфейсом Windows 11 и возможностью запускать «виндовый» софт. А ещё и Windows 95

Reading time3 min
Views74K

Дистрибутивов Linux достаточно много — на любой запрос, вероятно, можно найти подходящий вариант. Не так давно появился ещё один дистрибутив, который внешне является почти полной копией Windows 11. Также он способен запускать Windows-программы и работает на относительно старых компьютерах и ноутбуках. Называется он Wubuntu, и подробности о нём — под катом.

Читать далее

Часы на синусах и косинусах в CSS

Level of difficultyEasy
Reading time7 min
Views8.4K

В этой статье осторожно прикоснёмся к sin() и cos(). Есть и другие функции, в том числе tan(), зачем же останавливаться только на синусе и косинусе? Они идеальны для размещения текста по краю круга. Об этом уже рассказывалось на CSS-Tricks, когда Крис поделился подходом к размещению текста по кругу с миксинами Sass. Это было шесть лет назад [оригинал опубликован 8 марта 2023 года], поэтому поработаем с размещением чисел по-новому.


Вот о чём я говорю:


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

Об особенностях хранения 16 бит изображений в PNG формате

Level of difficultyEasy
Reading time11 min
Views5.7K

Вашему вниманию предлагается небольшая заметка, посвящённая особенностям хранения одноканальных (серых) 16 бит изображений (как беззнаковых, так и знаковых) в PNG формате. В некоторых случаях интенсивности пикселей, получаемые из такого файла могут не соответствовать изначальным интенсивностям, под катом мы заглянем во внутренности PNG файла и разберёмся, почему так происходит.

Читать далее

Поисковый движок в 80 строках Python

Reading time11 min
Views13K

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

Давайте поговорим о целях. Слышали когда-нибудь о «кризисе сложности обнаружения маленьких веб-сайтов»? Проблема в том. что маленькие веб-сайты наподобие моего невозможно найти при помощи Google или любого другого поискового движка. Какова же моя миссия? Сделать эти крошечные веб-сайты снова великими. Я верю в возвращение славы этих малышей вдали от SEO-безумия Google.

В этом посте я подробно расскажу о процессе создания поискового движка с нуля на Python. Как обычно, весь написанный мной код можно найти в моём GitHub (репозиторий microsearch). Эта реализация не будет притворяться готовым к продакшену поисковым движком, это лишь полезный пример, демонстрирующий внутреннюю работу поискового движка.

Кроме того, мне стоит признаться, что в заголовке поста я слегка преувеличил. Да, поисковый движок действительно реализован примерно в 80 строках Python, но я ещё и писал вспомогательный код (краулер данных, API, HTML-шаблоны и так далее), из-за которого весь проект становится немного больше. Однако я считаю, что интересная часть проекта находится в поисковом движке, который состоит из менее чем 80 строк.

P.S. Написав этот пост и microsearch, я осознал, что пару лет назад нечто похожее написал Барт де Гёде. Моя реализация очень похожа на работу Барта, но я считаю что кое-что улучшил, в частности: (1) мой краулер асинхронный, что сильно ускоряет работу, (2) я реализовал пользовательский интерфейс, позволяющий взаимодействовать с поисковым движком.

Читать далее

Как создать Мету, которая затянет играть сутками

Level of difficultyMedium
Reading time10 min
Views22K

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

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

Читать далее

Information

Rating
3,965-th
Location
Россия
Date of birth
Registered
Activity

Specialization

Backend Developer, Game Developer
Senior
PHP
Git
SQL
REST
Godot Engine
GDScript
Lua
Redis
Yii framework