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

Зв'язатися із редакцією можна тут: [email protected]. А щодо розміщення реклами, будь ласка, пишіть на [email protected].

Наш чат https://teleg.eu/highloadchatt
Download Telegram
Channel name was changed to «Highload»
​​OpenAI Илона Маска показала новые нейросети

Компания OpenAI, среди основателей которой — совладелец SpaceX и Tesla Илон Маск, в начале января рассказала о новом шаге в развитии искусственного интеллекта — двух своих новых нейронных сетях.

CLIP (Contrastive Language — Image Pre-training) — нейронная сеть, которая эффективно распознает изображения и выбирает их текстовое описание из заранее заданных вариантов. CLIP тестировалась в так называемом режиме Zero-shot learning, при котором классы объектов в тесте не использовались при обучении, то есть программа встречала их впервые. Процент правильных ответов CLIP превысил результаты у других подобных программ. Полная статья об этой сети доступна по ссылке: https://openai.com/blog/clip/

DALL·E (названа в честь художника Сальвадора Дали и пиксаровского робота ВАЛЛ·И) занимается полностью противоположным и создает изображения из текста. Это нейронная сеть на основе GPT-3 (Generative Pre-trained Transformer 3 — наиболее крупная и продвинутая языковая модель в мире, которую разрабатывает OpenAI) с 12 млрд используемых параметров, которая обучалась на основе сета данных состоящих из пар “текст—изображение”.

DALL·E обнаружила в себе разнообразные способности, включая создание антропоморфных версий животных и объектов, правдоподобное объединение несвязанных понятий, визуализацию текста и применение преобразований к существующим изображениям. Оценить возможности DALL·E можно по ссылке — https://openai.com/blog/dall-e/
Как мы ржавели. История внедрения и обучения

Автор рассказывает, как после 17 лет опыта в разработке на C, C++,C#, Go и еще тысячи разных скриптов и фреймворков перейти на Rust и внедрить его в production. Реальные люди, коммиты, примеры и никаких todo-list и хеллоу-ворлдов. Ржаветь так ржаветь.

https://habr.com/ru/post/537790/
​​Next.js возглавил рейтинги симпатий разработчиков

Ресурс State of JavaScript провел ежегодный опрос JS-разработчиков о наиболее популярных и удобных для работы фреймворках. По итогам 2020 года опрошено 23,765 человек из 137 стран.

Результаты опроса в части распространенности бэкенд-фреймворков не удивили: лидером четвертый год подряд остался Express.js. Но в этом году появилось и множество новичков, самым успешным из которых стал Nuxt.js, который опередил давно известные Koa и Meteor и занял четвертое место.

А вот лидер по степени удовлетворенности разработчиков сменился: Express опустился на второе место, а первым стал Next.js. Тех, кто следит за развитием этих фреймворков, это может не удивить. Express уже несколько лет не имеет стабильной новой версии, а Next.js регулярно получает обновления. В целом по этому показателю пятерка лидеров набрала близкое количество голосов.

С полными результатами опроса можно ознакомиться по ссылкам:
https://2020.stateofjs.com/ru-RU/technologies/back-end-frameworks/
​​Svelte впервые занял лидирующую позицию по удобству среди фронтенд-фреймворков

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

А вот по общей доле использования Svelte пока далеко не в лидерах. Несмотря на значительный прирост и четвертое место, “большая тройка” фреймворков (React, Angular, Vue.js) остается в большом отрыве от него. Лидирующий много лет подряд React при поддержке Facebook прочно занял на рынке позицию, с которой его трудно будет сместить. В первую очередь из-за огромного объема legacy-кода, который никто не возьмется переписывать.

С полными результатами опроса можно ознакомиться по ссылкам:
https://2020.stateofjs.com/ru-RU/technologies/front-end-frameworks/
​​Три книги, которые надо прочитать разработчикам, от программиста из Ubisoft

Опытный программист из компании Ubisoft и автор блога про разработку Мехди Зед составил список самых полезных, по его мнению, книг для разработчиков.

