• Почему дизайн Go плох для умных программистов

    • Перевод

    На протяжении последних месяцев я использую Go для имплементаций Proof of Concept (прим.пер.: код для проверки работоспособности идеи) в свободное время, отчасти для изучения самого языка программирования. Программы сами по себе очень просты и не являются целью написания статьи, но сам опыт использования Go заслуживает того, чтобы сказать о нем пару слов. Go обещает быть (прим.пер.: статья написана в 2015) массовым языком для серьезного масштабируемого кода. Язык создан в Google, в котором активно им пользуются. Подведя черту, я искренне считаю, что дизайн языка Go плох для умных программистов.

    Читать дальше →
  • ReactOS 0.4.7: Павел Дуров больше не Пюыщн

      Приветствую Вас, Хабражители!

      7 декабря 2017 года вышел очередной релиз операционной системы ReactOS под номером 0.4.7, первый после перезда проекта на GitHub. В процессе подготовки релиза было закрыто более 450 отчетов об ошибках, в том числе исправлено около 15 регрессий. Сегодня я расскажу о самых интересных изменениях, вошедших в этот выпуск!

      Безусловно, одна из главных новостей то, что теперь Павел Дуров ведет здоровый образ жизни и в ReactOS. Так что этот скриншот из энциклопедии мемов «Луркоморье» станет частью истории:

      image
      Читать дальше →
    • Четыре релиза 1.0 от CNCF и главные анонсы про Kubernetes с KubeCon 2017



        В эти дни (6-8 декабря) в США проходит местная версия конференций KubeCon + CloudNativeCon 2017, в фокусе внимания которой многочисленные проекты некоммерческой организации CNCF во главе с Kubernetes. Мероприятие собрало более 4100 посетителей, 77 % из которых используют K8s, причём в 75 % случаев речь идёт про production. Событие оказалось не только богатым на анонсы от различных стартапов и гигантов индустрии, но и стало поводом для подведения итогов Open Source-сообщества из мира cloud native — достаточно заметить, что в декабре сразу у четырёх проектов CNCF состоялся знаковый релиз 1.0. Так что новенького?
        Читать дальше →
        • +14
        • 2,7k
        • 9
      • Вышел GitLab 10.2: Настраиваемые доски задач и GitLab Geo в общем доступе

        • Перевод

        Картинка для привлечения внимания


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


        Читать дальше →
      • От «Hello World» до приложения в App Store: советы новичкам от новичка

        После переезда в солнечный Будапешт я осознал, что изучать новый язык по карточкам или с помощью онлайн-курсов — не для такого прокрастинатора, как я. А что если сделать приложение без карточек, курсов и механического заучивания, в таком контексте, который был бы мне интересен? Так родилась идея приложения, о котором я рассказывать не буду, но расскажу о том, с какими сложностями пришлось столкнуться, изучая программирование практически с нуля. Материал может быть полезен для людей, которые хотели бы развиваться в сфере мобильной разработки на iOS.

        Читать дальше →
      • Как программисты с PVS-Studio ошибки в проектах искали

          Picture 3Недавно сайт Pinguem.ru совместно с командой PVS-Studio устраивали конкурс, в котором программистам было необходимо в течение месяца использовать статический анализатор PVS-Studio для нахождения и исправления ошибок в коде open-source проектов. Благодаря их стараниям, программы в мире стали чуточку безопаснее и надежнее. В статье мы рассмотрим парочку наиболее интересных ошибок, которые были найдены при помощи PVS-Studio.
          Читать дальше →
          • +45
          • 7,6k
          • 6
        • AdBlock похитил этот баннер, но баннеры не зубы — отрастут

          Подробнее
          Реклама
        • Используем Bash в SQL-стиле

          • Tutorial
          Приветствую! Данная небольшая статья призвана осветить некоторые аспекты применения Bash для анализа файлов в SQL-стиле. Будет интересна для новичков, возможно, опытные пользователи также найдут для себя что-нибудь новое.

          Структура задачи:

          • projects
            1. project1/ — проекты
              • conf/
                • <run_configurations>*.conf — конфигурации построения отчетов по таблицам
              • reports/
                • <run_configurations>/
                  • report1.json — сами отчеты, содержат статистику по таблицам Apache Hive
                  • report2.json
            2. project2/
              ...

          Надо: найти просроченные отчеты.

          Итак, расчехляем Bash, открываем отдельный терминал для man-ов и приступаем)

          Всех, кому интересно — прошу под кат.
          Читать дальше →
        • Тестирование LLVM

          • Перевод
          Продолжение. Начало здесь.

          Введение


          Когда программа достигает определённого размера, можно гарантировать, что она слабо специфицирована и не может быть полностью понята одним человеком. Это подтверждается по много раз в день людьми, которые слабо осведомлены о работе друг друга. Программа имеет множество зависимостей, включая компилятор, операционную систему, библиотеки, каждая из которых содержит свои собственные баги, и всё это обновляется время от времени. Более того, ПО обычно должно работать на нескольких разных платформах, каждая из которых имеет свои особенности. Принимая во внимание большое количество возможностей для неверного поведения, почему вообще мы можем ожидать, что наша большая программа будет работать так, как ожидается? Одна из самых главных вещей, это тестирование. Таким образом, мы можем убедиться, что ПО работает так, как нужно в любой важной для нас конфигурации и платформе, и когда оно не работает, найдутся умные люди, которые смогут отследить и устранить проблему.
          Читать дальше →
        • Конструктор XML-строки из PHP-массива

          Как часто приходится работать с XML PHP-разработчикам? Не так часто, на самом деле. Обычно потребность возникает при интеграции со сторонним сервисом, такие как BetaPRO, OnTime или CDEK. И вот тут обычно возникает такая ситуация, когда ваш код становится похожим на


          $date = '2016-09-25T12:45:10';
          $account = 'f62dcb094cc91617def72d9c260b4483';
          $secure = '81ad561784277fa864bf644d755fb164';
          $count = 1;
          $copy = 4;
          $dispatchNumber = '1033229706';
          $orderDate = '2016-09-25T12:45:10';
          
          $request = <<<XML
          <?xml version="1.0" encoding="UTF-8"?> 
          <OrdersPrint Date="{$date}" Account="{$account}" Secure="{$secure}" OrderCount="{$count}" CopyCount="{$copy}">
              <Order DispathNumber="{$orderNumber}" Date="{$orderDate}"/>
          </OrdersPrint>
          XML;

          и это еще не все! Нужно позаботиться о том, чтобы значения атрибутов и содержимое, заключенное в теги, не содержало спецсимволов, присущие XML. Если для конкретно этого запроса можно быть уверенным, что ничего из спецсимволов сюда не попадет, то контролировать каждый запрос вовсе бы не хотелось. Поэтому через "фильтр" пропускается все. Отсюда следует, что нужно еще "загнаться" с htmlspecialchars или с CDATA, или с XMLWriter, и знать, как это применить и не раз еще "свернуть себе кровь". Как вы видите, времени стоит "убить" достаточно, а результат-то хочется уже сейчас. Эх… А как хотелось бы, чтобы XML можно было бы создавать так же быстро, как JSON: отдал массив, а тебе XML-строку, и никаких заморочек. Опечалившись сложившейся ситуацией я в далеком 2015ом году я решил сделать такой конструктор.


          Вашему вниманию представляю xml-constructor для PHP начиная с версии 5.4 и до 7.2 на момент публикации данной статьи.

          Читать дальше →
        • Вопрос: действительно ли программное обеспечение использует новые наборы инструкций?

          • Перевод
          Со временем вендоры добавляли новые и новые инструкции в процессоры, управляющие нашими ноутбуками, серверами, телефонами и многими другими устройствами. Добавление машинных инструкций, решающих конкретные вычислительные подзадачи, является хорошим способом улучшить производительность системы в целом, не усложняя конвейер и не пытаясь нарастить частоту до запредельных величин. Одна новая инструкция, выполняющая ту же операцию, что и несколько старых, позволяет неоднократно увеличить производительность решения заданной задачи.
          Новые инструкций, такие как Intel Software Guard Extensions (Intel SGX) и Intel Control-flow Enforcement Technology (Intel CET), также способны предоставить абсолютно новую функциональность.



          Хороший вопрос заключается в том, как скоро новые инструкции, добавленные в архитектуру, достигают конечного пользователя. Могут ли операционные системы и другие приложения воспользоваться новыми инструкциями, принимая во внимание, что они, как правило, обеспечивают обратную совместимость и способность исполняться независимо от модели установленного процессора? Много лет назад использование новых инструкций достигалось с помощью пересборки программы под новую архитектуру и добавления проверок, предотвращающих запуск на старой аппаратуре и печатающих что-то вроде “sorry, this program is not supported on this hardware”.

          Я воспользовался полноплатформенным симулятором Wind River Simics, чтобы узнать, в какой степени современное программное обеспечение способно использовать новые инструкции, оставаясь при этом совместимым со старым оборудованием.
          Читать дальше →
        Самое читаемое