четверг, 30 января 2014 г.

Релиз r49-20140130



Версии компонентов:
  • libtoxic v7.5.3
  • cr49 v1.3.0
  • Qr49 v3.12.4
Изменения:
  1. Qr49: обновлен диалог "О программе";
  2. Qr49: решена проблема с неполной перезагрузкой перевода (диалоги) при смене языка интерфейса.

суббота, 25 января 2014 г.

emacs. Автоматическое определение кодировки текста

Очень нужная и полезная функция. И настраивается очень просто. Для начала, необходимо убедится, что в системе установлен пакет enca. Затем, поместить в доступный для emacs каталог (обычно это ~/.site-lisp) файл auto-enca.el и скомпилировать его в байт код (команда byte-compile-file). Можно также просто скачать уже готовый файл auto-enca.elc, поместив его туда же, куда и исходник. Далее, вносим соответствующие настройки в файл .emacs.
(add-to-list 'load-path "~/.site-lisp")
(when (load "auto-enca" 'noerror)
  (modify-coding-system-alist 'file "" 'enca-detect-coding))
Готово!

Настройка emacs-jabber для общения через google hangouts

Не знаю как вам, а меня просто достал кошмарный интерфейс G+. И больше всего - идиотские окошки чатов hangouts. Я много раз слышал о том, как люди используют emacs-jabber и очень довольны. Я люблю emacs и использую его каждый день в качестве текстового редактора. Похоже, настало время использовать его и для чего-то еще.
Я был удивлен насколько просто оказалось использовать emacs в качестве jabber клиента. Все, что для этого нужно (на примере Arch Linux) это:
  1. Установить из репозитория AUR пакет emacs-jabber;
  2. Добавить в свой файл .emacs следующие строки
  3. (require 'jabber)
    (setq  jabber-account-list (quote(("username@gmail.com" (:password . "superpassword") (:network-server . "talk.google.com") (:connection-type . ssl)))))
    Разумеется, что username и superpassword нужно заменить на свои настоящие имя пользователя и пароль.
  4. После корректировки файла конфигурации emacs и перезапуска программы, вы уже можете использовать его в качестве jabber клиента. Для этого необходимо выполнить (в командной строке emacs, как водится, после нажатия M-x) jabber-connect-all и перейти в буфер *-jabber-roster-*.
Вот так все просто.

UPD: 26.01.2014

В emacs-jabber функция автоматического повторного подключения к серверу в случае потери и последующего восстановления связи по умолчанию выключена. Активировать ее можно, например, следующим образом. Находясь в буфере *-jabber-roster-*, необходимо зайти в меню emacs "Jabber -> Costomize", в разделе "Subgroups" зайти в "Jabber Core", изменить значение флага "Jabber Auto Reconnect". После активации данной функции, изменения в настройках необходимо сохранить. Для этого нужно нажать на кнопку "Apply and Save".
Кроме того, весьма удобно, заходя в чат, видеть последние сообщения из предыдущих бесед. Эта функция в emacs-jabber по умолчанию тоже деактивирована. Для активации необходимо проделать те же действия, что и для Auto Reconnect. Нужный флаг находится в разделе "Subgroups -> Jabber History" и называется "Jabber History Enabled". Не забудьте сохранить изменения.

Arch Linux. Необходимое для разработки под Arduino

В данной заметке я хочу описать действия, необходимые для настройки системы, в нашем случае Arch Linux, для программирования под Arduino. Для этого требуется:
  1. Установить пакеты для сборки программ и загрузки/выгрузки данных из микроконтроллера. К таким пакетам относятся: avr-binutilsavr-gccavr-libcavrdude. Также, можно установить отладчик avr-gdb. Все эти пакеты доступны в репозитории community дистрибутива Arch Linux;
  2. Установить пакет arduino, содержащий Platform SDK. Пакет доступен в репозиториях AUR. Установить можно, воспользовавшись утилитой yaourt;
  3. Согласно рекомендациям в archwiki, а также рекомендациям, выданным системой после установки вышеуказанных пакетов, пользователю необходимо добавиться в группы ttyuucplock;
  4. При разработке программ нам здорово облегчит жизнь makefile, написанный одним добрым человеком. Скачать файл и почитать рекомендации по работе с ним можно ЗДЕСЬ.
И если у вас установлен emacs, то все готово для разработки. А если у вас любимым является другой редактор, то... его тоже можно использовать ) Мало того, я более чем уверен, что хуже IDE, идущей в составе пакета arduino, может быть только блокнот в виндовс.
Хорошо. Если все готово, то самое время провести тест. За базу возьмем код одного из простейших примеров, идущих в составе SDK.
  1. Создайте каталог для проекта. Пусть это будет blink.
  2. Создайте файл main.cpp следующего содержания.
    #include <Arduino.h>
    
    int led = 13;
    
    void setup() {                
        pinMode(led, OUTPUT);     
    }
    
    void loop() {
        digitalWrite(led, HIGH);
        delay(1000);
        digitalWrite(led, LOW);
        delay(1000);
    }
    
    int main(void) {
    
        init();
        setup();
    
        while (1) {
            loop();
        }
    
        return 0;
    }
  3. Поместите в каталог проекта файл arduino.mk, скачанный по ссылке из п. 4 описания настройки системы.
  4. Создайте Makefile следующего содержания.
    TARGET := blink
    SOURCES := main.cpp
    #LIBRARIES :=
    BOARD := mega
    include arduino.mk
    Разумеется, что если у вас плата, отличная от моей, то измените значение параметра BOARD. Кроме того, если вы разместили файл arduino.mk в более удобном месте для использования в разных проектах, то последнюю строчку Makefile тоже необходимо откорректировать соответствующим образом.
  5. Сборка проекта. Для этого необходимо выполнить команду make target в каталоге проекта. В результате будет создан hex файл.
  6. Загрузите программу в микроконтроллер. Для этого, также в каталоге проекта, необходимо выполнить команду make upload.
Это все. Наслаждайтесь разработкой под Arduino в любимой OS и в любимом редакторе!

воскресенье, 19 января 2014 г.

Минимальная конфигурация cmake для приложения на wxWidgets (GNU/Linux)

wxWidgets. Интересная библиотека и мне давно хотелось попробовать с ней поработать. А с чего начать, как не с "hello world"? На официальном сайте проекта есть пример простого приложения с использованием wxWidgets. Поместив код в файл main.cpp попробуем его скомпилировать. Для генерации Makefile будем использовать cmake со следующей конфигурацией.
CMakeLists.txt
cmake_minimum_required(VERSION 2.8)

set(APP_NAME wxhello)
set(APP_VERSION "0.1.0")

project(${APP_NAME})

set(CMAKE_BUILD_TYPE RELEASE)
set(EXECUTABLE_OUTPUT_PATH "bin")

set(
    HEADERS
)

set(
    SOURCES
    main.cpp
)

find_package(wxWidgets REQUIRED core base)
include(${wxWidgets_USE_FILE})

add_executable(${PROJECT_NAME} ${HEADERS} ${SOURCES})
target_link_libraries(
    ${PROJECT_NAME}
    ${wxWidgets_LIBRARIES}
)
Затем, как обычно, выполняем cmake -G "Unix Makefiles", make и любуемся результатом в каталоге bin.

При написании файла CMakeLists.txt мне помогла эта заметка: http://accountingplusplus.blogspot.ru/2010/12/cmake-wxwidgets.html

пятница, 17 января 2014 г.

boost. Компиляция с помощью gcc (mingw) в Windows. Более простой метод

Ранее я уже описывал способ сборки библиотек boost под Windows средствами mingw. На сей раз хочу продемонстрировать значительно более простой вариант.
После загрузки архива boost и его распаковки, в первую очередь, необходимо скомпилировать утилиты сборки проекта. Для этого запускаем скрипт bootstrap.bat с соответствующим параметром (наш инструментарий, mingw).
bootstrap.bat mingw
После того, как скрипт завершит свою работу, мы можем запускать сборку boost.
b2 toolset=gcc --build-type=complete
Первоисточник: http://andres.jaimes.net/718/how-to-install-the-c-boost-libraries-on-windows/

UPD  14.05.2016

При  сборке boost версии 1.61 выяснилось, что необходимые команды теперь должны выглядеть чуток иначе (по крайней мере при использовании gcc из состава Qt).
bootstrap.bat gcc
b2 toolset=gcc --build-type=complete

среда, 15 января 2014 г.

Релиз r49-20140115.2



Версии компонентов:
  • libtoxic v7.5.3
  • cr49 v1.3.0
  • Qr49 v3.12.3
Изменения:
  1. Qr49: исправлена ошибка в функции добавления строк в таблицы;
  2. Qr49: добавлены возможности подстройки размеров ячеек таблиц под их содержимое, увеличения и уменьшения ширины колонок таблиц. Все три новых функции доступны в главном меню программы и по "горячим" клавишам;
  3. Qr49: улучшен внешний вид всплывающих подсказок к заголовкам столбцов таблиц;
  4. Qr49: проведена некоторая оптимизация кода.

Релиз r49-20140115



Версии компонентов:
  • libtoxic v7.5.3
  • cr49 v1.3.0
  • Qr49 v3.12.1
Изменения:
  1. Qr49: исправлена недоработка, блокировавшая вывод версии программы в заголовок окна;
  2. Qr49: исправлена недоработка, вследствие которой при смене языка интерфейса происходила "накрутка" счетчика Undo для таблиц;
  3. Qr49: исправлена недоработка - сохранение настройки "Наддув двигателя" между сеансами;
  4. Qr49: в диалоговое окно "О программе" добавлена информация о времени сборки.

вторник, 14 января 2014 г.

Релиз r49-20140114



Версии компонентов:
  • libtoxic v7.5.3
  • cr49 v1.3.0
  • Qr49 v3.12.0
Изменения:
  1. Qr49: взамен автоматического определения системной локали и загрузки соответствующего языка для GUI, обеспечена возможность выбрать предпочитаемый язык из главного меню программы;
  2. libtoxic, Qr49: функция расчета массового расхода воздуха по значениям разрежения на измерительном сопле откорректирована для работы с dPn в кПа;
  3. r49: изменена схема нумерации версий дистрибутива. В качестве версии по-прежнему выступает дата релиза, однако в более удобном для работы виде.

Релиз biblref-1.1.5



В версии biblref 1.1.5 снята блокировка на создание ссылки в случае, когда введены не все обязательные данные. Соответствующее предупреждение выводится.

UPD: 14.01.2014
Перезалита сборка для Windows (обновлены входящие в комплект компоненты Qt).

суббота, 11 января 2014 г.

Релиз reup-1.3.4

В этой версии проведена оптимизация алгоритма чтения данных из hex-файла.
Исходный код доступен ЗДЕСЬ.

пятница, 10 января 2014 г.

Релиз reup-1.3.3

В этой версии проведена оптимизация алгоритма чтения/записи данных hex-файла.
Исходный код доступен ЗДЕСЬ.

среда, 8 января 2014 г.

Arch Linux. Русский язык в чистой консоли

Всем нам известны официальные руководства по установке и настройке Arch Linux. Известна также статья из archwiki о настройке русского языка в системе. Однако, следование изложенным в вышеупомянутых статьях инструкциям, к сожалению, не приводит к нужному результату. А нас, учитывая заголовок данной заметки, интересует русский язык в чистой консоли. Но, что замечательно, дело мы имеем с GNU/Linux, а это значит, что решение, в любом случае, есть.
Итак, для настройки русского языка в чистой консоли предлагается следующее.
  1. Установить пакет kbd-ru-keymaps.
  2. В файл /etc/vconsole.conf прописать KEYMAP=ru-utf (переключение раскладок будет осуществляться по Rigth Ctrl).
  3. В файл /etc/mkinitcpio.conf в секцию MODULES необходимо добавить модуль DRM для вашей видео карты. В моем случае, данная строка выглядит так: MODULES="nouveau".
  4. Сгенерировать заново образы ядра: sudo mkinitcpio -p linux.
  5. Перезагрузиться.
Вот такая памятка. Бэкапим конфиги, чтобы больше об этом не вспоминать )