Highload — медіа для розробників
4.17K subscribers
5.59K photos
277 videos
18 files
6.48K links
Розповідаємо про людей, які створюють код, та про код, який вони пишуть.

Зв'язатися із редакцією можна тут: news@highload.today. А щодо розміщення реклами, будь ласка, пишіть на specials@highload.today.

Наш чат https://t.me/highloadchatt
Download Telegram
​​Специалист из MIT рассказал, почему FLoC это плохо

Магистр инженерных наук MIT и автор диссертации о машинном обучении с сохранением конфиденциальности Беннет Сайферс высказался о новой технологии Google для таргетинга рекламы в интернете под названием FLoC. По его словам, это один из самых амбициозных и потенциально самых опасных проектов Google. Специалист призывает компанию отказаться от него, приводя ряд аргументов.

Браузер с включенным FLoC будет собирать данные о привычках просмотра пользователя, а затем использовать эту информацию, чтобы отнести человека к определенной «когорте» или группе. Беннет Сайферс видит проблему в планируемом сборе так называемых отпечатков браузера (browser fingerprinting) для создания его стабильного идентификатора, а также в том, что технология будет делиться новыми личными данными с трекерами, которые уже могут идентифицировать пользователя.

Эксперт считает, что FLoC, по сути, станет сводкой недавней активности пользователя в интернете, получив которую, рекламодатели смогут овладеть всей необходимой информацией. При этом технология, по его словам, представляет одно и то же поведенческое резюме пользователя всем, с кем взаимодействует.
Автор заключает, что новая технология Google основана на ложной предпосылке, что мы должны выбирать между «старым отслеживанием» и «новым отслеживанием», но не решает проблемы.

Обсудить инициативу Google можно в нашем чате:
https://t.me/joinchat/SmcgpRwg_VuoW2L3

А полный текст статьи можно прочитать по ссылке:
https://www.eff.org/deeplinks/2021/03/googles-floc-terrible-idea

#google #privacy #floc
​​Вышел VS Code 1.54

Microsoft выпустила новую версию Visual Studio Code. Главной фичей сборки 1.54 стала возможность для пользователей Mac с чипами M1 использовать VS Code без эмуляции Rosetta. Также они смогут заметить улучшенную производительность и более длительное время автономной работы при запуске VS Code. Среди других изменений в новой версии можно отметить:

— улучшенную навигацию по словам в Windows-версии, и роли для представлений и кнопок;
— локальные процессы терминала теперь восстанавливаются при перезагрузке окна;
— в Breakpoints view добавлена кнопка “Х” для упрощения удаления брейкпоинтов;
—в VS Code теперь интегрирована поддержка TypeScript 4.2.2;
— появилась возможность персонализировать изображения значков VS Code с помощью тем значков продуктов;
— записные книжки теперь автоматически перезагружаются при изменении файла на диске, и когда в них нет несохраненных изменений;
— порты стали отображаться в виде таблицы.

Также Microsoft продолжает работать над расширением GitHub Pull Request and Issues и расширением для удаленной разработки.

С полным списком изменений можно ознакомиться по ссылке:
https://code.visualstudio.com/updates/v1_54#_automatically-reload-notebooks

#vscode #microsoft #mac #typescript
​​Обновление состояния компонента с помощью useState и useEffect

Сегодня разберем проблемы с обновлением состояния с помощью хуков на React. Иногда возникают сложности с пониманием как правильно обновлять состояние компонента с помощью хуков useState и useEffect. Если попробовать изменить состояния с помощью useState напрямую, никаких изменений не произойдет. Дело в том, что, подобно setState в классовых компонентах, обновление состояния с помощью useState также является асинхронным и не будет отражено немедленно.

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

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

Полный тред со всеми возможными решениями можно найти по ссылке: https://stackoverflow.com/questions/54069253/usestate-set-method-not-reflecting-change-immediately

#javascript #reactjs #usestate #useeffect
​​Разработчик запустил Minecraft на “зеркалке”

На YouTube вышло видео, на котором пользователь под псевдонимом Turtius запускает сервер Minecraft на цифровой зеркальной фотокамере Canon EOS SL2 (200D). Видео уже посмотрели более 16 тыс. человек. На нем Turtius показывает, что на фотоаппарате загружается сервер Minecraft, а сам клиент установлен на компьютере Linux Mint 20.1.

Автор канала рассказал, что проект начался как средство обучения реинжинирингу сетевого процессора на Canon EOS SL. После того как Turtius смог реконструировать сетевой модуль, он установил сервер Minecraft «avrcraft», оптимизированный для работы на 8-битных устройствах, с помощью разветвленной версии популярного программного дополнения Canon Magic Lantern. В комментариях один из пользователей сделал вызов автору ролика, предложив ему в следующий раз запустить Minecraft на “умном” холодильнике.

