воскресенье, 16 ноября 2014 г.

Boost for Windows (MinGW)

С удивлением обнаружил, что на SourceForge отсутствуют сборки библиотек boost с использованием mingw. По крайней мере я с ходу не нашел.
Т.к. я вынужден собирать свои проекты и под windows, то boost у меня под эту систему всегда имеется. Делюсь.
Пожалуйста, пользуйтесь: https://sourceforge.net/projects/boost-mingw/files/

UPD 11.01.2015
На sourceforge добавлена сборка boost 1.57 с использованием mingw 4.9.

UPD 26.04.2015
На sourceforge добавлена сборка boost 1.58 с использованием mingw 4.9.

UPD 30.08.2015
На sourceforge добавлена сборка boost 1.59 с использованием mingw 4.9.

UPD 19.12.2015
На sourceforge добавлена сборка boost 1.60 с использованием mingw 4.9.

UPD 14.05.2016
На sourceforge добавлена сборка boost 1.61 с использованием mingw 4.9.

UPD 07.08.2016
На sourceforge добавлена сборка boost 1.61 с использованием mingw 5.3.

UPD 17.10.2016
На sourceforge добавлена сборка boost 1.62 с использованием mingw 5.3.

UPD 28.12.2016
На sourceforge добавлена сборка boost 1.63 с использованием mingw 5.3.

UPD 15.05.2017
На sourceforge добавлена сборка boost 1.64 с использованием mingw 5.3.

UPD 23.08.2017
На sourceforge добавлена сборка boost 1.65 с использованием mingw 5.3.

UPD 10.09.2017
На sourceforge добавлена сборка boost 1.65.1 с использованием mingw 5.3.

UPD 17.09.2017
На sourceforge добавлена сборка boost 1.65.1 с использованием mingw 6.3.

UPD 20.12.2017
На sourceforge добавлены сборки boost 1.66 с использованием mingw 5.3, mingw 6.3 и mingw 7.2.

UPD 17.04.2018
На sourceforge добавлены сборки boost 1.67 с использованием mingw 5.3 и mingw 7.3.

UPD 14.07.2018
На sourceforge добавлена сборка boost 1.67 с использованием mingw 8.1.

UPD 12.08.2018
На sourceforge добавлена сборка boost 1.68 с использованием mingw 5.3 и mingw 8.1.

UPD 14.12.2018
На sourceforge добавлена сборка boost 1.69 с использованием mingw 8.1.

UPD 13.04.2019
На sourceforge добавлена сборка boost 1.70 с использованием mingw 8.1.

UPD 20.08.2019
На sourceforge добавлена сборка boost 1.71 с использованием mingw 7.3 и mingw 8.1.

UPD 12.12.2019
На sourceforge добавлена сборка boost 1.72 с использованием mingw 7.3 и mingw 8.1.

UPD 29.04.2020
На sourceforge добавлена сборка boost 1.72 с использованием mingw 9.2.

UPD 29.04.2020
На sourceforge добавлена сборка boost 1.73 с использованием mingw 9.2.
 
UPD 14.08.2020
На sourceforge добавлена сборка boost 1.74 с использованием mingw 9.2. 

UPD 14.12.2020
На sourceforge добавлена сборка boost 1.75 с использованием mingw 9.2. 
 
UPD 18.04.2021
На sourceforge добавлена сборка boost 1.76 с использованием mingw 9.2. 

UPD 15.08.2021
На sourceforge добавлена сборка boost 1.77 с использованием mingw 10.3.
 
UPD 12.12.2021
На sourceforge добавлена сборка boost 1.78 с использованием mingw 10.3.

UPD 17.04.2022
На sourceforge добавлена сборка boost 1.79 с использованием mingw 10.3.
 
UPD 15.08.2022
На sourceforge добавлена сборка boost 1.80 с использованием mingw 10.3.

UPD 17.12.2022
На sourceforge добавлена сборка boost 1.81 с использованием mingw 10.3.
 
UPD 23.04.2023
На sourceforge добавлена сборка boost 1.81 с использованием mingw 10.3.

UPD 25.02.2024
Ввиду того, что с позапрошлого года sourceforge стал необоснованно вешать на мои сборки boost ярлык "Warning! Malware detected. Download at your own risk.", я решил прекратить собирать данную библиотеку под mingw, а файлы, размещенные ранее на sourceforge, удалить. В своих проектах я перешел на использование компилятора и библиотек из проекта msys2.

понедельник, 10 ноября 2014 г.

четверг, 6 ноября 2014 г.

Релиз reup-1.5.1

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

Исходный код доступен ЗДЕСЬ.

flac в ogg без лишней возьни с мышью и окошками

