2014-10-03

Смена часовых поясов в XP средствами GPO

Все админы, наверное, готовятся сейчас к предстоящему переезду в новые часовые пояса. И основная проблема - это XP, которая местами еще осталась, и для которой отсутствуют патчи от MS.

Для московского региона я состряпал скрипт, который предлагаю скачать: tzdata_xp_patch_moscow_time.7z

Архив включает экспортированный из реестра 2003го сервера набор новых зон и VBS-скрипт:


strComputer = "."
 Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")        
Set colOperatingSystem = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")

For Each objOperatingSystem in colOperatingSystem
ServicePack = objOperatingSystem.ServicePackMajorVersion
Version = objOperatingSystem.Version

Next





IF Mid(Version,1,3)="5.1" Then

Set oShell = WScript.CreateObject ("WScript.Shell")
oShell.run "regedit /s tzdata_w2k3_zone_list.reg"
oShell.run "control.exe timedate.cpl,,/z Russian Standard Time"

ELSE

'DO NOTHING 


'Set oShell = WScript.CreateObject ("WScript.Shell")
'oShell.run "regedit /s tzdata_w2k3_zone_list.reg"
'oShell.run "control.exe timedate.cpl,,/z Russian Standard Time"


END IF

Как можно понять, скрипт проверяет версию ядра Windows и если она равна 5.1 (это ядро используется в XP), то сначала импортируется reg-файл с зонами, а после выставляется дефолтная - Russian Standard Time.

Стоит учитывать, что данный "патч" можно установить заранее, как и официальный, так как новая зона до 26го октября имеет "летнее время", компенсируя час разницы.

При желании скрипт можно легко модифицировать, изменив проверку ядра системы, или имя текущей зоны, и запустить средствами GPO.

Все зоны лежат в реестре: [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones], имя зоны = имени "папки" реестра.

UPD.:
Тестирование показало, что скрипт идеально работает при запуске руками, но какого-то хрена не выполняется как Startup-скрипт из GPO. Изрядно поебавшись, кажется прихожу к решению:

  1. заменить VBS-скрипт следующим двухстрочным CMD:
    regedit /s tzdata_w2k3_zone_list.reg
    control timedate.cpl,,/z Russian Standard Time
  2. Применить на политику WMI-фильтр:
    SELECT * FROM Win32_OperatingSystem WHERE Version LIKE "5.1%"  AND ProductType = 1
В целом это решение видится даже более правильным, хотя до сих пор WMI-фильтрами мне пользоваться не доводилось, почему и в голову сразу не пришло.

2014-09-12

VMware tools в Slackware - что делать, если не работают poweroff, reboot

Если тулзы установлены корректно (определяются как запущенные в консоли управления, отдают информацию о гостевой системе), но при этом гостевая машина не реагирует на попытки выключить или перезагрузить ее - следует снести   скрипт:
 /etc/vmware-tools/scripts/vmware/network

Проверено на 14й слаке и ESXI 5.0

2014-08-15

Отправка триггеров Zabbix на удаленный Syslog-сервер

Захотелось хранить историю триггеров не только на самом заббиксе, но и копировать их, ради пущей надежности, на удаленный сислог. Сделать это оказалось не так сложно.

(все настройки справедливы для ubuntu 12.04)


Первым делом в каталоге /usr/local/share/zabbix/alertscripts/ создаем скрипт zabbix_logger.sh:

#!/bin/bash
/usr/bin/logger -t ZABBIX $2

Меняем ему владельца и делаем исполняемым:

cd /usr/local/share/zabbix/alertscripts/
chown zabbix:zabbix ./zabbix_logger.sh
chmod +x zabbix_logger.sh

Теперь этот скрипт готов получать сообщения от заббикса и писать их заголовки ($2 в скрипте) в локальный сислог под тегом ZABBIX.


Настроим сам заббикс. 
Первым делом добавим новую медию:


Чтобы все триггеры вызывали наш скрипт, добавим эту медию к учетке администратора:




Теперь все триггеры пишутся в локальный сислог. Однако у нас используется отдельный сислог-сервер, поэтому пришлось создать файл /etc/rsyslog.d/20-zabbix.conf, содержащий одну строчку:

:syslogtag,contains,"ZABBIX"   @192.168.1.9


После перезапуска rsyslog'а все сообщения тегированные строкой "ZABBIX" отправятся на нужный сервер, где при помощи LogAnalyzer'а обретут вот такой вот вид:



2014-07-04

Драйвер Dualshock 3, альтернатива Motionjoy и DS3 Tool

Преамбула

Как человек, руки которого привыкли к джойстикам от Sony, я долгое время использовал драйвер MotionJoy для подключения геймпада Dualshock 3 к компу. Драйвер выполнял казалось бы все необходимые функции - позволял подключать геймпад по USB или через Bluetooth, и определять его как XInput-совместимый, что   позволяло использовать дуалшок для игр в стиме, например. Однако у моушнджоя при этом всплыли 3 недостатка:

  1. После рестарта винды нужно вручную запустить софт DS3 Tool,
  2. После старта DS3 Tool приходилось залезать в конфигурацию кнопок и сбрасывать все на дефолт,
  3. При уходе винды в спящий режим Motionjoy ронял ее в BSOD. 

