Будни разработчика
14.7K subscribers
1.18K photos
334 videos
7 files
2.01K links
Блог Lead JS-разработчика из Хельсинки
Автор: @bekharsky

По рекламе: https://telega.in/channels/htmlshit/card?r=GLOiHluU или https://t.me/it_adv

Чат: https://t.me/htmlshitchat

№5001017849, https://www.gosuslugi.ru/snet/679b74f8dad2d930d2eaa978
Download Telegram
#фишка дня

Плохо с математикой? 360 градусов вводят в ступор? 2π радиан доводят до истерики? Грады это какой-то сплошной гон?

Используй 1 поворот! Вращение элементов никогда ещё не было таким простым!

turn — и готово!

#css #transform #rotate
19
#статья дня

Думаете, SVG это только формат описания векторной графики?

Нет, всё чуть-чуть сложнее. SVG это формат, не менее интересный чем весь стек HTML, а то и более. Внутри SVG может содержаться настоящее приложение, способное включать в себя и HTML (вспоминаем мой опыт с foreignObject).

Но раз весь стек HTML, то и скрипты? И сетевые запросы? Да. К сожалению. Или к счастью.

Сначала давайте посмотрим на эту статью: https://habr.com/ru/company/pvs-studio/blog/652255/

Она для общего развития, про десктопные приложения. Но суть остаётся той же: если ваш SVG-парсер неправильно настроен, вы рискуете многим.

Ну а если занимаетесь настройкой серверов и разработкой полномасштабных проектов, то не забывайте о том, что, загрузив SVG, можно и XSS-атаку провести: https://blog.yeswehack.com/yeswerhackers/file-upload-attacks-part-2/

Вот ещё из 2011 презентация, многое неактуально из-за развития CSP в браузерах, но опять же — помните про правильную настройку: https://owasp.org/www-pdf-archive/Mario_Heiderich_OWASP_Sweden_The_image_that_called_me.pdf

Фильтруйте ваши изображения, в общем.

#svg #security #css
👍17
This media is not supported in your browser
VIEW IN TELEGRAM
#фишка дня

Если вы используете стандартные элементы вроде input type number, date, range (а их часто используют в админках, да и они потихоньку улучшаются), может возникнуть задача стилизовать значения, выходящие за рамки дозволенного.

И тут, оказывается, в CSS есть необходимые селекторы: :in-range и :out-of-range.

Ну уж input type number точно будет доволен :)

#css #range #selector #input
👍38
This media is not supported in your browser
VIEW IN TELEGRAM
#codepen дня

Как проще всего понять CSS 3D-преобразования?

Нарисовать сферу!

И добавить немного лоска 😋

https://codepen.io/Skagoo/pen/RwxpoyX

#css #3d
👍8
#фишка дня

В мире высокоскоростных сетей иногда может возникнуть ситуация, что доставить изображение до потребителя проще, чем вывести его на экран.

Как писал Джон Кармак: “I can send an IP packet to Europe faster than I can send a pixel to the screen. How f’d up is that?”.

Это я к чему.

Вот выкатили вы здоровую картинку на сайт, уж не знаю, почему. Может, удивить пользователя сверхкачеством хотели. Но её надо же не только доставить, но и декодировать. А если у тебя не последний айфон?

С доставкой нам поможет атрибут loading=“lazy”, но что насчёт декодирования?

Вуаля, такое тоже есть: decoding=“async”.

Можно использовать вместе с ленивой загрузкой, можно — раздельно. В зависимости от задач.

На сладкое держите неплохую лекцию об оптимизации изображений для SEO: https://youtu.be/F6KGcb6trXc с кучей нюансов, включая вышеописанные атрибуты.

#img #decoding #html
👍14🔥1
#инструмент дня

HTML Academy в представлении не нуждаются. Поэтому, этот пост никак не спонсирован и тем более не является рекламой.

В общем, они сделали свои тренажёры по вёрстке бесплатными. На какое время — официально не объявлено.

Заходите, пользуйтесь. Кому-то поможет освоить что-то новое, кому-то — отвлечься.

https://htmlacademy.ru/

#css #html #school
👍16🔥1
#codepen дня

Придётся возрождать рубрику CodePen дня. И, пожалуй, в классическом виде.

Разве меня одного должен страшно бесить этот прелоадер?

https://codepen.io/jkantner/pen/abEoyeK

Нет, конечно. Пусть вас тоже бесит!

#css #preload #animation
#фишка дня

Давайте отвлечёмся немного.

Если поискать в Google Pac-Man, появится играбельный дудл :)

Вот так просто.

