Highload — медіа для розробників
3.54K subscribers
5.1K photos
250 videos
13 files
5.86K links
Розповідаємо про людей, які створюють код, та про код, який вони пишуть.

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

Наш чат https://t.me/highloadchatt
Download Telegram
​​Разработчик рассказал, как искать ошибки в бесконечных строках кода

Веб-разработчик Майкл Хрупкала в своем блоге на 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
​​Остаются последние дни, чтобы подать заявку на наш конкурс pet-проектов для разработчиков! Вот еще один из его членов жюри:

Марк Олейник — Front-end Developer в компании YouScan. Оценивает проекты на React.

Марк занимается фронтендом уже больше пяти лет и “очень кайфует” от этой работы с ее особенной ответственностью перед пользователем. Он посмотрел на индустрию с разных сторон: начинал свой путь с фриланса, позже работал в небольшом стартапе, после чего попал в YouScan. Кроме того, с 2017-го по 2019 год вместе с командой занимался организацией митапов React Kyiv, что было интересным опытом не только с организаторской точки зрения, но и в техническом плане.

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

“В первую очередь, круто будет кому-то помочь. Возможно, кому-то видение со стороны поможет найти недостающие кусочки пазла. Конечно же, я буду смотреть и на качество кода — его расширяемость, читаемость, на взаимодействие компонентов системы. Но я считаю, что в pet-проекте это далеко не основное”, — добавил он.

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

#конкурс #жюри
​​Универсальное модульное тестирование по комментариям

Разработчик из Камеруна опубликовал библиотеку, которая может производить модульное тестирование скриптовых языков программирования. Она называется Testa и уже протестирована на PHP, JavaScript, Python и Ruby.

https://highload.today/universalnoe-modulnoe-testirovanie-po-kommentariyam/

#testa #php #javascript #ruby #python
​​Tailwind CSS: за и против

По данным опроса The State of CSS 2020, больше всего разработчиков в мире, использующих CSS-фреймворки, заинтересованы в изучении и применении Tailwind CSS. Команда Tailwind предлагает альтернативный подход для поддержки и стилизации HTML-разметки, но у него есть и свои противники. Мы собрали наиболее популярные доводы за и против использования этого фреймворка.

https://highload.today/tailwind-css-za-i-protiv/
​​Вышла официальная версия 7-Zip для Linux

Разработчик 7-Zip выпустил первую официальную версию для Linux. Релиз выполнен как консольное приложение и работает с операционной системой в версиях для AMD64, ARM64, x86 и armhf.

https://highload.today/7-zip-vpervye-vyshel-na-linux/

#linux #7zip
​​Microsoft «похоронила» классический Edge

Корпорация Microsoft официально прекратила поддержку устаревшей версии браузера Edge. Центр обновления компании планирует начать постепенное автоматическое удаление Legacy Edge в ежемесячный Patch Tuesday в апреле.

https://highload.today/microsoft-pohoronila-klassicheskij-edge/

А что думаете вы? Пользовались ли вы старой версией Edge и как оцениваете новую?

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

#microsoft #edge #chromium
​​NPM CLI v7 — пять самых важных фич

NPM CLI седьмой версии появился еще в октябре, но в широкий доступ ушел совсем недавно. Рассказываем, чем полезна новая версия инструмента.

https://highload.today/npm-cli-v7-pyat-samyh-vazhnyh-fich/

#npm #javascript