Речь идет о треках в формате flac, а не альбоме целиком. Для конвертирования всех файлов *.flac в *.ogg с качеством, например, 8, можно использовать find и oggenc:
find . -name "*.flac" -exec oggenc -q 8 {} \;
Найдено здесь: http://unix.stackexchange.com/questions/125992/convert-flac-files-to-ogg

понедельник, 3 ноября 2014 г.

Релиз reup-1.5.0

В данной версии проведен ряд внутренних оптимизаций и заново, согласно новым требованиям хранения репозитория калибровок ЯМЗ-530 для EDC7 на сервере, реализована функция publishRepo.

Исходный код доступен ЗДЕСЬ.

вторник, 21 октября 2014 г.

Праздник! Релиз Emacs 24.4

Шикарно! Вышел Emacs 24.4. Лично я ждал.
Итак, что же нового в этом релизе можно узнать из анонса GNU и публикаций товарищей, которые уже успели эти самые новшества изучить.

New Features in Emacs 24.4

Sweet New Features in 24.4
Useful New Features in 24.4
Old Packages and New Packages in 24.4

What’s New In Emacs 24.4

суббота, 17 мая 2014 г.

emacs. Отладка регулярных выражений

В данной заметке я хочу поделиться информацией о потрясающей функции emacs - конструкторе и отладчике регулярных выражений re-builder. Итак, поехали.
Для начала, запустим emacs и откроем какой-нибудь файл. Пусть это будет один из файлов исходного кода.
Далее, запустим re-builder. Делается это как обычно.
M-x re-builder
В результате, в окне emacs будет открыт буфер *RE-Builder*.
Задачу ставим такую: сконструировать регулярное выражение для получения всех строк с директивой #include. В моем файле эти строки начинаются с #include (вот это поворот :-) ). Начнем же создание регулярного выражения.
Как видите, стоило там только указать, что искомые строки начинаются с #include, как re-builder тут же нам их подсветил. Часть регулярного выражения уже создана и мы сразу же видим, как она работает. Едем дальше.
А дальше у нас возможны пробелы (один, несколько или вообще их отсутствие), укажем же сей факт в нашем регулярном выражении.
За директивой #include и пробелами следует открывающая скобка < или двойная кавычка.
Как видите, стоило нам только указать это в регулярном выражении, как все сработало как нужно. После скобки или двойной кавычки нас ждут символы алфавита и цифры в количестве от единицы и более. Необходимо это учесть.
Кажется, мы забыли указать, что в именах заголовочных файлов могут содержаться слэши, точки и символы подчеркивания. Исправляемся.
И последний штрих - закрывающая скобка > или двойная кавычка.
Просто шикарно! Регулярное выражение готово.

Первоисточник: Introduction to Regex in Emacs.

пятница, 2 мая 2014 г.

emacs. Работа с репозиториями пакетов

