пятница, 5 ноября 2010 г.

RAID Tips

It is just place to store mdadm commands that I always forget

  • Automatically assemble RAID from existing RAID partitions:
    mdadm --assemble --scan

пятница, 17 сентября 2010 г.

Microsoft HD5000 is amazing webcam

Yesterday I've bought Microsoft HD5000, plug it to my Ubuntu Lucid (10.04) and it correctly detected and worked without any configuration actions from me! All it's powerful features such as auto focus and auto exposure (TrueColor) work out of box. As well as Skype, GTalk(jabber) video calls. So I can state that this webcam fully compatible with Ubuntu Lucid (10.04).

Here are example of photos and videos that it produces:

Personally I recommend to use guvcview for capture and tunning the cam:

P.S. Just after unboxing three our team members decided to buy the same, but only one of them seceded (shop was out of stock).

вторник, 15 июня 2010 г.

Помощник криэйтора от yandex

Помощник криэйтора

Помощник криэйтора У меня был кризис жанра, я не мог придумать слоган для компании. Поэтому за меня это сделал робот:

CVisionLab: плодоносная турбулентность.

Криэйтор, помоги себе.


Некоторые обнаруженные перлы:

сезонное коневодство

убей в себе абракадабру

полюби турбулентность

вентиляторный антагонизм

разрули сингулярность

спонтанное бессознательное

обожаемая деградация

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

Сетевой сканер (usb+saned)

Устав от сканирования в консоли, я задался целью настроить "сетевой" сканер у нас в офисе. "Сетевой" в данном случае означает, что операция сканирования должна быть доступна с любого компьютера без применения специальных знаний администрирования linux. Эту задачу можно решить двумя способами:
  1. web gui для sane: phpSANE, sanewi, linux_scan_server.
  2. сетевой демон saned.
Функционал web интерфейсов крайне урезан по сравнению  с десктопными утилитами и зачастую требует "поработать напильником", поэтому в данном обзоре я подробно остановлюсь на описании процесса настройки saned.
(см. также другие способы сканирования при помощи sane)

Исходные данные:
  • USB сканер - МФУ HP LaserJet 3030
  • сервер - Ubuntu 8.04.4 LTS i386
Алгоритм:
  • sudo apt-get install sane
  • Убедиться, что сканер доступен из под пользователя root и функционирует:
    • $ sudo scanimage -L
      покажет список подключенных сканеров. В моем случае результат был следующим:
      device `hpaio:/usb/hp_LaserJet_3030?serial=00CNBF041264' is a Hewlett-Packard hp_LaserJet_3030 all-in-one
    • $ sudo scanimage --resolution 100 --format=pnm > test_im.pnm
      в результате в test_im.pnm должна быть сканированная картинка
  • Убедиться, что сканер доступен из под пользователя saned и функционирует. Метод тот же, что и для пользователя root. Если сканер не определяется (у меня так и было), то нужно добавить пользователя saned в группу scanner.
  • Добавить в конец /etc/inetd.conf строку:
    sane-port  stream  tcp  nowait  saned.saned  /usr/sbin/saned saned
    ВАЖНО: нужно проверить, что sane-port определен в /etc/services и, что saned действительно находится по пути /usr/sbin/saned (grep sane-port /etc/services; which saned).
  • Перезапускаем inet.d
    sudo kill -HUP `ps ax|awk '/inetd/ {print $1}'`
  • Проверяем, что saned слушает соответствующий порт:
    telnet localhost 6566
    Если подключиться удалось, что можно продолжать дальше. Возможно придется внести соответствующие изменения в правила iptables.
  • Настраиваем клиентскую машину. Устанавливаем xsane. Добавляем адрес сервера отдельной строкой в файл /etc/sane.d/net.conf
  • Проверяем, что сканер доступен с клиентской машины:
    scanimage -L
    Если все хорошо, то результат должен быть примерно таким
    device `net:192.168.0.1:hpaio:/usb/hp_LaserJet_3030?serial=00CNBF041264' is a Hewlett-Packard hp_LaserJet_3030 all-in-one
  • Сканер готов к работе.
У saned есть одна особенность - он создает подключение по одному порту, а данные передает по другому. Поэтому, если у вас на сервере iptables настроен пропускать трафик только с известных портов, потребуется дополнительная настройка. В новых версиях saned есть опция data_portrange:
data_portrange = min_port - max_port
              Specify the port range to use for the data  connection.  Pick  a
              port  range  between 1024 and 65535; don't pick a too large port
              range, as it may have performance issues.  Use  this  option  if
              your saned server is sitting behind a firewall. If that firewall
              is a Linux machine, we strongly recommend  using  the  Netfilter
              nf_conntrack_sane module instead.

