Рубрика «open source» - 122

Perl 5: как в макросах ошибки прятались - 1

Для пополнения списка языков программирования с открытым исходным кодом, которые были проверены с помощью статического анализатора кода PVS-Studio, был выбран Perl 5. Эта статья о найденных ошибках и трудностях просмотра результатов анализа. Количество макросов в коде столь велико, что создаётся ощущение, что код написан не на языке Си, а на каком-то его странном диалекте. Несмотря на затруднения при просмотре кода, удалось насобирать интересные проблемы, о которых и будет рассказано в этой статье.

Введение

Perl — высокоуровневый интерпретируемый динамический язык программирования общего назначения (Perl is a family of two high-level, general-purpose, interpreted, dynamic programming languages). Разработка Perl 5 была начата в 1994 году. Спустя пару десятилетий, код на языке Си с многочисленными макросами вызывает нервозность у современных программистов.

Исходный код Perl 5 был взят из официального репозитория (ветка blead). Для проверки проекта использовался статический анализатор кода PVS-Studio. Анализ проводился на операционной системе Linux, но анализатор также доступен для Windows и macOS.

Просмотр результатов анализа был не простой задачей. Дело в том, что анализатор проверяет препроцессированные .i файлы, в которых уже раскрыты все директивы препроцессора, а выдаёт предупреждения на файлы с исходным кодом. Это правильное поведение анализатора, ничего менять не нужно, но много предупреждений выдаётся на макросы! А за макросами скрывается нечитабельный код.
Читать полностью »

11 сентября в Санкт-Петербурге прошел Java Meetup, полностью посвященный Apache Ignite. Огромное спасибо организаторам за приглашение и возможность рассказать об Open Source от лица разработчика этого самого Open Source. Учитывая позитивную реакцию зала, я решил поделиться презентацией и с теми, кто не смог присутствовать на митапе.

Под катом вас ожидает текстовая версия презентации, полная субъективного восприятия Open Source, как позитивного, так и негативного.

Введение в разработку типичного Open Source решения - 1

Читать полностью »

Зарождение совместных вычислительных средств для Human Cell Atlas

image

Специалист по вычислительной статистике Ким-Анх Ля Цао, работающая с ученым CZ Biohub Анджелой Писко.

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

Human Cell Atlas (HCA) — это амбициозное глобальное сотрудничество для создания открытой справочной карты всех клеток в организме человека путем всестороннего описания типов клеток, их количества и пространственных местоположений. После завершения он станет фундаментальным ресурсом для ученых, позволяя им лучше понять, как работают здоровые клетки, и что с ними происходит не так, когда болезнь наносит удар. Но сборка, интеграция, анализ и совместное использование этого ресурса требует новой облачной инфраструктуры данных и новых аналитических методов обработки и интерпретации больших и сложных различных наборов данных.

CZI поддерживает Human Cell Atlas посредством предоставления грантов, инфраструктуры данных, совместной разработки программного обеспечения с открытым исходным кодом и поддержки совместных исследований. В рамках этих усилий CZI Science недавно организовала четырехдневную конференцию более чем 200 ученых, вычислительных биологов и инженеров-программистов, чтобы положить начало созданию совместных вычислительных инструментов для Human Cell Atlas — серию из 85 грантов для исследователей, нацеленных на совместную работу для решения вычислительных задач для HCA.
Читать полностью »

Разработка GLSL шейдеров на Kotlin - 1

Всем привет!

Наша компания занимается разработкой онлайн игр и сейчас мы работаем над мобильной версией нашего основного проекта. В этой статье хотим поделиться опытом разработки GLSL шейдеров для Android проекта с примерами и исходниками.
Читать полностью »

После девяти лет альфа-тестирования и спустя шесть лет с момента формирования прошлого альфа-выпуска подготовлен первый бета-выпуск операционной системы Haiku R1. Изначально проект был создан как реакция на закрытие ОС BeOS и развивался под именем OpenBeOS, но был переименован в 2004 году из-за претензий, связанных с использованием в названии торговой марки BeOS. Для оценки работы нового выпуска доступно несколько загрузочных Live-образов (x86, x86-64). Исходные тексты большей части ОС Haiku распространяются под свободной лицензией MIT, исключение составляют некоторые библиотеки, медиа-кодеки и компоненты, заимствованные из других проектов.

image
Читать полностью »

кдпв

Мой комментарий к новости про Rust 1.28 с обзором ржавых событий за месяц неплохо зашел, так что вот держите очень субъективный срез ржавых новостей за прошлый месяц.

В этой подборке: Rust 1.29, записи докладов с Rustconf 2018, gfx-rs, Rust2018, порт Flatbuffers, новые версии ripgrep и Alacritty.

Rust 1.29

Вышел Rust 1.29. Основные нововведения — доступные сразу из rustupcargo fix и cargo clippy (подробнее в хабропереводе).

Следом была выпущена версия 1.29.1, закрывшая ошибку в std::repeat (обсуждение).

Rust 1.30 и 1.31 будут очень значительными.

Точного списка пока нет, но ожидается что:

  • в 1.30 (2018.10.26) войдет частичная стабилизация процедурных макросов;
  • в 1.31 (2018.12.07) войдут Rust 2018 + non-lexical lifetimes (NLL).

Читать полностью »

Лето благополучно закончилось, а значит приходит время покидать насиженные места, родные дачные кооперативы и стаями отправляться в город. Все бы хорошо, но как-то боязно оставлять на целых полгода хозяйство без присмотра. Задался и я подобным вопросом. В итоге решил оборудовать участок нехитрым комплектом из веб-камеры и доступа в интернет (скорее всего 3G). Начал, как водится, с малого — с поиска подходящей по бюджету камеры. Бюджет мой составлял примерно около 20$.

Жемчужина с барахолки или реверс-инжиниринг IP-камеры DCS-5220A1 - 1

Читать полностью »

Еще со времен обучения в университете я использовал LaTeX для оформления лабораторных и курсовых работ. Познакомился впервые с LaTeX я на Coursera, на курсе "Документы и презентации в LaTeX".

В этой заметке я расскажу, как я писал диплом с помощью LaTeX, GitHub, Docker и TravisCI.

Но зачем?

Читать полностью »

Дисклеймер: Я не рассматриваю какие-либо алгоритмы и API для работы со звуком и распознаванием речи. Эта статья о проблемах при работе с аудио и об их решении с помощью Go.

gopher

phono — прикладной фреймворк для работы со звуком. Его основная функция — создать конвейер из разных технологий, который обработает звук за вас нужным вам образом.

При чём тут конвейер, к тому же из разных технологий и зачем ещё один фреймворк? Сейчас разберёмся.

Читать полностью »

Kubernetes 1.12: обзор основных новшеств - 1

Сегодня 27 сентября, а это означает, что в рабочее время (по американскому часовому поясу) мы можем ожидать очередной релиз Kubernetes — 1.12 (впрочем, его официальный анонс иногда задерживается). В общем, самое время продолжить славную традицию и рассказать о наиболее значимых изменениях, что мы и сделаем, руководствуясь публичной информацией от проекта: таблицей Kubernetes features tracking, CHANGELOG-1.12, многочисленными issues, pull requests и design proposals. Итак, что нового в K8s 1.12?Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js