Модели, сделанные в блендере, о которых я рассказывал в предыдущих частях, готовы и могут быть загружены в игровой движок. В этой части пойдёт речь о том, как собрать и заставить двигаться дорогу в Unity 3d.
Моя лента
Новости
typing.Annotated
Annotated из модуля typing в Python предназначен для добавления метаданных к аннотации. Метаданные, добавленные с помощью Annotated, могут быть использованы инструментами статического анализа или во время выполнения. Во время выполнения метаданные хранятся в атрибуте __metadata__
.
from typing import Annotated
# Синтаксис: Annotated[тип_данных, метаданные]
def say_hello(name: Annotated[str, "this is just metadata"]) -> str:
return f"Hello {name}"
Логика обработка метаданных зависит от фреймворка или библиотек, в которых используется Annotated. Если логики для обработки метаданных нет, то метаданные игнорируются.
Например, Annotated используется в Pydantic:
from typing import Annotated
from pydantic import Field, TypeAdapter
# Функция Field используется для настройки и добавления метаданных
# к полям моделей. Field(gt=0) - значит greater than т.е. больше чем 0
PositiveInt = Annotated[int, Field(gt=0)]
# TypeAdapter предоставляет часть функциональности методов экземпляра
# BaseModel в т.ч. валидацию с использованием метаданных из Annotated
ta = TypeAdapter(PositiveInt)
print(ta.validate_python(1))
#> 1
print(ta.validate_python(-1))
#> pydantic_core._pydantic_core.ValidationError:
В первом случае вернёт 1, во втором ошибку валидации т.к. значение должно быть > 0.
Также Annotated используется в FastAPI.
Генерация PDF-документации из OpenAPI-спецификации в SpringBoot-приложении
При интеграции с нашим приложением, написанном на "классическом" SpringBoot-стэке встал вопрос о предоставлении описания АПИ партнеру. Фактически из коробки SpringBoot позволяет развернуть на стороне приложения тонкий Swagger-клиент и сгенерировать на лету спецификацию в формате Swagger (OpenAPI), которая представляет собой JSON особой структуры (хотя если читатель не знает, что это, наверное нет никакого смысла вообще читать эту статью).
Проблема осложнялась тем, что наш партнер разрабатывал на 1С, и во всех современных спецификациях для него были слишком сложно освоиться, поэтому встала задача предоставить документацию в человекориентированном виде - DOC, PDF и прочее.
В ходе изысканий в google, была найдена статья - https://www.baeldung.com/swagger-generate-pdf, и советы на stackoverflow, которые фактически повторяли эту статью. Фактически было найдено 2 варианта решения:
1) Использовать онлайн-конвертер https://www.swdoc.org/
2) Настроить цепочку из 3 maven-плагинов:
Как опубликовать свое первое приложение на Django и не упасть духом. Гайд для выпускников курсов
Я закончил курсы "Fullstack разработчик на Python" от одной известной компании. Обучение завершено успешно, но не было ощущения полноценности — на курсах не учили, как сделать самостоятельно деплой приложения на Django. И никто из студентов не задавался эти вопросом 😁
Так что я решил закрыть этот вопрос и все-таки пройти путь по развертыванию django-приложения, так как, возможно, больше никогда такого случая не представится. Потом я уже могу не вернуться к этой теме, так как это потребует мучительного вспоминания и повторного прохождения материала. Все должно быть вовремя.
В этой статье я хочу дать небольшой гайд для выпускников подобных курсов и заодно рассказать про российский облачный сервис (еще раз внимательно прочитал их статью и увидел, что она опубликована буквально за 3 недели до моих тестов - то есть мне повезло).
CH32V003 первый проект. Мигаем OLED дисплеем и делаем измеритель концентрации CO2
В последнее время разработчики электроники испытывают трудности с поставками электронных компонентов. Одним из решений данной проблемы является переход на "исконно китайскую" элементную базу. Это решение подкупает ценой и доступностью, но пугает плохой документацией и небольшим количеством информации на понятных нам языках. В данной публикации расскажу о любопытном микроконтроллере на ядре RISC-V и сделаю простое первое устройство - датчик концентрации углекислого газа в воздухе/мигалку OLED дисплеем и светодиодом (куда ж без мигалки светодиодом). В репозитории размещен проект для тех, кто захочет воспользоваться данными наработками.
Умный дом — новая угроза для персональных данных?
Интернет вещей (IoT) преобразует нашу повседневную жизнь, делая ее удобной и насыщенной технологиями. От смартфонов до умных телевизоров и систем автоматизации дома – везде присутствуют инновации, которые улучшают наше окружение. Но за этой технологической роскошью скрываются потенциальные угрозы для безопасности и конфиденциальности.
Сразу отмечу, что в статье не будет рекомендаций по обеспечению безопасности своих данных из разряда заклеивания своей веб-камеры.
В этой статье коснемся актуальной проблемы безопасности IoT, рассмотрим не только потрясающие возможности умных устройств, но и темные стороны, которые требуют нашего внимания. Откроем тайны кибербезопасности умных домов, выявим уязвимости. Насколько важно обеспечить защиту данных и какие шаги нужно предпринять, чтобы сделать свой дом не только умным, но и безопасным? Обсудим технические аспекты, вопросы образования пользователей и стандарты безопасности.
Ory Kratos — коробочный SSO
Показываю как базово настроить и про опыт использования одного из популярных коробочных open source решений для идентификации пользователей
Внутренний Я(ндекс)
В этой статье я хочу описать (часть) моего опыта взаимодействия со структурой, именуемой в дальнейшем "яндекс", с точки зрения работника. Опишу собеседования и этап "входа".
Да, уже были статьи про собеседование и даже в эту же структуру, некоторые из них я видел, но не во всём с ними согласен, к тому же конкретно С++ разработчиков я там не видел.
Криптографически стойкие генераторы псевдослучайных чисел
Статья посвящена обзору криптографически стойких генераторов псевдослучайных чисел (CSPRNG), ключевого элемента в обеспечении безопасности криптографических систем. Рассматриваются различные виды криптографически стойких генераторов псевдослучайных чисел, проведено их сравнение и анализ их уязвимостей.
Как я делал свой мини калькулятор без программирования и что из этого вышло
Настали времена, когда у меня появилась возможность осваивать электронику. Я начал с книги "Искусство схемотехники", но прочитав страниц 100, я понял, что усваиваю не всё и потихоньку пропадает интерес. Нужно было что-то делать, нужно было выработать какой-то способ, чтобы я всё равно обучался электронике.
Пока были сложности с построениями аналоговых схем, а хотелось что-то создать или запрограммировать, то я выбрал разработку для NES (у нас в народе была Денди). Так как я в linux разрабатываю софт, то не нашел нормального редактора картинок для NES. Даже в туториале, в котором имелась ссылка на программу, была неактивна. Мне нравится, что на хабре выходят переводы статей, но сами авторы допускают ошибки в коде и это отражается также и в переводе. Я долго не мог понять почему не рисуется спрайт, пока не изучил официальную документацию. Для рисования спрайтов мне захотелось написать свою программу, так как другие были ну очень непонятные. Кому интересно, буду рад, если будете пользоваться этой программой.
https://github.com/xverizex/RetroSpriteEditor
Это немного меня отодвинуло назад в плане изучения электроники, но очень понравилось писать на ассемблере, что в принципе я всегда и хотел.
Иногда я смотрю, что есть нового на flathub, и обнаружил симулятор цифровой электроники, Logisim. Ещё не изучив полностью компоненты, я быстро сориентировался с logic gates. Это такие элементы как OR, AND, XOR. Почти все из этих понятий мне были знакомы уже давно. Тогда я решил написать свой сумматор. Может я не правильно пишу, так что можно просто калькулятор, который умеет только прибавлять. Я потратил два дня по два часа и у меня ничего не вышло. У меня не получалось создать правильный калькулятор. По мере накопления такого опыта, я решил подумать как можно вообще выстроить процесс поиска правильного решения. И вот что я придумал.
RAG (Retrieval Augmented Generation) — простое и понятное объяснение
Краткое и понятное описание подхода RAG (Retrieval Augmented Generation) при работе с большими языковыми моделями.
Автоматические бэкапы БД PostgreSQL по расписанию
В этой статье я поделюсь скриптом для создания бэкапов БД PostgreSQL за определенный период (например: 1, 2, 3 дня, 1 неделя, 1 месяц, 6 месяцев, каждый год).
Объясню как запустить скрипт с помощью расписания crontab, покажу как настроить синхронизацию папки с бэкапами с облаком Yandex Disk.
Жизнь после IT: «Жена забыла отключить кран, соседей затопило, а я спокоен»: как помогают упражнения на дыхание
Я Юрий Иванов, основатель сервиса физического и ментального здоровья Nebica Health, в прошлом айтишник, за последние два года успел пожить в 15 странах. Биохакинг ー моя страсть, в статье расскажу, как я провел в родном городе Кандалакше 40 занятий на дыхание для людей, которые не знали, что это такое, и какой получился результат.
Ближайшие события
Тайвань показывает зубы: производители чипов сталкиваются с ограничениями
Тайвань усиливает защиту ключевых технологий страны. Так, правительство Тайваня обнародовало список из 22 технологий в пяти секторах производства (оборона, космос, сельское хозяйство, полупроводники и информационная безопасность), которые будут дополнительно защищены от утечки данных.
На сегодня Тайвань — производитель большей части наиболее передовых полупроводниковых чипов в мире, которые используются во всем — от смартфонов до электромобилей. Правительство страны давно обеспокоено попытками Китая перехватить пальму первенства на этом пути, применяя промышленный шпионаж и «охотой за головами», то есть переманивание тайваньских инженеров на китайское производство.
Вдыхайте DIY: Создаем собственную умную вентиляцию для дома
Зачем всё это?
Создать комфорт в квартире не самая простая задача для жителя мегаполиса, для меня это немыслимо без тишины и чистого воздуха.
Вопрос с уменьшением уровня шума я решил установив многослойные стеклопакеты, хотя сигнал спецтранспорта иногда пробивается и сквозь них, но не все так просто. При установке пластиковых окон в старом жилом фонде, возникает проблема с запотеванием окон. При строительстве таких домов приточная вентиляция не предусматривалась, а так называемая естественная вентиляция, осуществлялась через щели в деревянных окнах.
На стадии ремонта я понимал, что хочу автоматизировано контролировать качество воздуха в квартире, также знал о вероятных проблемах с запотеванием окон. Понимания по производителю будущей приточной вентиляции не было, поэтому заранее в стене было проделано отверстие диаметром 160 мм с запасом под воздуховод диаметром 150 мм, и проведены провода электропитания в предполагаемое место установки приточной вентиляции.
Как я сделал проект для себя и получил приз от Telegram
Всем привет! Telegram устроил конкурс на разработку мини-приложений, где моя работа заняла призовое место. В конкурсе была высокая конкуренция, так как выбор технологий и идеи для приложения был свободный. В связи с этим Telegram даже увеличил общую стоимость призовых. В этой статье разберём как проходила разработка, с какими сложностями столкнулся и чему научился.
Джейсон Вэй — известный исследователь направления языковых моделей. Имя Джейсона стоит первым на различных научных докладах Google: про эмерджентные способности (arXiv:2206.07682), промптинг в стиле цепочки рассуждений (arXiv:2201.11903) и FLAN (arXiv:2109.01652).
У Джейсона есть брат Джерри Вэй, который стажировался в различных структурах Google. С мая Джерри проходил стажировку в Google DeepMind, а с июля 2023 года работает там на постоянной основе. Джерри тоже успел отличиться и выпустил доклад про symbol tuning (arXiv:2305.08298).
Джейсон же в феврале этого года перешёл из Google в отдел ChatGPT в компании OpenAI. Как рассказывает перебежчик, культура в компаниях заметно отличается: вместо небольших исследовательских групп Google пришлось привыкать к крупным командам OpenAI. Чтобы адаптироваться, Джейсон рекомендует больше внимания уделять документации, простоте дизайна и качеству инструментов разработки. Также, если верить Джейсону, в OpenAI кормят лучше, чем в Маунтин-Вью, хотя ещё вкуснее еда в сингапурском офисе Google.
Братья не прекращают общение и регулярно видятся, но не забывают подтрунивать мемами в социальных сетях друг над другом.
Оптимизируем шрифты и ускоряем сайт на 5-12%
Описываем способы максимально ускорить загрузку шрифтов на сайте.
Развенчиваем мифы и разбираем ошибки. В статье вас ждут полезные онлайн сервисы для ускорения работы.
Давайте найдем оптимальный момент выхода на пенсию и умрем с нулем (или ничего у нас не получится)
Зарплаты в IT, как правило, полностью хватает для обеспечения себя всем необходимым. Зачастую даже остаются приличные излишки, которые можно потратить на экстра-потребление или же инвестировать/отложить на будущее. На этом распутье я всегда выбирал инвестиции, но в один момент понял, что нужно и понимать, когда же остановится. Вот оно бы хорошо выйти на жизнь с капитала в самый оптимальный момент: такой, чтобы цифра на счету стала нулем ровно к окончанию жизни.
Заработайте на разнице курсов: создание и запуск собственного криптовалютного арбитражного бота
(ДИСКЛЕЙМЕР) Данное приложение не дает советы по финансовым вопросам. Я не работаю финансовым консультантом и не предоставляю рекомендаций в данной сфере. Использование этого приложения осуществляется вами на свой страх и риск. Прежде чем принимать какие-либо инвестиционные решения, необходимо провести собственное исследование.