У меня на сервере стоит старое ядро 2.6.24-27, в котором нет модуля nf_conntrack_sane и старая убунта, со старой версией пакета sane, в которой нет этой версии. Ну и iptables настроен жестко, поэтому описанная мной схема у меня не сразу заработала :) Мне дополнительно пришлось скачать и собрать новую версию sane
  • git clone git://git.debian.org/sane/sane-backends.git
  • ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
  • make
  • make install
    или, если вы чтите ubuntu policy
    checkinstall --pkgname=sane --pkgversion=1.0.21-trunk --backup=no --default -D

воскресенье, 7 февраля 2010 г.

WireframeSketcher

I've spend a lot of time to find appropriate free tool to make a prototypes for web pages and desktop GUI, but without any noticeable success. And most of the odosh.com was prototyped in Inkskape and Gimp. It wasn't easy cause this tools not designed for prototyping - theirs main purpose to create and edit a vector and raster graphics, but not making mockups. I've heard about powerful tools for ms windows, but this os is considered only for hopeless cases, such as using some bank clients.

One of the most interesting free tool I was happen to find was DENIM. It is very funny and rather handy after some time spend to ready it's manual. But it has objective disadvantage - it is look like real handmade sketch.

Just before I've give up the idea to use professional tool to make mockups, Peter Severin point me his wireframesketcher. Today I've tried it and it gives me all that I ever need for prototyping: all UI components, alignment, grouping, exporting, creating reusable widgets and dozen other attractive features.

Here is my first prototype made with wireframesketcher eclipse plugin.

P.S. Special thank to Peter for the license key :)

среда, 27 января 2010 г.

Синдром эмоционального выгорания

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

Синдромом выгорания врачи называют серьёзное снижение работоспособности, сопровождающееся эмоциональным истощением и физическим переутомлением. Сопровождается этот синдром ухудшением самочувствия, потерей интереса к жизни, депрессиями. Первые работы по этой проблеме появились в США. Американский психиатр H.Frendenberger в 1974 г. описал феномен и дал ему название "burnout", для характеристики психологического состояния здоровых людей, находящихся в интенсивном и тесном общении с пациентами (клиентами) в эмоционально нагруженной атмосфере при оказании профессиональной помощи. Относительно недавно об этом синдроме начали говорить и применительно к программистам. Я попробую разобраться, в чем его специфика именно для близкой мне профессии.

При эмоциональном выгорании ухудшаются показатели качества и количества работы, увеличивается текучесть кадров. Сотрудники начинают избегать любой ответственности и сложных ситуаций, теряется лояльность к клиентам и организации. По данным Американского института стресса, профессиональное выгорание обходится США в 200 млрд. долл. в год.

Главной причиной этого синдрома считается психологическое, душевное переутомление, вызванное тем, что требования (внутренние и внешние) длительное время преобладают над ресурсами (внутренними и внешними).

В современном обществе бесстрастность и невозмутимость принято считать положительными качествами, а эмоциональность – признаком слабости. Многим кажется, что в программировании эмоциям нет места в принципе, и современные супермены программисты не плачут. Однако это не совсем так.

В том случае, когда эмоция есть (и, значит, есть потребность к действию), а человек не действует, ему приходится затрачивать энергию на подавление потребности действовать. При неоднократных повторениях подобных состояний человек перестает осознавать собственную эмоцию.

Хороший программист - существо импульсивно увлекающееся. Пришла в голову идея реализовать очередную астролябию, которая сама все меряет - нет тебе ни сна, ни покоя, пока ты её не сделаешь. Вышел новый движок/библиотека/API - надо их срочно попробовать, поиграться. Если в рабочем графике отсутствует время на такие занятия (большинство из них не связано с выполнением календарного плана), то такие эмоции дисциплинированный программист вынужден подавлять. Это вызывает негативные переживания. Подавляя и негативные эмоции тоже, человек постепенно становится бесчувственным. Психологи едины во мнении, что не осознаваемые эмоции не исчезают и становятся источником серьезных проблем.

Процесс выгорания начинается незаметно. Человеку становится свойственно забывание каких-то моментов (не закоммитился, пофиксил не то не там и не так, не ответил на письмо), сбои в выполнении каких-либо двигательных действий (уронил сервер, превратил продакшн в дев) и т.д. Первые признаки эмоционального выгорания – повышение уровня тревожности, связанного с чувством безвыходности и профессиональной беспомощности на фоне недовольства результатами своей деятельности, занижение оценки своих профессиональных качеств.

На следующей стадии наблюдается снижение интереса к работе, потребности в общении (в том числе и дома, с друзьями) нарастание апатии к концу недели, появление устойчивых соматических симптомов (нет сил, энергии, особенно к концу недели, головные боли по вечерам; увеличение числа простудных заболеваний; повышенная раздражительность)

В итоге - собственно личностное выгорание. Характерна полная потеря интереса к работе и жизни вообще, эмоциональное безразличие, ощущение постоянного отсутствия сил.

