Давно хотелось иметь в PlantUML возможно в Sequence диаграмме рисовать две параллельные ветки выполнения (на самом деле иногда больше, но хотя бы…).
И вот, случайно в последней версии нащупал такую команду:
Т.е. при примерно таком коде:
@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://onapkin.com/shop/ удобны, но не обязательны
1. Ещё блокноты:
- Программа для склейки и анимирования:
https://popapp.in/, там же: демонстрация работы.
- Статья на хабре про трафарет для iPhone:
http://habrahabr.ru/post/209002/, трафареты для Android на сайте производителя:
1.
http://www.uistencils.com/collections/frontpage/products/android-tablet-stencil-kit - для планшетов
2.
http://www.uistencils.com/collections/frontpage/products/android-stencil-kit - для телефонов
Особнячком, русский магазин, который возит на заказ:
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
Обращаем внимание на строку
для устройства phy0
. Обычно такое бывает когда карта выключена или через BIOS или через переключатель корпусе ноутбука. В случае конкретной модели Asus это состояние должно переклчаться через Fn-F2. Да вот беда: не работает эта комбинация. Вызов acpi_listen
молчит как партизан при нажатии этой кнопки.
Но самым шоком стало то, что после засыпания и просыпания карта включалась! Собственно это стало поводом к поиску. И… первым воркэраундом :)
Перебирая выводы команд lspci -nn
, lsmod
, изучил какие модули используются. Особо заинтересовали модули из серии wmi - Windows Management Instrumentation и, в частности, asus_nb_wmi отвечающий, судя по всему за трансляцию различных клавиатурных эвентов, и его опция wapf, которая, судя по интернетам, отвечает за поведение клавиш включения/выключения Wifi и Bt.
Итак, погуглив по интернетам, нахожу следующие ссылки:
-
http://ubuntuforums.org/showthread.php?t=2173539
-
http://ubuntuforums.org/showthread.php?t=2172434
В общем, вроде как у некоторых проблему решает. Забегая вперёд хочу отметить: 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. Подробности:
-
http://www.ubuntuupdates.org/package/kubuntu-ppa_backports/saucy/main/base/kdevelop
-
http://www.ubuntuupdates.org/ppa/kubuntu-ppa_backports?dist=saucy
-
http://www.kubuntu.org/news/kdevelop-4.6
А если коротко:
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. Имена директорий привёл к виду (или переименованием или созданием необходимых симлинков):
- android-sdk
- android-ndk
- android-studio
По сути, этот рецепт подходит для любого дистрибутива, в большинстве случаев будет отличаться только первый пункт.
Итак…
Необходимое
- Ставим OpenJDK:
sudo apt-get install openjdk-7-jdk libswt-cairo-gtk-3-jni libswt-cairo-gtk-3-jni ant
- В ~/.profile или ~/.bashrc_profile прописываем:```bash
export ANDROID_HOME=$HOME/Android/android-sdk
export ANDROID_NDK=$HOME/Android/android-ndk
For compability
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
- На этом шаге можно перелогиниться, вызвать android и поставить платформы, утилиты, потом запустить Android Studio и сделать необходимые настройки.
Опциональное
Ярлыки в меню
FIXME относительные пути к иконкам не воспринимаются, поэтому иконки не отображаются, только текст.
- Создаём файл: ~/.local/share/applications/android-sdk.desktop со следующим содержимым:```desktop
[Desktop Entry]
Encoding=UTF-8
Name=Android SDK
Comment=Android Sofware Development Kit
Exec=android
Icon=~/Android/android-sdk/tools/apps/SdkController/res/drawable-xhdpi/ic_launcher.png
Terminal=false
Type=Application
Categories=IDE;Development;
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;
Автодополнение BASH
Автодополнение для команд android, adb, emulator, fastboot и repo.
- Идём в ~/Android
- Забираем последнюю версию скрипта (предполагаю, что git уже установлен):
bashgit clone https://github.com/mbrubeck/android-completion.git
- Создаём файл ~/.bash_completion и помещаем в него:```bash
. $HOME/Android/android-completion/android
. $HOME/Android/android-completion/repo
Готовый PPA:
https://launchpad.net/~no1wantdthisname/+archive/ppa описание там же.
UPD: ломает загрузку минта в графику к чертям собачьим. НЕ ИСПОЛЬЗОВАТЬ
UPD2: мужики нашли workaround:
http://forums.linuxmint.com/viewtopic.php?f=208&t=136307. Не пробовал
UPD3: применил решение из UDP2, только поместил в более логичное место: ~/.profile. Система работает. А то смотреть без слёз на рендеринг шрифтов в QtCreator’е было нельзя.
UPD4: Сохраню тут для потомков и собственного удобства:
# move infinality-settings out of system profile
sudo mv /etc/profile.d/infinality-settings.sh /etc/infinality-settings.sh
# make execute by everyone
sudo chmod a+rx /etc/infinality-settings.sh
а уже вызов /etc/infinality-settings.sh
добавить в ~/.profile
Хотя в той же теме на форуме, сказано, что
исправлено в mdm (его вообще мог зафейлить любой косяк в /etc/profile.d/*
):
https://github.com/linuxmint/mdm/commit/ee1a28b3c295c283aa94b890658d78be25e31bb7 и доступно всё это в Mint 17.2 ‘Rafaela’. Альтернативной апдейту: отредактировать /etc/init/mdm.conf
согласно патчу.
Что бы в
LyX начали сходу работать русский нужно поставить пакеты: texlive-lang-cyrillic и cm-super. Точнее даже не так: набивать тексты вы сможете сразу, а вот генерировать PDF - только после установки пакетов.
Внезапно, при логине в систему (иксы) выдалось, что рендеринг у меня софтовый. Хотя пакет с драйвером radeon стоял. Изучение /var/log/Xorg.0.log указало на то, что не получается загрузить модули ati и fglrx. При этом нет попыток грузить модуль radeon:
$ cat /var/log/Xorg.0.log | grep "ati<br/>|radeon<br/>|fglxrx"
[ 990.107] Build Operating System: Linux 3.2.0-37-generic x86_64 Ubuntu
[ 990.107] Current Operating System: Linux gaz-work 3.11.0-13-generic #20-Ubuntu SMP Wed Oct 23 07:38:26 UTC 2013 x86_64
(++) from command line, (!!) notice, (II) informational,
Using a default monitor configuration.
[ 990.109] (=:simple_smile: Automatically adding devices
[ 990.109] (=:simple_smile: Automatically enabling devices
[ 990.109] (=:simple_smile: Automatically adding GPU devices
[ 990.109] X.Org ANSI C Emulation: 0.4
[ 990.113] Initializing built-in extension XVideo-MotionCompensation
[ 990.114] (II) Module glx: vendor="X.Org Foundation"
[ 990.114] (=:simple_smile: Matched ati as autoconfigured driver 1
[ 990.115] (=:simple_smile: Matched ati as autoconfigured driver 3
[ 990.115] (II) LoadModule: "ati"
[ 990.116] (WW) Warning, couldn't open module ati
[ 990.116] (II) UnloadModule: "ati"
[ 990.116] (II) Unloading ati
[ 990.116] (EE) Failed to load module "ati" (module does not exist, 0)
[ 990.117] (II) Module vesa: vendor="X.Org Foundation"
[ 990.117] (II) Module modesetting: vendor="X.Org Foundation"
[ 990.118] (II) Module fbdev: vendor="X.Org Foundation"
[ 990.118] (=:simple_smile: Matched ati as autoconfigured driver 1
[ 990.118] (=:simple_smile: Matched ati as autoconfigured driver 3
[ 990.119] (II) LoadModule: "ati"
[ 990.120] (WW) Warning, couldn't open module ati
[ 990.120] (II) UnloadModule: "ati"
[ 990.120] (II) Unloading ati
[ 990.120] (EE) Failed to load module "ati" (module does not exist, 0)
Почесав макушку, решил попытаться “помочь” серверу, подтолкнув его в нужном направлении. Для чего идём в /etc/X11 создаём каталог xorg.conf.d, а в нём файл radeon.conf (используя любой редактор на своё усмотрение) со следующим содержимым:
Section "Device"
Identifier "radeon"
Driver "radeon"
EndSection
Сохраняемся, перелогиниваемся, радуемся отсутствию предупреждения о софтовом рендеринге. Проверяем:
$ cat /var/log/Xorg.0.log | grep "ati<br/>|radeon<br/>|fglxrx"
[ 2082.177] Build Operating System: Linux 3.2.0-37-generic x86_64 Ubuntu
[ 2082.177] Current Operating System: Linux gaz-work 3.11.0-13-generic #20-Ubuntu SMP Wed Oct 23 07:38:26 UTC 2013 x86_64
(++) from command line, (!!) notice, (II) informational,
[ 2082.178] (**) | |-->Device "radeon"
Using a default monitor configuration.
[ 2082.178] (=:simple_smile: Automatically adding devices
[ 2082.178] (=:simple_smile: Automatically enabling devices
[ 2082.179] (=:simple_smile: Automatically adding GPU devices
[ 2082.179] X.Org ANSI C Emulation: 0.4
[ 2082.183] Initializing built-in extension XVideo-MotionCompensation
[ 2082.184] (II) Module glx: vendor="X.Org Foundation"
[ 2082.184] (II) LoadModule: "radeon"
[ 2082.185] (II) Loading /usr/lib/xorg/modules/drivers/radeon_drv.so
[ 2082.219] (II) Module radeon: vendor="X.Org Foundation"
[ 2082.236] (II) RADEON(0): Creating default Display subsection in Screen section
[ 2082.248] (II) Module exa: vendor="X.Org Foundation"
[ 2082.313] (II) Module fb: vendor="X.Org Foundation"
[ 2082.313] ABI class: X.Org ANSI C Emulation, version 0.4
[ 2082.313] (II) EXA(0): Driver registered support for the following operations:
[ 2082.313] (II) Composite (RENDER acceleration)
[ 2082.313] (II) RADEON(0): Acceleration enabled
и
$ glxinfo |grep -i render
direct rendering: Yes
OpenGL renderer string: Gallium 0.4 on AMD RS880
До этого вместо AMD RS880 выводилось следующее:
$ glxinfo | grep -i render
direct rendering: Yes
OpenGL renderer string: Gallium 0.4 on llvmpipe (LLVM 3.3, 128 bits)
Собственно всё.