Архив за 28 ноября 2016

Рано или поздно все разработчики Java решают мелкие задачи в области Continuos Integration. Не обошла эта участь и меня. Озадачился я проблемой автоматического инкремента версий в pom.xml при каждой итерации сборки проекта.

Дано: maven проект с несколькими модулями, мастер pom.xml и Jenkins-сервер (все как у настоящих пацанов).

Нужно: чтобы при каждом коммите автоматически собирался проект в любом бранче, а в ветке develop проект не только собирался, но и инкрементился номер билда, который задан третьим числом в версии вида 1.0.100-SNAPSHOT.

Для автоматической сборки Java-проекта в бранчах у нас используется Jenkins-проект на основе модного нынче Multibranch pipeline.

image

Суть этого workflow — периодически (например, раз в минуту), в Multibranch pipeline запускается задача, которая определяет изменения в бранчах и запускает сборку для тех бранчей, в которых что-то закоммитили. При этом, как у настоящих пацанов, для сборки бранча используется самый настоящий Jenkinsfile. Немного ликбеза: Jenkinsfile — это код на языке Groovy который определяет последовательность и инструкции по сборке проекта. Даже придумали для этого специальный термин «pipeline as code». Казалось, ничего вроде бы сложного нет — через groovy-скрипт инкрементим номер версии, коммитим и запускаем maven-сборку. Но тут нарисовывается главная проблема — как предотвратить последующие (бесконечные) сборки после того, как мы автоматом обновили pom.xml? Да, в Jenkins-плагине под названием 'git' (тот самый, который предназначен для детекта изменений в бранчах) есть даже специальная фича — «Pooling ignores commit», но вот незадача — она не работает в Multibranch-pipeline. По этому поводу жаловались многие пользователи и даже завели специальный Jira-айтем. Поэтому — вперед, будем изобретать свой велосипед!
Читать полностью »

Двадцать лет назад я написал первую строчку кода: 10 CLS. Именно так, не здороваясь с миром и не представляя, что меня ждет, я ввел следом RUN и электронная машина также бесцеремонно бросила мне первый вызов, стерев все на экране телевизора с насмешкой "ОК". Я был удивлен, но не тому, что могу приказать машине что-то сделать, а тому, что она может мне отвечать. Мне было 7, и это история о непростых отношениях ребенка с компьютером, через призму лет глазами состоявшегося программиста.

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

Компания Hello Games — разработчик игры No Man's Sky, известной публике своими недоработками и скандалами — анонсировала выпуск мажорного обновления для своего нашумевшего проекта, о чем разработчики сообщили на официальном сайте игры. Патч нацелен, в первую очередь, на создание и обустройство базы и дает игроку возможность обзавестись транспортными судами для перевозки ресурсов.

«На этой неделе Hello Games выпустит в релиз апдейт для No Man's Sky. Мы называем его The Foundation (»Основание"), потому что мы добавили основные базовые строения и систему предметов", — говорят разработчики.

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

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

Будучи общепризнанными лидерами и вдохновителями индустрии статического анализа, мы польщены тем, что другие компании ориентируются на наш продукт как на эталон качества при разработке своих инструментов. Обычно мы не считаем нужным как-либо реагировать на публикации о результатах сравнений нашего анализатора с другими продуктами, однако «экспертный отчет», выпущенный компанией Grammatech и посвященный сравнению инструментов CodeSonar и PC-lint, оказался крайне неприятным исключением. Вместо того чтобы сосредоточиться на достоинствах своего продукта, авторы этого документа прибегли к ложным заявлениям в адрес PC-lint и искажению фактов относительно его технических возможностей, что, вероятно, явилось следствием давления со стороны рынка, и мы считаем своим долгом ответить на эту ложь, рассказав о реальном положении дел.
Читать полностью »

Муравьи на Фиджи примерно 3 млн лет назад научились выращивать фрукты - 1
Рабочий муравей тащит семечко Squamellaria к месту посадки

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

Другие общественные насекомые — муравьи — не отстают от термитов по находчивости. Специалисты-мирмекологи обнаружили на островах Фиджи неизвестный ранее вид муравьёв Philidris nagasau, который занимается совершенно удивительными вещами.
Читать полностью »

Согласно исследованию GartnerЧитать полностью »

Пытаться исследовать качество связи сотовых операторов — занятие по-определению неблагодарное. В любом случае, найдутся недовольные. Сегодня информационно-аналитическое агентство TelecomDaily подвело итоги исследования качества услуг голосовой связи и передачи данных в сотовых сетях, работающих на территории Москвы и Московской области. Исследование, как следует из сообщения агентства, Читать полностью »

в 15:07, , рубрики: Elixir, erlang, Erlang/OTP, ruby, ruby on rails

RamblerElixir #1 - 1

8 декабря в 19:00 на Мансарде Rambler&Co состоится meetup Elixir разработчиков. Elixir — функциональный язык программирования c динамической типизацией для разработки распределённых, отказоустойчивых приложений, построенный на базе виртуальной машины Erlang (без GIL), имеет очень приятный синтаксис и низкий порог вхождения.
Читать полностью »

Приветствую.
Есть такая штука — гидролокнептунавквасторож — системы перекрытия подачи воды, если происходит не контролируемая утечка. Принцип простой — датчик воды + автоматика + пара кранов с электроприводами. Но дьявол как обычно в деталях: как устроены краны, как устроены датчики протечки и почему один стоит 50 рублей, а другой 500р. На все это дело навернут килограм макетингового булшита, упаковка вырви глаз и т.д.
В рассказе пройдусь по кирпичикам системы, чем руководствовался в выборе.
Вся система строится на заводских датчиках и самодельном контроллере на базе Particle (ex.Spark) Photon (такая esp8266 у которой облачная IDE на wiring из коробки), база девайса stm контроллер + wifi модуль от броадкома. Все это завязано на openhab сервер на Orange Pi One
Защита от протечек с блекджеком и счетчиками - 1

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

Задача: Компания (далее Компания) разрабатывает и выпускает некоторый продукт (далее Продукт). Необходимо создать программное обеспечение для проверки Продукта на сборочной линии (далее Линия) некоторой сторонней или принадлежащей компании фабрике (далее Завод).

Вы: разработчик тестового ПО для проверки Продукта, или менеджер этих разработчиков, или вообще менеджер, или инженер, или тестер широкого профиля… в общем лицо, ответственное теперь за проверку работы Продукта на выходе. У вас есть некоторый опыт лабораторного тестирования, но нет накопленного опыта работы с фабрикой.

Цель: Грамотно сгладить ошибки разработки тестового ПО для фабрики, допускаемые в процессе жизненного цикла Продукта.

Примечание: под Продуктом понимается некоторое устройство или его часть, обладающее внутренней логикой, SW / FW / Функционал которого требуется проверить. Пример: сотовый телефон, контроллер, программируемые устройства, материнская плата.
Читать полностью »