Если первую проблему можно обойти автозагрузкой, а вторая, возможно, вообще возникла только у меня (по крайней мере о ней я ни от кого не слышал), то третья проблема легко гуглится, а ее решение заключается, по отзывам, только в корректном извлечении юсб-устройства после работы. Кроме того встречаются раздраженные отзывы о плохой поддержке, кривом коде (sic!) и невозможности удалить драйвера Motionjoy иначе как вручную. В общем все это (конечно, BSOD'ы в первую очередь) побудили меня поискать альтернативу. И это оказалось несложно.

Драйвер

На форуме steam я нашел развернутый отзыв-инструкцию о "SCP DS Drivers" - альтернативном драйвере, который также поддерживает работу через USB/Bluetooth. Скачать драйвер можно из темы на форуме pcsx.net тут (вроде как там выкладываются свежие версии и лежит инструкция по установке), или вот здесь скачать проверенную лично мной версию (в архиве также находятся оригинальные драйвера геймпада xbox).

Инструкция по установке:

  1. Установить оригинальные драйвера геймпада xbox,
  2. Скачать архив и распаковать в Program Files (или в другое место, откуда этот драйвер будет в дальнейшем работать),
  3. Подключить геймпад по USB,
  4. (если необходимо) подключить Bluetooth-донгл,
  5. Дождаться установки дефолтных драйверов Windows,
  6. Запустить ScpDriver.exe,
  7. Для XP/Vista - поставить галку Force Install, для Win7/8 - не ставить,
  8. Жмякнуть Install и подождать пока в лог напишется что все прошло успешно:



После этого геймпад заработает как XInput-совместимый, а если был подключен Bluetooth-донгл, то можно отключить геймпад от USB - он сам переключится на воздух.

Спаривание геймпада с воздухом осуществляется подключением по USB во время работы сервиса, один донгл держит до 4х геймпадов. Для отключения геймпада нужно на 2 секунды зажать L1+R1+PS.



Скачать драйвер: Dualshock Driver - SCP-DS-Driver-Package-1.2.2.175.7z
Последняя  версия драйвера: http://forums.pcsx2.net/Thread-XInput-Wrapper-for-DS3-and-Play-com-USB-Dual-DS2-Controller

2014-05-23

Мультикаст рестрим на коленке

Появилась задача - обеспечить каждому сотруднику возможность посмотреть проходящую видеоконференцию. Так как количество сотрудников однозначно превышало количество лицензий Codian на подключение - пришлось собрать на коленке рестримилку.

Рестрим

В качестве софта был взят vlc под linux, экспериментальным путем запущенный вот с такими параметрами:

vlc -vvv rtsp://codian_server/conf_h264_g711u_256000__Supaconf \
 --sout "#transcode{\
threads=6,\
vcodec=h264,\
vb=1024,\
scale=0,\
acodec=mp4a,\
ab=64,\
channels=2,\
samplerate=44100,\
venc=x264{preset=ultrafast,aud,profile=baseline,level=30,keyint=30,ref=1}\
}:http{mux=flv,dst=:8080/stream}" --sout-keep

Данный вариант запускает на рестрим, доступный по адресу: http://рестримилка:8080/stream. Стрим вещается с кодеками h264/aac в контейнере flv и понимается онлайн-плеером Video.js (http://www.videojs.com/), который можно поставить прямо на рестримящий сервер. Для воспроизведения потребуется IE не менее 9го или любой другой современный браузер. Ну или можно использовать тот же самый VLC на клиентских компах, а лучше - портабельный (полностью распакованный) vlc на сетевой шаре с ярлыком, в котором прописан путь к рестриму.

Такой вариант рестримилки в моем случае при шести ядрах тянул  300 подключений не напрягаясь - загрузка процессора не превышала 20%. Однако трафик, поэтому...

Балансировка нагрузки

Еще более наколеночное и тупое решение - поднять пару серверов, которые будут захватывать стрим с основного рестримящего сервера и отдавать его без перекодировки. 

!#/bin/sh
while true; do 
/usr/bin/vlc --play-and-exit  \
-vvv http://restream-root-server:8080/stream \
--sout "#standard{access=http,mux=flv,dst=:8080/stream}" 
sleep 2
done

Этот скрипт будет пытаться достучаться до рестримящего сервера и подхватить поток. Когда поток подхватится - vlc начнет его рестрим (тот же адрес - :8080/stream) В случае прерывания потока vlc схлопнется и продолжатся попытки нащупать поток.

Подняв 2 или сколько потребуется серверов, добавляем все их в DNS с одним именем, получив примитивную Round Robin балансировку. Также для каждой такой DNS-записи следует указать небольшое время кэширования на клиентах - TTL (в Windows для этого нужно включить Advanced-режим отображения: View - Advanced).

После этого настраиваем клиентский плеер на адрес http://общий_адрес:8080/stream 

2014-05-19

Нарезка PDF-файла по координатам на куски в Linux

Занялся переносом карточной игры "Cards Against Humanity" в симулятор настольных игр.  Сеты карт для этой игры распространяются бесплатно в PDF-формате, в том числе существует и неофициальный перевод карт на русский. В обычной жизни предполагается возможность распечатать и нарезать колоду, мне же стало необходимо получить индивидуальные картинки карт.

Как можно видеть, исходный файл достаточно ровно сверстан, поэтому логично было бы попробовать автоматизировать его нарезку.


Для начала нам потребуется утилита cpdf, взять ее можно тут: https://github.com/coherentgraphics/cpdf-binaries

Вырезка кусочка PDF по его координатам осуществляется командой:
cpdf -crop "Xнач Yнач Xкон Yкон" input.pdf -o output.pdf, где:
Xнач и Yнач - начальная точка квадрата выделения (левая-нижняя)
Xкон Yкон - смещение до конечной точки квадрата выделения (правой-верхней)
при этом счет координат ведется от нижнего-левого угла листа.

Эта команда составит нам пдфник, каждая страница которого будет вырезкой из страницы оригинального файла.

Разумеется я подсчитал смещения по оси X и настрогал пдфников такой очень ленивой строчкой:
for i in {0..3}; do let "x=(14+($i*144))" ;  cpdf -crop "`echo $x` 29 134 134  " ~qiwichupa/Gotovaya_versia.pdf -o out_1_$i.pdf ; done;

В результате я получил 4 файла с картами с последней строки оригинала:
раз, два, три, четыре.

Тут лень взяла верх, и я повторил этот  однострочник еще 4 раза, вручную поменяв стартовую координату Y, примерно так:
for i in {0..3}; do let "x=(14+($i*144))" ;  cpdf -crop "`echo $x` 188 134 134  " ~qiwichupa/Gotovaya_versia.pdf -o out_2_$i.pdf ; done;

В итоге я получил 4*5=20 файлов, каждый из которых имел 1 карту на одной странице. Вагон ручной работы по нарезке избегнут! Дальше марафет.

Режу файлы на страницы, складывая их в отдельную папку: 
for i in ./*.pdf; do  cpdf -split $i -o ./pdf/$i-%%.pdf ; done;

Удаляю обрезки от первых двух и последней страниц:
rm ./pdf/*-0[12].pdf
rm ./pdf/*-30.pdf

Тут выяснилось что 100%-ный размер получившихся карточек маловат для конвертации в графику, поэтому пришлось увеличить его в 5 раз:
for i in ./pdf/*.pdf ; do cpdf -scale-page "5 5" $i -o $i.pdf; done ;

В результате получились такие прекрасные карточки. Осталось их сконвертировать в растр (png):
for i in ./pdf/*.pdf ; do convert $i  -flatten   -trim -sharpen 1x1.0 $i.png ; done ;

Вуаля - результат!

2014-05-08

Регулярное обслуживание сервера WSUS

Пару лет назад, при настройке сервера обновлений я столкнулся с постепенным распуханием баз данных сервера и связанным с этим падением производительности. В результате были разысканы скрипты, вычищающие устаревшие обновления (замененные микрософтом более актуальными версиями) и оптимизирующие базу данных. Теперь мне не нужно задаваться вопросом "как почистить базу WSUS?" - в планировщике задач висят два батника: WsusDBMaintenance.bat отрабатывает в ночь на каждое первое число, wsuscleanup.bat - в ночь на второе число.

Несколько замечаний:

  1. Все файлы из нижеприложенного архива должны лежать в папке C:\bin\, или придется поменять путь в батниках на актуальный.
  2. Задачи планировщика должны выполняться от администраторской учетки.
  3. В скрипте используется утилита sqlcmd из Microsoft® Command Line Utilities (в моем случае это были sqlncli2008R2_x64).
  4. Проверено на WSUS 3.2


bin.7z - Скачать

2014-05-06

SSH под Windows

Захотел поиметь в винде ssh.exe для понятных нужд. В сети на  скорую руку выгугливается только одно решение, поэтому позволю себе репостнуть:

"Чтобы запустить консольный OpenSSH клиент в Винде нужно поставить Cygwin, а так же пакеты zlib и openssh. Cygwin позволяет запускать линуксовые приложения под виндой. Я всегда довольно подозрительно отношусь к софту, который меняет поведение системы, поэтому собирал ssh не запуская инсталлятор Cygwin. (Для тех, кому не терпится — в конце есть все готовое, чтобы скачать.)

Для начала я сделал папку SSH в Program Files. На одном из этих сайтов я скачал пакеты cygwin, zlib, openssh, openssl и minires. Из них нужно в нашу папку SSH положить файлы: cygwin1.dll из пакета cygwin, cygz.dll из zlib, ssh.exe и ssh-keygen.exe из ssh, cygcrypto-0.9.8.dll из openssl, и cygminires.dll из minires. Дальше идем в настройки переменных окружения, в PATH прописываем путь к папке SSH, а так же создаем переменную HOME и так же прописываем путь к папке SSH. Хочу, однако, отметить, что HOME можно не указывать, тогда ищите папку .ssh в папке вашего юзера. Например C:/Users/CharnaD/.ssh. Все!"

(с) http://www.charnad.com/blog/ssh-pod-windows/


Для ленивых автор выложил готовый архив:  ssh_for_win.zip

2014-03-19

Как склеить видео разных форматов, разного разрешения, аспекта, с разными прочими характеристиками

Работая с записями игровых стримов, столкнулся с необходимостью склеивать небольшие их кусочки в одно видео. Обычно с этим не возникает проблем, но в некоторых случаях приходится иметь дело с кусками, которые были записаны в разном разрешении, или разной частотой кадров, не говоря о разных кодеках. Обрабатывать видео в avidemux, в котором я это обычно делал, конечно было можно, но хотелось максимально автоматического решения. Оказалось что собрать такое самому не очень сложно, более того решение основано на совершенно бесплатных и мультиплатформенных утилитах: avconv (форк ffmpeg) и MP4Box.

Как же склеить разное видео? Алгоритм обработки следующий: привести исходные видеофрагменты к общему формату и характеристикам, затем собрать воедино. В качестве формата видеопотока был выбран H264, для аудио - mp3. Стоит учесть, что для успешного склеивания фрагментов, требуется не только общий формат, но и характеристики, такие как частота кадров или частота аудиопотока. Также надо иметь в виду, что в процессе видео подвергаются перекодированию, что не может не сказаться на качестве. Впрочем, для того видео, с которым нужно работать мне, это не критично, и вообще avconv весьма хорошо справляется с кодированием.

Итак, как же это юзать. Предположим мы имеем 2 видео: S1.flv и S2.flv. Переконвертим их командой:

avconv -i S1.flv -map 0 -vf "scale=iw*sar*min(1280/(iw*sar)\,720/ih):ih*min(1280/(iw*sar)\,720/ih),pad=1280:720:(ow-iw)/2:(oh-ih)/2" -c:a libmp3lame -ar 48000 -c:v libx264 -r 30 -bf 2 -g 30 -profile:v high -preset veryfast -level 42 O1.mp4

avconv -i S2.flv -map 0 -vf "scale=iw*sar*min(1280/(iw*sar)\,720/ih):ih*min(1280/(iw*sar)\,720/ih),pad=1280:720:(ow-iw)/2:(oh-ih)/2" -c:a libmp3lame -ar 48000 -c:v libx264 -r 30 -bf 2 -g 30 -profile:v high -preset veryfast -level 42 O2.mp4


Выглядит устрашающе, но на выходе мы получим 2 ролика с одинаковыми характеристиками и, даже, растянутых (или ужатых) до одинакового разрешения - 1280x720 - с добавленными черными полосами там, где это нужно. Последнее нужно для склеивания видео в один ролик, поэтому с черными полосами так или иначе придется смириться, а за процесс "скейлинга" отвечает замечательный параметр -vfзначение для которого вывел некто Kevin Locke, оно является практически ключевым местом всех преобразований и я очень рад что кто-то проделал эту работу за меня =). Параметры, с которыми можно попробовать поиграться:

-ar 48000 - частота аудиопотока
-r 30 - частота кадров видео
-g30 - частота ключевых кадров
-preset veryfast - скорость кодирования, для улучшения качества можно выбрать veryslow или один из прочих пресетов H264.

После конвертации мы получим два файла: O1.mp4 и O2.mp4, контейнер выбран не случайно и заточен под утилиту MP4Box. Синтаксис объединения таков:

MP4Box -add O1.mp4  -cat O2.mp4 out.mp4

Стоит отметить, что параметр -add указывается для первого файла, для всех последующих справедлив параметр -cat.
На выходе получаем out.mp4, содержащий в себе все видеофрагменты в порядке их указания.

Разумеется данное решение не совсем автоматично без скрипта, а так как хотелось еще и платформонезависимого решения, то пришлось навая скрипт на питоне. Да, питон не входит в дитрибутив винды, но и avconv с MP4Box (входит в пакет GPAC) поставить придется (http://win32.libav.org/win64/ и http://gpac.wp.mines-telecom.fr/downloads/) зато после этого выходит действительно "однокнопочное" решение - стоит в консоли зайти в директорию с набором flv-файлов (формат можно указать в начале скрипта) и выполнить:
python путь_к_скрипту
дальше можно откинуться на спинку кресла =)

Ссылка на актуальную версию скрипта: http://pastebin.com/hCfFSF5a

Ссылка на архив со всем необходимым: https://drive.google.com/file/d/0B3kqpI0yeB0iVG1hRmpBdEN5emM/edit?usp=sharing

Видео про то как все это поставить:



Upd: сделал бинарник, все-в-одном-экзешнике: avmerge_x64.7z , avmerge_x86.7z

2014-03-08

Домашний VoIP как замена сотовой и стационарной связи

Кросспост из http://blog.qiwichupa.net/2014/03/blog-post.html

"У меня зазвонил телефон.
- Кто говорит?
- Слон.
- Откуда?
- От верблюда."

Сегодня, глядя на иллюстрацию к стихотворению Чуковского, можно лишь испытать ностальгию по тем временам, когда у каждого в квартире стоял большой, с круглым позвякивающим диском, телефон.

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

Впрочем, не мобильной связью единой... Уже давно, и, по мере развития интернет-сетей, все сильнее и сильнее набирает обороты VoIP-связь - связь через интернет. Всем известный Skype предоставляет совершенно бесплатно не только голосовую, но и видеосвязь, чего не может предложить ни один из сотовых операторов. Более того, МГТС некоторое время назад начала также переходить на VoIP, заменяя ту самую стационарную телефонию, а вернее сам принцип работы линии - старая аналоговая "лапша" будет заменена интернет-каналом, к которому будут подключаться да хоть старые телефоны, которые у многих еще сохранились. Плюсы такого решения очевидны: интернет сейчас есть у каждого, а у кого нет - тех МГТС подключит и помимо телефонии, возможно, получит и интернет-клиента себе в копилку. Да и клиентам неплохо - с их точки зрения ничего не поменяется, разве что в квартире появится дополнительная коробочка, которая сделает возможным подключение обычного аналогового телефона к Интернету. Минус всей схемы, пожалуй, один - старая аналоговая телефония не зависит ни от работоспособности интернет-сети, ни от подачи электричества конечному пользователю. Выключили в доме свет - старая телефония осталась работать, а вот оборудование VoIP потухнет. Насколько это критично - каждый решает для себя.

Я решил, что для меня это не критично. А еще я решил, что мне не так удобно платить и за поддержание аналоговой, пока еще, линии МГТС, и сотовому оператору. Я подумал, что было бы здорово сменить их обоих на что-то одно, с понятными и некусачими тарифами, возможностью недорого позвонить по межгороду, с возможностью иметь московский номер для входящих звонков, а если бы такая связь была еще и мобильной - ну, было бы совсем супер. Решение у меня было, в общем-то, под рукой - я уже давно являлся абонентом VoIP-провайдера http://zadarma.com, который базово предоставляет свой внутренний номер с бесплатными звонками внутри сети и определенной тарифной сеткой для звонков наружу. Теперь же мне захотелось купить у них прямой московский номер, чтобы звонить могли и мне, а заодно пустить в ход доставшийся мне волею случая стационарный телефонный аппарат. Мобильная связь? Да, конечно, у меня есть планшетофон на андроиде, а у "задарма" есть свой клиент под эту платформу. Вопрос интернета решается интернет-симкой от мегафона.

Воу-воу-воу, скажете вы мне: какой смысл заморачиваться с VoIP, если все равно нужна симка? Ну, ответ на этот вопрос довольно сложен. На данный момент могу сказать только что, во-первых, симка нужна только там где нет вайфая, поэтому для кого-то она может оказаться и не такой необходимой, во-вторых, это хороший способ отвязаться от конкретного мобильного оператора - от него нужен только интернет и сменить его можно всегда и без проблем, в-третьих, мой переход на VoIP пока в стадии тестирования и оценки удобства и финансовой оправданности, поэтому даже для себя я пока окончательно не оценил все выгоды данного мероприятия =)

Ну так вот, теперь поподробнее о том как все это выглядит. Имея аккаунт "задарма" (и да, это не какая-то реклама, просто несколько лет назад я на них наткнулся, ну и больше альтернатив особо и не искал) я могу совершать звонки хоть с их сайта, не имея никакого клиента вообще. На свой планшетофон я установил их клиента, который, впрочем, может быть заменен любым другим, который поддерживает протокол SIP - он используется в подавляющем большинстве VoIP-решений. Самым непростым, затратным и бесполезным оказалась установка стационарного телефона =) Скажу прямо - было просто интересно, поэтому за пару деревянных тысяч я приобрел "коробочку" от Linksys, которая позволяет подключить себя к домашней сети с доступом в Интернет, а к себе - любой обыкновенный телефон, который умеет тоновый набор (увы, дисковый телефон не годится =(( ).



Как можно видеть - "попа" коробочки имеет 4 разъема. Два из них - те что побольше - служат для подключения самой коробочки к домашней сети и подключения, например, компьютера к коробочке. То есть, если на вашем домашнем роутере забиты все разъемы, то данный VoIP-адаптер можно смело воткнуть последовательно между компьютером и роутером. Разъемы же поменьше служат для подключения двух телефонов. К слову, каждый разъем настраивается отдельно и телефоны, в конечном счете, могут работать да хоть с разными VoIP-провайдерами.

Сама же коробочка довольно мала, с нижней стороны имеет "ушки" для крепления к стене, у меня же - просто является подставкой для телефона.



Ну и пара слов как все это работает. Позвонить можно просто сняв стационарную трубку и набрав номер. В случае с андроидом - запустив программу и набрав номер на ее номеронабирателе. Входящий вызов приходит сразу на все подключенные клиенты (клиентом стационарника является "коробочка", на андроиде - родной клиент, который  автозапускается при старте системы). Входящие звонки бесплатны, для звонящего тарифицируются как звонки на московский номер (так что для стационарных москвичей бесплатны чуть более чем полностью), исходящие - в зависимости от тарифа и "адресата". За московский номер платится абонентка - 4 бакса в месяц (можно и дороже за более "красивые номера"), при заказе номера можно выбрать номер из пула - какой больше нравится. Для заказа номера нужно предоставить скан паспорта, сам номер мне привязали на следующий день после заказа. Также есть, по крайней мере сейчас, возможность получить московский номер без абонентки, но для этого нужно трепаться не менее скольких-то там минут в месяц - может кому-то подойдет.

Повторюсь, на данный момент я лично не до конца и не полностью оценил всю выгоду перехода от МГТС и сотовой связи к VoIP-телефонии, к тому же сам я звоню довольно редко и мой опыт для многих не будет показательным, но все же я решил им поделиться  и показать, что, в принципе, переход на VoIP не так страшен. К тому же, в связи с переходом МГТС на тот же самый VoIP, становится резонным вопрос - а не имеет ли смысла отказаться от их услуг и купить номер у другого провайдера? Лично я убедился в одном: лично для меня такой смысл вполне есть.

2014-02-19

Отправка SMS с помощью GSM-модема из командной строки linux

Используя minicom или другой эмулятор терминала, зацепиться за порт (например /dev/ttyS0) и набрать:

AT+CMGF=1 [Enter] AT+CMGS=+79261234567 [Enter] this is test message [Ctrl+Z]


2013-11-23

Как я стримлю игры с PS3 в HD-качестве

Не так давно настроил HD-захват со своей PS3, и хотя моя схема на данный момент серьезно устарела, думаю будет небесполезно ею поделиться.

На момент покупки первого ключевого компонента моей схемы - карты захвата - с захватом HD-картинки с "плехи" была одна серьезная проблема, а именно: изображение, пересылаемое через HDMI-кабель шло в шифрованном виде, и не было устройств, которые могли бы его расшифровать. Сейчас, возможно (я лично не проверял), эта проблема решена и достаточно воткнуть плеху в какую-нибудь современную авермедию и все будет ок. Мое же устройство, увы, лишено такой возможности и при прямом подключении показывает черный экран. Поэтому полный список оборудования пополнил дополнительный конвертер и в целом выглядит он так:
  1. PS3
  2. Внешняя карта захвата Blackmagic Intensity Pro
  3. Конвертер DVI to HDMI - необходим для отламывания шифрования
  4. Ресивер - носит вспомогательную роль и совершенно не обязателен
  5. Комп, его монитор и внешний ТВ для игр на большом экране
  6. набор кабелей

Для лучшего понимания изобразил схему (кликабельна).

Из схемы видно, что исходно из PS3 выходят два сигнала: видеосигнал, идущий по кабелю HDMI-to-DVI  и изначально зашифрованный, и отдельный звуковой сигнал, идущий по оптическому кабелю. Оба кабеля подключены к конвертеру, который берет видео с DVI-разъема и звук с оптического кабеля, и преобразует их в единый поток выходящий по HDMI - уже не шифрованный, что и требуется для захвата. Тут стоит заметить, что не получится просто взять два переходника - HDMI-to-DVI и обратный - и с их помощью отломать шифрование, поэтому на конвертер, при такой схеме, придется раскошелиться. 

Дальше все просто - сигнал с конвертера уходит на карту захвата и с одной стороны проходит через нее насквозь и уходит в сторону ТВ, с другой - захватывается устройством и по USB 3.0 отдается в комп, где стримится и, до кучи, выводится на монитор при помощи Open Broadcaster Software. 

Хочу заметить, что есть один нюанс, который не позволил мне захватить что-то отличное от черного экрана сразу после сборки этой схемы. Оказалось что для моей карты захвата нужно настроить параметры входящего потока - разрешение и частоту кадров. Так как PS3 может выдавать 1080p при фреймрейте в 59.94 fps, но в играх как правило снижает разрешение, мне пришлось принудительно выставить в ней 720p как максимально поддерживаемое моими устройствами разрешение, чтобы при захвате не ловить черные экраны при выходе в меню. Также частота кадров не в 60, что кажется логичным, а в 59.94 кадра в секунду - то, что, возможно, придется иметь в виду при настройке захвата. Впрочем, хочется верить, что в современных картах захвата все эти настройки производятся автоматически =)

2013-10-28

Использование SD-карты для хранения файлов Google Play Music

Недавно для России официально открыл свои двери сервис Google Play Music. Поимев в него доступ чуть раньше официального открытия, я сразу столкнулся с проблемой на своем планшете от Samsung. Проблема простая - гугл музыка умеет кэшировать треки на устройстве, но делает это исключительно во внутренней памяти. То есть те люди, которые купили девайс с небольшим объемом памяти, понадеявшись на SD в 64 Гб, оказались в пролете. И, как оказалось, решить данную проблему в пару кликов оказалось не то чтобы невозможно, но не так очевидно, как я думал.

Немного шагов, оказавшихся напрасными

Первой моей мыслью было использовать Titanium Backup, который умеет переносить приложения на SD. Не вышло - оказывается мой планшет отформатировал SD в FAT32, а для работы функции переноса приложения титаниуму нужен ext2/3/4. Планшет же наотрез отказался понимать эту файловую систему на ЭСДЭшке, уверяя что она не отформатирована.

Дальше я полез гуглить и выгуглил замечательное по-своему приложение Link2SD, которое учло проблему файловой системы. Работает оно следующим образом: нужно взять свою SD и разбить на 2 части - первую оставить в FAT32, чтобы ее видел планшет, а вторую отформатировать в один из ext'ов. Этот раздел не будет виден в файловых менеджерах (по крайней мере ни один из моих этот раздел не увидел), но сама прога сможет его куда-то смонтировать и перенести туда приложения. Однако - и тут меня постигло разочарование - переносится только сам apk-файл и дальвик-кэш, но не то, что называется Data. Эпик фейл.

Дальше я попробовал еще пару приложений, которые обещали мне создать ext-хранилище, смонтировать его и все такое, но они ничерта не заработали вообще, возможно потому что у самсунга внутреннее хранилище представлено как фейковая sdcard, что вносит дополнительную неразбериху в приложения, к этому не готовые.

Саксес стори

И тут я наконец выгуглил правильное решение, которое на самом деле выгуглил едва ли не первым, но отложил на потом. И вот это "потом" настало.
Суть решения сводится к тому, чтобы вручную создать линк (symlink, если быть совсем уж точным) на директорию с кэшем. То есть сделать то, что пытаются делать все приложения, но не осиливают в силу негибкости своей настройки.

Итак, нам понадобится рутованая прошивка (что какбе очевидно) и прога Root Explorer, или любая другая, умеющая делать линки и обращаться к системному разделу андроида. Кэш гугломузыки находится по адресу:
/data/data/com.google.android.music/files/

Соответственно,

  1. Заходим на нашу SD-карту, создаем там папку, например, GoogleMusic
  2. Недолго тычем в нее и выбираем "Ссылка на эту папку", при этом появится кнопка "Создать ссылку" - ее пока нажимать не надо.
  3. Переходим в папку /data/data/com.google.android.music/
  4. Нажимаем "Создать ссылку" 
  5. Убеждаемся что создалась папка (а вернее ссылка) с названием GoogleMusic
  6. Удаляем папку files
  7. Переименовываем GoogleMusic в files
Вуаля! Теперь все файлы будут писаться в /data/data/com.google.android.music/files/, а на деле попадать на SD-карту в нашу папку GoogleMusic, что и требовалось. Еще не пробовал, но полагаю что тем же способом можно перенести файлы сервисов Google Play Videos и Google Play Books

2013-08-09

Прошивка PlayStation Portable (PSP)

Выдержка из поста из моего блога: http://blog.qiwichupa.net/2013/08/playstation-portable.html

Процесс прошивки прекрасно описан тут: http://4pda.ru/forum/index.php?showtopic=217511, перескажу его, сократив как только можно.

  1. Поключаем консоль с карточкой памяти к компу через юсб, 
  2. Если прошивка имеет версию ниже 6.60 (это смотрим в сведениях о системе):
    1. Качаем официальную прошивку
    2. Распаковываем в корень карты памяти (все совпадения перезаписываем)
    3. Отсоединяем консоль и из меню игр запускаем обновление.
  3. Качаем неофициальную прошивку
  4. Распаковываем в корень карты памяти (все совпадения перезаписываем)
  5. Отсоединяем консоль и из меню игр запускаем 6.60 PROMOD-C VCFW
  6. При появлении текстовой консоли и предложения зажать L и нажать X -  зажав и удерживая левый шифт, нажимаем X!
  7. Переходим в меню игр и запускаем 6.60 PROMOD-C SmartLoader

После выполнения этой нехитрой инструкции нас ожидают 2 возможных варианта: или консоль будет прошита напостоянку, или, что более вероятно, временно. Временность означает, что при полной перезагрузке у нас будет грузиться официальная 6.60 (смотрим сведения о системе) и эмуляторы работать не будут. Но среди списка игр будет пункт 6.60 PROMOD-C Fast Recovery, который запустит неофициальную прошивку. Удаления игр при этом не происходит, поэтому по факту это не более чем крохотное неудобство (возможно, кому-то сохранение официальной прошивки вообще будет только плюсом). 

Cкачиваем набор плагинов и распаковываем все так же в корень флешки.

Проверенные эмуляторы (NES, SNES, Sega Megadrive, GameBoy Advanced) скачать прямо тут. Распаковать архив нужно на карту памяти в директорию PSP\GAME, после чего они появятся в списке игр.

2013-04-05

Программа autocad 2011 уже установлена


Помочь установить AutoCAD 2011, пишущий что "программа autocad 2011 уже установлена", может удаление следующей ветки реестра:

HKEY_CLASSES_ROOT\Installer\Products\7D2F387510099140002000060BECB6AB

2013-02-20

Как играть в PS2 игры с USB-диска

Озадачился идеей прошить свою Sony Playstation 2, чтобы поиметь возможность играть ISO'шки, ну и до кучи запускать эмуляторы. В целом, это оказалось не так сложно и я подготовил небольшой кит, который скачать можно тут:
http://dfiles.ru/files/pnav5h4j1

В архив входит:

  1. Прошивка, позволяющая запускать сторонний софт
  2. Софт, позволяющий запускать специально подготовленные игры с USB-диска
  3. Софт, позволяющий подготовить ISO к запуску софтинкой из п.2


Порядок подготовки консоли такой:
  1. Прожигаем FMCBOOT.iso на CD-R
    (я прожигал штатной утилитой из Windows 7. Хотя рекомендуют прожигать на скорости 4х и ниже, я жег на максимуме и моя PS2 нормально прочитала диск
    ВНИМАНИЕ! Есть информация, что данная прошивка не будет работать с версиями приставки 9***)
  2. Вставляем диск в PS2 и загружаемся
  3. Убеждаемся что карта памяти присутствует в приставке
  4. В меню выбираем Multi-Version Install и ждем конца установки 
  5. Перезагружаемся

Дальше готовим игры:
  1. Форматируем USB-диск в FAT32
  2. Запускаем USBUtil v2.0 Full (English).exe
  3. Выбираем File - Create game from ISO
  4. Указываем ISO-образ и, в качестве получателя, наш отформатированный USB-диск
  5. Нажимаем Create и ждем
  6. Кладем на диск файл OPNPS2LD.ELF - это программа OpenPS2Loader,  которая будет загружать нашу подготовленную игру
  7. Для добавления других игр повторяем шаги 2-5
В итоге на диске осядет нарезанный по гигабайту ISO-образ и дополнительный файлик, который лучше не трогать.

Запуск подготовленных игр:
  1. Втыкаем USB-диск в приставку
  2. Включаем или перезагружаем приставку
  3. Выбираем uLaunchELF
  4. В файл-менеджере находим диск (должен быть в разделе mass)
  5. Запускаем OPNPS2LD.ELF
  6. Используя интерфейс OpenPS2Loader находим нужную игру и запускаем.
  7. PROFIT!

2013-02-11

SharePoint 2010: как удалить пул приложений

Для удаления пула приложений в SharePoint 2010 необходимо:

  1. Зайти на сервер администрирования Sharepoint и запустить SharePoint 2010 Management Shell с правами администратора
    (Start -> All Programs -> Microsoft SharePoint 2010 Products -> Правый клик на SharePoint 2010 Management Shell -> Run as administrator)
  2. Выполнить:
    1. Get-SPServiceApplicationPool
      (выведет список созданных пулов)
    2. Remove-SPServiceApplicationPool
      1. Enter the Identity - > Имя пула
      2. Нажмите Y для подтверждения удаления пула
Готово.

2013-02-05

Veeam Backup: Storage is locked by running session

Ошибка: Storage '*.vbk' is locked by running session '*'  может возникнуть при неожиданном рестарте сервера во время работы задания. Проблема решается редактированием базы данных как указано в KB1487 Veeam. В случае использования MS SQL Express последовательность действий для редактирования следующая:

  1. Открываем консоль
  2. sqlcmd -S localhost\veeam
    (если инстанс называется veeam - дефолтное имя)
    если коннект успешен - увидим приглашение 1>
  3. use VeeamBackup
    go

    (если база данных имеет имя по дефолту - VeeamBackup - иначе используем
    sp_databases
    go

    для вывода существующих баз данных)В случае успеха увидим: "Changed database context to VeeamBackup"
  4. delete from [Backup.TrackedActions.Leases]
    delete from [Backup.TrackedActions.LockItems]
    delete from [Backup.TrackedActions.Locks]
    go
  5. Пробуем запустить задание.

2012-12-18

Настройки заббикса на больших количествах клиентов


При увеличении объема кэшей (CacheSize, HistoryCacheSize etc.) может потребоваться прописать файл /etc/sysctl.d/60-zabbixshmem.conf:
kernel.shmmax = 134217728
kernel.shmall = 8388608
kernel.shmmni = 4096

А также увеличить количество соединений к MySQL, изменив в /etc/mysql/my.cfg строку
max_connections = 500

2012-07-25

Zabbix 2.*: Low-Level Discovery для Windows Services

В данной объемной статье я хочу пошагово описать процесс создания Low-Level Discovery Rule в Zabbix 2 для обнаружения сервисов Windows и мониторинга их состояния.

Процесс создания LLDR для сервисов сводится ко двум шагам:

  1. Написанию скрипта, срабатывающего по запросу на конечном сервере, и выдающего список сервисов и ряда полезных нам параметров
  2. Созданию темплейта с описанием Item Prototype и Trigger Prototype
После этих двух шагов мы сможем получать список сервисов с конкретного сервера и отслеживать его состояние - запущен ли он, или упал.

Инструкция максимально подробная, картинок будет много, все они кликабельны.