Публикации

Всё может JavaScript, и в браузере тоже

Общее  /  Языки JavaScript  /  Git

Я мог бы рассказать про релиз Node.js v10.12.0, но это не особо интересно.

Скорее всего, вы слышали про возможность поиграть в Doom в браузере, но сегодня не об этом :) Если интересно, проект js-dos использует em-dosbox для запуска DOS-овских программ в браузере.

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

Давным-давно в ленте твиттера…

Малоизвестные фичи MS SQL 2012

Базы данных Database  /  Microsoft

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

Если вы считаете, что:

  • для форматирования дат внутри SQL надо использовать CONVERT и DATEPART или подключать внешние функции;
  • можно воткнуть в таблицу множество столбцов [N]VARCHAR(MAX), всё равно они хранятся отдельно;
  • нельзя сделать в одной таблице два поля VARCHAR(5000) или можно, но нельзя в оба записать максимально длинные строки;

… читайте дальше.

Об исключениях в .NET

dotNET  /  CSharp dotNET

Рекомендую к прочтению статьи об исключениях в .NET. Точно стоит прочитать первую статью — Исключения: архитектура системы типов. В ней много полезного, особенно — для новичков. Остальные тоже можно, если эта тема интересует:

Плагины для отображения размера пакетов

IDE  /  Производительность Node.js  /  Performance  /  Tools

Недавно узнал, что есть плагин import-cost, показывающий размер импортируемого пакета непосредственно в редакторе. Есть вариант для Visual Studio Code, есть для IDE семейства InelliJ.

Авторы — разные люди. Но делают одно полезное дело. Может, кто-то задумается и не будет тянуть модуль из-за одной простецкой функции :)

Pipelines и Channel<T>

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

Недавно вышла статья System.IO.Pipelines: High performance IO in .NET. Она про то, как реализовать более наглядную и быструю работу со стримами в .NET Core 2.1.
От слишком краткого пересказа статья многое потеряет — читайте оригинал. Ладно, будем честными — я сегодня подустал, поэтому бегло её прочитал и не очень разбирался :)

Часть кода из статьи:

BindingFlags.DoNotWrapExceptions

dotNET dotNET

В .NET Core 2.1 добавили новый флаг BindingFlags.DoNotWrapExceptions. Странно, что в документации этот флаг не описан. Хотя, чему я удивляюсь, пора бы привыкнуть.

Если вкратце, с этим флагом Reflection не заворачивает исключения в TargetInvocationException. Подробности можно прочитать на GitHub.

CoreRT

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

TL&DR;

CoreRT — поддержка native code для .NET Core. Слишком коротко. Ладно, это проект, который делает из сборок для .NET Core машинный код. И собирает в один файл вместе с рантаймом. Пока альфа.

Если хотите чуть больше подробностей — читайте дальше.