Для emacs существует огромное количество расширений, среди которых много весьма и весьма полезных. Установить пакет с каким-либо расширением можно как вручную с сайта разработчика, так и воспользовавшись менеджером пакетов, входящим в штатный комплект редактора. Если вы не находите нужного пакета в репозитории ELPA, то можете подключить еще парочку, например, MELPA и Marmalade. Дополнительные репозитории подключаются следующим кодом, который следует поместить в файл .emacs.
(require 'package)
(add-to-list 'package-archives
             '("marmalade" . "http://marmalade-repo.org/packages/"))
(add-to-list 'package-archives
             '("melpa" . "http://melpa.milkbox.net/packages/") t)
(package-initialize)
При работе с пакетами пригодятся следующие команды и горячие клавиши:
  • M-x package-refresh-contents - обновить список доступных пакетов;
  • M-x list-packages - загрузить список пакетов (будет создан буфер со списком доступных пакетов и их кратким описанием);
  • В буфере со списком пакетов можно отметить пакет для установки (клавиша i), обновления (клавиша U) или удаления (клавиша d). Отметку можно снять с помощью клавиши u. После того, как вы отметили пакеты, необходимо применить запланированные действия. Сделать это можно нажав клавишу x.
После установки какого-либо пакета, необходимо настроить его для использования в emacs. Для этого следует обратиться к файлу README проекта или комментариям в коде. Про сайт разработчика тоже забывать не стоит.

UPD: 07.09.2014

четверг, 1 мая 2014 г.

emacs. Быстрое переключение между режимами переноса строк

Еще одной весьма востребованной функцией любого текстового редактора является возможность удобного и быстрого переключения между режимами переноса строк. В emacs это делается добавлением следующего кода в файл .emacs.
(setq default-truncate-lines t)
(global-visual-line-mode 1)
(global-set-key [f9] 'toggle-truncate-lines)
Как видно из настроек, переключение между режимами будет осуществляться с помощью горячей клавиши F9. По умолчанию режим будет включен и перенос будет осуществляться без разрыва слов.

Полезная ссылка по теме: http://ergoemacs.org/emacs/emacs_long_line_wrap.html

среда, 30 апреля 2014 г.

emacs. Быстрая смена кодировки

Emacs поддерживает огромное количество кодировок символов текста. Разумеется, имеются штатные универсальные средства изменения текущей кодировки буфера. Например, для того, чтобы перезагрузить буфер с использованием другой кодировки необходимо нажать C-x <ENTER> r <указать-требуемую-кодировку> <ENTER> yes <ENTER>.
Однако, пользователь в работе редко использует более трех или четырех кодировок. Хотелось бы иметь возможность однажды задать эти наши "ходовые" кодировки, а впоследствии быстро, с помощью горячей клавиши, минуя всю эту интерактивность, между ними, в случае необходимости, переключаться.
К счастью, у нас в руках emacs! И что еще круче - emacs lisp! Поэтому мы спокойно расширяем его возможности с помощью своего кода. Я написал функцию, реализующую нужный мне функционал (это, кстати, мое второе произведение на emacs lisp), поместил ее в файл .emacs и назначил горячую клавишу. Я доволен дальше некуда, надеюсь еще кому-нибудь пригодится )
(setq my-working-codings ["utf-8" "windows-1251" "koi8-r" "cp866"])
(setq my-current-coding-index -1)
(defun pa23-change-coding ()
  "Change coding for current buffer."
  (interactive)
  (let (my-current-eol
        my-next-coding-index
        my-new-coding-system
        my-new-coding)
    (setq my-current-eol
          (coding-system-eol-type buffer-file-coding-system))
    (setq my-next-coding-index (1+ my-current-coding-index))
    (if (equal my-next-coding-index (length my-working-codings))
        (setq my-next-coding-index 0))
    (setq my-new-coding-system
          (elt my-working-codings my-next-coding-index))
    (cond ((equal my-current-eol 0)
           (setq my-new-coding (concat my-new-coding-system "-unix")))
          ((equal my-current-eol 1)
           (setq my-new-coding (concat my-new-coding-system "-dos")))
          ((equal my-current-eol 2)
           (setq my-new-coding (concat my-new-coding-system "-mac"))))
    (setq coding-system-for-read (read my-new-coding))
    (revert-buffer t t)
    (setq my-current-coding-index my-next-coding-index)
    (message "Set coding %s." my-new-coding)
    )
  )
(global-set-key [f11] 'pa23-change-coding)
При смене кодировки, emacs, извещением в минибуфере, оповестит вас о том, на что он переключился. Наслаждайтесь работой в любимом редакторе!

Напомню также, что мой рабочий вариант файла .emacs можно взять здесь.

UPD: 05.05.2014

Поработал над кодом. Теперь функция выглядит значительно лучше, чем самый первый вариант )

UPD: 09.05.2014

Очередное улучшение кода.

вторник, 29 апреля 2014 г.

emacs. Быстрая смена символов перевода строки

Давно хотел написать для emacs несколько функций, которые бы позволили мне делать некоторые операции быстрей. Одной из таких задумок является быстрая смена символов перевода строки, коих у нас в ходу аж целых три: unix, dos и mac. При каждом вызове функция определяет используемый в данный момент вариант и устанавливает следующий из доступных. Это функция - мое первое произведение на emacs lisp )
(defun pa23-change-eol ()
  "Change EOL for current buffer."
  (interactive)
  (let (my-current-eol
        my-new-eol
        my-new-coding)
    (setq my-current-eol
          (coding-system-eol-type buffer-file-coding-system))
    (if (equal my-current-eol 2)
        (setq my-new-eol 0)
      (setq my-new-eol (1+ my-current-eol)))
    (setq my-new-coding
          (coding-system-change-eol-conversion
           buffer-file-coding-system my-new-eol))
    (set-buffer-file-coding-system my-new-coding)
    )
  )
Приведенный выше код можно поместить в свой файл .emacs и назначить на эту функцию горячую клавишу, например, F12.
(global-set-key [f12] 'change-eol)
Напомню также, что мой рабочий вариант файла .emacs можно взять здесь.

UPD: 09.05.2014

Улучшен код.

воскресенье, 27 апреля 2014 г.

emacs. Быстрое и удобное переключение между буферами

До недавнего времени, для переключения между буферами в emacs, я использовал пакет tabbar. Штука чрезвычайно удобная. Все открытые файлы tabbar автоматически сортирует по группам. На переключение между группами и между буферами назначаются горячие клавиши. Кроме того, буферы в группе, включая текущий, выводятся на специальную панель в верхней части экрана. Для использования tabbar необходим tabbar.el (можно установить из репозитория MELPA), а код для файла .emacs, обеспечивающий взаимодействие с ним, будет следующим:
(require 'tabbar)
(tabbar-mode t)
(global-set-key (kbd "C-<") 'tabbar-backward-group)
(global-set-key (kbd "C->") 'tabbar-forward-group)
(global-set-key (kbd "C-,") 'tabbar-backward)
(global-set-key (kbd "C-.") 'tabbar-forward)
Вот как все это выглядит.
Однако, на днях я случайно нашел в сети произведение под названием popup-switcher, которое, признаться, впечатлило меня не меньше, чем в свое время tabbar. Подробно о нем можно почитать в блоге автора. Здесь же я хотел бы коротко сказать, что переключаться между буферами с помощью функций данного пакета, благодаря его возможности фильтровать список открытых файлов при наборе имени, получается, в большинстве случаев, значительно быстрей и удобней, чем при использовании tabbar.
Для использования popup-switcher необходимы пакеты popup.el и popup-switcher.el, которые, так же как и tabbar, можно установить из репозитория MELPA.
Код для файла .emacs, обеспечивающий переключение между буферами с помощью popup-switcher:
(require 'popup-switcher)
(setq psw-in-window-center t)
(global-set-key [f2] 'psw-switch-buffer)
И, конечно же, скриншот.
Кроме быстрого переключения между буферами, popup-switcher обеспечивает в той же манере переключение между функциями в файле исходного кода (читаем об этом в блоге автора по ссылке выше).

Вот и все, что я хотел поведать в этой заметке. Пусть emacs радует вас так же, как и меня )

UPD: 18.05.2014

О том, как в emacs работать с репозиториями пакетов, см. заметку emacs. Работа с репозиториями пакетов.

Программирование на Emacs Lisp (в формате ODT и PDF)

Некоторое время назад мне захотелось изучить emacs lisp. Поискав на просторах сети документацию на русском языке, я наткнулся на сайт http://alexott.net/ru/emacs/elisp-intro/. Руководство хоть и довольно старое, но вряд ли потеряло актуальность настолько, чтобы не быть хорошей вводной в этот язык. Все бы хорошо, но хотелось того же самого, но с перламутровыми пуговицами в PDF - работать-то удобней, особенно если возникнет желание распечатать. Посидел, подумал и решил потратить n-ное количество времени, чтобы перевести сие руководство к более удобопотребимому виду, чем, собственно, и спешу поделиться.

Emacs Lisp RU (ODT)

Хочу добавить, что данные файлы являются практически полной копией текста с alexott.net. Я лишь приложил руку к оформлению и исправлению опечаток, попавшихся мне на глаза при копировании текста. Вычитку текста я планирую совместить с изучением материала.

UPD: 01.05.2014

На данный момент, я не спеша читаю вышеупомянутую книгу и не могу не поделиться впечатлением. Знаете, на мой взгляд, это перебор. Я понимаю, что рассчитана она на новичков. Причем не на новичков в Lisp, а на новичков в программировании вообще. Но, черт побери, это перебор. Я прочитал 3 главы и у меня реально болит голова, а нового я узнал при этом с гулькин нос. Меня до невозможности утомляет стократное повторение одного и того же. Сто раз по одному. На мой взгляд, автор с этим явно перестарался.
Я благодарен ребятам, сделавшим перевод данной книги. Это действительно большая работа. К сожалению, в тексте очень много и опечаток, и ошибок. Со знаками препинания так просто беда. Местами такое ощущение, что они расставлены случайным образом. Я постараюсь внести свою лепту, но, чувствую, что одного прохода для вычитки будет явно мало...

UPD: 05.05.2014

Все-таки я решил эту книгу отложить. Я просто не выношу, когда мне так елозят мозг. Для изучения Emacs Lisp я бы порекомендовал:
  1. замечательное руководство в примерах Elisp Tutorial на ErgoEmacs для быстрого вхождения
  2. и официальное руководство GNU Emacs Lisp Reference Manual для детального изучения всех аспектов языка.

четверг, 24 апреля 2014 г.

Закрытие всех буферов Emacs одной командой

Реализуется данная возможность весьма просто. Для этого в файл .emacs необходимо добавить следующую функцию:
(defun kill-all-buffers ()
  (interactive)
  (mapc 'kill-buffer (buffer-list)))
Найдено случайно здесь.

суббота, 19 апреля 2014 г.

Релиз reup-1.4.0

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

воскресенье, 2 марта 2014 г.

Цитата

Создавая программное обеспечение, необходимо быть принципиальным и серьезным: необходимо устранять проблемы, а не создавать их.
Бьерн Страуструп

суббота, 1 февраля 2014 г.

Релиз r49-20140131



Версии компонентов:
  • libtoxic v7.5.3
  • cr49 v1.3.0
  • Qr49 v3.12.5
В этой версии решена проблема со вставкой данных из буфера обмена в пустые таблицы главного окна Qr49.

четверг, 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. Перезагрузиться.
Вот такая памятка. Бэкапим конфиги, чтобы больше об этом не вспоминать )