Открыть список
Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

Ino — работа с Arduino из командной строки

Блог компании Амперка
imageХабрадевелоперам, привет!

Те, кто работал с Arduino, знает, что для его программирования существует специальная Arduino IDE. По сути это блокнот с двумя кнопками: «прошить» и «послушать через serial». Блокнот подходит для написания маленьких программок-экспериментов, но выбешивает при написании чего-то большего.

Многие привыкли работать в своих любимых Visual Studio, Eclipse, KDevelop и т.п. Я сам — убеждённый фанат Vim’а, окна терминала и кнопок Alt+Tab. Давно хотелось, чтобы сборка проектов для Arduino была такой же простой, как в официальной IDE, а вот их ужасный редактор на глаза больше не попадался. Тем более, что язык «Arduino» несмотря на позиционирование как отдельного, простого языка программирования — это не что иное, как C++. А собирается всё в конечном итоге инструментами avr-gcc.

Для решения проблемы Амперкой был создан Ino.
Читать дальше →
Всего голосов 20: ↑20 и ↓0 +20
Просмотры12.3K
Комментарии 29

Параллельная компиляция Qt в Windows

Qt
Параллельная компиляция Qt-проектов под Windows с использованием QtCreator — зверь загадочный и очень привередливый. В этой небольшой статье я расскажу, как же все-таки его приручить. Параллельная компиляция может быть выполнена достаточно просто в теории, на практике дела обстоят не совсем гладко, чему в подтверждение бесконечное число тем на форумах, где предлагаются всевозможные решения. Ни одно из них, к сожалению, нам не помогло.

Читать дальше →
Всего голосов 27: ↑26 и ↓1 +25
Просмотры11.9K
Комментарии 20

Чем плох GNU make?

Разработка веб-сайтов
GNU make — широко известная утилита для автоматической сборки проектов. В мире UNIX она является стандартом де-факто для этой задачи. Являясь не такой популярной среди Windows-разработчиков, тем не менее, привела к появлению таких аналогов, как nmake от Microsoft.

Однако, несмотря на свою популярность, make — во многом ущербный инструмент.
Читать дальше →
Всего голосов 120: ↑104 и ↓16 +88
Просмотры22.8K
Комментарии 84

Mybuild — система сборки для модульных приложений

Блог компании EmboxРазработка веб-сайтовПрограммирование
Недавняя статья про новую систему сборки для Qt напомнила мне ситуацию, которая была в нашем проекте несколько лет назад — тогда мы тоже искали подходящую систему сборки. Проект довольно комплексный и ему необходимо иметь гибкую систему конфигурирования. В результате сейчас мы используем и развиваем собственную систему сборки Mybuild.

Кому интересно узнать, что у нас получилось, и что это за проект такой, которому понадобилась собственная система сборки, добро пожаловать под кат.
Читать дальше →
Всего голосов 16: ↑13 и ↓3 +10
Просмотры5.5K
Комментарии 19

Прощай XML-build… Здравствуй Rake!

Разработка веб-сайтовRuby.NET
Перевод

Введение



Сегодня (Monday, April 26th, 2010 at 8:54 am? Прим. перев.) в очередной раз я твитнул о том, что не являюсь фанатом систем сборки проектов, основанных на XML. Да, я понимаю для чего они нужны. Да, они были хороши в свое время. И да, я до сих пор использую их каждый день. Но несмотря на все это я считаю, что есть более удобные способы решить эту задачу. Наиболее частым ответом на мой твит были слова: «Ну а альтернатива-то какая?» Одна из важнейших вещей, которым научила меня жизнь, это то, что не стоит жаловаться на что-либо до тех пор пока тебе нечего предложить взамен. Так что я здесь и сейчас предложу альтернативное решение…
Читать дальше →
Всего голосов 17: ↑11 и ↓6 +5
Просмотры3.1K
Комментарии 24

Используем GYP для сборки С/C++ проекта

C++
Из песочницы
Tutorial

Введение


На хабре уже несколько раз упоминалась система генерации скриптов сборки и проектных файлов CMake. Система достаточно популярна и неплохо документирована. Не все знают, что есть неплохая альтернатива этой (безусловно, замечательной) системе. Да, речь в статье пойдёт о проекте Generate Your Project (GYP).

Предыстория