Если хотите повторить эксперимент, исходный код Turtius есть на GitHub, но для этого вам также понадобится Canon EOS SL2 и готовность расстаться с ним. По словам автора, он не несет ответственности, если камера в неумелых руках превратится в итоге в пресс-папье.

Minecraft — не единственного игровое ПО, которое можно запустить на цифровой камере. Несколько лет назад энтузиаст запустил на фотоаппарате Kodak 1998 года классическую версию Doom и смог управлять игрой через клавиши навигации меню.

Видео доступно по ссылке:
https://www.youtube.com/watch?v=lbq3LO0KYrk&feature=emb_logo

#minecraft #canon #github #youtube
​​Встречайте следующего члена жюри нашего конкурса pet-проектов!

Олег Лавренко — Head of Engineering Department в компании Genesis на проекте AmoMedia, вел курс по DevOps для системных администраторов. Оценивает Backend-проекты на Python.

У Олега больше восьми лет опыта в IT: от инжиниринговых позиций до руководителя департамента, где он занимается оптимизацией процессов разработки, строит инженерную культуру, проектирует архитектуру приложений и сервисов AmoMedia.

“Для меня IT — это не просто сфера деятельности, это увлечение с детства. Я люблю не только изучать технологии, но и делиться знаниями с другими. Благодаря большой экспертизе в разработке и в бизнесе я хочу помогать талантливым специалистам реализовывать и презентовать свои идеи. Pet-проекты — это отличная возможность изучить технологии, с которыми не работаешь в компании, проверить бизнес-идею и научится смотреть на IT не только со стороны разработки. Ведь за каждым продуктом стоит не просто код и идея. Продукт — это прежде всего команда, которая его развивает”, — рассказал он.

Заявки на участие в конкурсе можно подать до 14 марта на странице:
https://specials.highload.today
#конкурс #жюри
​​Microsoft выпустила платформу для “голопортации”

На конференции Ignite 2021 Microsoft показала новую платформу смешанной реальности на базе облака Azure для дистанционной совместной работы и общения под названием Mesh. Платформа способна передавать зрительный контакт, мимику и жесты виртуальных аватаров собеседников, а также позволяет им взаимодействовать с 3D-моделями.

Mesh объединяет Azure Active Directory и учетные записи Microsoft для идентификации и использует Microsoft Graph для связи контента и действий пользователей. Также платформа пользуется вычислительными ресурсами, данными и искусственным интеллектом Azure. Платформа поддерживает большинство VR-гарнитур, мобильные телефоны, планшеты, ПК и HoloLens 2 от Microsoft.

Текущая версия Microsoft Mesh находится в ограниченной бесплатной предварительной версии. В ней разработчики могут опробовать Mesh на HoloLens и запросить доступ к размещению виртуальных событий в AltspaceVR с поддержкой Mesh.

Полный текст статьи можно прочитать по ссылке:
https://www.i-programmer.info/news/190-augmentedvirtual-reality-arvr/14404-microsoft-mesh-a-platform-for-holoportation.html

#microsoft #ar #vr #mr
​​Разработчик рассказал, как искать ошибки в бесконечных строках кода

Веб-разработчик Майкл Хрупкала в своем блоге на dev.to поделился с подписчиками советами по отладке ошибок в программе. Автор утверждает, что эти действия помогут, если вы даже совершенно растерялись и имеете более 200 строк кода. Майкл призывает разработчиков опираться на следующую последовательность действий.

Шаг 0. Проверьте грамматику и орфографию. По его словам, 98% допускаемых им ошибок связаны с неправильной запятой или неправильным написанием слова «this». Для решения проблемы автор призывает разработчиков пользоваться функциями IDE, такими как auto-complete, error selection и color-coding.

Шаг 1. Читайте построчно. Объясните себе, что должна делать каждая из строк, и напоминайте себе определение каждой функции. Возможно, вы забыли оператор «OR» или написали splice () вместо slice (). У вас достаточно знаний, чтобы все исправить.

Шаг 2. Определите то, чего вам не хватает. У вас есть представление о том, в какой строке кода проблема? Если нет, проверьте сообщение об ошибке еще раз, чтобы выявить ее.

Шаг 3. Изучайте новые вещи. Не расстраивайтесь, когда сталкиваетесь с новым термином/концепцией. Это вызов и возможность для роста. Используйте интернет для поиска необходимой информации.

Шаг 4. Найдите разработчиков, которые решили или решают схожую проблему. В этом помогут такие ресурсы как, например, Stack Overflow или Reddit.

Полная версия поста доступна по ссылке:
https://dev.to/mikechrupcala/4-steps-to-debug-any-problem-3565

#debug #debugging
​​Как использовать Styled-Components в React

Styled-Components — библиотека, реализующая принцип CSS-in-JS для React.js. Преимущества ее использования: автоматическое добавление префиксов для разных браузеров, удаление неиспользованных стилей и независимость имен компонентов.

Установить библиотеку в проект очень просто. Например, с помощью команды менеджера пакетов Yarn: yarn add styled-components.

Импортируем библиотеку. Далее объявляем наш “стилизованный” компонент StyledButton. Присваиваем ему импортированный объект styled, после точки пишем нужный тег, в данном случае button, и в одинарных кавычках — обычные стили CSS.

Эти стили функциональны, их можно динамически менять. В примере по ссылке динамически меняется цвет кнопки с помощью тернарного оператора. Нужный цвет объявляется в атрибутах объявленного компонента уже внутри обычного React-компонента, у нас это Profile. Эти атрибуты записываются в специальную переменную props, которую можно использовать, в свою очередь, для динамического изменения стилей. Styled-Components рендерят обычные HTML-теги, а значит, они принимают стандартные атрибуты, такие как type="submit" для кнопки или события, например onClick.

Основано на статье: https://dev.to/paulmercieca/how-to-use-styled-components-in-react-54o5

#reactjs #styledcomponents #javascript
​​Сегодня представляем еще одного члена жюри нашего конкурса pet-проектов!

Ростислав Антонов — Lead Software Engineer в IT-компании EPAM. Оценивает проекты на Android.

У Ростислава 16 лет опыта в сфере разработки приложений, карьеру он начинал с Java Desktop и Java Backend, а с Android работает с 2010 года. За время работы использовал языки Sinclair Basic, Assembler, VBScript, Jscript, WSHost, Java, Pascal, Visual Basic, C, C++, Perl, .NET C#, J#, SQL, Kotlin и др. В 2016 году написал несколько приложений для Amazon Alexa. Кроме того, Ростислав в качестве ментора участвует в тренинг-программах EPAM.

Помочь другим и научиться новому самому — его главная мотивация быть в составе жюри конкурса. “Мне всегда интересно посмотреть на то, как пишут код другие, какие подходы используют. Неважно, опытный ли это инженер или же только начинающий карьеру специалист. На мой взгляд, узнать что-то новое, научиться чему-то можно у каждого. А также мне хотелось бы быть полезным для конкурсантов, поделиться своим опытом и помочь избежать ошибок”, — рассказал Ростислав.

Заявки на участие в конкурсе можно подать до 14 марта на странице
https://specials.highload.today

#конкурс #жюри
​​Masonry-раскладка на чистом CSS

Компьютерный инженер Темани Афиф рассказал в своем блоге на dev.to, как создать masonry-раскладку (или “плиточную верстку”) с помощью чистого CSS. Это экспериментальная функция, которую можно протестировать в браузере Firefox.

Masonry-раскладку обычно делают с помощью JS или большого количества CSS-правил, но разработчик смог выполнить ее в находящейся в разработке спецификации CSS Grid Level 3. Она добавляет masonry-раскладку в качестве дополнительного режима для Grid-контейнеров. Все, что нужно, это добавить контейнеру следующее CSS-правило: grid-template-rows: masonry;.

Чтобы создать masonry-раскладку, нужно сначала включить флаг. Для этого:

1. Откройте браузер Firefox и напишите в адресной строке about:config;
2. произведите поиск по masonry;
3. придайте флагу значение true.

Спецификация вводит множество свойств для управления mansory-раскладкой (например, изменение направления), но автор говорит, что пока нет смысла их заучивать, так как они могут измениться в любой момент.

Полное описание метода доступно по ссылке:
https://dev.to/afif/finally-a-css-only-solution-to-create-masonry-layouts-1obh

#css #masonry #firefox
​​Google и проклятие цифровой нефти

Корпорация Google находится под проклятием «цифровой нефти», заявил в личном блоге создатель фреймворка Ruby on Rails и вики-движка Instiki Давид Хейнемейер Ханссон. По его мнению, из-за гигантской прибыли, получаемой от рекламы в интернете, Google еще долгое время не будет способна нормально вести новые проекты. Компания печально известна массой сервисов (Google Play Music, Hangouts, Stadia, Freebase, Picasa и т. д), которые закрываются менее чем через 18 месяцев или подвергаются очередному ребрендингу.