Третье место: “Чистый код” Мартин Роберт.
Оригинальное название: Clean Code. A Handbook of Agile Software Craftsmanship by Robert C. Martin
Книга о том, чем отличается хороший код от плохого. По заверению Мехди Зеда, она будет служить вам везде и всегда, на протяжении всей карьеры, став, по аналогии с многопользовательскими играми, вашим “легендарным оружием”. “Чистый код” объясняет понятия от базовых до все более сложных: как правильно давать имена, как строить функции, как управлять тестами, справляться с ошибками и проектировать системы.

Второе место: “Путь программиста” Джон Сонмез
Оригинальное название: Soft Skills: The software developer's life manual by John Sonmez
Второе место в рейтинге Мехди Зеда занимает в принципе не техническая книга. По его словам, на то есть веская причина: техническая сторона работы разработчика не самая сложная, вот только поймете вы это, скорее всего, только спустя несколько лет. Сложнее всего зачастую оказывается сделать правильный выбор в карьере, идти в ногу с технологиями через обучение, оставаться продуктивным, работать с другими людьми и другие вещи, связанные с soft skills.

Первое место: “Глубокая работа” Кэл Ньюпорт
Оригинальное название: Deep Work (Rules for Focused Success in a Distracted World) by Cal Newport
Автор этой книги Кэл Ньюпорт — разработчик c дипломом Массачусетского технологического института. Главное же в ней то, что “Глубокая работа” может научить всему, что нужно знать о том, как управлять своей концентрацией и эффективно распоряжаться временем. Чтобы совмещать ответственную работу, семью и друзей не нужны сверхспособности, достаточно прочитать эту книгу, утверждает Мехди Зед.

Полный текст по ссылке: https://www.jesuisundev.com/en/top-3-must-read-books-for-developers/
​​6 главных трендов и прогнозов в фронтенд-разработке на 2021 год.

Роберто Эрнандес дал свое видение о развитии фронтенд-разработки в 2021 году.

Все тенденции и прогнозы основаны на надежных источниках, таких как Stack Overflow Survey, State of JS, State of Frontend, собственного опыта и мнений экспертов по фронтенду.

1. JavaScript продолжит свое господство
Согласно опросу разработчиков Stack Overflow 2020 года, JavaScript остается самым известным и изучаемым языком программирования в мире уже восемь лет подряд.
Исходя из этого, можно ожидать, что JavaScript останется на пике своего развития в 2021 году и продолжит свое господство еще много лет.

2. Рендеринг на стороне сервера (SSR) и генераторы статических сайтов (SSG)
В 2021 году как Gatsby, так и Next.js будут продолжать расти как в использовании, так и в популярности.
Gatsby продолжит доминировать в области рендеринга статических сайтов. Согласно отчету W3 Techs Technology Market Report (май 2020 г.), Gatsby является самой быстрорастущей структурой.

3. TypeScript будет использоваться все больше и больше
Если вы хотите написать читаемый, чистый и удобный в обслуживании код, вам придется использовать TypeScript.
TypeScript сочетает в себе всю мощь объектно-ориентированной парадигмы: интерфейсы, классы, перечисления и обобщения, а также поддержку статической типизации и модулей.
Это были основные причины, по которым разработчики считают TypeScript таким мощным инструментом.

4. React продолжит свою гегемонию
React продолжит доминировать среди фреймворков и библиотек JavaScript в 2021 году.
Эта гегемония продолжится, несмотря на быстрый рост и популярность реактивных фреймворков следующего поколения, таких как Vue.js, Svelte и Stencil.

5. Jamstack
Jamstack означает Javascript, API и разметку.
Это программная архитектура, которая использует эти элементы для создания безопасных, масштабируемых, дешевых и производительных веб-сайтов и приложений.
Согласно данным State of Frontend 2020, почти треть респондентов в последнее время создали Jamstack-приложение .
Массовом использование архитектуры Jamstack в 2021 году также неизбежно.

6. Микро-фронтенды
Думайте о веб-приложении как о комбинации функций, принадлежащих независимым командам, чтобы они могли работать изолированно друг от друга.
American Express, IKEA, Spotify и Starbucks: это лишь некоторые из организаций, которые используют этот архитектурный стиль.
В 2021 году использование и внедрение вырастут в большем количестве организаций.