GYP разрабатывался для сборки конкретного проекта — браузера Chrome/Chromium. Решение разрабатывать свой инструмент вызвало множество споров, многие не понимали (возможно, до сих пор не понимают), зачем изобретать свой «велосипед». Тем не менее, GYP стал довольно популярным инструментом, и сейчас он используется за пределами инфраструктуры Chromium, например, для сборки V8 и нативных модулей NodeJS.
Читать дальше →
Всего голосов 10: ↑10 и ↓0 +10
Просмотры6.4K
Комментарии 10

Компоненты by T.J.Holowaychuk

Разработка веб-сайтовПрограммирование
Из песочницы
Доклад на девятой конференции «Свободное программное обеспечение в высшей школе», 25–26 января 2014. Исходный код заметок и примеров к ним доступен на https://github.com/mbykov/articles.



Все, кто работает с node.js, знают TJ Головайчука, автора веб-сервера express, библиотеки для тестирования mocha, и прочая, и прочая. Но, наверное, самый блестящий его проект на сегодня — это Component — http://github.com/component. На русском пока немного литературы о Компонентах, попробую восполнить этот пробел. TJ опубликовал первое сообщение о Компонентах в своем блоге 19 декабря 2012 г. Сейчас, после взрывного роста, количество компонент уже зашкаливает за тысячу, и растет каждый день.

первое знакомство с компонентами
Всего голосов 44: ↑23 и ↓21 +2
Просмотры4.4K
Комментарии 1

Компоненты. Пример

Разработка веб-сайтовПрограммирование
в начало заметок о компонентах

Выпадающий список



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

image text

Код примера доступен по адресу https://github.com/mbykov/component-dropdown-example. Клонируйте его и откройте в браузере файл test/example.html, кликните на input.

Читать дальше →
Всего голосов 36: ↑12 и ↓24 -12
Просмотры4K
Комментарии 0

Компоненты. Тестирование-консоль

Разработка веб-сайтовПрограммирование
в начало заметок о компонентах

текущая версия vs. v1



Компоненты можно тестировать в консоли, как обычные node.js модули. К сожалению, к текущей версии в этом случае есть проблемы с использованием зависимостей, например, завязаных на DOM. То есть если я тестирую компоненту к консоли, запуская, скажем node node mocha ..., я не могу просто сделать require другой компоненты, завязаной на DOM. В любом случае в консоли require подхватит модуль node.js, а не компоненту. А в модуле domify node.js нет объекта document. В будущих версиях билдера компонент ситуация изменится. См. https://github.com/component/component/issues/41. Пока что для тестирования этих компонент в консоли можно использовать phantom.

Читать дальше →
Всего голосов 31: ↑10 и ↓21 -11
Просмотры3.5K
Комментарии 0

Компоненты. Make & watch

Разработка веб-сайтовПрограммирование
в начало заметок о компонентах

make vs. grunt vs. gulp, watch



task runners — класс утилит, автоматизирующих процесс преобразования файлов. Их много, Make, Rake, Cake, etc. Обычно выполняемые задачи очень важны и выполняются часто, и очень часто. Компиляция, запуск тестов, рендеринг и преобразование форматов файлов, минификация js-файлов, преобразование CSS. Крайне важная вещь для ежедневной работы.

Читать дальше →
Всего голосов 32: ↑10 и ↓22 -12
Просмотры3.1K
Комментарии 1

Просто о make

C
Из песочницы
Меня всегда привлекал минимализм. Идея о том, что одна вещь должна выполнять одну функцию, но при этом выполнять ее как можно лучше, вылилась в создание UNIX. И хотя UNIX давно уже нельзя назвать простой системой, да и минимализм в ней узреть не так то просто, ее можно считать наглядным примером количество- качественной трансформации множества простых и понятных вещей в одну весьма непростую и не прозрачную. В своем развитии make прошел примерно такой же путь: простота и ясность, с ростом масштабов, превратилась в жуткого монстра (вспомните свои ощущения, когда впервые открыли мэйкфайл).

Мое упорное игнорирование make в течении долгого времени, было обусловлено удобством используемых IDE, и нежеланием разбираться в этом 'пережитке прошлого' (по сути — ленью). Однако, все эти надоедливые кнопочки, менюшки ит.п. атрибуты всевозможных студий, заставили меня искать альтернативу тому методу работы, который я практиковал до сих пор. Нет, я не стал гуру make, но полученных мною знаний вполне достаточно для моих небольших проектов. Данная статья предназначена для тех, кто так же как и я еще совсем недавно, желают вырваться из уютного оконного рабства в аскетичный, но свободный мир шелла.
Читать дальше →
Всего голосов 104: ↑98 и ↓6 +92
Просмотры298.3K
Комментарии 107

