Блог Lead JS-разработчика из Хельсинки Автор: @bekharsky По рекламе: https://telega.in/channels/htmlshit/card?r=GLOiHluU или https://t.me/it_adv Чат: https://t.me/htmlshitchat
#фишка дня
Вот вы знали, что в слушатель события можно передать AbortSignal и не выкаблучиваться с именованными функциями и вообще перестать слушать много событий разом, если надо?
А вот можно! Как в этом примере от Мэтта Покока.
И больше таких приятных современных вещей описано в статье Марка Грабански. Крайне рекомендую к ознакомлению.
#js #event #abortsignal
Как вебмастеру получить дополнительный доход, не увеличивая нагрузку?
Подключи своих клиентов к сервису email-рассылок Dashamail и получай 20% со всех их оплат!
DashaMail — российский сервис email-рассылок, который позволяет отправлять все типы писем: массовые, триггерные, транзакционные.
Тебя и твоих клиентов ждут:
- гибкое API;
- подробная документация;
- компетентная техподдержка;
- большой выбор готовых модулей интеграции.
Узнайте больше о реферальной программе сервиса DashaMail
Реклама. ООО "ПИСЬМО". ИНН 7811602601. erid: LjN8KZu6d
#инструмент дня
На моей памяти было два веб-приложения, позволяющих в некой мере понять, как работает SVG:
раз и два.
Суть в том, что иногда недостаточно просто взять и нарисовать SVG в редакторе, хочется понять принцип отрисовки, позиционирования, заливки и контуринга.
И да, пусть эти приложения на фоне настоящих редакторов выглядят смешно, настоящие редакторы не спешат делиться своими секретами рендеринга. Хотя наверняка какие-нибудь расширения для люстры, инкскейпа или фигмы должны иметься... но их реализация сильно зависит от движка проекта. Ладно, мы отвлеклись.
Итак, вашему вниманию проект с говорящим названием svg.wtf от Амелии Ваттенберг.
Предоставляет всё то же наглядное понимание принципов работы SVG, от координат и кривых безье до фильтров. Можно сохранять снэпшоты, чтобы сравнивать состояния работы, есть простейшие скрипты для работы с кривыми (например, выстроить по сетке).
Думаю, надо попробовать заслать ей скрипт для переориентации кривых (из моего любимого editor.method.ac), это когда вместо трансформов кривые возвращаются к простым координатам.
В общем, больше редакторов богу редакторов!
#svg #tool #education
#новость дня
В node.js появилась экспериментальная нативная поддержка TypeScript!
Крепко же их bun приложил...
Ссылка на PR: https://github.com/nodejs/node/pull/53725
По факту происходит отбрасывание типов, поэтому средства вроде Enum и namespace не поддерживаются. Инициатива предоставления стабильного API поверх TypeScript получила название amaro и в дальнейшем планируется выделение в отдельный обновляемый модуль. Работает (кто бы сомневался) при помощи swc.
Так что никаких больше ts-node
!node main.ts
...и поехали!
#node #typescript #ts
"Разработка игр — это дорого!" Но как же minecraft, among us?
Indie Spotlight 👈 чат для инди-разработчиков, в котором найдётся ответ на любой вопрос:
— Как собрать и управлять командой по разработке игр?
— Как продвинуть игру без бюджета?
— Как монетизировать проект в условиях санкций?
👆Также у проекта есть телеграм-канал, где вы сможете ознакомиться с играми других разработчиков, оценить игры других участников, а также принять участие в розыгрышах призов таких, как Playstation 5, мониторы и раздачи ключей к играм💡
Это первое подобное комьюнити в телеграм:
➡️ Вступить в чат
➡️ Перейти в канал
#статья дня
Итак. Я когда-то вам разгонял про фреймворк RICE. И нет, это не про джаббаскрипт, это про работу. Как сортировать задачи, грубо говоря. Что важно, что менее важно. А что не нужно. Вот тут: /channel/htmlshit/1249
Думаете, это просто теория? Вот и народ из Shopify тоже так думал, а в итоге стали переводить своё мобильное приложение на React Native согласно приоритетам, рассчитанным по RICE. Золушки, ага.
На самом деле все логично: бахнуть разом огромное приложение на новую технологию невозможно, но и вслепую выбирать экраны для переделки — тоже. Добавление же экранов в новой технологии не решит проблему наличия старых и их поддержки. Так что пришлось подумать.
Собственно, вот оно: https://shopify.engineering/migrating-our-largest-mobile-app-to-react-native
Получилось долго.
#react #native #rice #бородач
#расширение дня
Ну что, мы с вами уже наворовали SVG со всего интернета, пришло время воровать кнопки!
Видимо, так подумал Анатолий Зенков, создавая своё расширение с незамысловатым названием Button Stealer.
Механизм работы похож на игры без игрового процесса: просто ходите по сайтам, а коллекция сворованных кнопок автоматически пополняется.
Покажи мне свои кнопки и я скажу, кто ты.
#chrome #button #stealer
#статья дня
Не так давно в чате канала проскочил вопрос, как правильно делать контейнеры, которые могут вылезать за визуальные границы.
Например, основной контент находится посредине и занимает в ширину 80-120 приятных для чтения глазу символов, а вот картинки хотелось бы разнести до краёв.
Техника называется full bleed. Я не знаю, как точно перевести.
Если посмотрите видео, то виден ещё один вариант использования, когда галерея выходит за пределы экрана лишь с одной стороны, но дальше тем не менее границы игнорирует.
Вот так: https://codepen.io/hexagoncircle/pen/gOWjwme
Альтернативный вариант: https://codepen.io/maartenbruggink/full/eYWjxae
Раньше такое делалось жонглированием полями, теперь же у нас есть гриды.
И у небезызвестного Джоша Комо есть статья как раз об этом: https://www.joshwcomeau.com/css/full-bleed/
Тем не менее, я рекомендую посмотреть приложенные кодпены, поскольку в них зоны грида именуются и становится понятнее, что к чему.
Всем full bleed, котаны!
#css #fullbleed #gallery #бородач
#ссылка дня
Сегодня я подобрал максимально красивый ресурс: набор демок на WebGL: https://ykob.github.io/sketch-threejs/
Эффекты глитча, игры с частицами, огонь, солнце, вода! Огонь, кстати, выглядит пугающе натурально.
Все примеры с исходными кодами, есть и весьма практичные, вроде галереи.
#js #webgl #бородач
На сайте рекомендуют только Chrome, но на самом деле такое-же расширение есть и для Firefox
https://addons.mozilla.org/en-US/firefox/addon/svg-gobbler/
erid: LjN8JuPVM
Появился канал, в котором можно с нуля научиться фронтенду
Frontend.school() — это место, где простым языком объясняются сложные вещи из мира фронтенд-разработки. Если вы давно хотели начать, но боялись, то с этим каналом у вас точно всё получится!
А ещё сейчас там проходит розыгрыш полезного гаджета для каждого айтишника. Скорее заходите и подписывайтесь, чтобы успеть.
Фронтендерами становятся тут: @frontend_school
Прошло почти два года. И вы не представляете, на theguardian.com даже после редизайна и перехода на гибридный режим сайта (классический рендеринг плюс SSR), у них всё тот же фронтендер-веган!
Ну или новый. Неважно. Их сейчас много развелось.
<label id="veggie-burger"
aria-label="Toggle main menu" for=
"top-nav-input-checkbox" data-link-name=
"nav3 : veggie-burger : show" tabindex="0" role=
"button" data-testid="
" class=
"dcr-w5ozf4"><span class="dcr-1nvgr5i">Show
More</span></label>
Бесплатный практический вебинар: Профессия «Frontend-разработчик».
⏰ Когда: 25 июля в 19:00 по мск.
Погрузитесь в решение реальной задачи и напишите мини-игру, которая работает прямо в браузере.
Расскажем, что ждут работодатели от джунов, какие есть грейды во фронтенд-разработке и на какую зарплату рассчитывать в перспективе. Какие JS фреймворки учить: Vue, React, а может, Angular?
Задайте вопросы опытному спикеру, сделайте первый шаг в направлении новой профессии.
🎁 Всем, кто зарегистрировался - Гайд «Как заговорить на сленге IT-специалистов», а каждому участнику - Карта компетенций начинающего Frontend-разработчика.
#инструмент дня
А есть ли среди моих подписчиков школьники и студенты/аспиранты? Потому что то, что я нашёл, очень может пригодиться при подготовке различного рода рефератов, презентаций и научных работ.
И это — кто бы мог подумать, моя любимая тема — снова DSL для представления диаграмм! Но на сей раз, всяческого рода научных, от простых блок-схем до описания векторных полей и молекул!
Ну вот буквально, молекула на иллюстрации описывается простыми конструкциями вроде:
SingleBond(N2, C4)
SingleBond(C4, C5)
DoubleBond(C5, C6)
#заметка дня
Недавно я читал обзор автомобиля и автор, в лучших традициях, решил запихать в статью огромную таблицу.
Таблица находилась в выделенном контейнере и приводила к появлению горизонтального скролла в нём. Мне пришлось тянуться к мыши, зажимать Shift чтобы скроллить горизонтально… Какая прелесть.
И вот тут ты понимаешь, с какими неожиданными проблемами могут столкнуться люди, ограниченные в движениях. А я всего лишь пил чай!
Решение же на самом деле до безумия простое: tabindex=“0” на контейнер и дело в шляпе. Это позволит пользователю установить фокус на желаемый блок и скроллить стрелками.
По пути, раз уж пошло дело, стоит установить стили фокуса и атрибуты role и aria-labelledby для соответствия Web Content Accessibility Guidelines.
Документ здоровый, но для практического применения нужны лишь несколько пунктов: «2.1.1 Keyboard», «4.1.2 Name, Role, Value», «1.4.10 Reflow», «2.4.7 Focus Visible».
Названия разделов говорят сами за себя: установите возможность клавиатурного фокуса, не забыв дать визуальную подсказку, и предотвратите скролл всей страницы целиком.
В общем, не ленитесь. Дайте людям возможность прочитать статью так, как удобно им. Особенно когда это ничего вам не стоит 😉
Ну и повторю решение: https://codepen.io/alinaki/pen/xxgpmeZ
#css #table #keyboard #focus #a11y #бородач
#ссылка дня
Да-да, я знаю, знаю, что любить иконочные шрифты нынче не в моде, а в моде дико заморачиваться с SVG, символами...
Но вот типографика же не стоит на месте. Вариативные шрифты — уже реальность. Было бы глупо не применить их для иконок.
И таки да, встречайте, Material Symbols: https://material.io/blog/introducing-symbols
Вариативный иконочный шрифт от Google. Естественно, он есть на Google Fonts: https://fonts.google.com/icons
Естественно, вы можете скачать SVG и PNG.
Ну и куда же без плагина для Figma: https://www.figma.com/community/plugin/1088610476491668236/Material-Symbols, позволяющего настроить и экспортировать иконки как душе угодно.
Меня, правда, забавляет целый ползунок на fill, если вы понимаете, о чём я. Вообще, с ползунками на Google Fonts всё очень плохо... но речь не о них.
К слову, nice touch: там присутствуют специальные символы для iOS, они вариативности не подвластны. Забавный жест.
#fonts #icons #google #material #бородач
#фишка дня
— Криса Койера знаешь?
— Нет
— Дядька мой
Ладно, кроме шуток. Часто CEO вашей компании даёт стримы и уроки по вёрстке? А CEO CodePen — даёт. От скуки, может?
И тема сегодняшнего выпуска — offset-path. Или как заставить объект следовать контуру.
Сразу демо: https://codepen.io/chriscoyier/pen/ZEdpVev
Весь кайф в том, что offset-path принимает не только описание кривой SVG, но и значения боксовой модели вроде border-box, что означает, что в качестве кривой будут границы родителя!
Да, как правило речь почему-то всегда о круге или волне, но, по-моему, следование квадрату не менее эффектно.
Ну и вообще в официальном твиттере компании CodePen много неожиданного вываливают.
#css #path #animation
Меня тут добавили в тематическую папку по IT и ИИ, и соседство весьма хорошее.
Вам остается только перейти по ссылке, сохранить папку себе и регулярно получать полезные ресурсы и знания.
/channel/addlist/PgLjJCSNBW42Y2Fi
Хочешь в подборку?
#видео дня
Да, я нашёл это на Reddit (но я хотя бы признаюсь в этом, в отличие от… 😇).
Оригинальное название — как создать визуальный XOR-эффект на одном только CSS filter и mix-blend-mode (инвертирование по маске, короче). Но для этого стоило бы заодно код переписать в кодпен…
Поэтому делаем так: теперь это видео о том, как использовать Emmet будто ты бог вёрстки.
Эффективность 9000, короче.
#emmet #filter #blend #бородач
#инструмент дня
Предположим, тебе заказали разработку Flutter или React Native приложения. Да даже Cordova или Ionic. Предположим, ты даже справился. Настало время собирать под iOS. И тут облом. Нужна macOS.
Можно купить старый мак, можно завести виртуальную машину, обмазавшись ютубом и tonymacx86.
А можно воспользоваться Docker и вот этим прекрасным репозиторием: https://github.com/sickcodes/Docker-OSX
Куча рецептов прямо в Read.me, куча полезных скриптов. В общем, надо брать и пробовать.
Отпишитесь потом о результатах, ок?) Тоже при случае попробую. Прост мак-то есть)
#docker #macos #бородач
Многие мечтают стать тимлидом, но только некоторые знают, что для этого мало уметь писать код и разбираться в архитектуре.
Сильный тимлид умеет управлять проектами любых масштабов, оценивать их стоимость и отслеживать финансовую эффективность, и что немаловажно – управлять командой.
Все эти знания можно получить на совместной магистерской программе ИТМО и компании «Самолет» – «Руководитель IT-разработки».
Помимо лекций и практик вас ждут:
– Учебные и бизнес-проекты от от Big Tech компаний
– Хакатоны каждый семестр
– Индивидуальные карьерные консультации с экспертами.
На программе можно обучаться бесплатно – 10 мест оплачивает компания «Самолет», так и на коммерческой основе. Лучшие студенты будут получать дополнительную стипендию «Самолет».
Переходите на сайт, чтобы получить программу обучения и подать документы.
Реклама. Университет ИТМО ИНН:7813045547
#такое дня
Если вы не знали или не понимали, что такое "секрет Полишинеля", я вам сейчас всё объясню.
Тут выяснилось, что в браузерах на основе движка Blink (Chrome, Brave, Edge, Яндекс.Браузер сами проверите) есть специальное скрытое расширение, которое предоставляет сайтам Google данные о нагрузке на компьютер по каждой вкладке отдельно.
То есть, если Google определяет, что звонок в Meet слишком нагружает систему, он может что-то с этим сделать, ухудшить качество видео или, наоборот, улучшить, если есть запас.
Казалось бы, ну и что такого? А то, что конкурентам подобное недоступно. Тот же Zoom потребует дополнительных телодвижений.
ID расширения: nkeimhogjdpnpccoofpliimaahmaaome
Название: hangout_services.
Предоставляемые дополнением данные отображаются в сервисе meet.google.com в панели "Troubleshooting".
Ну что, это уже недобросовестная конкуренция, или так и надо? :)
#google #chrome
AvitoTech выпустили бесплатный видеокурс по JavaScript, и четвёртый эпизод уже доступен к просмотру.
В новом выпуске вы узнаете про устройство и размер памяти программы, стек и кучу, Oddball и иммутабельные примитивы. Это поможет создавать эффективные программы, которые оптимально используют память.
Не забудьте подписаться на канал, чтобы не пропустить следующие выпуски.
#книга дня
На сцене снова (раз, два) Александр Беспоясов. На сей раз с книгой «Refactor like a superhero».
Выложена на Гитхабе, на двух языках: русском и английском. Выбирайте любой, засылайте PR-ы на исправления и дополнения.
Читаем, не стесняемся!
#book #refactor #бородач
#инструмент дня
Как потырить понравившуюся SVG с сайта в учебных, конечно же, целях?
Поставить себе SVG Gobbler!
https://www.svggobbler.com/
Скачать, оптимизировать, посмотреть код — без лишних действий.
#svg #extension #бородач
никто:
theguardian.com: я веган
...
Вот кого-то распирало, вы поглядите.
#заметка дня
Часто приходится делать таблицы в GitHub Markdown? Тогда лови это знание, пригодится.
Списки и контейнеры не могут и не должны отображаться внутри таблиц, набранных "палочками" (||). Палочки — только для текстового контента, для данных. Точка.
Нужен табличный, кхрм, макет (ну список изменений там запихать) – используй HTML таблицы.
Но есть нюанс.
Чтобы правильно использовать Markdown внутри HTML-таблиц, нужно этот самый контент с двух сторон обложить переводами строки, вот так:<td>
_markdown_ **тут**
</td>
...и будет норм.
#markdown #бородач
#фишка дня
Как анимировать элемент по клику на чистом CSS?
Ведь псевдокласс :active
даётся ровно в тот момент, когда ты нажимаешь кнопку мыши и тут же пропадает, как кнопка была отжата.
Например, как сделать эффект «копирования» текста, как на видео? Совсем неохота навешивать что-то ещё на onmousedown
и onmouseup
...
Ответ на самом деле не столь очевиден, как может показаться. И имя ему :not(:active)
.
Схема работы проста. Навесили конечное состояние перехода на неактивное состояние, а на активное — установили начальное.
Выглядит в итоге как-то так:
https://codepen.io/alinaki/pen/wvEdaWG
И никакого жонглирования классами не надо.
#css #active #click #animation #бородач
В последние дни на VC огромное количество статей про нейросети. Контент разного качества, иногда устаешь от бесконечных «Почему Chat GPT изменит мир в ближайшие 2 года».
Тем интереснее увидеть статьи, где есть настоящая фактура того, как делаются проекты с генеративным AI, компьютерным зрением и LLM.
Недавно на канале студии разработки Unistory вышла подборка их статей за три месяца — крутой материал про автоматическую транскрибацию для индусов. Нет, не индусский код, а ДЛЯ индусов.
Если коротко, автор канала Саша Аксёнов выкладывает здесь инфу про свои проекты, децентрализованный AI и разработку на западный рынок. Время от времени публикует вакансии. Не стесняйтесь подписываться — мемы иногда тоже бывают.
#инструмент дня
Понадобилось мне дать отделу маркетинга возможность удобно просмотреть и проанализировать некоторые внутренние JSON-файлы, используемые для доставки контента. Естественно, захотелось как-то облегчить всем жизнь и постараться доступно показать содержимое жисона. Простого форматтера было явно недостаточно.
Оказалось, изобретать ничего не нужно — уже есть https://jsonhero.io/
Сгруппирует по категориям, покажет связанное, отобразит картинку.
Удобно.
#json #viewer #бородач