Полностью статья доступна по ссылке(en): shorturl.at/xRY29
​​Топ трендов разработки в 2021 году
Мы проанализировали статьи о трендах разработки на 2021 год сразу нескольких ресурсов (dev.to) и разработчиков (основатель Core dna Сэм Солтис, IT-консультант Алексей Гуреев и др.) и составили свой список.

1. Внедрение искусственного интеллекта (AI) и машинного обучения (ML)
AI все глубже проникает в цифровую жизнь, а обработка естественного языка (NLP) и ML перешли от теоретических концепций к коммерческим вариантам использования. Что с этим делать? Оцените свои бизнес-процессы на возможность использования AI/ML, внедряйте инструменты аналитики в маркетинговые кампании, используйте чат-ботов.

2. Голосовой поиск и навигация
Голосовой поиск и навигация уже стали частью повседневной жизни, облегчив, например, поиск информации или создание заметок. Google сообщает, что 27% онлайн-пользователей в мире используют голосовой поиск на мобильных устройствах. Apple и Google используют эти технологии в процессе проектирования UI/UX, так что их уже нельзя игнорировать.

3. Бессерверная архитектура
Бессерверные технологии — результат поиска решения сразу трех проблем: перегрузки систем, потери данных и высокой стоимости разработки. Одним из решений стали облачные вычисления, которые могут заменить обычные серверы. Наиболее распространенные задачи, которые можно выполнить с ними: загрузка резервных копий файлов, доставка уведомлений и экспорт объектов.

4. Дизайн Motion UI
Моушн-дизайн помогает создать интуитивно понятный интерфейс, который направляет пользователей, сообщая им, что делать и на чем сосредоточиться на странице. Такой дизайн включает в себя использование визуальных подсказок и позволяет веб-приложениям реагировать на запросы пользователей, создавая более плавный и приятный пользовательский интерфейс.

5. Смешанная реальность (MR)
MR — это комбинация дополненной (AR) и виртуальной реальности (VR). AR объединяет цифровой контент с физической средой пользователей, тогда как VR обеспечивает полный эффект присутствия. Эти технологии уже используются в разработке веб-приложений, обороне, туризме, архитектуре, строительстве, играх, здравоохранении, а также медиа и развлечениях. Среди прочего, компании могут использовать AR и VR, чтобы позволить потенциальным клиентам «опробовать» продукты виртуально.
​​Java 16 — новые возможности будущего обновления

Java Development Kit(JDK) 16 достиг второй фазы Rampdown. Выход полноценного обновления назначен на 16 марта 2021 года.

В Java появятся семнадцать новых возможностей. Среди них изолированные типы, статические члены внутренних классов, API доступа к внешней памяти, новый сборщик мусора, переход на новую систему управления версиями Git и переезд на Github.

Полный список доступен по ссылке: https://openjdk.java.net/projects/jdk/16/
​​Как веб-стандарты отстают от инструментов разработки

Интересный взгляд на развитие веб-стандартов: чтобы быть впереди веба, им нужно бежать в два раза быстрее. Проблема заключается в том, что новые спецификации W3C появляются намного реже, чем новые инструменты для разработчиков. И разница в скорости просто колоссальная — примерно, как между человеком и гепардом. Веб-стандарты не могут поспевать за всеми новинками. Ведь чтобы внедрить даже какую-то мелочь, спецификациям нужно пройти очень долгий путь.

В итоге, поскольку инструменты уходят вперед с большим отрывом, то компании выбирают именно их. А когда подтягиваются веб-стандарты, они уже никому не нужны, потому что инструменты уже работают и приносят прибыль.

Вся статья доступна по ссылке:
https://css-live.ru/articles-css/chtoby-byt-vperedi-veba-veb-standartam-nuzhno-bezhat-v-dva-raza-bystree.html
​​Лучшие онлайн-ресурсы для тренировки навыков программиста

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

HackerRank.com
Крупнейшее сообщество учащихся и участников соревнований. Сайт предлагает множество руководств по алгоритмам и практик программирования, а также связывает разработчиков с компаниями, что повышает шансы быть нанятым.

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

LeetCode.com
Сайт предлагает более 750 вопросов для решения на 14 популярных языках программирования. Можно участвовать в конкурсах вместе с сотнями тысяч других пользователей, есть также опция «пробного интервью», позволяющее подготовиться к собеседованию при приеме на работу.