В качестве аналога автор приводит проклятие нефтегазового государства — когда у страны с практически неиссякаемыми запасами нефти из-за искажения и коррумпирования экономического сектора пропадает необходимость инвестировать в другие отрасли. Это, по мнению Ханссона, объясняет, почему Google структурно склонна отказываться практически от всего, что пытается сделать. Зачем тратить энергию на то, чтобы вынашивать новые идеи в течение нескольких лет и запускать качественные отлаженные проекты, если можно просто повернуть винты на своей лебедке интернет-рекламы еще на несколько градусов и получить больше прибыли.

Дэвид Хейнемейер Ханссон заключает, что Google не вернется к созданию успешных проектов, какими были поиск, Gmail и карты, пока «проклятие» не будет снято.

А что думаете вы? Правда ли Google перестала выпускать качественные продукты, и что нужно корпорации для возвращения к былым достижениям?

Обсудить можно в нашем чате: https://t.me/joinchat/SmcgpRFprYE5yOfv

Полный текст поста смотрите по ссылке:
https://world.hey.com/dhh/google-suffers-from-a-digital-petro-curse-908e919a

#google
​​Преобразование изображений в .csv

На GitHub пользователь под ником artperrin опубликовал способ преобразования таблицы с числами, которая создает изображение, в рабочий файл .csv. Программа использует библиотеку алгоритмов OpenCV для Python для обработки изображения и Tesseract для распознавания чисел.

В репозиторий входят:

— исходный код image2csv.py;
— файл tools.py, в котором реализованы полезные функции;
— файл grid_detector.py для автоматического определения сетки;
— папка с файлами для тестирования.

По словам автора, по умолчанию программа определяет сетку таблицы автоматически. При этом для параметрической идентификации геометрических элементов изображения используется преобразование Хафа OpenCV, а для обнаружения границ изображения — алгоритм Кенни. Распознавание сетки вручную осуществляется с помощью мыши и терминала.

Автор признается, что эта программа не идеальна и не работает с десятичными числами, но отлично справляется с отрицательными. Также пользователь должен быть осторожен с перечеркнутым нулем «Ø», который идентифицируется Tesseract как цифра «6».

С полной версией метода можно ознакомиться по ссылке:
https://github.com/artperrin/image2csv

#python #opencv #csv #tesseract
​​Вышел набор новых API для разработчиков Relay

Компания Facebook выпустила Relay Hooks. Это набор новых, более удобных для разработчиков Relay API, созданных на основе React Hooks. Новые интерфейсы полностью совместимы с существующими, поэтому авторы рекомендуют разработчикам писать любой новый код с помощью Relay Hooks.

Создатели добились улучшения существующих API на основе контейнеров. Relay Hooks способствуют повышению опыта разработчика, особенно при повторном получении данных и разбивке на страницы. Имеют повышенную безопасность типов с большим охватом. Позволяют воспользоваться преимуществами функций компилятора для автоматизации задач. Также новые API полностью совместимы с React Strict Mode.

Интерфейсы Relay Hooks используются в Facebook с середины 2019 года. На них полностью работает новая версия сайта.

Полный текст релиза доступен по ссылке:
https://developers.facebook.com/blog/post/2021/03/09/introducing-relay-hooks-improved-react-apis-relay/

#facebook #reactjs #relay #reacthooks
​​Определение языка и классификация слов в предложениях на C#

Интересное решение для разработчиков на C#. Его автор предлагает использовать библиотеку с открытым исходным кодом Catalyst вместо коммерческих решений, наподобие Curiosity AI, чтобы определять язык, на котором написан текст, и типы слов в нем.

Используя библиотеку .NET с открытым исходным кодом, легко выяснить, на каком языке написано предложение, абзац или документ, и затем классифицировать слова в каждом предложении на глаголы, существительные и т. д.

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

Полный текст доступен по ссылке: https://www.productiverage.com/language-detection-and-wordsinsentence-classification-in-c-sharp
#csharp #catalyst #nuget
​​Срочно обновите Git

9 марта Git выпустил две новые версии для решения проблемы CVE-2021-21300: уязвимости системы безопасности в механизме отложенной проверки, используемой Git LFS во время выполнения операции «git clone», затрагивающей версии Git 2.15 и выше.

Самый эффективный способ защиты от этой уязвимости — обновление программы до версии 2.30.2. Если быстро сделать это невозможно, в Git советуют снизить риск ошибки одним из следующих действий:

— отключите поддержку символических ссылок в Git, выполнив команду «git config -- global core.symlinks false»;
— отключите поддержку фильтров процесса;
— избегайте клонирования ненадежных репозиториев.