Ultimaker 2

DIY или Сделай сам
Журнал Make назвал в ноябре 2012 года принтер Ultimaker Original «самым точным и самым быстрым 3D принтером».
А я ждал-дожидался возможности потрогать хотя бы первую модель, а тут — сразу вторая!
Спешу поделиться с хабрсообществом тем, что я увидел.
Что же представляет из себя Ultimaker 2?



Очень красивое видео:


Читать дальше →
Всего голосов 82: ↑80 и ↓2 +78
Просмотры61K
Комментарии 35

Использование возможностей git-а в системе сборки модульного проекта

Блог компании РЕЛЭКСРазработка веб-сайтовGitСистемы управления версиями
В нашем блоге мы уже рассказывали о принципах организации репозитория большого проекта как совокупности независимых модулей, что позволяет организовать извлечение исходных кодов в произвольную файловую структуру рабочей копии. Разумеется, такой подход не мог не отразиться на системе сборки проекта, поскольку потребовал создание механизма отслеживания зависимостей между модулями с учетом их фактического размещения. Эта статья посвящена тому, как можно использовать возможности git-а для решения не только этой задачи, но и для извлечения фрагмента проекта с автоматическим учетом внутренних межмодульных зависимостей.


Читать дальше →
Всего голосов 15: ↑13 и ↓2 +11
Просмотры11.9K
Комментарии 4

Сборка docker контейнеров с помощью docker контейнеров

Разработка веб-сайтов
Из песочницы
image

С момента начала работы с Docker, мы столкнулись с немалым количеством проблем. Одна из них — организация сборки приложений и упаковки их в контейнера. Мы решили эту задачу с помощью введения концепции сборочного контейнера. О том, что это такое, зачем нужно и как мы до этого дошли и пойдет речь в этом посте.
Читать дальше →
Всего голосов 15: ↑14 и ↓1 +13
Просмотры42.5K
Комментарии 11

Система сборки для больших модульных проектов

Блог компании РЕЛЭКСРазработка веб-сайтовGitСистемы управления версиями
На страницах нашего блога мы уже писали о преимуществах организации репозитория крупного проекта способом, предполагающим возможность извлечения исходников в изменяемую структуру рабочей копии. Использование такого подхода вкупе с потребностями простого конфигурирования, фрагментарной сборки, поддержки несколько десятков ОС под широкий спектр аппаратных платформ стали причиной разработки нами собственной системы сборки. Эта статья рассказывает о найденных нами решениях, которые могут быть интересны разработчикам, сталкивающимися с трудностями поддержки инфраструктуры больших проектов.


Читать дальше →
Всего голосов 12: ↑9 и ↓3 +6
Просмотры10K
Комментарии 4

Собираем gnome-screenshot из исходников, чтобы изменить формат имени файла скриншота

Настройка Linux*nix
Из песочницы
Исходные данные. Некоторое время назад я столкнулся с тем, что программа gnome-screenshot (она же «Снимок экрана») сохраняет скриншоты при использовании горячих клавиш (PrtScr, Alt + PrtScr) с именем вида «Снимок экрана от 2022-02-02 10:11:59.png». Я же привык использовать имя вида «2022-02-02_101159.png». К тому же двоеточия в имени файла ставят в тупик Windows. Тогда я так и не смог найти, как настроить имя файла при снимке горячими клавишами и написал небольшой bash-скрипт, который обеспечивал мне нужный результат.

Во время поисков решения я натолкнулся на описание проблемы на сайте askubuntu.com. Среди ответов привлек мое внимание следующий: «истинный linux way — собери свой собственный gnome-screenshot из исходников!». В тот момент я подумал, что это слишком сложно. А на днях решил попробовать. Дальше я опишу порядок своих действий. В материале вряд ли будет что-то новое для опытных пользователей. Поэтому я считаю, что он может быть интересен:

1) тем, кто как и я хочет исправить проблему с форматом имени файла,
2) тем, кто пока ещё ничего из исходников не собирал.
Читать дальше →
Всего голосов 16: ↑9 и ↓7 +2
Просмотры7.9K
Комментарии 15

