• 10 правил, которые позволяют NASA писать миллионы строк кода с минимальными ошибками

    • Перевод

    image
    Маргарет Гамильтон стоит рядом с написанным ей исходным кодом бортового компьютера «Аполлона»


    Лаборатория реактивного движения (Jet Propulsion Laboratory) — научно-исследовательский центр НАСА, ответственный за большинство беспилотных космических кораблей США. Там пишут много кода, и права на ошибку у них намного меньше, чем у обычных программистов.


    В JPL пишут на Си, и на их сайте есть документ "JPL Institutional Coding Standard", описывающий жесткие стандарты кодирования внутри организации. Они напоминают правила программирования для встроенных (embedded) систем и систем реального времени, с ограниченными ресурсами. Но многие из правил эти просто принципы хорошего программирования. Ограничение сложности, максимальное упрощение для последующего чтения кода и отладки, отсутствие побочных эффектов. Мы в Хекслете постоянно говорим об этом в вебинарах и, конечно, в самих курсах. Мы считаем очень важным как можно раньше поднимать эти темы, поэтому про функции и побочные эффекты начинаем говорить в самом первом курсе «Основы программирования», который рассчитан на новичков. Это бесплатный курс, кстати, и в нем есть практика на языке JavaScript.


    Спасибо хабраюзеру Boletus за важную поправку и дополнение:
    В 2006 году Gerard Holzmann с коллективом сформулировал 10 основных правил для JPL в документе «The Power of 10: Rules for Developing Safety-Critical Code». Они вошли в основу нынешнего стандарта, наряду с MISRA C и другими дополнениями. Статья в Википедии.


    Вот перевод этого списка.

    Читать дальше →
  • БИНС-шминс. Вводная статья

    Зарегистрирован на хабре с 9 июля 2008. Ни разу ничего не писал, только читал, Карма ниже нуля. Решился.
    Сразу обращение к уважаемому «хабрасообщесту» статья это попытка разобраться в тех вопрос которые для меня ещё как бы не до конца поняты, поэтому жду конструктивную критику и понятные отзывы, а не «ты дурак и всё».Теперь и к теме приступим.
    Читать дальше →
  • Использование автоматизированных верификационных средств для тестирования ПО в соответствии со стандартами DO-178B/C (КТ-178В), EN 50126, IEC 61508, ISO 26262, FDA, IEC 62304

      Введение от автора поста



      Имея опыт разработки ПО для ответственных систем более чем 8 лет, хочу познакомить сообщество с некоторыми материалами, связанными с разработкой и верификацией ПО для ответственных систем (аэрокосмическая область, медицина, транспорт и промышленность). Получив согласие на перевод и адаптирование ряда интересных статей у зарубежных коллег решил воспользоваться данным ресурсом. Буду рад, если статья заинтересует наше сообщество. В статье использованы материалы фирмы Vector Software, Inc. и рассматривается пример использования автоматизированного верификационного инструментария VectorCAST.
      В статье мы акцентируем внимание на стандартах DO-178B/C (КТ-178В), но данная статья актуальна и для применения в соответствии со стандартами: EN 50126, IEC 61508, ISO 26262, FDA, IEC 62304.
      На вопросы отвечу в комментариях или в личку.

      Введение


      В этой статье, мы рассмотрим каким образом платформа тестирования встроенного программного обеспечения (ПО) VectorCAST может быть использована для достижения целей процесса верификации ПО, определенного в разделе 6.0 стандартов DO-178B и DO-178C (КТ-178В) «Требования к программному обеспечению бортовой аппаратуры и систем при сертификации авиационной техники». В документе также освещаются различия между двумя стандартами в части раздела 12 «Процесс квалификации инструментального ПО».

      Подробнее
      • +4
      • 13,5k
      • 9
    • История одной IT-компании, которая так и не пришла к успеху (Ч.2)

        Зарождение компании


        Главная польза капитала не в том, чтобы сделать больше денег, но в том, чтобы делать деньги ради улучшения жизни. © Генри Форд

        … начало 2011- середина 2012 год.

        Действующая схема заработка плавно приходила к своему концу «генетического кода», а именно к закату эры «золотых дровосеков». Самым лучшим решением казалось, взять все дочерние сервисы, которые использовались для своих целей и довести их до ума разума переделать под внешний рынок. В обратном случае придется все сложить в самый дальний угол и оставить там гнить да покрываться пылью.


        Читать дальше →
        • +12
        • 9,7k
        • 7
      • История одной IT-компании, которая так и не пришла к успеху

        Частенько встречаются статьи на тему «что необходимо для создания успешного IT бизнеса», «основополагающие факторы успеха IT компании» и все в этом же духе. Одни убеждены, что для старта необходимы инвестиции, другие делают упор на команду. Существует сто пятьсот советов и такое же количество «историй успеха». По этой причине у меня появилась идея рассказать историю одной компании (реальные имена и названия будут изменены, дабы не тыкать пальцами). История больше похожа на неуспех, несмотря на наличие большинства факторов, которые должны были привести к успеху, но не все пошло на пользу.


        Читать дальше →
      • История одной IT-компании, которая так и не пришла к успеху (Ч.3)

          Пролонгация


          Денежная инфекция поражает воображение. © Павел Шарпп

          2013 год. Пришло время оценить результаты работы за прошлый год. Сделано много — похвалиться нечем.
          CEO прочитав какую-то из очередных «умных» книг (а может и посетив семинар) понял в чем у нас загвоздка. Появились понятия о капитализации, экзитах, опционах, акциях, бюджетах, прогнозах, гипотезах и об инвестиционных раундах.


          Читать дальше →
          • +13
          • 17,6k
          • 7
        • Как правильно внести свою лепту в Open Source проект: простые подсказки

            Open Source проекты с каждым днём набирают всё большие обороты, появляются новые, активно развиваются популярные.
            Такие проекты как Bootstrap, Angular.js, Elasticsearch, Symfony Framework, Swift и многие другие привлекают новых разработчиков, их сообщество растёт. Всё это даёт огромный рост проектам, а самим разработчикам интересно поучаствовать в разработке чего-то, чем пользуется весь мир.

            Я, как и многие другие программисты, не устоял и также время от времени участвую в разработке Open Source проектов, в основном на PHP. Но когда я начинал, я столкнулся с проблемой — я не знал, как правильно организовать процесс «контрибьютинга», с чего начать, как сделать так, чтобы мой Pull Request рассмотрели и т.д.

            Всем начинающим «контрибьютерам», которые столкнулись с похожим проблемами, добро пожаловать под кат.


            Читать дальше →
          • Калибровка Kinect v2 с помощью OpenCV на Python

            Не так давно мы начали пару проектов, в которых необходима оптическая система с каналом дальности, и решили для этого использовать Kinect v2. Поскольку проекты реализуются на Python, то для начала нужно было заставить работать Kinect из Python, а затем откалибровать его, так как Kinect из коробки вносит некоторые геометрические искажения в кадры и дает сантиметровые ошибки в определении глубины.

            До этого я никогда не имел дела ни с компьютерным зрением, ни с OpenCV, ни с Kinect. Исчерпывающую инструкцию, как со всем этим хозяйством работать, мне найти тоже не удалось, так что в итоге пришлось порядком повозиться. И я решил, что будет не лишним систематизировать полученный опыт в этой статье. Быть может, она окажется небесполезной для какого-нибудь страждущего, а еще нам нужна популярная статья для галочки в отчетности.

            image
            Читать дальше →
            • +16
            • 11,9k
            • 9
          • Sublime Text как IDE для ARM на примере STM32

            image

            В этой статье будет изложена инструкция по созданию сборки Sublime Text c дополнительными программами, которую можно будет использовать как среду разработки для микроконтроллеров, в частности STM32F10x. Итак, перед нами стоит задача сделать при помощи Sublime Text — IDE, которая включает в себя: статический анализ и автодополнение кода в момент его написания, систему построения проекта с помощью makefile, компилятор, линковщик, прошивку микроконтроллера и отладку. К тому же сборка будет работать без установки.
            Читать дальше →
          • Фильтр Маджвика

            • Перевод

            Предисловие от переводчика


            Здесь представлен один из новейших методов расчёта ориентации в пространстве по показаниям датчиков акселерометра, гироскопа и компаса — фильтр Маджвика, который, по словам автора, даёт результат лучший, чем применение фильтра на основе метода Калмана в результатах и производительности. Автор — Себастьян Маджвик (его интернет-магазин). Метод описан в статье на английском. Данная работа защищена в Университете г. Бристоля Перевода я не нашёл. Переводчик из меня так себе, особенно таких сложных текстов. Но нам же интересно, что за метод?

            Кое-где буду от себя добавлять — там текст выделен курсивом. Мною найдено более 10 опечаток в оригинальном тексте. Вообще было довольно трудно, поэтому помощь приветствуется — пишите в комментариях, где перефразировать нужно, в общем, где что не так.


            Читать дальше →