Flying Bear P902: Добавляем направляющую для прутка

Одна из немногих вещей, которая раздражала меня в “летающем медведе” – каша из проводов и отсутствие штатной возможности держать их подальше от XY кареток, ровно как и отсутствие направляющих для прутка. Пришлось исправлять ситуацию.


Continue reading “Flying Bear P902: Добавляем направляющую для прутка”

Flying Bear P902: Добавляем полку для инструмента

Чтобы расчистить бардак на столе около 3д-принтера, я сделал вот такой вот небольшой крепеж для шестигранников и отверток, которые шли в комплекте с ним. Изначально сделано для моего P902, но должно подойти для любой конструкции, собранной из алюминиевого профиля.

Continue reading “Flying Bear P902: Добавляем полку для инструмента”

Flying Bear P902: Лечим проблему пыли от пластика в экструдере

Я недавно раздобыл себе новую игрушку, называется Flying Bear P902.  Для своих денег (~300$) это отличная железка, в разы лучше моего старого Solidoodle 2го поколения.  Поэтому ближайше время я буду постить разного рода мелочи, как доработать эту хреновину напильником, чтобы получить качественные принты.  Начну с самой первой проблемы, с которой я столкнулся.

Continue reading “Flying Bear P902: Лечим проблему пыли от пластика в экструдере”

Тест интеграции с соц-сетями

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

Не стоит ожидать, что я буду отвечать на каждый френд-реквест/личное сообщение/ретвит. Если действительно хочется связаться – электронная почта остается лучшим средством. Почему? Как минимум потому, что спустя пять 5 минут после регистрации аккаунта в том же вк полез спам: . А в случае с электронной почтой с ним мы хоть знаем, чем бороться.

Continue reading “Тест интеграции с соц-сетями”

Самодельная замена хвостам от Easton

Ну что же, пожалуй пора представить редкому читателю новую рубрику этого унылого инженерного бложика, а именно “лучные дела”. И это первый пост, который будет посвящен именно этой теме. Каждый, кто выбрал себе в виде очередного хобби стрельбу из лука рано или поздно сталкивается с тем, что расходы на это хобби хочется сократить. Особенно учитывая то, что из-за того, что лучников очень много, за снаряжение и расходники принято сдирать просто неимоверно большие деньги. Особенно если дело касается снаряги, из которой можно более или менее соревноваться хотя бы с кем-то.

img_20160828_112710.jpg

Continue reading “Самодельная замена хвостам от Easton”

Делаем из внутренностей мертвого планшета полноценный одноплатник

Это лето оказалось прямо таки адски жарким. И дело не столько в жаре, с колько в количестве дел и дедлайнов, в том числе и на моей в меру унылой работе. Так что я порядком забыл про все, включая этот унылый бложик. Однако как только напряженка немного спала, руки зачесались опять с чем-нибудь поковыряться. И атк получилось, что для моих дачных нужд мне потребовался еще один линуксовый одноплатник. Вместо того, чтобы привычно заказывать оный с алиэкспресса, я решил заглянуть в короб с пометкой “хлам” и извлек оттуда вот такую вот хреновину:

IMG_2598

Continue reading “Делаем из внутренностей мертвого планшета полноценный одноплатник”

тяжелая наркомания: Сборка VPI расширения и запуск Verilog тестов при помощи cmake/ctest

Недавно потребовалось для нужд кровавой отладки сделать свое VPI расширение для verilog HDL и встал вопрос как интегрировать это добро с какой-нибудь нормальной системой сборки. К сожалению, в плане инструментов для сборки, отладки и тестирование люди проектирующие СБИС живут если не в каменном веке, то в своем особом мирке, со своей особой атмосферой. Опенсурсный iverilog в этом плане ничуть не лучше коммерческих тулов, которые кладут огромный болт на многие общепринятые в мире linux практики.
Ну да хрен с ними. Надо решать как с этим жить. В этой заметке я постараюсь пройтись по основным нюансам написания CMakeLists.txt для сборки vpi расширения и его unit-тестирования.

Continue reading “тяжелая наркомания: Сборка VPI расширения и запуск Verilog тестов при помощи cmake/ctest”

