пятница, 31 октября 2014 г.

STM32 и Eclipse

http://we.easyelectronics.ru/CADSoft/st-link-eclipse-na-ubuntu.html
http://we.easyelectronics.ru/CADSoft/ubuntu-eclipse-code-sourcery-openocd-j-link-arm-ili-bystryy-start-dlya-somnevayuschihsya.html

Create a new udev rule in /etc/udev/rules/45-usb-stlink-v2.rules:
SUBSYSTEM=="usb", ATTR{idVendor}=="0483", ATTR{idProduct}=="3748", MODE:="0666"

sudo aptitude install gcc-arm-none-eabi gdb-arm-none-eabi
или качаем для linux https://launchpad.net/gcc-arm-embedded

https://www.eclipse.org/downloads/ 
тащим Eclipse IDE for C/C++ Developers

Эклипс крашится при запуске - в eclipse.ini добавляем
--launcher.GTK_version
2
перед строкой --launcher.appendVmargs

Help->Install New Software…
плагин отсюда - http://gnuarmeclipse.sourceforge.net/updates
настраиваем
Меню File->New->C Project…

Download and Build STLINK

sudo apt-get install autoconf pkg-config libusb-1.0 git
git clone https://github.com/texane/stlink.git

cd ......./stlink
./autogen.sh
./configure
make



пятница, 22 августа 2014 г.

Настройка веб камеры

Ставим guvcview и из нее настраиваем.

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

JIAYU G3 и настройка микрофона.

Сразу после прошивки "глухой" звук микрофона.

 вход в инженерное меню: *#*#3646633#*#*
идем в Hardware Testing -> Audio -> Normal Mode - в Type выбираем Mic

были уровни:

Level 0 = 64
Level 1 = 255
Level 2 = 184
Level 3 = 148
Level 4 = 184
Level 5 = 200
Level 6 = 160

меняем уровни на:

Level 0 = 210
Level 1 = 215
Level 2 = 220
Level 3 = 235
Level 4 = 240
Level 5 = 250
Level 6 = 254

 перезагрузка.

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

Skype + pulseadio = хрипящий и фонящий

Debian 7 64. Версия скайпа 4.2.ххх - начинает при воспроизведении звука через pulseaudio хрипеть и фонить.
Перепробованы разные сборки от мелкософта - толку нет. Причем остальные программы со звуком работают абсолютно без проблем.
В итоге пришлось править /etc/pulse/default.pa и приводить строчку:

load-module module-udev-detect

к виду:

load-module module-udev-detect tsched=0

После этого перезапустить pulseaudio

pulseaudio --kill; pulseaudio --start

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

Xdmx и странности с курсором мыши

Организовывалась система с multihead - xdmx в текущем релизе Debian имел версию 1.12.4-6+deb7u2 и обеспечивал весьма досадный баг - курсор мыши не мог покинуть базового экрана - т.е. с того компьютера, с которого настроен прием событий мыши и клавиатуры - на том экране мышь только и функционировала. А на других экранах нет.
Как оказалось, баг присущ именно этой версии, в testing ветке версия 1.15.0-2 и все работает как надо.

Либо это все же был баг Xorg - т.к. при переустановке testing версии xdmx - обновляются и иксы.
В любом случае после исправления все заработало.

Debian и установка пакетов из ветки testing

Создаем файл /etc/apt/apt.conf и прописываем ему строки
APT::Install-Recommends "false";
APT::Default-Release "stable";

т.е. как видно из параметра - не устанавливаем по умолчанию рекомендуемые пакеты и в качестве источника по умолчанию ставим стабильный текущий релиз

Правим /etc/apt/sources.list - копируем строку с указанием текущего релиза и меняем его на testing, т.е. к примеру было:
deb http://ftp.byfly.by/debian/ stable main contrib non-free
добавляем:

deb http://ftp.byfly.by/debian/ testing main contrib non-free

Затем обновляем:
aptitude update

Устанавливать пакеты можно с ключом -t testing или дописывать версию через "/" к имени пакета. К примеру xdmx из ветки testing


aptitude install xdmx/testing

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

Xdmx и ошибка (Fatal Error) dmx: dmxOpenDisplay: Unable to open display

Если при попытке подключить удаленный монитор получаем ошибку вида
(Fatal Error) dmx: dmxOpenDisplay: Unable to open display 192.168.1.3:0
и при этом там точно разрешено подключения с помощью выполнения
xhost + _ip_вашего_компьютера_

