Что такое токенмаксингТокенмаксинг (tokenmaxxing) — это практика, при которой сотрудники компаний соревнуются за максимальное потребление AI-токенов, превращая сам факт использования ИИ-инструментов в показатель производительности.Термин был популяризован журналистом Кевином Русом из The New York Times в статье «More! More! More! Tech Workers Max Out Their A.I. Use» и затем обсуждался в подкасте Hard Fork. Слово построено по аналогии с крипто-культурным «maxxing» — доведением чего-либо до преде…
Каждый, кто хоть раз заглядывал на Hacker News или r/ItRunsDoom, знает традицию: DOOM должен работать на всём. PDF‑файлы, SQL‑запросы, кишечные бактерии, тест на беременность — список бесконечен, и каждый новый порт абсурднее и интереснее предыдущегоНо я задался вопросом: а можно ли запустить DOOM внутри шрифта? На вопрос «зачем?» ответить я могу тоже самое, что и авторы остальных портов: «Руководствуясь академическим интересом», «Для исследования границ, казалось бы привычных систем», ну и «Пр…
Иногда возникает странное ощущение, что фронтенд уже не про решение задач.А про поддержание сложности.Я в разработке ещё до AngularJS и React. Тогда всё было просто: HTML и немного JavaScript — и этого хватало даже для приложений с rich UI.Потом пришли фреймворки.Один из первых — AngularJS — и это был вау-эффект.Ты больше не трогаешь DOM руками. Просто описываешь, что хочешь получить.Потом: Flux, Redux, TypeScript, Angular 2+. Фронтенд в этот момент стал высокотехнологичным, но в то же время не…
Привет, Хабр! Меня зовут Василий Беляев. Я руководитель группы разработки по направлению фронтенда в ИТ-компании «Криптонит». В этой статье я расскажу про организацию работы с версиями и компонентами, оптимизацию рабочего процесса внутри команды, а также опишу несколько лайфхаков, которые мы применили.В прошлый раз мы остановились на том, что оптимизировали package.json и избавились от прямых импортов. Это было необходимое, но недостаточное условие. Прежде, чем рассказывать о следующих шагах, я…
Закончился ещë один месяц, а значит нам пора поделиться с Вами новостями о развитии GigaIDE. Ниже краткий обзор обновлений PRO-функционала GigaIDE, которые можно найти на нашем маркетплейсе. Обзор инкремента за февраль доступен по данной ссылке. Как стать пользователем GigaIDE PROСейчас GigaIDE PRO доступна только для корпоративных потребителей. Чтобы получить дополнительную информацию, нужно будет оставить заявку на сайте.GigaIDE PRO станет доступна всем пользователям в этом году позже. Следит…
Если спустя время у вас происходило такое, что компонент-стор разрастался, а каждое добавление или исправление логики уже пугало, то эта статья для вас.Сегодня я не буду читать лекций. Просто поделюсь тем, как сам дошел до более-менее устойчивого подхода после того, как неоднократно рефакторил чужие сторы и ловил себя на мысли: «Зачем я это трогал?». Возможно, где-то я буду неправ, возможно, в вашем проекте это не взлетит. Я не напрашиваюсь в учителя, просто фиксирую опыт, чтобы не наступать на…
Привет, Хабр!Flaky‑тесты — бич E2E‑автоматизации. Команда перезапускает пайплайн, пока не позеленеет. Доверие к тестам падает. В итоге CI‑статус игнорируется, и баг всё равно попадает в прод.Playwright — фреймворк от Microsoft для E2E‑тестирования — был построен с нуля, чтобы решить именно эту проблемную. В нем есть автоматические ожидания, изоляция через Browser Contexts и встроенный тест‑раннер. Разберем, чем он отличается от Selenium и Cypress, и как писать тесты, которые не падают от ветра.…
У меня 1000+ баллов на Codewars, много решённых задач на LeetCode и просто бесконечное множество решенных задач из разных приложений и собеседований.Но каждый раз я сталкиваюсь с одними проблемами: при решении задачи я часто путаюсь, выбираю не самый оптимальный путь, трачу время на странные подходы и в итоге прихожу к неоптимальному решению с лишними затратами времени, знакомо?Проведя небольшую рефлексию, я понял в чем проблема: решая задачи, я вообще не задумывался о паттернах, хотя это главн…
В предыдущей статье мы подробно рассмотрели замыкания в JavaScript, а сейчас изучим как из-за них возникают утечки памяти и как этого избежать.Замыкание существует пока, есть хоть одна ссылка на функцию создавшую его. Если быть неосторожным, это может привести к утечкам памяти: когда объект уже не используется в программе, но сборщик мусора не может его удалить. Такие ссылки могут быть неочевидными:let bigData = { id: 42, data: new Array(1000000).fill('Some data') // Генерим большой…