Патчим mysqldump в домашних условиях

MySQLC
image
Бекапы это хорошо, а еще лучше когда они работают так как надо когда они нужны. На одном из проектов понадобилось восстановить дамп из 745 триггеров и накатить их на рабочую MySQL базу.

MySQL позволяет использовать любые имена триггеров, в том числе с использованием точек (например: analitica.cron.indeg.y.run.a_insert). А mysqldump при создании дампа не учитывает это обстоятельство и добавляет конструкцию для их дропа следующего вида:

/*!50032 DROP TRIGGER IF EXISTS analitica.cron.indeg.y.run.a_insert */;

Подвох ожидает при попытке эти дампы накатить на базу где эти триггеры уже созданы. С точки зрения MySQL этот запрос не дропнет триггер, потому что не найдет триггер с таким именем. Для корректной работы имя триггера должно быть заключено в апострофы.
Подробности
Всего голосов 18: ↑14 и ↓4 +10
Просмотры14K
Комментарии 9

Готовим рабочее окружение для Erlang проекта

Erlang/OTP
Из песочницы

Введение


Многие книги по столярному и плотницкому делу начинаются с рассказа о правильной организации рабочего места и инструмента. Мне хочется верить, что навыки разработки – это тоже культура и мастерство. Рациональный подход к рабочему окружению позволяет снизить стоимость разработки и последующей доработки проекта благодаря раннему обнаружению проблем и повышению производительности труда разработчика. Тема, конечно же, обширна, и я планирую написать цикл статей:

Читать дальше →
Всего голосов 22: ↑22 и ↓0 +22
Просмотры7K
Комментарии 12

Грузите апельсины бочках. Релизы в Golang проектах

ПрограммированиеGo

Данная статья является продолжением инструментальной темы, затронутой в прошлой публикации. Сегодня мы постараемся разобраться со сборкой релизов Golang приложений в виде единого исполняемого файла, включающего ресурсные зависимости, и вопросом оптимизации размера итоговой сборки. Также рассмотрим процесс построения рабочего окружения отвечающего следующим требованиям:


  1. Переносимость. Окружение должно быть легко воспроизводимо на различных машинах.
  2. Изолированность. Окружение не должно влиять на версии установленных библиотек и программ на машине разработчика.
  3. Гибкость. Окружение должно позволять собирать релизы для различных версий Golang и Linux (разные версии дистрибутивов и glibc).
  4. Повторяемость. Не должно быть магии и тайных знаний, то есть все шаги сборки проекта и зависимостей должны быть описаны кодом.
Читать дальше →
Всего голосов 19: ↑14 и ↓5 +9
Просмотры7K
Комментарии 3

Arduino в Linux: настраиваем Qt Creator в качестве среды разработки

Электроника для начинающих
Tutorial
Платформа Arduino популярна, независимо от того, ругают её или хвалят. Её создателям удалось снизить порог вхождения до уровня несколько кликов мышью + пара строк кода и вуаля — вот вам моргающий светодиодик. И вообще, для быстрого прототипирования поделок на AVR, Arduino вещь крайне удобная. Единственное что им не удалось это IDE, которую и IDE-то назвать сложно. Среди функций IDE она обеспечивает только одну — автоматизацию создания и сборки проекта.

Для пользователей Windows существует альтернатива: MS Visual Studio Community + плагин vMicro который позволяет писать скетчи, но уже со всеми вкусностями, предоставляемыми IDE. Плагин без проблем качается в самой студии через меню «Инструменты» и в триале работает сколько угодно. Платная версия в теории поддерживает пошаговую отладку, но меня, как владельца лицензионной копии vMicro они не очень-то и впечатлили.

Для пользователей Linux всё как всегда: хотим хорошую IDE — выбираем «жертву» и пытаемся прикрутить к ней нужный функционал. Существуют решения на базе Eclipse, но я не люблю эклипс, о чём уже однажды писал. Я мирюсь с ним как с неизбежным злом, когда под рукой нет вообще ничего подходящего. Из всех бесплатных IDE я больше всего уважаю мощный и замечательный Qt Creator, в котором я и моя команда работаем уже больше года. Поэтому и рассказывать буду о том, как превратить его в среду разработки для Arduino.
Читать дальше →
Всего голосов 15: ↑13 и ↓2 +11
Просмотры21.8K
Комментарии 21