#game #google #doodle
🥰8👍2🤔1🤮1
#статья дня

Вы не поверите, но, кажется, до Apple таки дошло, что Safari начинает всех бесить.

На самом деле, Safari надо любить, потому что Firefox стремительно загибается, но сложно любить то, что не очень-то и уважает потребности разработчиков.

Так вот!

Вышел Safari 15.4: https://webkit.org/blog/12445/new-webkit-features-in-safari-15-4/

В списке нововведений: lazy loading, dialog, :has(), каскадные слои, svh/lvh/dvh, focus-visible, accent-color, display: contents fix, scroll-behavior, Manifest-иконки, BroadcastChannel.

Выглядит охренительно, даже похоже на будущее.

Обновляемся, пользуемся.

Upd. держите перевод на русский https://habr.com/ru/news/t/655743/

#safari #webkit #macos
👍12🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
#видео дня

Инструкции по Chrome DevTools никогда не перестанут быть актуальными. Вот с пылу с жару подлетело новое видео от их developer advocate — Jecelyn Yeen. (Понятия не имею, как пишутся на русском ни должность ни имя, сорян).

Про отладку CSS Grid: https://www.youtube.com/watch?v=M8SlBgul8ao

А год назад было видео про отладку флексов, тоже нелишне будет напомнить: https://www.youtube.com/watch?v=J5n2aS37rpE

Естественно, не забываем, что у Google прекрасная документация: https://developer.chrome.com/docs/devtools/css/grid/

С датами публикации, правда, что-то не то… ну да ладно.

В качестве иллюстрации к посту вынесу отображение имён grid-area. Весьма удобно!

#css #grid #devtools
👍12🔥3
#фишка дня

Шоковый контент!

Вам, наверное, известно, что WebView — это когда в нативном приложении рендерится веб-приложение. И что такое точно есть в Android.

Я знал, что в Windows тоже применяется, знал, что в iOS вполне. Но не представлял, что даже официальные приложения Apple в macOS этим промышляют.

Если есть WebView-виджет, значит, есть и возможность его отладки?

Таки да! Следите за руками. Идём в терминал:

defaults write NSGlobalDomain WebKitDeveloperExtras -bool true
defaults write -g WebKitDeveloperExtras -bool YES


И вуаля — смотрим исходники того, что вам поставляет Apple и наслаждаемся.

Как по мне, весьма неожиданно. Поражает, насколько Apple поменяла свои правила интерфейсов, что даже встроенные web-части смотрятся настолько хорошо и нативно в контексте десктоп-приложения.

#macos #apple #webkit
🔥4👍3😁1
This media is not supported in your browser
VIEW IN TELEGRAM
#инструмент дня

Наверное, вы и так уже в курсе, но я решил написать.

Всем (хочется верить) известная песочница CodeSandbox расширила свои возможности от простой песочницы чуть сложнее CodePen до полноценного средства разработки и управления проектами от начала и до конца: https://codesandbox.io/post/announcing-codesandbox-projects

Теперь это не просто прототипирование!

Разрабатывайте где угодно, как угодно и на любом устройстве. Для iOS-устройств есть нативное приложение.

Ну и на видео для привлечения внимания показан процесс интеграции с VSCode. И думаю, больше интеграций последует.

Ну и на закуску напоминаю, что это те ребята, кто сделал адресные шорткаты вроде https://react.new/

#sandbox #project #tool #deploy
👍8
This media is not supported in your browser
VIEW IN TELEGRAM
#codepen дня

Что-то захотелось мне вам на ночь глядя дать нашпигованной няшноты.

Итак, собственно, милая (это определение автора, не надо на меня так смотреть!) солнечная система:

Demo: https://codepen.io/manz/pen/rNpeEoz
Repo: https://github.com/ManzDev/twitch-solar-system/
Demo GitHub: https://manzdev.github.io/twitch-solar-system/
Twitch Making-of: https://www.twitch.tv/videos/1430488082
Twitter: https://twitter.com/Manz

Что же в ней крутого?

Ну, это демо — на веб-компонентах. Их там семь штук плюс одно изображение (звёздное небо).

Для обучения и понимания, как работают веб-компоненты — залетает сходу.

#css #webcomponents #js
14👍1
This media is not supported in your browser
VIEW IN TELEGRAM
#инструмент дня

Очень жаль, что у меня не было под рукой этого сайта в бытность студентом.

Итак, встречайте: https://algorithm-visualizer.org/

У ребят что-то с сертификатом, но сути дела не меняет: прекрасный проект по визуализации алгоритмов. От брутфорса и сортировки до динамического, будь оно неладно, программирования.

