• Эффективность Brotli в реальном мире
    0

    Вообще тема компрессии без потерь это интересная тема.
    Просто оставлю на заметку не только что используется в вебе:


    • ZStandard вполне себе конкурент Brotli. Причем там словарь можно собственный создать, под свои данные, тем самым оптимизировать сжатие. Brotli кстати тоже имеет словарь, но он разрабатывался специально для веба, от того в словаре присутствуют только самые популярные общие совпадения (Html таги например)
    • LZ4 — real-time алгоритм сжатия. Если у вас потоковое видео или стриминг и вам важно делать это быстро экономив тем самым трафик, то это то что нужно
    • Блог Яна Коллета, создать двух алгоритмов выше. Он живее всех живых и до сих пор работает на общее благо.
    • Если возникнет вопрос начиная с какого размера имеет смысл сжимать, то это 860байт. Подробнее здесь
  • Быстрее, чем C++; медленнее, чем PHP
    0
    impwx Span это же всеже больше про память. Здесь есть небольшие бенчмарки, где спаны немного уступают по скорости массивам
    adamsitnik.com/Span/#span-vs-array
  • Вечное сияние чистого .NET
    +1
    Как по мне так создание Roslyn-a было революцией. До этого разработчики языка что бы делать язык использовали С++. .netcore это как раз плоды рослина
  • System.IO.Pipelines — малоизвестный инструмент для любителей высокой производительности
    0
    Всё пытаюсь понять если смысл самому браться писать, или же подождать чего нибудь официального. Так как просто нет состыковок, но есть официальные extensions что бы преобразовывать Stream в Pipies. Кейс который бы я хотел попробовать в качестве имплементации простой. Берем Stream из HttpClient, прогоняем через пайп и подаем на вход другому Stream, для десериализации. Смогу ли я сэкономить что-то в плане памяти, процесорнного времени?
  • Сериализация и десериализация данных .NET Core vs Go
    +4
    Я почему то более чем уверен что .net побьет go если тесты techempower запустить на винде.
  • Почему я сменил фриланс на удаленную команду
    +1
    Как же мне нравиться когда unit тесты делают чуть ли не серебрянной пулей того что твоя логика работает. Видел кучу раз проекты где они не то что помогают, а только мешают. Особенно когда надо за юниттесть метод где вызываеться 100500 других сервисов. Юнит тест не особо поможет, а вот интегрейшн тест поможет. В общем гарантия работающего решения это тестирование, а не юнит тест.
  • Тёплый ламповый хардкор. Как прошёл DotNext 2018 Moscow
    0
    Не знал что можно приобрести подписку на трансляцию.
  • Тёплый ламповый хардкор. Как прошёл DotNext 2018 Moscow
    0
    Смотрел с удовольствием трансляцию на youtube первый день, и очень был огорчен не увидев трансляцию во второй день. :(
  • Приверженцы статической и динамической типизаций никогда не поймут друг друга. И TypeScript им не поможет
    +3
    В доисторические времени типа bool не существовало. Его симулировали на макросах брав за основу тип int. Любое число отличное от нуля было true, а если ноль то false.
  • Всё, что вы хотели знать о PVS-Studio и не постеснялись спросить
    +1
    У JB есть большой опыт в использовании решарпера. По моему для них не проблема сделать подобный анализатор для других языков программирования
  • Всё, что вы хотели знать о PVS-Studio и не постеснялись спросить
    +1
    Что интересно, есть бесплатный плагин от SonarQube — SonarLint. Недавно его опробовал, и в целом доволен, до этого я использовал Roslynator у которого довольно простые анализаторы. У PVS-Studio гораздо более сложные анализаторы, и это объяснят причину почему они предпочитают иметь stand-alone приложение для анализа. Это позволяет более тщательно проанализировать проект не нагружая основной процесс VS. Что касаеться лицинзий, то SonarLint находиться под лицинзией GPLv3, что позволяет его спокойно использовать в комерческих проектах с закрытым исходным кодом (поправьте если я ошибаюсь, не пробовал пока). PVS-Studio тоже можно бесплатно использовать но надо везде указывать комментарии. Честно говоря с удовольствием бы поставил PVS-Studio, но писать, или добавлять везде комментарии как по мне это слишком. Но это выбор разработчиков, и его надо уважать.
  • GitHub анонсировал собственный CI/CD и начал раздавать инвайты
    +1
    Есть так называемые AzureResourceManager шаблоны с помощью которых можно задеплоить проект в облоко. Вся конфигурация делается в json. Благо примеров много, но если попытаться сделать что-то нестандартное, то становится туго. Другими CI/CD не пользовался. Но мое мнение делать и составлять этим шаблоны неудобно. Причем здесь Azure DevOps? Добавляя таски, за кулисами создается AzureResourceManager шаблон.
  • Реализация своего IoC контейнера
    0
    Клюнул на эмблему Azure Functions (без шприца)
  • Асинхронное программирование на C#: как дела с производительностью?
    –1
    Если асинхронный метод выполняется синхронно, то возникают следующие издержки в использовании памяти: для методов async Task издержек нет, а для методов
    async Task<T> 
    перерасход составляет 88 байт на каждую операцию (для платформ x64).


    Не совсем, у обычного таска тоже есть оверхед. Потому в .NET Core появился ValueTask (да, не дженерик).
  • А где вы храните данные?
    0
    Благодаря Roslyn, можно конвертировать код из VB -> C#, и обратно. Это позволило мигрировать очень много написанного софта на C#.
  • Как это работает: Деревья Меркла в биткойн сети
    0
    Нет не будет одинаковым. Из-за уязвимости, блок будет сохранен в первоначальном варианте [1,2,3,4,5,6], то есть в другом месте добавлена проверка на этот случай. Ведь имея [1,2,3,4,5,6] нам все равно придется достраивать его до полного дерева, а значит получиться в конечном итоге [1,2,3,4,5,6,5,6]. Вот только если отправить в блокчейн [1,2,3,4,5,6,5,6], то это будет означать, что транзации 5,6 были потрачены два раза, а мы должны это исключить. Поэтому мы не храним повторяющиеся транзакции в блокчейне, а дерево мы достраиваем по мере необходимости. Пусть меня поправят коллеги, если я не прав.
  • Как это работает: Деревья Меркла в биткойн сети
    0
    Дерево будет достраиваться. Прочитайте комментарий в исходном коде
  • Скорость работы скомпилированного Linq Expression Tree
    +10
    Попробуйте BenchmarkDotNet. Я уверен что он даст гораздо более точные результаты, к тому же он удобен и у него большой функционал. Ну и замерять в Debug режиме смысла много нету, так как финальное приложение в любом случае будет работать в Release.
  • Путеводитель по Швейцарии
    0
    Я был на севере (Гроннинген), там со вторника, числа 15, было + 13. Мне из солнечной Болгарии из +30 как-то холодно было. Это не говоря о том, что постоянное дует ветер. А целый день хоть и светло, но солнца совсем не было видно. Как вернулся обратно, заболел, собственно всю прошлую неделю провалялся больным дома.
  • Путеводитель по Швейцарии
    +1
    Диалог выглядит как полноценное воссоединение семьи, я думаю можно смело подавать на визу :D
    А если серьезно, ездил в командировку неделю назад в Нидерланды, климат совсем не понравился. Люди довольно сдержанные(я бы сказал холодные), что довольно хорошо в проффесиональном плане, но не в личностном.
    Хотелось бы увидеть статью об Нидерландах если есть возможность.
  • habrahabr.ru → habr.com
    +2
    1. Локализовать на английском
    2. Выставить исходни локализации на гитхаб
    3. Принимаем пуллреквесты от людей желающих локализовать для своего родного языка
    4. Профит

    P.S. Если смотреть правде в глаза, то локализации на английском языке будет более чем достаточно
  • Достижимость нижней границы времени исполнения коммита распределенных отказоустойчивых транзакций
    0
    По факту координатор может быть сам по себе распределенной системой, тем самым повышая отказаустойчивость.
  • Как и зачем переходить от сервис-ориентированной архитектуры к микросервисам
    0
    Не совсем понял суть задачи. Если дело в организации хранения, то было бы неплохо организовать хранение всех менеджеров пучками(группами). Из моей практики, выглядит как довольно подходящий кейс для использования AzureTable. Там как раз можно организовать такое хранение. Плохо то, что там индекс как таковой, только один, и он распространяется на PartionKey, что в данном случае является регионом. А если у вас критерии организации данных постоянно меняются, то это точно не ваш случай. А и зачем вам два микросервиса? Один достает данные другой обрабатывает?
  • Как и зачем переходить от сервис-ориентированной архитектуры к микросервисам
    0
    Ну про СУБД вы немного заблуждаетесь, на малых объемах данные её возможно будет достаточно, но как только данные станут более существенны прибегают к созданию ещё одной подобной БД — OLAP. При этом проектируют её оптимизированной под специальные запросы.
    Ну если вам надо дергать данные с разных хранилищ, то тут ничего не поделаешь, придется делать несколько запросов. Есть конечно вариант хранить все же данные в SQL, но тут необходимо придерживаться нескольких правил, не должно быть связей между таблицами по вторичному ключу у разных сервисов, а также они должны быть с разными схемами. Так можно будет легко разделить данный на две различный базы, если того потребуется.
  • Как и зачем переходить от сервис-ориентированной архитектуры к микросервисам
    0
    Если вы про организацию хранилища, то да, это EventSourcing. Тут правда надо понимать что хранилищем может быть и обычная SQL база, тут дело в самом подходе его организации. Насчет Saga паттерна можно почитать здесь.
  • Как и зачем переходить от сервис-ориентированной архитектуры к микросервисам
    +1
    Есть такая вещь как распределенная транзакция. Но это требует определеногго подхода и при проектировании хранилища. Идея в том, что сервис сохраняет текущее состояние, и ждет подтверждения от другого сервиса(кому было передано сообщение), что и он отработал успешно. Если такое подтверждение получено не будет то будет послано новое сообщение, которое отменяет предыдущее действие. Есть и специальные паттерны для выполнения таких транзакций, например Saga.
  • DevDay про .NET: ленивая авторизация & союз DSL и C#
    0
    А можно будет где то посмотреть запись по кончанию?
  • Самый быстрый Индиан: Key/Value контейнер на базе Trie
    +3
    Поскольку проект под лицензией MIT, можно попробовать прогнать статический анализатор PVS-Studio, может ещё какие нибудь недочеты можно будет устранить.
  • Как мне удалось взломать приложение
    0
    Подскажите, а как быть если нужно подключаться к удаленной базе? Ограничить в правах подключаемого пользователя? Я джун, не кидайте камнями.
  • Linux-2018: самые перспективные дистрибутивы
    0
    Я вот установил на старый ноутбук Fedor-у с GNOME интерфейсом. Первое что не привычно так это отсутствие иконок на рабочем столе, знаю что можно это настроить, но было не до этого. Поигрался с установкой пакет, кажется собирал electrum приложение, ну и несколько раз натыкался на ошибку отсутствия нужных зависимостей в репозитории. Неприятно и проходиться искать нужные зависимости самому. Насколько я понимаю, репозитории федоры проходит модерацию прежде чем попасть туда, так и должно быть. Уязвимости нам не нужны! Как у остальных дистрибутивов с пакетными менеджерами и зависимостями? Потому как собираюсь ставить .net core, а по моему только в 26 версии собираетcя.
  • Про ошибки и исключения
    +1
    Не знаю почему многие так любят Linq синтаксис. Всегда ему предпочитал последовательный вызов методов.
  • Еще немного о валидации в ASP.NET
    0
    И пользователь получит SQL ошибку. Лучше вернуть человекоподобную ошибку что бы клиент знал что делать.
  • JavaScript превзошел всех
    +14
    Однако, JavaScript уже практически десятилетия находится рядом и никуда не уходит.

    Это потому что у нас не было выбора.
  • Работа с форматом AVRO в python — библиотека fastavro
    0
    Тут надо упомянуть что схема в Avro передается вместе с данными. Поэтому если мы часто гоняем данные и для нас важен размер отправляемого пакета, то Avro не самый лучший выбор.
    Большее спасибо за статью, честно говоря думал что Avro умер, впрочем как и Thrift.
  • Rust: «Назад к корням»
    +5
    Да, так оно. А разве некоторые платформы не устарели? По моему поддержка GCC не настолько важна на данный момент. Лучше направить сил на что нибудь другое.
  • Rust: «Назад к корням»
    +3
    использование GCC в качестве backend'а

    Вот серьозно, зачем это нужно если есть LLVM.
    поддержка асинхронного программирования (async/await)

    Как по мне в rust лучше предоставить семейство типов для работы с асинхронностью. async/await лучше оставить более высокоуровневым языкам. Например в с# это модель очень удобна, но достигается путем нескольких абстракции.
  • Как это работает: Деревья Меркла в биткойн сети
    0
    Верно, верно. Забыл глянуть в спецификации.
  • Как это работает: Деревья Меркла в биткойн сети
    0
    Вы что то путаете. Сложение выполняется операцией XOR. Следовательно значение хеша не измениться если поменять их местами.
  • Избавляемся от boilerplate для валидации в ASP.NET MVC
    0
    Можно возвращать HttpMessageException со статус кодом и описанием. Сосбтвенно ради чего этот тип исключения и был создан. У нас принято все 4xx ошибки возвращать через исключение. Тут зависит от похода, и как мы относимся к ошибкам в бизнес-логике. Я лишь привел пример, метод для валидации можете назвать по другому и реализовать по своему
    Скажите, а почему бы не вынести это в базовый контроллер? Одна строчка аттрибута или одна строчка в начале метода? В обоих случая если забудете написать, то валидация работать не будет.
  • Избавляемся от boilerplate для валидации в ASP.NET MVC
    +2
    Возможно вам await в реализации метода не нужен.