C++11 regex
В синтаксисе регулярок в GCC 4.8.1/libstdc++4.8 нет поддержки квадратных скобок: []
. Пришлось использовать Boost.Regex
Ах да, пруф: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53631
В синтаксисе регулярок в GCC 4.8.1/libstdc++4.8 нет поддержки квадратных скобок: []
. Пришлось использовать Boost.Regex
Ах да, пруф: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53631
Да, времена, когда нужно было считать модлайны, дабы выжать из своего монитора и видюхи максимум уже прошли (вздох, вспомнив пару ADI Microscan 4V и S3 Trio 64V+). Но если вас настигла проблема или вдруг, как мне, для тестов, потребовалось нестандартное разрешение экрана, то вот простой калькулятор: http://www.arachnoid.com/modelines/
Ниже по тексту идёт теория, а так же информация о том, куда нужно вставлять полученный модлайн.
Про калькулятор написал, что простой. Не хороший, а простой. Почему так? А потому, что очень много тонких настроек скрыто, по сути, вы задаёте жалемое разрешение и частоту обновления. Ну а для более тонкой настройки есть и другие, типа: http://xtiming.sourceforge.net/cgi-bin/xtiming.pl
В оффлайне, аналогами этих калькуляторов, пожалуй будут: gtf
и xvidtune
Первая прячется в пакете (debian-based) xserver-xorg-core
, вторая в пакете x11-xserver-utils
.
Пользоватся gtf
так же просто как первым описанным калькулятором, просто передаём ей разрешение и частоту на вход, получаем результат:
$ gtf 800 480 60
# 800x480 @ 60.00 Hz (GTF) hsync: 29.82 kHz; pclk: 29.58 MHz
Modeline "800x480_60.00" 29.58 800 816 896 992 480 481 484 497 -HSync +Vsync
xvidtune
своим названием говорит: запускам и тюним в интерактивном режиме.
Для добавления сгенерированного ModeLine нужно добавить его в секцию “Monitor” в /etc/X11/xorg.conf
или создать файл /etc/X11/xorg.conf.d/00-modeline.conf
примерно следующего содержимого:
Section "Monitor"
ModeLine "800x480_60.00" 29.58 800 816 896 992 480 481 484 497 -hsync +vsync
EndSection
Можно добавить параметр Identifier
что бы указать к какому монитору добавлять.
Второй вариант: использовать xrandr
.
Выглядит это примерно так:
xrandr --newmode "800x480_60.00" 29.58 800 816 896 992 480 481 484 497 -HSync +Vsync
xrandr --addmode HDMI1 "800x480_60.00"
xrandr --output HDMI1 --mode "800x480_60.00"
Больше теории о ModeLine:
Если возникнет вопрос, что мол, скоро Wayland закопает XOrg, то ответ простой:
Итак, буквально перед новым годом стал обладателем горелки китайского производства BRS-8
Плюс этой горелки - её цена. Мне она обошлась в 2200 рублей в местном магазине во Владивостоке. Естественно встал вопрос надёжности отдельных частей, всё же “китай” в России уже термин нарицательный, описывающий определённое качество товаров, крайне далеко отстоящее от положительного.
Гугление особо ничего не дало, многократных подтверждений и особых болезней тоже не было выявлено, но получилось выделить следующее (наиболее собрано получилось тут: http://www.youtube.com/watch?v=jEds1uRhWkI):
Логичным путём было поискать возможные замены для отдельных узлов и агрегатов. И тут… у меня родилась мысль…
В названии этой горелки в разных каталогах встречается приписка “Booster +1”, что как бы намекает на отношение этой горелки к Kovea KB-0603 Booster +1. Действительно, визуальное сравнение по фотографиям приводит только к следующим различиям:
Всё. Визуальных конструкционных раздичий больше не наблюдается. Шланг, регулятор, насос, рассекатель пламени (он и оригинального бустера нередко теряется) похожи как, почти, две капли воды. Сами поглядите:
Соответственно было решено попытаться заказать комплектующие от оригинального бустера, примерить на китайский BRS-8 и посчитать результирующую стоимость полученного мутанта.
Насос, пока, было решено не покупать, а когда потребуется, взять в местном магазине (ровно как и ремкомплект и переходник на цанговый баллон). Шланг, регулятор и рассекатель пламени брались на http://kovea.ru. При этом, в каталоге их нет, поэтому нужно писать на eshop@kovea.ru или service@kovea.ru. Стоимость этих позиций узнаётся в этом разделе: http://kovea.ru/page/service/. Жителям Москвы будет проще лично забрать необходимые позиции там, для удалёнки, оплата через робокассу (почти все возможные методы оплаты) и доставка EMS или другой курьерской службой.
Подкатом много картинок. Здесь и далее все изображение кликабельны.
Давно хотелось иметь в PlantUML возможно в Sequence диаграмме рисовать две параллельные ветки выполнения (на самом деле иногда больше, но хотя бы…).
И вот, случайно в последней версии нащупал такую команду:
par2
...
else
...
end
Т.е. при примерно таком коде:
@startuml
hide footbox
A++
par2
A -> B ++
B -> B ++
return
return
else
A -> C ++
C -> C ++
end
A--
@enduml
мы получим следующую картинку:
в общем, чего и хотелось.
Правда при таком подходе, если, допустим, A, B и C - разные потоки, то операции с A нужно корректно вставлять в одну из веток par2
PS в примере можно видеть различные операции типа ++
и --
найти их описание можно здесь:
http://plantuml.sourceforge.net/incubation.html
Люблю работать с бумажными носителями. Люблю гаджеты, облегчающие эту работу. И хоть я не пишу под мобильные платформы, но информация о средствах прототипирования пользовательского интерфейса для мобильных приложений с помощью бумаги меня заинтересовала. Итак:
Особнячком, русский магазин, который возит на заказ: http://moiprototip.ru/
Не думаю, что проблема дистрибутивно-специфичная, но писать буду про Linux Mint 16.
Итак, имеем проблему: при загрузке с CD и уже в самой системе после установки у нас заблокирован Wifi:
user@user-X551CAP ~ $ rfkill list
1: phy0: Wireless LAN
Soft blocked: no
Hard blocked: yes
2: asus-wlan: Wireless LAN
Soft blocked: no
Hard blocked: no
3: asus-bluetooth: Bluetooth
Soft blocked: no
Hard blocked: no
4: hci0: Bluetooth
Soft blocked: no
Hard blocked: no
Обращаем внимание на строку
Hard blocked: yes
для устройства phy0
. Обычно такое бывает когда карта выключена или через BIOS или через переключатель корпусе ноутбука. В случае конкретной модели Asus это состояние должно переклчаться через Fn-F2. Да вот беда: не работает эта комбинация. Вызов acpi_listen
молчит как партизан при нажатии этой кнопки.
Но самым шоком стало то, что после засыпания и просыпания карта включалась! Собственно это стало поводом к поиску. И… первым воркэраундом :)
Перебирая выводы команд lspci -nn
, lsmod
, изучил какие модули используются. Особо заинтересовали модули из серии wmi - Windows Management Instrumentation и, в частности, asus_nb_wmi отвечающий, судя по всему за трансляцию различных клавиатурных эвентов, и его опция wapf, которая, судя по интернетам, отвечает за поведение клавиш включения/выключения Wifi и Bt.
Итак, погуглив по интернетам, нахожу следующие ссылки:
В общем, вроде как у некоторых проблему решает. Забегая вперёд хочу отметить: wifi заработал со значением wapf равным единице, но сама клавиша Fn-F2 - нет. Пробовать начинал с 0. Беда в том, что просто перегрузка модуля не помогает, нужно или полностью перегружать модули для карты и всего сопутствующего или просто перегружать комп.
В общем решение: создаём файл /etc/modprobe.d/asus.conf следующего содержимого:
options asus_nb_wmi wapf=1
и перегружаем комп.
Отмечу, что ещё до этого решения я задал через параметры ядра (задал в /etc/default/grub.conf) следующие настройки:
GRUB_CMDLINE_LINUX_DEFAULT="... rfkill.master_switch_mode=2 rfkill.default_state=1"
Быть может они помогли в комплексе, но проверять WAPF без параметров для rfkill было уже лень.
Ссылки по теме:
https://gist.github.com/endolith/157796 и http://www.alanwood.net/unicode/emoticons.html
Краткая выдержка, есть вероятность, что не во всех шрифтах будет отображаться корректно:
☹
☺
☻
♾
〠 smile in hat
ツ
㋡
😁
😃
😆
😇
😈
😉
😊
😋
😌
😎
😏
😐
😞
😠
😣
😲
😹
😺
Ставим из PPA kubuntu-ppa/backports. Подробности:
А если коротко:
sudo add-apt-repository ppa:kubuntu-ppa/backports
sudo apt-get update
sudo apt-get install kdevelop
Ничего необычного, используем пакет LaTeX multicols: http://tex.stackexchange.com/questions/78294/lyx-3-column-document Колонок может быть и больше :)
И на будущее нужно ознакомиться с LyX FAQ: http://wiki.lyx.org/FAQ/FAQ в частности, там есть информация как убрать дату из заголовка. Здесь же в совете номер 5 есть информация как копипастить таблицы из Open- и LibreOffice.
Просто последовательность действий - на память (брать из PPA не хотелось). Как качать NDK, SDK и Android Studio я расписывать не буду. Распаковку всего этого добра произвёл в ~/Android. Имена директорий привёл к виду (или переименованием или созданием необходимых симлинков):
По сути, этот рецепт подходит для любого дистрибутива, в большинстве случаев будет отличаться только первый пункт.
Итак…
sudo apt-get install openjdk-7-jdk libswt-cairo-gtk-3-jni libswt-cairo-gtk-3-jni ant
export NDK_HOME=$ANDROID_NDK export ANDROID_SWT=/usr/share/java export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$ANDROID_NDK:$HOME/Android/android-studio/bin export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ANDROID_HOME/tools/lib
1. Переходим в **~/Android/android-studio/bin** и выполняем:```shln -s studio.sh android-studio```
2. Добавляем следующие параметры в **studio.vmoptions** и **studio64.vmoptions** (предварительно сделайте резервные копии, пригодятся при обновлениях):```
-Dswing.aatext=true
FIXME относительные пути к иконкам не воспринимаются, поэтому иконки не отображаются, только текст.
1. Извлекаем иконку Android Studio: ```shunzip -o lib/resources.jar artwork/icon_AS_128.png``` Вызываем команду из корня android-studio
2. Создаём файл: **~/.local/share/applications/android-studio.desktop**:```desktop
[Desktop Entry]
Version=1.0
Type=Application
Name=Android Studio
Exec=android-studio %f
Icon=~/Android/android-studio/artwork/icon_AS_128.png
Comment=Develop with pleasure!
Categories=Development;IDE;
Terminal=false
StartupNotify=true
StartupWMClass=jetbrains-android-studio
MimeType=application/x-extension-iml;
Автодополнение для команд android, adb, emulator, fastboot и repo.
bashgit clone https://github.com/mbrubeck/android-completion.git