В компании отметили, что сам GitHub не уязвим для этой атаки, так как он не хранит копии репозиториев на своих серверах.

Полный текст статьи и ссылка на Git 2.30.2:
https://github.blog/2021-03-09-git-clone-vulnerability-announced/

#git #github
​​Идет последняя неделя приема заявок на наш конкурс pet-проектов для разработчиков, а мы продолжаем знакомить вас с членами жюри!

Богдан Пасечник — Senior PHP Developer в компании Genesis на проекте Lift. Создал CRM-систему для агентств недвижимости, которая успешно работает и конкурирует на рынке. Оценивает бэкенд-проекты на PHP.

Богдан больше 14 лет занимается программированием, последние четыре года развивается в архитектуре IT-решений и DevOps. Работает с тремя языками программирования: PHP, Go, JavaScript, а также интересуется Dart, Python и TypeScript.

“В свободное время я работаю над собственными проектами и занимаюсь менторством. В Украине очень много талантливых специалистов, и я рад делиться знаниями и развивать IT-комьюнити. Pet-проекты помогают специалисту изучить новые технологии в “боевых” условиях и без рисков для компании, а также прокачать экспертизу”, — рассказал Богдан.

Заявки на участие в конкурсе можно подать до 14 марта на странице
https://specials.highload.today

#конкурс #жюри
​​Новый React-фреймворк в Deno

Для React.js вышел новый фреймворк с открытым исходным кодом под названием Aleph.js. Он вдохновлен популярным фреймворком Next.js и находится на стадии альфа-тестирования. В качестве среды выполнения Aleph.js использует Deno.

По словам создателей, Aleph.js имеет множество полезных функций, которые позволят разработчикам настраивать веб-страницы и развертывать их динамическими способами. Среди прочих особенностей можно отметить:

— Использование общей структуры маршрутизации для создания веб-страниц и точки доступа API. Адрес страницы или точки доступа API берется из имени файла данных. Файлы данных могут быть в нескольких форматах, включая .js, mjs, .jsx, .ts, .tsx, .md.
— Поддержку SSR и SSG. Платформа поддерживает как рендеринг на стороне сервера, так и создание статических сайтов. Aleph.js по умолчанию выполняет предварительную визуализацию страниц, поэтому клиентскому браузеру не нужно делать всю работу.
— Горячую замену модулей (HMR). Функция Hot Module Replacement позволяет перезагружать страницу в браузере, обновляя текущее состояние приложения.
— Легкую кастомизацию. Фреймворк предоставляет множество вариантов настройки как в приложении JavaScript, так и на страницах, которые оно генерирует. Настраивая приложение, React по умолчанию, можно контролировать способ инициализации страницы или вызова API.

Создатели Aleph.js заявляют, что фреймворк будет работать с последними версиями Google Chrome, Microsoft Edge, Mozilla Firefox, Safari и Opera. Платформа, по их словам, возможно, может работать и в других браузерах, но они еще не были протестированы на совместимость.

Полный текст релиза можно посмотреть по ссылке:
https://blog.logrocket.com/first-look-at-aleph-js-a-new-react-framework-in-deno/

#reactjs #deno #alephjs
​​Как сделать из веб-сайта веб-приложение (а главное — зачем?)

Поделимся полезным опытом юного разработчика из Индии: как из браузерной игры сделать прогрессивное веб-приложение (PWA).

https://highload.today/kak-sdelat-iz-veb-sajta-veb-prilozhenie-a-glavnoe-zachem/
​​Sigstore: сервис для верификации ПО с помощью цифровых подписей

Linux Foundation, Google, Red Hat и университет Пердью разработают сервис для верификации ПО с помощью цифровых подписей, чтобы взломы как SolarWinds больше не повторялись.

https://highload.today/sigstore-servis-dlya-verifikatsii-po-s-pomoshhyu-tsifrovyh-podpisej/

#google #linuxfoundation #redhat #sigstore
​​На каком ПО летают на Марсе?

Вместе с ровером на красную планету приземлился вертолет Ingenuity. В первый раз винтокрылая машина поднимется в воздух на другой планете. Единственная цель полета — продемонстрировать саму его возможность, никакой другой научной задачи он не несет. Машина использует множество запчастей, которые находятся в свободной продаже, и свободное ПО, так что энтузиасты смогут попытаться собрать аналог сами.

Читайте всю статью на сайте: https://highload.today/na-kakom-po-letayut-na-marse/

#cplusplus #Ingenuity #linux #MarsHelicopter #Mars #NASA