Forwarded from Coding: работа и стажировки для программистов
Печальная правда о пропуске копий в C++
[ Статья ]
[ Статья ]
Telegraph
Печальная правда о пропуске копий в C++
Пропуск копий (copy elision) – это оптимизация компилятора, которая, как и следует из имени, устраняет лишние операции копирования и перемещения. Она аналогична классической оптимизации размножения копий, но выполняется конкретно для объектов C++, которые…
Forwarded from Coding: работа и стажировки для программистов
Ни черта не умеешь?
Постоянно ленишься, но хочешь получать хотя бы $500?
Тогда ты нам подходишь!
Фаундер как раз ищет раздолбаев и бездельников. Требования: знать, что такое компьютер и уметь тыкать по клавиатуре.
Даже чайники получают 35.000₽, а ребята с опытом – от 80.000₽.
НО! Такие денежные вакансии публикуются ТОЛЬКО на Фаундере, поэтому подписывайся и готовь номер карты.
Постоянно ленишься, но хочешь получать хотя бы $500?
Тогда ты нам подходишь!
Фаундер как раз ищет раздолбаев и бездельников. Требования: знать, что такое компьютер и уметь тыкать по клавиатуре.
Даже чайники получают 35.000₽, а ребята с опытом – от 80.000₽.
НО! Такие денежные вакансии публикуются ТОЛЬКО на Фаундере, поэтому подписывайся и готовь номер карты.
Forwarded from Defront — про фронтенд-разработку и не только (Alexander Myshov)
Использование AbortController и AbortSignal в Node.js
Джеймс Снелл — контрибьютор Node.js — написал статью про использование AbortController и AbortSignal в Node.js — "Using AbortSignal in Node.js".
Последние два года разработчики Node.js работают над добавлением разных API web-платформы. Результатом этой работы стала реализация AbortController, который появился в стабильной версии Node.js 16.
AbortController и AbortSignal реализуют интерфейс для отмены выполнения асинхронных операций. С его помощью можно прерывать таймеры, асинхронные запросы, отписываться от событий, добавленных с помощью интерфейса EventTarget, который поддерживают некоторые API Node.js. В статье рассказывается о том как использовать AbortController и AbortSignal на примере прерывания асинхронного события по таймауту.
Рекомендую почитать статью всем, так как AbortController доступен не только в Node.js, но и во всех актуальных браузерах.
#nodejs #async #api
https://www.nearform.com/blog/using-abortsignal-in-node-js/
Джеймс Снелл — контрибьютор Node.js — написал статью про использование AbortController и AbortSignal в Node.js — "Using AbortSignal in Node.js".
Последние два года разработчики Node.js работают над добавлением разных API web-платформы. Результатом этой работы стала реализация AbortController, который появился в стабильной версии Node.js 16.
AbortController и AbortSignal реализуют интерфейс для отмены выполнения асинхронных операций. С его помощью можно прерывать таймеры, асинхронные запросы, отписываться от событий, добавленных с помощью интерфейса EventTarget, который поддерживают некоторые API Node.js. В статье рассказывается о том как использовать AbortController и AbortSignal на примере прерывания асинхронного события по таймауту.
Рекомендую почитать статью всем, так как AbortController доступен не только в Node.js, но и во всех актуальных браузерах.
#nodejs #async #api
https://www.nearform.com/blog/using-abortsignal-in-node-js/
Nearform
Using AbortSignal in Node.js | Nearform
Nearform is an independent team of engineers, designers and strategists. We build digital capability and software solutions for ambitious enterprises seeking sustained business impact. We love what we do.
Forwarded from Defront — про фронтенд-разработку и не только (Alexander Myshov)
Лучшие практики использования виджетов сторонних сервисов
Лина Сохони, Эдди Османи и Кэти Хэмпениус написали статью о лучших практиках подключения сторонних виджетов — "Best practices for using third-party embeds".
В статье предлагается использовать ленивую загрузку содержимого iframe с помощью атрибута
Ещё ребята рекомендуют использовать готовые библиотеки для ленивой загрузки виджетов (lazysizes), создания фасадов (lite-youtube-embed, lite-vimeo-embed, react-live-chat-loader) и уменьшения непредсказуемого сдвига контента (Layout Shift Terminator).
Хорошая статья. Рекомендую почитать всем, кто интересуется темой производительности.
#performance #tool
https://web.dev/embed-best-practices/
Лина Сохони, Эдди Османи и Кэти Хэмпениус написали статью о лучших практиках подключения сторонних виджетов — "Best practices for using third-party embeds".
В статье предлагается использовать ленивую загрузку содержимого iframe с помощью атрибута
loading="lazy". Некоторые виджеты поддерживают ленивую загрузку из коробки, например, в социальных плагинах Facebook для этого можно использовать атрибут data-lazy="true". Есть хороший совет использовать фасады для сторонних виджетов, чтобы пользователи не загружали лишний код при открытии страницы. Затрагивается тема непредсказуемого сдвига контента (Layout Shift).Ещё ребята рекомендуют использовать готовые библиотеки для ленивой загрузки виджетов (lazysizes), создания фасадов (lite-youtube-embed, lite-vimeo-embed, react-live-chat-loader) и уменьшения непредсказуемого сдвига контента (Layout Shift Terminator).
Хорошая статья. Рекомендую почитать всем, кто интересуется темой производительности.
#performance #tool
https://web.dev/embed-best-practices/
web.dev
Best practices for using third-party embeds | Articles | web.dev
This article discusses performance best practices that you can use when loading third-party embeds, efficient loading techniques and the Layout Shift Terminator tool that helps reduce layout shifts for popular embeds.
Forwarded from Defront — про фронтенд-разработку и не только (Alexander Myshov)
Релиз Node.js 17 и план релиза Node.js 16 LTS
Сегодня вышла новая мажорная версия Node.js, которая становится веткой current — "Node.js 17 is here!".
В новой версии продолжается работа над промисификацией основных API — была добавлена поддержка промисов в модуль
На следующей неделе запланирован перевод Node.js 16 в статус LTS с поддержкой до 30 апреля 2024 года. Node.js 16 LTS будет первой версией, которая будет поставляться с бинарниками для процессоров семейства Apple M1.
Поддержка Node.js 12 LTS заканчивается в апреле 2022 года. Разработчики рекомендуют обновиться на новую версию.
#nodejs #release
https://medium.com/the-node-js-collection/node-js-17-is-here-8dba1e14e382
Сегодня вышла новая мажорная версия Node.js, которая становится веткой current — "Node.js 17 is here!".
В новой версии продолжается работа над промисификацией основных API — была добавлена поддержка промисов в модуль
readline. OpenSSL обновлён до третьей версии. Стек-трейсы по умолчанию будут включать версию Node.js. V8 обновлён до версии 9.5. В нём появилась поддержка новых типов для Intl.DisplayNames и новых опций форматирования часового пояса в Intl.DateTimeFormat.На следующей неделе запланирован перевод Node.js 16 в статус LTS с поддержкой до 30 апреля 2024 года. Node.js 16 LTS будет первой версией, которая будет поставляться с бинарниками для процессоров семейства Apple M1.
Поддержка Node.js 12 LTS заканчивается в апреле 2022 года. Разработчики рекомендуют обновиться на новую версию.
#nodejs #release
https://medium.com/the-node-js-collection/node-js-17-is-here-8dba1e14e382
Medium
Node.js 17 is here!
This blog was written by Bethany Griggs, with additional contributions from the Node.js Technical Steering Committee and project…
Forwarded from Defront — про фронтенд-разработку и не только (Alexander Myshov)
Релиз Chrome 95
Вчера вышла новая версия Chrome. Пит Лепаж и Джеселин Ин рассказали о новинках релиза — "New in Chrome 95".
В Chrome 95 был добавлен
Разработчики Edge добавили поддержку Eye Dropper API. С его помощью можно легко реализовать "пипетку" — инструмент для визуального получения цвета любого элемента страницы.
В рамках Origin Trial можно включить сокращение информации в User-Agent. Об этом изменении в сентябре была отдельная статья.
В WebAssembly появилась поддержка исключений. Раньше при компиляции C++ или Rust-кода инициирование и обработка исключений реализовывались на уровне JavaScript. Теперь обработка исключений не выходит за рамки WebAssembly, улучшая производительность приложений.
В Chrome DevTools теперь можно изменять размеры в стилях без использования клавиатуры. Добавлена возможность скрытия предупреждений. Улучшена эргономика логирования объектов — неунаследованные свойства отображаются жирным текстом в верху списка. Lighthouse обновлён до версии 8.4.
https://developer.chrome.com/blog/new-in-chrome-95/
https://developer.chrome.com/blog/new-in-devtools-95/
Вчера вышла новая версия Chrome. Пит Лепаж и Джеселин Ин рассказали о новинках релиза — "New in Chrome 95".
В Chrome 95 был добавлен
URLPattern — API для упрощения извлечения данных из URL-строки. URLPattern был вдохновлён механизмом роутинга из Express и Ruby on Rails:
const url = '/document/d/1ssdf5c/edit';
const pattern = new URLPattern({
pathname: '/:kind/d/:fileID/:mode',
hash: '*',
});
const r = pattern.exec(url);
Разработчики Edge добавили поддержку Eye Dropper API. С его помощью можно легко реализовать "пипетку" — инструмент для визуального получения цвета любого элемента страницы.
В рамках Origin Trial можно включить сокращение информации в User-Agent. Об этом изменении в сентябре была отдельная статья.
В WebAssembly появилась поддержка исключений. Раньше при компиляции C++ или Rust-кода инициирование и обработка исключений реализовывались на уровне JavaScript. Теперь обработка исключений не выходит за рамки WebAssembly, улучшая производительность приложений.
В Chrome DevTools теперь можно изменять размеры в стилях без использования клавиатуры. Добавлена возможность скрытия предупреждений. Улучшена эргономика логирования объектов — неунаследованные свойства отображаются жирным текстом в верху списка. Lighthouse обновлён до версии 8.4.
https://developer.chrome.com/blog/new-in-chrome-95/
https://developer.chrome.com/blog/new-in-devtools-95/
Forwarded from Defront — про фронтенд-разработку и не только (Alexander Myshov)
Космические лучи и ошибки в программах
В университете у меня был предмет по теории управления. Там преподаватель рассказывал про альфа-частицы и протоны из космоса, переключающие биты в процессоре и ломающие программы. На эту тему на youtube-канале Veritasium было опубликовано видео — "The Universe is Hostile to Computers".
Ошибки, вызванные подобными явлениями, называются нарушениями в результате единичного события (single-event upset, SEU). Их учитывают при проектировании микроэлектроники и при разработке программного обеспечения, которое должно надёжно работать в условиях высокой радиации и повышенного влияния космических лучей. По этой причине в космосе вычисления дублируют на независимых компьютерах, а NASA во многих космических миссиях использует специальную версию процессора PowerPC — RAD750. По сравнению с обычными процессорами RAD750 в 30 раз более устойчив к возникновению SEU.
Если вы столкнулись с невоспроизводимым багом, то, возможно, проблема не в программе, а в частице, прилетевшей из соседней галактики.
#programming #debug #video
https://www.youtube.com/watch?v=AaZ_RSt0KP8
https://www.youtube.com/watch?v=jOTM9T59IX4 (на русском языке)
В университете у меня был предмет по теории управления. Там преподаватель рассказывал про альфа-частицы и протоны из космоса, переключающие биты в процессоре и ломающие программы. На эту тему на youtube-канале Veritasium было опубликовано видео — "The Universe is Hostile to Computers".
Ошибки, вызванные подобными явлениями, называются нарушениями в результате единичного события (single-event upset, SEU). Их учитывают при проектировании микроэлектроники и при разработке программного обеспечения, которое должно надёжно работать в условиях высокой радиации и повышенного влияния космических лучей. По этой причине в космосе вычисления дублируют на независимых компьютерах, а NASA во многих космических миссиях использует специальную версию процессора PowerPC — RAD750. По сравнению с обычными процессорами RAD750 в 30 раз более устойчив к возникновению SEU.
Если вы столкнулись с невоспроизводимым багом, то, возможно, проблема не в программе, а в частице, прилетевшей из соседней галактики.
#programming #debug #video
https://www.youtube.com/watch?v=AaZ_RSt0KP8
https://www.youtube.com/watch?v=jOTM9T59IX4 (на русском языке)
YouTube
The Universe is Hostile to Computers
Tiny particles from distant galaxies have caused plane accidents, election interference and game glitches. This video is sponsored by Brilliant. The first 200 people to sign up via https://brilliant.org/veritasium get 20% off a yearly subscription.
This…
This…
Forwarded from Defront — про фронтенд-разработку и не только (Alexander Myshov)
28 октября в 19:00
Tech Talks Зарплаты.ру в Новосибирске
Tech Talks — это тематическая дискуссионная группа, открытый микрофон. Нет деления на докладчика и участника: наравне участвуют все, кто хочет. Модератор встречи задаёт и поддерживает общий вектор.
Будет две части:
До синьора и обратно: как развиваться в IT?
Поговорим о софт и хард скиллах, системе грейдов, карте роста, скорости, возрасте. Что такое стратегия развития и где искать помощи — будем разбираться вместе.
Деградируем правильно!
Трэш IT-квиз, пиво и разговоры о технологиях — что ещё нужно, чтобы отключиться от спринтов, конфколлов и дедлайнов? Призы победителям, конечно! Отдыхаем, нетворкаем и репетируем конец рабочей недели в компании коллег.
Место проведения: Новосибирск, Красный проспект 22, "Типография".
Регистрация на таймпэде: https://zarplata-ru-events.timepad.ru/event/1822099/
P.S. Велком пиво и еда от Зарплаты 🍻
Tech Talks Зарплаты.ру в Новосибирске
Tech Talks — это тематическая дискуссионная группа, открытый микрофон. Нет деления на докладчика и участника: наравне участвуют все, кто хочет. Модератор встречи задаёт и поддерживает общий вектор.
Будет две части:
До синьора и обратно: как развиваться в IT?
Поговорим о софт и хард скиллах, системе грейдов, карте роста, скорости, возрасте. Что такое стратегия развития и где искать помощи — будем разбираться вместе.
Деградируем правильно!
Трэш IT-квиз, пиво и разговоры о технологиях — что ещё нужно, чтобы отключиться от спринтов, конфколлов и дедлайнов? Призы победителям, конечно! Отдыхаем, нетворкаем и репетируем конец рабочей недели в компании коллег.
Место проведения: Новосибирск, Красный проспект 22, "Типография".
Регистрация на таймпэде: https://zarplata-ru-events.timepad.ru/event/1822099/
P.S. Велком пиво и еда от Зарплаты 🍻
Forwarded from Defront — про фронтенд-разработку и не только (Alexander Myshov)
Уменьшение размера npm-пакетов AWS SDK
Тривикрам Камат из Amazon написал статью про опыт уменьшения размера npm-пакетов — "How we halved the publish size of modular AWS SDK for JavaScript clients".
Тривикрам работает над JavaScript-версией AWS SDK, который используется в окружениях с жёсткими квотами, поэтому размер npm-пакетов играет важную роль. Для сокращения объёма устанавливаемого кода были удалены JSDoc-комментарии из JS- и d.ts-файлов, сгенерированных с помощью библиотеки
Благодаря удалению лишнего кода размер пакетов уменьшился на ~50%.
#npm #optimization #typescript
https://aws.amazon.com/blogs/developer/how-we-halved-the-publish-size-of-modular-aws-sdk-for-javascript-clients/
Тривикрам Камат из Amazon написал статью про опыт уменьшения размера npm-пакетов — "How we halved the publish size of modular AWS SDK for JavaScript clients".
Тривикрам работает над JavaScript-версией AWS SDK, который используется в окружениях с жёсткими квотами, поэтому размер npm-пакетов играет важную роль. Для сокращения объёма устанавливаемого кода были удалены JSDoc-комментарии из JS- и d.ts-файлов, сгенерированных с помощью библиотеки
downlevel-dts для старых версий TypeScript. Был удалён исходный TypeScript-код и сорсмапы. Для удобства отладки запланирован релиз специальной дебаг-версии пакетов.Благодаря удалению лишнего кода размер пакетов уменьшился на ~50%.
#npm #optimization #typescript
https://aws.amazon.com/blogs/developer/how-we-halved-the-publish-size-of-modular-aws-sdk-for-javascript-clients/
Amazon
How we halved the publish size of modular AWS SDK for JavaScript clients | Amazon Web Services
On December 15th, 2020, we announced the general availability of the AWS SDK for JavaScript, version 3 (v3). In v3, the modular packages reduce the bundle size of your application by ~75% as compared to that in AWS SDK for JavaScript, version 2 (v2). However…
Forwarded from SuperOleg dev notes
Привет!
Несколько часов назад угнали пакет
Библиотека с 8 лямов скачиваний в неделю, активно используем в tramvai.
Удалить пакеты так просто автор кажется не сможет из-за политики npm после leftpad, поэтому рекомендую проверить зависимости в своих проектах, и по необходимости зафиксировать версию
Информации пока немного, завел issue - https://github.com/faisalman/ua-parser-js/issues/536
Надеюсь, что всё-таки скоро откатят пакет, но предупредить будет не лишним)
Несколько часов назад угнали пакет
ua-parser-js, и опубликовали три вредоносные версии, возможно с криптомайнером.Библиотека с 8 лямов скачиваний в неделю, активно используем в tramvai.
Удалить пакеты так просто автор кажется не сможет из-за политики npm после leftpad, поэтому рекомендую проверить зависимости в своих проектах, и по необходимости зафиксировать версию
ua-parser-js на 0.7.28Информации пока немного, завел issue - https://github.com/faisalman/ua-parser-js/issues/536
Надеюсь, что всё-таки скоро откатят пакет, но предупредить будет не лишним)
GitHub
Security issue: compromised npm packages of ua-parser-js (0.7.29, 0.8.0, 1.0.0) - Questions about deprecated npm package ua-parser…
Hi! See a warning at npm - https://www.npmjs.com/package/ua-parser-js - This package has been hijacked. Please revert to 0.7.28 First question - Can we use range ^0.7.28, or it is not safe? Second ...
Forwarded from Defront — про фронтенд-разработку и не только (Alexander Myshov)
Новые возможности управления кешом в HTTP
Тим Пэрри написал статью про новые HTTP-заголовки для управления кешом и упрощения отладки проблем кеширования — "New HTTP standards for caching on the modern web".
Современные веб-приложения используют разные уровни кеширования, начиная кешом браузера и заканчивая кешами балансера и CDN. Для упрощения отладки проблем кеширования был добавлен HTTP-заголовок
Для более тонкого управления кешом в стандарт был добавлен Targeted Cache-Control. По сути это обычный
Тим пишет, что Cache-Status и Targeted Cache-Control находятся на стадии черновика, но спецификации уже не будут меняться кардинально.
#http #cache #spec
https://httptoolkit.tech/blog/status-targeted-caching-headers/
Тим Пэрри написал статью про новые HTTP-заголовки для управления кешом и упрощения отладки проблем кеширования — "New HTTP standards for caching on the modern web".
Современные веб-приложения используют разные уровни кеширования, начиная кешом браузера и заканчивая кешами балансера и CDN. Для упрощения отладки проблем кеширования был добавлен HTTP-заголовок
Cache-Status, с помощью которого можно отследить прохождение запроса через все уровни кеширования.Для более тонкого управления кешом в стандарт был добавлен Targeted Cache-Control. По сути это обычный
Cache-Control, который можно использовать для точечного управления кешами. Akamai и Cloudflare уже поддерживают CDN-Cache-Control, Akamai-Cache-Control и Cloudflare-CDN-Cache-Control. В будущем возможно появление Client-Cache-Control и других подобных заголовков.Тим пишет, что Cache-Status и Targeted Cache-Control находятся на стадии черновика, но спецификации уже не будут меняться кардинально.
#http #cache #spec
https://httptoolkit.tech/blog/status-targeted-caching-headers/
Httptoolkit
New HTTP standards for caching on the modern web
If you run any large public-facing website or web application on the modern web, caching your static content in a CDN or other caching service is super...
Forwarded from Defront — про фронтенд-разработку и не только (Alexander Myshov)
Автоматическая тёмная тема в Chrome
В Origin Trial Chrome 96 на Android появится поддержка автоматической тёмной темы — "Auto Dark Theme".
Автоматическая тёмная тема — это автоматическая адаптация цвета фона страницы и текста под тёмную тему операционной системы без вмешательства разработчика.
Сейчас автотема находится на этапе эксперимента, поэтому при её использовании есть неудобства. Для тонкого управления цветами отдельных элементов нужно с помощью JavaScript определить поддержку автотемы, выставить класс на корневом элементе и использовать его в CSS-правилах.
Есть возможность отказа от автотемы с помощью метатега
#ux #chrome
https://developer.chrome.com/blog/auto-dark-theme/
В Origin Trial Chrome 96 на Android появится поддержка автоматической тёмной темы — "Auto Dark Theme".
Автоматическая тёмная тема — это автоматическая адаптация цвета фона страницы и текста под тёмную тему операционной системы без вмешательства разработчика.
Сейчас автотема находится на этапе эксперимента, поэтому при её использовании есть неудобства. Для тонкого управления цветами отдельных элементов нужно с помощью JavaScript определить поддержку автотемы, выставить класс на корневом элементе и использовать его в CSS-правилах.
Есть возможность отказа от автотемы с помощью метатега
<meta name="color-scheme" content="only light">. Также для отключения автотемы на всей странице или отдельных её элементах можно использовать CSS-декларацию color-scheme: only light.#ux #chrome
https://developer.chrome.com/blog/auto-dark-theme/
Chrome for Developers
Auto Dark Theme | Blog | Chrome for Developers
Autogenerating a dark theme for light-themed sites.
Forwarded from Defront — про фронтенд-разработку и не только (Alexander Myshov)
Веб-версии Adobe Photoshop и Illustrator
На конференции Adobe MAX 2021 были представлены веб-версии Photoshop и Illustrator. Томас Натстад и Набель Аль-Шама рассказали о технологиях, которые сделали веб-версию Photoshop возможной — "Photoshop's journey to the web".
Веб-версия Photoshop использует WebAssembly и кодовую базу своего старшего брата. Чтобы производительность приложения была хорошей, порт использует новые фичи WebAssembly и Emscripten: многопоточность, SIMD и поддержку обработки исключений. Для поддержки современных дисплеев используется новое цветовое пространство P3 в canvas.
Интерфейс Photoshop построен на веб-компонентах с помощью библиотеки LitElement. В некоторых частях приложения используется React.
Photoshop for Web поддерживает только базовые функции редактирования изображений и комментирование. Также на презентации была представлена веб-версия Adobe Illustrator, но на данный момент она пока недоступна.
Adobe Photoshop и Illustrator работают только в Chrome и Edge.
#webassembly #announcement
https://web.dev/ps-on-the-web/
На конференции Adobe MAX 2021 были представлены веб-версии Photoshop и Illustrator. Томас Натстад и Набель Аль-Шама рассказали о технологиях, которые сделали веб-версию Photoshop возможной — "Photoshop's journey to the web".
Веб-версия Photoshop использует WebAssembly и кодовую базу своего старшего брата. Чтобы производительность приложения была хорошей, порт использует новые фичи WebAssembly и Emscripten: многопоточность, SIMD и поддержку обработки исключений. Для поддержки современных дисплеев используется новое цветовое пространство P3 в canvas.
Интерфейс Photoshop построен на веб-компонентах с помощью библиотеки LitElement. В некоторых частях приложения используется React.
Photoshop for Web поддерживает только базовые функции редактирования изображений и комментирование. Также на презентации была представлена веб-версия Adobe Illustrator, но на данный момент она пока недоступна.
Adobe Photoshop и Illustrator работают только в Chrome и Edge.
#webassembly #announcement
https://web.dev/ps-on-the-web/
web.dev
Photoshop's journey to the web | Articles | web.dev
Over the last three years, Chrome has been working to empower web applications that want to push the boundaries of what's possible in the browser. One such web application has been Photoshop. The idea of running software as complex as Photoshop directly in…