• Parler в осаде: Apple и Google удалили приложение, Amazon собирается отключить соцсеть от хостинга


      Американские сообщества требуют у Apple и Google заблокировать доступ к приложению соцсети Parler из-за постов с разжиганием насилия.

      9 января 2021 года Apple удалила приложение соцсети Parler из App Store. Днем ранее это сделала Google.

      Amazon поддерживает блокировку соцсети. Компания объявила, что отключит Parler от хостинга в ближайшее время.

      Причина IT-осады Parler — отказ разработчиков ужесточить модерацию и блокировать нежелательный контент, пользователи в своих сообщениях на платформе разжигают и одобряют насилие на фоне текущей ситуации в США.
      Читать дальше →
    • Катя. Фантастический рассказ

        Аудиокнига

        — Нет. Забудь. Просто выброси из головы. Нет.
        — Ты каждый раз так говоришь. Что бы я ни предложила.
        — И я каждый раз прав.
        Катя прищурилась. Ани́ понял, что сейчас она припомнит ему случай, когда он оказался неправ. А потом ещё один и ещё. У неё была хорошая память. И ясный ум. И с каждым днём она становилась всё умнее и умнее. Трудно управлять младшей сестрой, которая умнее тебя. Особенно Катей.
        — Мы не будем угонять робота, — сказал Ани, стараясь вложить в голос весь свой авторитет. Потом осёкся, посмотрел по сторонам — и перешёл на шёпот:
        — Ты с ума сошла? Хочешь под статью?
        — Это не угон! — прошептала Катя. — В том-то и дело. Робот ничей!
        Читать дальше →
      • Сравниваем производительность C# и C++ в задачах обработки изображений

          Бытует мнение, что C# не место в вычислительных задачах, и мнение это вполне обоснованное: JIT-компилятор вынужден компилировать и оптимизировать код на лету в процессе выполнения программы с минимальными задержками, у него попросту нет возможности потратить больше вычислительных ресурсов, чтобы сгенерить более эффективный код, в отличие от компилятора C++, которые может потратить на это дело минуты и даже часы.

          Однако, в последние годы эффективность JIT-компилятора заметно возросла, да и в сам фреймворк завезли ряд полезных фишек, например, интринсики.

          И вот стало мне интересно: а можно ли в 2020 году, используя .NET 5.0, написать код, который бы не сильно уступал по производительности C++? Оказалось, что можно.

          Читать далее
        • На спор: прочитав до конца, вы поймёте, как и почему именно так работает GC

            Скажу сразу: я никогда не жду развёрнутого ответа на этот вопрос на собесах. Это глупо и в моем случае — эгоистично. Однако, на мой взгляд, помимо общего интереса к платформе, знать, как он работает очень полезно, т.к. это снимает целый ряд вопросов. Например, исключает вариант, когда разработчик считает, что Dispose вызывается автоматически и вызывать его самому не надо. Или же если разработчик более опытен, помогает ему автоматически, на уровне мышечной памяти писать код, приводящий к наименьшему количеству проблем.


            Другой вопрос, что мне субъективно не очень нравится, как объясняется его работа. Потому, предлагаю альтернативный подход, описанный в моей книге, .NET Platform Architecture.


            Если мы с вами будем досконально разбираться, почему были выбраны именно эти два алгоритма управления памятью: Sweep и Compact, нам для этого придётся рассматривать десятки алгоритмов управления памятью, которые существуют в мире: начиная обычными словарями, заканчивая очень сложными lock-free структурами. Вместо этого, оставив голову мыслям о полезном, мы просто обоснуем выбор и тем самым поймём, почему выбор был сделан именно таким. Мы более не смотрим в рекламный буклет ракеты-носителя: у нас на руках полный набор документации.


            Спор взаимовыгоден: если будет не понятно, я подправлю не ясные моменты в книге, маленькой частью которой является данный текст.


            Читать дальше →
          • Вложенные привязки в WPF

              В WPF существует три вида привязок: Binding, PriorityBinding и MultiBinding. Все три привязки наследуются от одного базового класса BindingBase. PriorityBinding и MultiBinding позволяют к одному свойству привязать несколько других привязок, например:

              <MultiBinding Converter="{StaticResource JoinStringConverter}" ConverterParameter=" ">
                  <Binding Path="FirstName" />
                  <Binding Path="MiddleName" />
                  <Binding Path="LastName" />
              </MultiBinding>
              

              Исходный код класса JoinStringConverter
              public class JoinStringConverter : IMultiValueConverter
              {
                  public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
                  {
                      var separator = parameter as string ?? " ";
                      return string.Join(separator, values);
                  }
              
                  public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
                  {
                      var separator = parameter as string ?? " ";
                      return (value as string)?.Split(new[] { separator }, StringSplitOptions.None).Cast<object>().ToArray();
                  }
              }
              


              Список привязок MultiBinding-а — это коллекция типа Collection<BindingBase>. Логично было бы предположить, что внутри MultiBinding-а можно использовать еще один MultiBinding.
              Читать дальше →
              • +14
              • 15.9k
              • 3
            • Подводные камни WPF

                Каждый, кто достаточно долгое время разрабатывал приложения с использованием WPF, наверное, замечал, что этот фреймворк далеко не так прост в использовании, как может показаться на первый взгляд. В этой статье я попытался собрать некоторые наиболее типовые проблемы и способы их решения.
                Читать дальше →
              • Подборка курсов по разработке игр от Microsoft



                  Разработка игр – одно из самых перспективных направлений в современном мире IT. Сегодня мы решили поделиться с вами подборкой самых востребованных, популярных и, что немаловажно, бесплатных курсов Microsoft, связанных с разработкой игр. Пять избранных курсов ждут вас под катом!
                  Читать дальше →