значит скорее всего на удаленном компьютере иксы запущены с параметром "-nolisten tcp"
что бы это исправить идем редактировать /etc/X11/xinit/xserverrc

было:
exec /usr/bin/X -nolisten tcp "$@"

стало:
exec /usr/bin/X "$@"

вторник, 11 февраля 2014 г.

Jetty и "java.io.IOException: Cannot read file: modules/npn/npn-1.7.0_51.mod"

Если при запуске jetty получаем ошибку вида java.io.IOException: Cannot read file: modules/npn/npn-1.7.0_хх.mod, где хх - номер версии, то значит разработчики jetty не смогли догнать разработчиков java. По сути надо зайти в каталог modules/npn/ и скопировать последнюю имеющуюся версию npn-1.7.0_yy.mod - где yy - максимальная версия в каталоге

Т.е. для текущего момента (02.2014) команда следующая

cd /path/to/jetty/modules/npn
cp npn-1.7.0_45.mod npn-1.7.0_51.mod

После этого запуск проходит без проблем.

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

IntelliJ IDEA и hotkey

Ctrl + F11 - установка/снятие закладки и номер закладки. Затем можно переходить по закладкам по комбинации Ctrl + номер закладки. Снять можно так же F11.

Сворачивание/разворачивание кода
Ctrl + NumPadMinus
Ctrl + NumPadPlus
Ctrl + "." - сворачивание/разворачивание выделенного фрагмента кода. Если его сворачивание имеет смысл - т.е. если в фрагменте уже имеются метки сворачивания - ничего не получится.

Shift + Enter - переход на новую строку с ее созданием без изменения текущей - т.е. с любого места текущей строки можно прыгнуть вниз.

Ctrl + Shift + Enter - завершает строку метода, условия и т.п. - добавляет {} и переходит на новую строку

Ctrl + Alt + I - исправит отступ в текущей строке и переведет курсор на следующую - быстро можно подправить отступы.

F2 / Shift + F2 - быстрый переход вперед/назад по "проблемам".

Ctrl + P - информация о параметрах, необходимых для конкретного метода 
Ctrl + Q - документация о методе
Ctrl + Alt + F7 - список тех мест в коде, где используется элемент (метод или объект) находящийся под курсором.

Ctrl + E - недавно открытые файлы
Ctrl + Shift + E - недавно редактированные файлы
Ctrl + F12 (в Linux Xfce - это переключение на рабочий стол 12 - надо отключить в настройках диспетчера окон) - вывод структуры текущего файла - можно быстро переходить по коду.
Alt + Home - панель навигации - если отключить - освобождается место, а она не часто нужна.
Alt + стрелки вверх/вниз - переход по методам.
Ctrl + N - переход по классам
Ctrl + Shift + Alt + N - переход по символам
Ctrl + Shift + Backspace - переход к последнему отредактированному месту
Ctrl +  Shift + T - переход (или создание) к юнит-тесту покрывающему данный метод
Ctrl + W - структурное выделение - блок при каждом нажатии будет шире. с Shift - обратное действие.

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

Drupal 7 - добавляем новый сайт к мультисайтингу

В Апаче подкрутим конфиги для нового сайта (выходит за тему статьи - поэтому кратко)
В /etc/apache2/sites-available скопируем конфиг какого-нибудь сайта под новым именем и отредактируем его и т.д. и т.п. Добавим симлинк в sites-enabled и скажем апачу перечитать конфиги.

Создаем новую базу под новый сайт и пользователя. Либо из консоли mysql, либо какой-нибудь php-утилитой.
CREATE DATABASE `_новая_база_` CHARACTER SET utf8 COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES ON _новая_база_.*  TO _пользователь_@localhost IDENTIFIED BY '_пароль_';

Идем по ssh на сервере (ftp и пр. будет немного отличаться - но суть одна) в ваш друпаловский public/sites и дальше два варианта:

1. Копируем какой-нибудь каталог с подходящим сайтом под именем нового домена.
cp -r  _имеющийся_сайт_    _новый_сайт_
затем заходим в каталог с новым сайтом и вычищаем все лишнее кроме settings.php, его открываем на редактирование и правим в соотв. со своими желаниями. Чаще всего это секция databases и параметры database, username, password, prefix. Остальное меняется по мере желания и понимания происходящего.

