Разговор с программистом из SpaceX. Учился в Хмельницком, работал в Microsoft, Google, с 2013 в SpaceX.
Темы: устройство в SpaceX, взгляд на Илона Маска «изнутри», программирование. Вопросы про используемые языки программирования, операционные системы, железо и т.п.
«Вкратце, в полёте и системах, обслуживающих полёт, используется С++ и Linux. В менее критичных системах широко используется Python и другие языки.»
кибер•Фонд проводит инициативу по поддержке открытых проектов, развивающих экосистему блокчейн-платформы Golos. Golos представляет систему блогов, в которой авторы полезных записей получают вознаграждения, согласно системе репутации, в которой участвуют все пользователи. Вознаграждения производятся проводятся через эмиссию собственной криптовалюты. Golos является форком платформы Steem и ориентирован в первую очередь на русскоязычную аудиторию.
Вознаграждения будут производиться за счёт средств кибер•Фонда, составляющих около 10 % начального количества токенов Golos, через стандартную форму вознаграждений. При вознаграждении будут учитываться пользовательские предпочтения.
Вышла и потихоньку развивается бета-версия системы учёта технического долга. Система сделана в виде баг-трекера, который устанавливается параллельно основному трекеру проекта (jira, redmine и т.д.) на любое устройство с доступом в сеть (тестовый сервер, ноутбук разработчика, кофеварка и т.п.). Однако, вместо времени, использованного для решения проблемы, она учитывает время, потерянное в силу того, что проблема всё ещё не решена.
Идея такова: команда разработчиков заводит тикеты, описывающие те или иные проблемы разрабатываемого продукта (плохой код, недостаток документации, проблемы производительности, убогость внутреннего инструментария и т.д.), после чего логирует время и предлагает возможные решения. Далее, в зависимости от вменяемости заказчика/менеджера, тикеты либо вносятся уже в нормальный багтрекер, либо тихой сапой включаются в «официальные» фичи.
Поддерживаемые на данный момент функции:
Заведение тикетов, смена статусов, комментарии;
Теги а-ля stackoverflow;
Учёт потраченного времени;
Предложения решений (solution proposals) с оценкой времени на реализацию;
Персональная настраиваемая лента событий и слежение за тикетами;
Разнообразные отчёты, в т.ч. по тикетам, из-за которых уже потеряли больше времени, чем нужно на их исправление.
Проект реализован на языке Perl и использует базу данных sqlite. По ссылке содержится подробная инструкция по установке, скриншоты, текущий вишлист и всё такое.
Компания Microsoft выпустила первую стабильную версию Visual Studio Code (VS Code) для Linux и Mac OS X. VS Code — редактор кода, основанный на фреймворке Atom Shell (или Electron), который разработан GitHub и используется также в редакторе GitHub'а, Atom'е. VS Code был выпущен в виде open-source (MIT License) в ноябре 2015 года. Microsoft заявляет, что более 500 000 разработчиков пользуются VS Code ежемесячно.
Стабильная версия VS Code распространяется в виде zip-архива, а также в бинарных пакетах .deb и .rpm. Для разработчиков, которые хотят попробовать последние нестабильные изменения, есть аналогичная сборка «Insider».
В блоге команда Visual Studio Code пишет: “VS Code был создан для разработчиков веб-приложений на JavaScript и TypeScript. Но менее чем за полгода он стал расширяемым и сообщество сделало более 1000 расширений практически для любого языка VS Code.”
Дмитрий Вьюков из Google с помощью фаззера syzkaller нашел примеры последовательностей системных вызовов, способных вызвать проблемы в ядре (неубиваемый зависший процесс или oops). Фаззер основан на использовании информации о покрытии кода ядра автоматически генерируемыми тестовыми программами. Для работы необходимо наличие в конфигурации ядра детекторов плохого поведения: KASAN, KTSAN (доступны в виде CONFIG-опций при сборке ядра) или KUBSAN (доступен в виде патча).
Примеры найденных уязвимостей опубликованы в LKML (пока в количестве 6 штук, список растет).
Поддержка разных языков программирования: Bazel поддерживает Java, Objective-C и C++, а также может быть расширен для поддержки других языков.
Высокоуровневый язык конфигурирования сборки: проекты конфигурируются с помощью языка BUILD-файлов, в компактном текстовом формате, который описывает проекты как наборы небольших, взаимосвязанных библиотек, исполняемых файлов и тестов. В отличии от Bazel, Makefile, например, содержат описания конкретных файлов и параметров запуска компилятора.
Поддержка множества платформ: один и тот же инструмент используется для сборки ПО для различных архитектур и даже разных платформ. Google использует Bazel для сборки как серверного ПО, так и клиентских приложений на мобильных телефонах.
Воспроизводимость результатов: в BUILD файлах каждая библиотека, тест или исполняемый файл прямо указывают свои непосредственные зависимости. Bazel использует эту информацию, чтобы определять, как пересобирать двоичные файлы и параллельно выполнять тесты. Это означает, что все сборки инкрементальны и приводят к одинаковым результатам.
Масштабируемость: Bazel легко справляется с большими сборками. В Google достаточно часто серверные приложения занимают 100k строк кода и сборки ветки без отличий от кода основного репозитория могут занимать около 200 мс.
Я рад сообщить, что сегодня сбор средств на Gnome Builder (проект новой IDE для разработки ПО для Linux - прим.) достиг цели! Это поможет нам добиться существенного прогресса.
Сбор средств собрал более $ 30000 в течение 11 дней! (17 дней осталось) Это существенное пожертвование свободному программному обеспечению. Чем больше мы сможем собрать, чем дольше мы будем в состоянии работать над этим проектом. Это означает, что больше удобств, которые вы хотите увидеть. Языковая поддержка, отладчики, профилировщики, и расширения оболочки Gnome Shell и так далее.»
Хочу поделиться с вами своим генератором HTTP-запросов gURL.
Генератор HTTP-запросов может быть полезен при разработке и отладке backend-части сайта, когда есть необходимость быстро сформировать HTTP-запрос определенного вида.
gURL обладает следующими возможностями:
синтез HTTP-запросов (поддерживаются методы GET, POST, PUT, HEAD, DELETE);
просмотр заголовков ответа;
просмотр тел ответа в различных представлениях:
текстовое представление (отображение в простом текстовом виде с подсветкой синтаксиса);
шестнадцатеричное представление (отображение в виде шестнадцатеричного дампа);
web-представление (отображение в браузере);
представление JSON-данных в виде дерева.
подсветка синтаксиса тел ответов в некоторых форматах;
форматированный вывод тел ответов в некоторых форматах.
Meld — инструмент для сравнения содержимого текстовых файлов или каталогов, нацеленный на разработчиков.
Это первая версия Meld с использованием GTK+ 3.
Новые возможности:
Функция скрытия пустых каталогов.
Появилось уведомление пользователя, если файл был изменён внешне.
Используется стандарт GIO при удалении файлов.
Написано новое руководство по программе.
Исправления:
Улучшена скорость рендеринга при сравнении файлов.
Исправления перевода.
Копирование и вставка из буфера обмена в кэш больше не вызывает неверное изменение подсветки синтаксиса.
Исправлены ошибки в поддержке контроля версий.
Исправление падения окон.
Различные исправления ошибок.
Изменения в интерфейсе:
Поддержка стиля меню приложений GNOME 3.
Визуально обновили несколько значков интерфейса.
Обновление цветовой схемы самой программы.
Много обновлений визуального оформления программы, а также обновления макета настроек пользовательского интерфейса.
После двух лет тихой, незаметной и неторопливой (очень) разработки вышел первый релиз Antares.
Antares — это открытая и свободная (GPLv2) реализация системы сборки и набор библиотечного кода, ориентированные на разработку под «голое железо».
Open Psychology — проект по созданию профессиональных психологических тестов.
В настоящий момент не существует, в принципе, какой-либо открытой альтернативы платным комплексам для психологического обследования, которые зачастую по карману только крупным организациям, для которых и пишутся на заказ. А те немногие программы, которые доступны бесплатно, редко могут использоваться в исследованиях, поскольку предоставляют неполную информацию о результатах и нередко вообще не известно, по какому алгоритму идут расчеты.
В итоге, психологу приходится высчитывать всё вручную, в то время как это мог бы сделать компьютер. Проект призван исправить эту ситуацию.
Ядро проекта написано на Qt4 и C++, сами тесты пишутся на QtScript.
Участие в проекте может быть интересно как совсем начинающим программистам, так и желающим поупражняться в C++/Qt4. В целом проект не очень сложен.
Марк Шаттлворт заявил: «Я облажался (really screwed up) в своём блоге. Мне никогда не приходило в голову, что люди интерпретируют слова, что мы якобы становимся более закрытыми, когда явным намерением было открыть всё и сохранить при этом восторг от показа новинок.»
Несколько дней назад писали о том, что разработка Ubuntu, начиная с 13.04, будет более закрытой, а нововведения будут внедряться и тестироваться лишь ограниченным кругом доверенных лиц. Что же на самом деле имел в виду Марк?
Оказывается, вместо того, чтобы сделать разработку более закрытой, он наоборот стремится максимально открыть ее. Да, новые возможности по-прежнему будут разрабатываться небольшой командой, но Canonical хочет максимально привлечь сообщество в процесс разработки и тестирования. Все мы помним, как были анонсированы HUD, Unity, Web Apps, Ubuntu One или совсем недавняя линза покупок. Из процесса разработки не делали новостей, дабы волна критики не мешала разработчикам (а критика будет присутствовать всегда, несмотря на то, насколько реально хорош продукт). Теперь процесс разработки будет более открыт для проверенных членов сообщества. Именно это и имел в виду Марк.
Марк Шаттлворт в своем блоге объявил, что со следующего релиза (13.04) Ubuntu переходит на соборную модель разработки, когда нововведения будут внедряться и тестироваться ограниченным коллективом доверенных участников коммьюнити, а представляться на публику будут лишь по готовности.
Таким способом предполагается разрабатывать большую часть проекта Ubuntu, при этом исходный код будет публиковаться сразу после релиза под свободной лицензией. К разработчикам, желающим присоединиться к проекту, не будет предъявляться требование подписания NDA.
Анонс уже вызвал волну критики, в которой проводят параллели с процессом разработки продуктов Google, что, как полагают критики, потребует очень больших коллективов высококвалифицированных разработчиков, которых, как критики же и полагают, у Canonical просто нет.
Вышла новая версия свободной среды разработки для компилятора FreePascal — Lazarus 1.0. В связи с этим важным событием нынешняя команда разработчиков Lazarus хотела бы поблагодарить всех людей, которые когда-либо были вовлечены в его разработку. Особая благодарность основателям проекта, которые начали работу над ним более десяти лет назад, в 1999 году: Клиффу Бэйсеману, Шейну Миллеру и Майклу А. Гессу.
В блоге RawTherapee, свободного и открытого кроссплатформенного приложения для обработки raw-файлов цифровых фотокамер, обновлено обращение к добровольцам, желающим помочь в разработке программы. Речь не идет о денежных пожертвованиях.
GNU Hello — программа демонстрирующая основные инструменты, используемые при разработке в рамках проекта GNU. С недавнего времени этот проект стал использовать git в качестве системы контроля версий. Данный переход соответствует общим тенденциям и позволяет удобнее использовать такие библиотеки, как gnulib.
14 января состоялся выход первой бета версии интегрированной среды разработки KDevelop.
Основные приоритет разработки ветки 4.3 это стабильность и внедрение нескольких ключевых новых возможностей.
Среди основных нововведений стоит выделить следующее:
использование кеша CMake проектов;
значительное улучшение взаимодействия с GDB;
реализация поддержки свежего стандарта С++11(с++0x) в редакторе;
Компания Canonical запустила новый веб-ресурс - http://developer.ubuntu.com, направленный как на опытных разработчиков под Linux, так и на новичков в этой области. Ресурс Ubuntu Developer главным образом продвигает фирменную платформу Canonical для разработки - Quickly.
Идея проекта возникла на Неделе разработчиков приложений для Ubuntu, проходившей с 5 по 9 сентября, где разработчики представляли руководства по разработке и помогали участникам в комнате для обсуждений.
Новый архитектор внешнего вида ОС Ubuntu, Джон Окстон (John Oxton) отметил, что «цель сайта состоит в поиске новых и улучшения существующих приложений в Ubuntu Software Centre». Он также подчеркнул, что ресурс направлен не на известные и стабильные приложения, а скорее создан для заинтересованных разработчиков-одиночек, небольших команд или даже небольших компаний, которые уже создают небольшие, полезные или интересные приложения для других платформ.
Ранее Canonical провела исследование по поводу самых серьезных проблем, возникающих у молодых разработчиков приложений, и обнаружила, что одна из основных трудностей заключается в создании установочных пакетов из уже написанного кода. Поэтому новый ресурс включает состоящее из трех этапов руководство по созданию пакетов и размещению стабильных сборок в Ubuntu Software Centre. Также планируется добавление раздела документации.
Состоялся релиз Qt Creator 2.3, кроссплатформенной интегрированной среды разработки на С++.
Наиболее важные изменения:
на приветственной странице добавлены руководства и примеры;
многочисленные улучшения в определении оформления кода на С++, которые можно применить как глобально, так и в рамках одного проекта (подробнее);
профайлер обзавёлся собственным режимом анализа проекта, а также поддержкой приложений QML и внешнего профайлераValgrind Callgrind;
добавлена поддержка «базовых устройств на Linux», для этого необходимо настроить подключение к устройству «Linux Device», а также добавить в проект соответствующие правила сборки и развертывания;
отладчик и профайлер для приложений Qt Quick поддерживает приложения для устройств на Symbian и Meego 1.2 с установленной Qt 4.7.4;