SkyForge: Создаем корневую ФС Debian на основе конфигурации в стиле Dockerfile

Для кучи проектов, как для работы, так и для дома я использую Debian. Однако, когда работаешь со встраиваемыми системами (напр. ARM СнК) под рукой нет установочного диста debian… Да и вообще привода для чтения дисков. Корневая ФС формируется вручную, отдельно собирается вручную ядро. Впрочем, как обычно.

Процесс не особенно быстрый, если следовать официальной документации на debootstrap и multistrap, а новичкам просто взрывает мозг. (К сожалению, я уже тут не нуб зеленый, старею)
Самое неприятное, что мало просто сформировать корневую ФС, надо ее еще настроить более или менее вменяемым способом, напр. выставить пароль по умолчанию, сгенерировать ssh ключи, прописать fstab… В общем, обычный набор действий.

В большом Ынтерпрайзе ™ существуют такие инструменты, как vagrant который создает базовую виртуальную машину заданной конфигурации и chef или puppet, которые собственно ее настраивают. Хотя нам никто не запрещает использовать chef или chef-solo на armhf плате (а почему бы и нет?) нам все равно нужен какой-то базовый образ, который мы будем в дальнейшем настраивать, так?

Continue reading “SkyForge: Создаем корневую ФС Debian на основе конфигурации в стиле Dockerfile”

CMake + atom + .clang_complete

С некоторый пор я переехал с emacs’а на atom, который выглядел как более современная замена. Что для меня было важным – у него очень хорошая работа с CMake и автодополнение для оного. Вскоре ко всему этому делу я прикрутил lint и autocomplete через clang. И то и другое мне понравилось, но хотело актуального .clang_autocomplete в корне проекта. Однако, если проект получает от системы сборки кучу дефайнов, то управлять этим файликом руками становится больно и неприятно. Выход – генерить его на лету. Вот мой костыль для CMake:

message(STATUS "Generarating ${CMAKE_SOURCE_DIR}/.clang_complete")
get_property(dirs DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY INCLUDE_DIRECTORIES)
file(WRITE ${CMAKE_SOURCE_DIR}/.clang_complete "")
foreach(dir ${dirs})
  file(APPEND ${CMAKE_SOURCE_DIR}/.clang_complete "-I${dir}\n")
endforeach()
string(REPLACE "'" "" CMAKE_C_FLAGS_SPLIT ${CMAKE_C_FLAGS})
string(REPLACE " " ";" CMAKE_C_FLAGS_SPLIT ${CMAKE_C_FLAGS_SPLIT})
foreach(flag ${CMAKE_C_FLAGS_SPLIT})
  file(APPEND ${CMAKE_SOURCE_DIR}/.clang_complete "${flag}\n")
endforeach()

Очевидно, если мы используем C++ в проекте, то и обрабатывать схожим образом надо переменную CMAKE_CXX_FLAGS. У этого кода есть очевидное ограничение: Если мы передаем через -D дефайны с несколькими словами – нас ждет облом (напр. -DRELEASE_CODENAME=”Black Burned Cookies”)

Jenkins + armhf + deb

Эта заметка о том, как я разворачивал CI для около-железячных софтовых проектов и каких проблем я огреб с этим безобразием, пока добился рабочего (хоть и при помощи лома и мата) решения. Возможно даже первая из серии.

Начнем с проблемы. Совсем просто, на случай если это читают дети. У нас есть несколько software проектов. Нам надо периодически делать следующие рутинные действия:

  • Собрать проект и проверить, что он вообще собирается где-то, кроме ноутбука разработчика
  • Прогнать unit-test’ы (Ведь мы же не ленимся писать unit-test’ы, не так ли?)
  • Собрать deb-пакеты, и загрузить куда-нибудь, чтобы пользователи были счастливы

Казалось бы, все давно отлажено, есть OpenSuse Build Service / Open Build Service, Travis, Jenkins. Есть такие страшные штуки как sbuild, schroot и целый выводок утилит от debian-разрабов и просто классных людей, какие могут проблемы? Как всегда, дьявол в деталях. Сразу предупреждаю – текста будет много.

IMG_20151123_010048

Continue reading “Jenkins + armhf + deb”