Приглашаю накидать в комментариях подобных проектов.

#algorithms #cs #visualizations
👍12
#инструмент дня

Что-то пробило меня не тему визуализации всяческих полезностей. Алгоритмы уже можем, давайте что-нибудь ещё.

Как насчёт регулярных выражений? Там тоже есть что показать. Да и многие (я в том числе) гораздо проще воспринимают графическое решение задачи, нежели аналитическое.

Смотрим: https://regex-vis.com/

Ну согласитесь, не правда ли (?<first>^1$)|(?<second>^YES$)|(\s{2}) на КДПВ выглядит гораздо понятнее?

#regex #js #visualization
🔥10👍3
#статья дня

Чтобы разбавить инструменты, коих сотни, давайте возьмём статью. Впрочем, она тоже о визуализации.

А конкретно, о визуализации вашей JavaScript-сборки (бандла), что поставляется в браузер: Lighthouse Treemap.

Знакомое название? Lighthouse — стандарт де-факто для измерения производительности сайтов и веб-приложений и анализа способов её улучшения.

А Treemap, собственно, это его часть. Показывает из чего ваша сборка состоит, что позволит проанализировать наиболее тяжёлые её части и сделать выводы о том, как поступить: разбить на части (чанки) или заменить.

Итак, статья: https://sia.codes/posts/lighthouse-treemap/

TL;DR

Открыли DevTools, запустили анализ проекта. После прохождения анализа появится кнопка View Treemap. Жамкаем и анализируем.

Заодно нелишним будет вспомнить Statoscope и Webpack Bundle Analyzer.

Пользуемся, наслаждаемся. Неделя визуализации продолжается!

#devtools #chrome
🔥7👍1
#шпаргалка дня

Уникальное предложение в рамках недели визуализации!

Берёте короче эту пирамиду код-ревью и ваши пулл-реквесты станут не только вкусными, но и полезными: https://www.morling.dev/images/code_review_pyramid.svg

Такая себе пирамида Маслоу, но для обсуждения качества кода. От базовых вещей (но не опускаясь до того, что можно сделать автоматически) до того, что сделает ваш код действительно красивым.

#pr #process #work
👍6
Новый формат получения IT специальности - Буткемп. Что это такое?

Буткемп — методика, которую использовали в лагерях для подготовки солдат. Чтобы стать полноценным бойцом, в обычных условиях новобранцу нужно 3-4 года. В условиях Bootcamp такого результата достигали за 4 месяца. Эффективность методики обоснована тем, что на период кемпа человек полностью погружается в процесс обучения и быстрей воспринимает информацию. Сейчас этот метод обучения активно используют в Гарварде, IT-компаниях, бизнес-проектах и образовательных программах.

Для обучения IT специальностям (прежде всего программирование) формат начали использовать в 2011 году в США. Он быстро доказал свою эффективность и стал популярным. К примеру, за 2020 год IT буткемпы выпустили 24975 американцев. Для стран бывшего СССР, это новый формат.

В 2018 году в России открылся первый - Эльбрус Буткемп. С тех пор его выпускниками стали 752 человека. 93% из них нашло работу в течение 3 месяцев после выпуска. 

Буткемп работает как оффлайн (Москва и Санкт-Петербург), так и онлайн.

Подробнее о формате Буткемп можно узнать на мероприятии в ближайший вторник
👍5
#библиотека дня

А на сегодня, чтобы разбавить тему, но не опускаться до банальных библиотек построения диаграм, возьмём инструмент, близкий к корпоративным задачам.

easyData — библиотека, позволяющая вставить на сайт данные из сервисов Google: Analytics, Sheets, Search Console и в целом любых других.

Установка и использование максимально простые (главное не забыть ограничить действия ключа API в Google-консоли), пара строк кода — и вот у вас на руках SEO-панель управления :)

Есть и обучающее видео: https://youtu.be/5BvarQdBtFk?list=PLl1gkwYU90QkjQyRJijEbpouyFOUNv7MW

#seo #google #sheets #dashboard
This media is not supported in your browser
VIEW IN TELEGRAM
#codepen дня

It’s-a me, Mario!

Немного расслабимся и взглянем на прекрасно выполненную 3D-голову Mario, следящую за курсором: https://codepen.io/ivorjetski/pen/abEBjKN

Дикий объём работы, конечно. И ни строчки JS.

Слежение как всегда сделано кучей раскиданных hover-якорей.

Бонус! Ссылка на видео процесса создания: https://www.youtube.com/watch?v=GWyod2tkTxI

#css #3d #art
🔥12👎2