2. Создаем каталог для нового сайта (имя домена) и туда копируем default.settings.php после чего его переименовываем в settings.php и редактируем как в способе 1.

Теперь по сути далее пошла работа с друпалом.
Открываем в браузере http://_новый_сайт_/install.php и понеслось по инструкциям, коих хватает в сети.
Standard + Save and continue
English (built-in) + Save and continue
возможно потребуется вручную создать каталог sites/_новый_сайт_/files 
Заполняем данные о сайте и готово!

понедельник, 20 января 2014 г.

IntelliJ IDEA и Git

Все это актуально для IntelliJ IDEA 13

Скачать имеющийся на сервере репо достаточно легко

VCS -> Checkout from Version Control - выбираем Git

В "Git Repository URL"  вбиваем урл до git-репо - что-то вроде git@_сервер_:_репо_
Можно для верности протестировать кнопочкой тест - после возможного вопроса о добавлении сервера должно написать:
Connection to repository .... has been successful.
Значит все гут.

Далее проверяем/заполняем/исправляем Parent Directory и Directory Name - т.е. где собственно говоря будет лежать проект.

Затем жмем кнопку Clone
Нас спросят хотим ли мы создвать проект из клона:
Would you like to create an IDEA project for the sources you have checked out to
Жмем Yes - иначе зачем нам вообще все это нужно.

Далее откроется окно Import Project и в нем Create project from existing sources
жмем Next если нужно меняем имя проекта и его расположение и снова Next

На следующем шаге выбираем каталог с исходниками и снова Next

Теперь корректируем библиотеки - Next

Теперь модули - Next

Выбор SDK - Next

Фрэймворки - Next

Вопрос в каком окне открыть вновь созданный проект
И на этом все, закончили.


Теперь как создать в IDEA новый репозиторий и закачать его на сервер.


Как добавить новый репозиторий в конфиги git на сервере и пользователя - оставим за рамками данной статьи - примем за данность, что оно (репо, ключи и т.п.) у нас уже все есть.

Итак у нас имеется проект в IDEA - надо добавить ему поддержку git

Необходимо выбрать в меню VCS -> Enable Version Control Integration... затем в выпадающем списке выбрать Git и Ok.

Добавим файлы нашего проекта в локальный репо
меню - VCS -> Git -> Add или Ctrl+Alt+A

теперь можно создать коммит изменений в локальном репо
меню - VCS -> Git -> Commit Directory
тут можно выбрать что из всего мы будем добавлять, добавляем осмысленный комментарий в Commit Message и затем жмем кнопку Commit
может выскочить сообщение от Code Analysis - если криминала нет - жмем опять же Commit

можно посмотреть историю коммитов
меню - VCS -> Git -> Show History

Осталось лишь настроить выгрузку (push) на сервер. И вот тут IDEA спасовала, во всяком случае Community Edition - нет такой настройки вообще.

Для случая с linux идем в каталог с проектом и уже там выполняем:
git remote add origin git@_сервер_:_репо_
git push origin master

Теперь уже из IDEA можно выполнять push - при первом выполнении создаст нужные записи о master  и т.п. или сначала выполнить настройку через меню VCS -> Git -> Branches... -> Remote Brances -> origin/master -> Checkout as new local branch

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

Gitolite и Debian 7

Устанавливаем и настраиваем.

apt-get install git-core gitolite

заводим пользователя под именем git

adduser git

берем наш ключик на локальной машине из ~/.ssh/id_rsa.pub и копируем его на сервер в /home/git под именем gitadmin.pub

переключаемся на сервере на пользователя git

su - git

и запускаем установку


gl-setup gitadmin.pub
(в новых версиях gitolite setup -pk gitadmin.pub)

откроется редактор - если хочется что-то изменить - меняем.

теперь с локальной машины можно проверить подключение

ssh git@_ваш_сервер_ -T

в ответ должно быть что-то вроде

hello gitadmin, this is gitolite 2.3-1 (Debian) running on git 1.7.10.4
the gitolite config gives you the following access:
     R   W     gitolite-admin
    @R_ @W_    testing

удаляем на сервере ранее скопированный ключик gitadmin.pub - он уже добавлен и больше не нужен.

Дальше как обычно почти так же как и для gitosis получаем конфиги на локальной машине и работаем с ними

git clone git@_ваш_сервер_:gitolite-admin

правим конфиг - добавляем пользователей, репо и т.п. и все это заталкиваем обратно на сервер

git commit -am "комментарии и пояснения"
git push