Codeforces.com
Проект, объединяющий людей, которые участвуют в соревнованиях по программированию. С одной стороны — социальная сеть, с другой — площадка, где регулярно проводятся такие соревнования.

Coderbyte.com
Этот веб-сайт предлагает более 200 задач на десяти языках программирования. Там же можно ознакомиться с официальными решениями проблем и вариантами самих пользователей, а также с курсами по веб-разработке, алгоритмам и структурам данных.

CodinGame.com
Эта площадка предлагает кодинг с онлайн-играми, через которые здесь можно повышать свои навыки, решая задачи на более чем 25 языках и структурах данных. Отлично подойдет заядлым геймерам.
​​Минутка философии от доктора компьютерных наук.

Я хотел бы, чтобы реальная жизнь могла измеряться по формуле вычислительной сложности как в информатике. Например:
- Написать твит - это O(1)
- Дружба - это O(log n)
- Любовь - это O(n)
- Брак - O(n log n)
- Поиск смысла жизни - O(2^n)

А вы помните название последней формулы?
​​HTTP Archive представил ежегодный отчет о состоянии веба

Web Almanac — это всеобъемлющий отчет о состоянии веба, подкрепленный реальными данными и подтвержденный авторитетными веб-экспертами. Отчет состоит из 22 глав, охватывающих такие аспекты, как содержание страниц, пользовательские ощущения, публикация и распространение информации.

Некоторые данные из отчета:

— jQuery используется на 87% страниц в интернете;
— !important в среднем появляется в 2% всех CSS объявлений на странице;
— Wordpress занимает 31% всего рынка CMS;
— 83,5% мобильных страниц используют библиотеку или фреймворк JavaScript, по крайней мере, с одной известной уязвимостью.

Полный отчет за 2020 год по ссылке: https://almanac.httparchive.org
​​Fable получил новое минорное обновление

Очередное минорное обновление компилятора, преобразующего функциональный язык платформы .NET в JavaScript. Полноценная третья версия продукта вышла в декабре 2020 года.

Fable компилирует F# в JavaScript. По задумке создателей, он должен помочь бэкенд-разработчикам и приверженцам функционального программирования в разработке веб-интерфейсов. Энтузиасты, разрабатывающие этот опенсорсный проект, уже говорят о превращении его в полноценную экосистему.

Сайт Fable: fable.io
​​Новые возможности ECMAscript 2021

Очередное заседание TC39 — комитета разработчиков и теоретиков JavaScript — завершилось опубликованием 3 февраля списком функций ECMAScript 2021. Вот несколько самых интересных нововведений (некоторые из них уже были доступны в разработке через Babel).

1. Promise.any
Метод Promise.any() принимает несколько "обещаний" (Promise). Как только одно из "обещаний" выполнится успешно, метод возвращает единственный объект Promise со значением выполненного "обещания". Если ни одно из "обещаний" не завершится успешно, то возвращенный объект promise будет отклонен. По существу, метод Promise.any() — противоположность для Promise.all().

2. Оператор логического присваивания
Оператор логического присваивания означает, что можно будет использовать комбинацию логических операторов &&, || или ?? с присваиванием = . Присваивание произойдет при выполненном условии.

3. replaceAll()
String.prototype.replaceAll() заменяет все вложенные строки, согласно паттерну, другим строковым значением. В отличие от уже существующего метода replace(), который заменяет только первую найденную часть строки.

4. Приватные поля класса
В ES2021 объявить приватными переменную или метод очень просто, просто нужно поставить # перед именем переменной/метода.

5. WeakRef
Когда мы присваиваем объект переменной, он указывает на часть памяти, где хранится значение этого объекта (сильная ссылка). Если программа больше не ссылается на этот объект, сборщик мусора уничтожает его и освобождает память. Экземпляр WeakRef создает ссылку на заданный объект, которая возвращает его, если он все еще находится в памяти, или undefined, если целевой объект был удален сборщиком мусора.

Полный текст ECMAScript 2021: https://tc39.es/ecma262/
​​Искусственный интеллект ответил, что такое любовь