Факторами, способствующими прогрессированию этого синдрома являются: неопределенность целей деятельности, размытость профессиональных обязанностей, неясность результатов деятельности, нечеткость требований; пренебрежение собственными эмоциями и здоровьем; избегание праздников; неумение себя поощрять и фиксация на неудачах; неумение принимать похвалу; отсутствие других интересов; перфекционизм; сверхурочная работа; сидячий режим; страх потери рабочего места.

Наиболее часто рекомендуемыми способами борьбы с эмоциональным выгоранием являются: умение переключать себя на пассивное созерцание природы или предметов искусства, приятные воспоминания, творчество. Также общеизвестно, что физически здоровые люди гораздо легче переносят стрессовые состояния и психические нагрузки. В общем, все, что позволяет поднять себе самооценку, будет хорошим противодействием выгоранию. Так утверждают психологи. От себя добавлю, что следование принципам тайм менеджмента также очень положительно сказывается на эмоциональном состоянии.

В чем я вижу главную проблему выгорающих программистов? Выходом из кризиса самооценки хорошего программиста может быть только то, что его к этому кризису привело - получение красивого результата. Чем больше результатов, тем выше самооценка. Но постоянное получение красивых результатов принципиально не возможно. Каждая неудача увеличивает вероятность следующей неудачи. Замкнутый круг? Если процесс пустить на "самотек" - ДА. Думаю, что если использовать указанные рекомендации, то красивых результатов будет значительно больше, чем неудач и вероятность наступления синдрома эмоционального выгорания будет незначительной.

---
Источники: kv.by, psj.ru, healthplanet.by, health.mpei.ac.ru
P.S. Прошу прощения за отсутствие цитирования в моей компиляции из чужих и своих мыслей
P.P.S Спасибо жене, которая натолкнула меня на эти размышления и ознакомила с терминами

суббота, 14 ноября 2009 г.

МТС Коннект и Ubuntu

В нашем славном городе Таганроге появился 3G от МТС с безлимитным тарифом, поэтому задача настройки USB модема стала весьма актуальна.

Проблема автоматического определения модема заключается в том, что кроме функций модема продоваемое МТС устройство (в моем случае это HUAWEI Mobile Broadband E1550), также выполняет функции CD (в него встроена flash карта и при помощи технологии ZeroCD она видится как CD-ROM). Так вот, пока это устройство работает как CD-ROM оно не может работать как модем, поэтому для переключения в режим модема нужно извлечь этот CD - для этого можно кликнуть правой конопкой на этом CD и вырабть "извлечь". Что бы не делать этого постоянно, предлагается создать соответствующий udev скрипт. После того, как устройство распознано как USB модем, интернет подключение прекрасно создается при помощи штатных средств Network Manager (у меня Ubuntu 9.10 и в ней NM работает просто превосходно)

Метод настройки:

  1. Подключаем подем, ждем минуту, смотрим вывод lsusb:
  2. gorban@gorban-laptop:~$ lsusb |grep Modem Bus 002 Device 011: ID 12d1:1001 Huawei Technologies Co., Ltd. E620 USB Modem
  3. Подстрока "12d1:1001" - это idVendor:idProduct
  4. Добавляем соответствующее правило в udev, заменя выделенное на соответствующие ID:
  5. echo 'SUBSYSTEM=="usb", SYSFS{idProduct}=="1001", SYSFS{idVendor}=="12d1", RUN+="/lib/udev/modem-modeswitch --vendor 0x12d1 --product 0x1001 --type option-zerocd"' | sudo tee /etc/udev/rules.d/45-huawei1550.rules
  6. Извлекаем устройство и подключаем заново. Создаем при помощи Network Manager интернет подключение
Ну и для фанатов полезные команды модема:
echo -e "AT+CSQ\r">/dev/ttyUSBX — уровень сигнала в у.е. децибелах (для каждого модема это можно узнать в даташитах, обычно для GPRS/EDGE максимум 30, для 3G — 26) ответ можно увидеть в другом терминале — cat /dev/ttyUSBX
AT+CREG? — роуминг и регистарция в сети
AT+COPS? — информация о регистрации в сети (её тип, название и т.п.)
AT+CPAS — состояние (звонок, готовность к приёму команд и т.п.)
AT+CMEE? — формат вывода ошибок (AT+CMEE=<0-2> — изменение формата вывода ошибок, больше число — больше информации)
Точно также можно посылать смс-ки, но больно муторно. А чтобы более подробно узнать о командах нужно искать даташит на данный модем, или AT команды характерные для данного производителя.
AT+ZPAS? (тип оператора GSM/GPRS/EDGE/UMTS/HSDPA и тип сервиса голос/данные/голос+данные) AT+ZDON? — the name of local operator, the MCC of local operator, the MNC of local operator, the name of attributive operator, the MCC of attributive operator, the MNC of attributive operator, service domain (может отсутствовать), ROAM_STATUS (ROAM _NONE, ROAM _OFF, ROAM _ON)

Источники: launchpadforum.ubuntu.ruopenkazan

My Delicious Tags