ВведениеКогда ты слышишь о 3D-графике, в голове возникает образ сложных программ, требующих высокой квалификации и мощных компьютеров. Но я решил доказать обратное! В этой статье я расскажу тебе о своем 3D-редакторе фигур, созданном с использованием библиотеки Three.js. А чтобы было не скучно, я добавлю примеры кода и интересные факты о том, как я преобразил простейший куб в полноценный 3D-редактор.Что было: Рождение куба1. Куб — как это мило!В первой версии моего редактора ты мог встретить тол…
В статье разбираю конкретный пример - как при помощи Google Apps Script на основании шаблона, созданного в Гугл Документах массово создавать договора дарения из строк Гугл Таблицы.Массово создавать типовые договора можно когда есть документ-шаблон с готовым форматированием и в нём промаркированы ключевые поля, которые идут под замену для каждой новой строчки таблицы. После автозамены копия заполненного шаблона сохраняется с установленным именем в виде Гугл Документа и может сразу автоматически …
Привет, друзья! Сегодня я подготовил для вас увлекательную практическую статью о создании мини-чата на FastApi. Мы погрузимся в мир вебсокетов, узнаем, зачем они нужны и как применяются в реальных приложениях. Также я продемонстрирую работу с асинхронной SQLAlchemy на примере взаимодействия с базой данных SQLite.Для создания современного интерфейса мы обратимся к интересному и бесплатному сервису Websim.ai, который за пару минут сгенерирует нам интерфейс, включая страничку для входа/регистрации…
ПредисловиеНаписать заметку меня побудила статья Как устроена система типов typescript и собственный опыт.Я обратил внимание, что не всегда понимал семантику "extends" в разных контекстах и влияние настроек языка.В результате, то что меня смущало, оказалось рабочим поведением языка, но при этом непредсказуемым и небезопасным.ВведениеДля демонстрации я выбрал простое объединение string | number, которое буду помещать в различные контексты.Пример 1:type TA = number | string type TB = stri…
Задавались ли вы когда-нибудь вопросом, можно ли выйти за рамки привычных трёх измерений? Мы привыкли видеть мир в 3D: кубы, сферы, пирамиды — все эти объекты легко вообразить и визуализировать. Но что, если мы попробуем заглянуть в четвёртое измерение? Это звучит как научная фантастика, но в мире математики и компьютерной графики всё возможно.Сегодня я расскажу вам, как создать интерактивный гиперкуб, или тессеракт — четырехмерный аналог обычного куба. Мы будем использовать Three.js, популярну…
Пришло время дочке учить таблицу умножения, и я не смог найти нормальных тренажеров. В итоге, пара часов работы над программной частью и день работы над UI/UX вылились в полноценный проект для Яндекс.Игр.Стартовое окноВведениеМоя идея была простой — создать понятный и удобный тренажер для изучения таблицы умножения. Но, как это часто бывает, реализация оказалась гораздо сложнее, чем задумывалось. Самым трудным и интересным оказалось создание масштабируемого интерфейса, который бы корректно выгл…
Привет, Хабр! Сегодня мы поговорим о this, потому что без четкого понимания, как работает this, ваш код может стать источником путаницы и ошибок.this в JS — это ключевое слово, которое ссылается на текущий контекст выполнения. Его значение зависит от того, где и как была вызвана функция, а не от того, где она была определена.В этой статье мы разберем все способы работы с контекстом выполнения, чтобы вы могли уверенно использовать this в любом сценарии.Разные контексты thisГлобальный контекст: п…
Привет, Хабр!Сегодня рассмотрим такие инструменты в JS, как Object.freeze и Object.seal. С помощью них можно установить надежный контроль над объектами, защитив их от нежелательных изменений. Как работают Object.freeze и Object.sealObject.freezeObject.freeze предотвращает любые изменения объекта. Это означает, что вы не сможете:Добавлять новые свойства.Удалять существующие свойства.Изменять значения уже существующих свойств.Посмотрим на пример:const user = { name: "Artem", age: …
Привет, Хабр! Если вы открыли эту статью, вероятно, вам интересна разработка BIM‑приложений, а конкретно — просмотрщиков 3D‑моделей (Viewer). Возможно, у вас уже есть свое BIM‑приложение, и вы столкнулись с трудностями, или вы только планируете начать разработку и собираете информацию. В любом случае, вы попали по адресу.Я расскажу вам историю о том, как мы создавали наш 3D Viewer, какие подводные камни встретились на пути, и какие уроки мы извлекли. Поехали!Выбор технологии: своя разработка vs…