Дата-сайентист Прашант Мудгал обучил философским трудам модель машинного обучения GPT-2. GPT-2 сейчас находится в открытом доступе на GitHub, более продвинутая модель GPT-3 все еще не доступна для широкой публики.

Разработчик развернул модель на своем локальном компьютере (MacBook Pro 16”) и снабдил минимальным интерфейсом, а затем использовал для ее обучения тексты Аристотеля, Платона, Ницше и Вольтера. По словам автора, машина несколько раз дала разумные на вид ответы на задаваемые ей вопросы, но большую часть времени диалог был похож на разговор с человеком, у которого серьезные психические проблемы.

Вот один из примеров “разумного” ответа GPT-2 на вопрос, что такое любовь: “Любовь это хорошо. Любовь это весело и замечательно. Она огромна. Она огромна. Она большая. Любовь и жизнь родственны, но правда горька. К сожалению, никто не любит тебя. Некоторые люди не понимают этого”.

Вся статья доступна по ссылке: https://towardsdatascience.com/-taught-philosophy-to-gpt-2-and-it-felt-i-am-talking-to-a-deranged-but-intelligent-person-875820735af5
​​5 главных тезисов из книги “Прагматичный программист”

Разработчик из noiiz.com Джейми Буллок рассказал о главных выводах из книги “Прагматичный программист” (The Pragmatic Programmer by Andrew Hunt, David Thomas), которую ресурс best-books.dev признал лучшей книгой по программированию всех времен.

1. DRY (Don’t Repeat Yourself) — не повторяйся
Авторы определяют принцип DRY следующим образом: «Каждая часть знания должна иметь единственное, недвусмысленное и авторитетное представление в системе».
DRY — это не только предотвращение дублирования кода, но и дублирования знаний, намерений, структур данных, дизайна, API или даже усилий членов команды.

2. Образ мышления так же важен, как и знания
“Прагматичный программист” во многом посвящен не самому коду, а мировоззрению и философии программиста. Разработку софта книга предлагает рассматривать в более общем плане как непрерывный процесс, предлагая брать на себя ответственность за свою работу, не тратить время на перфекционизм, но и не игнорировать технический долг.

3. Хороший код должно быть легко изменить
Здесь все просто: хорошо продуманная архитектура позволяет легко вносить изменения в код, что заметно упрощает жизнь всем, кто над ним работает.

4. Выбирайте хорошие инструменты и оттачивайте владение ими
“Инструменты усиливают ваш талант”, — утверждают авторы книги, предлагая ориентироваться в первую очередь на уже хорошо знакомые инструменты, а не переключаться на новые при первой возможности.

5. Agile — не то, что вы думаете
Авторы критикуют жесткие методологии и связанные с ними сертификаты:
“Нужна способность смотреть за рамки существующих правил и использовать все возможности. Это совершенно другой образ мышления”. По их мнению, решения по управлению проектами всегда должны быть “контекстными” и зависеть от компании, команды и многих других факторов.

Вся статья доступна по ссылке: https://medium.com/better-programming/5-essential-takeaways-from-the-pragmatic-programmer-6bb3db986294
​​Пора ли переходить ли на Vue 3?

Автор блога Maison Futari подробно разобрал, в каких случаях стоит переходить на обновленную версию фреймворка Vue 3, а в каких — Vue 2 все же будет лучшим вариантом для вашего проекта.

Краткая выжимка такова:

📌если вам нужна поддержка Internet Explorer 11, не используйте Vue 3: такой поддержки пока нет;

📌если вы работаете в большом давно существующем проекте, не используйте Vue 3: в зависимости от кода, время миграции и преимущества в производительности могут просто не окупиться;

📌если у вас есть проблемы с производительностью даже после некоторых оптимизаций, используйте Vue 3;

📌если вам нужна поддержка TypeScript, используйте Vue 3, где она намного лучше, чем раньше;

📌и очевидное: не все плагины и фреймворки успели перейти на новую версию, используйте Vue 3 только, если нужные вам зависимости поддерживают его.

Полный текст разбора по ссылке: https://itnext.io/yes-vue-3-is-out-but-you-probably-dont-need-it-%EF%B8%8F-3e60634991b4
Samsung HW-B650: A Powerful Soundbar for an Immersive Audio Experience