Публикации

Релизы Node.js, npm и nginx

Новости Node.js  /  News

Недавно вышли новые версии: Node.js 10, npm 6 и Nginx 1.14. На всякий случай — Node.js 10 будет LTS в октябре.

Node.js 10

Вкратце, изменения следующие:

  • N-API (для вызова C++)
  • OpenSSL 1.1.1
  • Асинхронные циклы
  • Коды ошибок
  • Обновление v8 до 6.6

Чуть больше про асинхронные циклы. Это возможность проитерировать что-то, возвращающее промисы в цикле и дождаться их завершения. Как-то так:

for await (const chunk of fs.createReadStream(filepath)) { // ... }

Оптимизация производительности в .NET Core 2.1

dotNET  /  Производительность dotNET  /  Performance

Скоро в свет выйдет .NET Core 2.1. Осталось сделать меньше 1% задач. Конечно, оставшиеся 5% проекта занимают 95% времени, но будем оптимистами :)

Далее будет краткое резюме статьи Performance Improvements in .NET Core 2.1.

Если вы готовы прочитать эту интересную, но огромную статью — прочитайте. Я всё-таки пристрастен и расскажу о том, что интересно лично мне. А если не хотите читать и короткую…

TL&DR; Значительно (в 1.5-2 раза) улучшена производительность многих вещей, в том числе:

  • Структуры (Value types). Это ключевые изменения, многие оптимизации сделаны за счет Span<T> и Memory<T>.
  • Сравнения. Также оптимизированы сравнения внутри Dictionary .
  • Строки — оптимизированы не только сравнения, но и такие штуки как ToLower, Format и Parse.
  • Потоки, блокировки и async/await.
  • Socket, SslStream и HttpClient.

Далее немного про некоторые оптимизации.

Новости для разработчиков сайтов

Новости News  /  JavaScript

HTTPS

Вы ведь уже перевели свои сайты на HTTPS, правда? ;) Если нет, рекомендую не затягивать до июля. Ещё одна хорошая новость на эту тему — Let’s Encrypt начал выдавать wildcard сертификаты.

GitHub обновил шрифты, может, и нам стоит?

Делаем модальные окна правильно

UX UX+Usability

В январе писал о пуш-нотификациях. Сегодня, с подачи Жени Кирьянова — о модальных окнах. Конечно, самый простой совет — “не используйте их”. Но иногда всё-таки, приходится.

О том, как их применять в разных ситуациях — далее. А тех, кто прочитает эту короткую статью до конца ждет нематериальный бонус :)

Алиасы для комфортной работы с Git

VCS Git

Думаю, я не типичный пользователь Git. Командную строку и GUI использую одинаково часто. В SourceTree мне удобнее смотреть изменения и ветки, в TortoiseGit — смотреть историю и мёржить, а в консоли — иногда коммитить и делать более сложные операции.

Почему я использую консоль? Есть две причины:

  1. GUI умеет не всё.
  2. В Git есть алиасы…

Алиас — возможность написать в консоли после git свою команду. Пишешь в Git Bash git cp, а выполняется три команды:

Как сделать push-уведомления менее раздражающими

UX  /  Дизайн и юзабилити UX+Usability

Вас бесят запросы о подписке на сайтах? Меня бесят. Неважно — это про пуш-уведомления или о добавлении в список рассылки. Сегодня про то, как самим такое не делать.

В чём основная проблема? На многих сайтах запрос на подписку открывается до того, как ты успеваешь хоть что-то сделать. Как исправить? Очевидно, предлагать подписку после совершения какого-то действия. Чтобы была понятна польза от неё. Вот пользователь оформил заказ. Почему бы не предложить ему подписаться на уведомление о доставке или смене статуса?

Meltdown, Spectre и... npm

Безопасность Security

Всех с интересным новым годом! Возможно, вы еще не в курсе уязвимостей Meltdown и Spectre. Поэтому — короткое вступление.

Прошлой осенью исследователи Google опубликовали исследования о нескольких уязвимостях процессоров. В этом году эти исследования стали общедоступными. Если совсем вкратце:

  • Обе уязвимости позволяют тырить данные.
  • Доступ к чужой памяти только на чтение. На случай если вы уже начитались про “ученых и журналистов” :)
  • Meltdown, в отличие от Spectre, позволяет читать не только память других процессов, но и ядра.
  • Уязвимости можно эксплуатировать в браузерах (где-то заплатки уже выпущены, но насколько они защищают, пока не знаю).
  • Для AMD всё относительно хорошо (пока).

Да, это всё не значит, что у вас гарантированно украдут данные. Однако, повышается вероятность утечки информации, например, при заходе на нормальный сайт с вредоносным кодом в рекламном скрипте.

Далее чуть больше подробностей.

Дружим TeamCity, NUnit и .NET Core

dotNET  /  CI  /  Общее dotNET  /  JetBrains  /  Deploy

Недавно я долго и мучительно переходил с .NET Core 1.x на 2.0. Возможно, расскажу об этом позже. Признаться, об этом лучше рассказывать в удобном кресле психоаналитика :)

Сегодня о более прозаичном. В нашей компании мы привыкли использовать TeamCity и NUnit. Для предыдущей версии .NET Core работал пакет “dotnet-test-nunit-teamcity”, для новой аналога не нашлось…

Новости от Microsoft

dotNET  /  Базы данных  /  Новости CSharp  /  Microsoft

Сегодня несколько новостей из мира Microsoft: