Про перемотку, DLNA и телевизор Samsung.

Смеркалось. KTorrent докачивал очередной фильм в FullHD, и в мою не совсем трезвую голову пришла шальная мысль: а почему бы и не посмотреть это кино на телевизоре вместо монитора? А что, кабель HDMI — есть, на видеокарте выход HDMI — есть, на телевизоре разьем HDMI тоже имеется. Соединить одно с другим несложно и этот вариант 100% рабочий. Но мы не ищем легких путей, ибо телевизоров дома может быть несколько и вдруг мне приспичит посмотреть на каждом ящике свой фильм — одного кабеля HDMI будет маловато.

Так что созрел у меня коварный план — поднять у себя DLNA-сервер и раздавать фильмы в локальной сети. С OpenSuSe 12.2 поставить miniDLNA вообще не проблема, но сложности начались там, где я их не ожидал. Телевизор Samsung UE46C5000QWX прекрасно воспроизводит фильмы через DLNA, но отказывается их перематывать. Однако у меня были подозрения, что телевизор все-таки перематывать умеет, т. к. при выключении фильма и повторном его запуске он предлагал продолжить воспроизведение с места остановки. Если внимательно вчитаться в инструкцию к телевизору, то там будет написано — перемотка не поддерживается при просмотре видео через DLNA; и это касается многих моделей Samsung TV.

Однако методом научного тыка и просмотра камментов к багам miniDLNA таки были обнаружены кнопки на пульте, которые перематывают видео. Они оказались нестандартные, вместо кнопок перемотки надо было нажимать на кнопки навигации по меню (вправо и влево) — и перемотка стала работать как надо.

Правда, есть один нюанс, перемотка срабатывает не всегда. Например, файлы flv скачанные с youtube почему-то не перематваются. Но это уже не проблема, т. к. перекодировать flv в avi (который легко перематывается) совсем не сложно:

mencoder -oac mp3lame -ovc lavc -o file.avi file.flv

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

Новый сервис – Аудиоредактор

Я тут новый сервис наваял — Аудиоредактор. Он позволяет загружать аудио файлы на сервер, конвертировать их в AAC, M4R, MP3, OGG или WAV, а также вырезать выбранный интервал из трэка. Также можно добавить эффект приглушения звука в начале и в конце трэка (эффект fade), загружать аудио по прямым ссылкам.

Есть и экспериментальная фича, можно вырезать звук из ролика в Youtube. Только честно скажу, это срабатывает не всегда: иногда youtube банит айпишник за слишком частое скачивание; иногда ругается на то, что в стране сервера просмотр ролика невозможен из-за ограничения авторских прав; могут быть и другие причины.

Но в целом все работает, может кому-то будет интересно.

Как обнаружить перегрев CPU в OpenSuSe 12.2

Не так давно столкнулся с очередной проблемой с железом. Компьютер c OpenSuSe 12.2 после какого-то непродолжительного времени работы самопроизвольно выключался. После очередного включения иногда раздавался звук сирены в BIOS, и в /var/log/messages периодически появлялась надпись: [Hardware Error]: Machine check events logged

Первое, что надо сделать — это установить пакет sensors и проверить температуру процессора:

$ sensors
coretemp-isa-0000
Adapter: ISA adapter
Core 0:       +94.0°C  (high = +78.0°C, crit = +100.0°C)
Core 1:       +92.0°C  (high = +78.0°C, crit = +100.0°C)

Если на компьютере не выполняются тяжелые приложения, то температура ядер процессора не должна превышать параметра high. Но у меня камень грелся градусов до 90 после включения, что говорило о проблемах с охлаждением процессора

Разобрав системный блок, увидел вот что. Два из четырех креплений охлаждающего вентилятора на процесссоре отошли от материнской платы по неизвестной причине, да и пыль изрядно накопилась на пластинах радиатора. Я снял вентилятор, стер на всякий случай старую термопасту с вентилятора и процессора и добавил тонкий слой новой термопасты; пропылесосил алюминиевый радиатор и поставил все на место.

После включения проблем с перегревом CPU больше не наблюдалось, после включения компьютера температура ядер была на уровне 38-40 градусов

Как скачать видео с YouTube

Youtube не стоит на месте, и способы скачивания видео, описанные здесь и здесь, больше не работают в Firefox. Зато я открыл для себя новый способ скачивания видео — с помощью плагина FlashGot.

Этот плагин очень умный, он может использовать один из существующих системных загрузчиков (curl, wget или любой другой доступный в системе) для скачивания видео в заданную директорию. Он определяет URL видео, подставляет в загрузчик правильный Referer, UserAgent и Cookie, и Youtube без проблем отдает видео на скачивание — так как считает, что отдает его браузеру, а не загрузчику. Просто и эффективно.

OpenSuSe 12.2: я ожидал большего

Логотип OpenSuSe

Наконец-то руки дошли до последнего дистрибутива OpenSuSe. Старая добрая версия 11.4 работала без нареканий, и на 12.1 я ее менять не стал. Но так как вышла 12.2, поддержка версии 11.4 вскоре будет прекращена, и рано или поздно с нее придется уйти.

И вот настал тот день, когда со стаканом в руке и нехорошими мыслями в голове запустил я обновление с 11.4 до 12.2. Предчувствие меня не обмануло, обновление вышло очень кривым — не повторяйте моих ошибок. Обновляльщик в 12.2 был достаточно умным, чтобы не испортить старый работающий софт; но недостаточно сообразительным, чтобы предсказать, что обновленная система будет работать нестабильно. В результате чего я забекапился, снес все что было и поставил OpenSuSe 12.2 на чистый винт.

Все бы хорошо, да начались проблемы там, где их совсем не ожидал. Скажем, если у вас на компьютере больше одной операционной системы, то скорее всего в 12.2 время будет показываться весьма криво. Почему-то модуль Yast, отвечающий за настройку часов, с упорством маньяка ставит галку, что аппаратные часы установлены в UTC (а не в местное время). В результате чего часы всегда становились в таймзону Гринвича после каждой перезагрузки. Одним словом — низачот, зачем сломали работавший модуль?

В 11.4 я сидел на Gnome, и изредка использовал IceWM в качестве оконного менеджера. Gnome 2 был очень хорош, гибок в настройках и удобен для работы. 12.2 шла уже с Gnome 3, на который без слез не глянешь. Вообще в разработке графических оконных менеджеров пошла какая-то нездоровая тенденция — взять классный работающий софт, испортить его внешний вид и напихать в него хренову тучу ненужной фигни, и обозвать сию поделку новой версией. Так было с KDE4, так стало и с Gnome 3. Но разработчики Gnome 3 пошли еще дальше, слишком уж радикально поменяв дефолтную тему оконного менеджера. Говорят, что можно Gnome 3 допилить так, чтобы он выглядел как Gnome 2 и убить на это довольно много времени; но в дистрибутиве OpenSuSe 12.2 не нашлось места для темы Gnome 2 — а искать его в интернетах мне просто было лень. Поэтому с крайним неудовольствием пришлось плюнуть на Gnome 3 и пересесть на KDE4, который тоже далеко не сахар.

В KDE4 есть классный текстовый редактор Kate, которым я пользовался пару-тройку лет назад. Потом я пересел на gedit, и ИМХО он оказался лучше. Делать он может все то же самое, только настройки более гибкие. Я как-то писал уже про gedit 2, и решил попробовать gedit 3 в OpenSuSe 12.2. И новый gedit мне понравился — хотя и тут без странностей не обошлось. В 11.4 гибко настраивать gedit можно было с помощью конфигурилки Gnome — gconf-editor. Gedit 3 же почему-то настраивается с помощью другой утилиты, dconf-editor. И плагины, которые раньше жили в /usr/share/gedit/plugins теперь почему-то переехали в /usr/lib/gedit/plugins — но это мелочи.

В 11.4 в репозитории Games была одна классная игрушка, hedgewars. Наш дружный коллектив разработчиков периодически страдает херней с помощью нее снимает стресс, постреливая друг в друга из разного вида оружия. К сожалению, доблестные разработчики так и не смогли собрать rpm-ку с ежами под OpenSuSe 12.2, из-за того, что не смогли соблюсти все зависимости от софта, установленного в этот дистрибутив. Очередной мелкий камешек в сторону этого не очень удачного дистрибутива.

Работа модема через GPRS / 3G в OpenSUSE 11.4

Обнаружил интересную багу в работе модема через GPRS или 3G. В качестве звонилки я использую wvdial с вот такими настройками:

[Dialer Defaults]
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Init3 = AT+CGDCONT=1,"IP","mtelinternet"
Modem = /dev/ttyACM0
Phone = *99***1#
Idle Seconds = 30000
Modem Type = USB Modem
Stupid Mode = 1
Compuserve = 0
Baud = 460800
Auto DNS = on
New PPPD = Yes
Dial Command = ATDT
Ask Password = 0
ISDN = 0
Password = internet
Username = internet

Соединение происходит, адреса DNS серверов успешно получаю при соединении, а вот сам интернет работает через раз. Причем угадать, будет ли он работать или нет, никакой возможности не имеется. Симптомы следующие, после установки соединения wvdial пытается отресолвить какое-то тестовое доменное имя, и таким образом определяет, работает ли DNS в установленном соединении:

Warning, can not find address for www.suse.de
Warning, address lookup does not work
Nameserver (DNS) failure, the connection May not work.

Если такие предупреждения видны, то возможны 2 ситуации.

Во-первых, wvdial не смог прописать адреса DNS сервера в /etc/resolv.conf. Лечится прописыванием адресов провайдера вручную — что и было сделано; но проблема не была устранена полностью.

Во-вторых, возможны проблемы с размерами окна tcp в туннеле ppp. В этом случае надо поиграться с настройками размера окна tcp:

echo “0″ >/proc/sys/net/ipv4/tcp_window_scaling

Лично мне это очень помогло, после чего я решил установить такие настройки в системе по умолчанию — дописал в /etc/sysctl.conf вот такую строчку:

net.ipv4.tcp_window_scaling = 0

и перечитал параметры:

# sysctl -p

После всех манипуляций интернет стал работать намного более стабильно. В качестве модема я использовал свой телефон Nokia E5

Использование телефона Nokia E5-00 в качестве модема в OpenSuSe 11.4

Nokia E5

0. Переводим в телефоне режим соединения по USB в “Nokia PC Suite”. Если его использовать в режиме “Накопитель” – модем просто не определится в системе.

1. Подключаем телефон с помощью дата-кабеля. Смотрим на его параметры, и у меня они выглядят примерно так:

# lsusb | grep Nokia
Bus 002 Device 005: ID 0421:0380 Nokia Mobile Phones

2. Проверяем, распознала ли операционная система это устройство как модем:

# ls -l /dev/tty* | grep dialout
crw-rw---- 1 root dialout 4, 64 Jul 14 11:42 /dev/ttyS0
crw-rw---- 1 root dialout 4, 65 Jul 14 10:59 /dev/ttyS1
crw-rw---- 1 root dialout 4, 66 Jul 14 10:59 /dev/ttyS2
crw-rw---- 1 root dialout 4, 67 Jul 14 10:59 /dev/ttyS3
crw-rw---- 1 root dialout 4, 68 Jul 14 10:59 /dev/ttyS4
crw-rw---- 1 root dialout 4, 69 Jul 14 10:59 /dev/ttyS5
crw-rw---- 1 root dialout 4, 70 Jul 14 10:59 /dev/ttyS6
crw-rw---- 1 root dialout 4, 71 Jul 14 10:59 /dev/ttyS7

3. Устройство не определилось. В этом случае надо загрузить модуль ядра с соответствующими параметрами:

# modprobe usbserial vendor=0x0421 product=0x0380

Параметры для vendor и product берем из вывода lsusb на шаге 1.

4. Проверяем, появился ли модем:

# ls -l /dev/tty* | grep dialout
crw-rw---- 1 root dialout 166, 0 Jul 14 11:54 /dev/ttyACM0
crw-rw---- 1 root dialout 4, 64 Jul 14 11:42 /dev/ttyS0
crw-rw---- 1 root dialout 4, 65 Jul 14 10:59 /dev/ttyS1
crw-rw---- 1 root dialout 4, 66 Jul 14 10:59 /dev/ttyS2
crw-rw---- 1 root dialout 4, 67 Jul 14 10:59 /dev/ttyS3
crw-rw---- 1 root dialout 4, 68 Jul 14 10:59 /dev/ttyS4
crw-rw---- 1 root dialout 4, 69 Jul 14 10:59 /dev/ttyS5
crw-rw---- 1 root dialout 4, 70 Jul 14 10:59 /dev/ttyS6
crw-rw---- 1 root dialout 4, 71 Jul 14 10:59 /dev/ttyS7

5. Модем готов к работе, создаем конфигурационный файл для wvdial (МТС):

$ cat /etc/wvdial.conf
[Dialer Defaults]
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Init3 = AT+CGDCONT=1,"IP","internet.mts.ru"
Modem = /dev/ttyACM0
Phone = *99***1#
Idle Seconds = 300
Modem Type = USB Modem
Stupid Mode = 1
Compuserve = 0
Baud = 460800
Auto DNS = on
New PPPD = Yes
Dial Command = ATDT
Ask Password = 0
ISDN = 0
Password = mts
Username = mts

Если внимательно посмотреть на конфигурационный файл, то он почти на 100% совпадает с тем, что я использовал для телефона SonyEricsson K750i, разница только в скорости. Здесь она 460800 Baud, а там была 115200.

Обзор телефона Nokia E5

Nokia E5

Решил я свой телефон поменять, ибо мой SonyEricsson K750i уже морально и физически устарел. К новому телефону предъявил следующие требования:

  1. Он должен быть Труъ Телефономъ, т.е. быть классической формы и не быть тачскрином
  2. Он дожен уметь совершать голосовые звонки в Skype и в других SIP клиентах через Wi-Fi
  3. В идеале он должен держать заряд подольше
  4. Желательно наличие QWERTY клавиатуры

На текущий момент под такие требования подошло всего несколько телефонов стоимостью до 7к рублей. Очень заинтересовали 2 из них, BlackBerry Curve 8520 и Nokia E5; но как выяснилось, Блекбери не подойдет. Дело в том, что по непонятным причинам на российский рынок поставляют эти модели с залоченым вайфаем. В принцепе эта проблема решаема, в сервисном центре недолго думая смогут его включить, однако нести только что купленый телефон в сервисный центр – моветон.

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

После ряда безуспешных попыток обновить софт мне в голову пришла светлая мысль – а не сделать ли телефону Hard Reset? Благо на нокиях это делается совсем просто – с помощью ввода сервисного кода *#7370#.

И тут случилось чудо, телефон перестал виснуть – тогда мне и удалось его обновить до версии софта 091.001 (версию софта можно узнать набрав *#0000#).

После обновления телефон стал работать нормально, исчезли зависания и тормоза. Домашняя точка доступа WiFi сразу подцепилась телефоном, и можно было бы начать тестирования звонков с использованием SIP. Однако выяснилось, что почему-то Нокия не установила в систему приложение Advanced SIP Settings, без которого встроенный SIP клиент работать не сможет. Пришлось курить много форумов, искать решение проблемы – но все же проблему решить удалось.

Для этого пришлось завести себе аккаунт на developer.nokia.com, и скачать вот отсюда SIP VOIP 3.x Settings (164 Kb). Главное не промахнуться, т.к. SIP VOIP 3.1 Settings не совместимы с Nokia E5-00. Без регистрации на developer.nokia.com скачать не получится, поэтому регистрация обязательна.

После установки софта встроенный SIP клиент заработал на отлично. Но как оказалось, можно обойтись и без него. Через магазин Ovi можно скачать два бесплатных SIP клиента – Fring и Nimbuz, они замечательно справляются со звонками через SIP. Nimbuz на мой взгляд удобнее, т.к. в отличие от Fring он позволяет регистрировать сразу несколько SIP аккаунтов.

Следующим на очереди был Skype. В Ovi Store он тоже был в качестве бесплатной программы, но почему-то передача голоса в нем работала отвратительно – было слышно сплошное бульканье, в результате чего собеседник ничего не мог разобрать из нашего разговора. Это лечится установкой скайпа с сайта skype.com, только ОБЯЗАТЕЛЬНО надо ставить версию Skype для платформы S60 без тачскрина (в настоящий момент последняя версия Skype v.1.50.12, т.е. файл называется Skype_S60_3_0_v_1_5_0_12.sisx). Загруженный с сайта Skype работает на ура.

Вот теперь телефон меня устраивает на все 100%. Держит заряд отлично, удобно набирать текст на клавиатуре; качество голоса при звонках через WiFi – отличное, при звонках через 3G – приемлемое.

А еще в телефоне обнаружился чудо-режим работы Автономный, при котором телефон блокирует доступ к сети оператора сотовой связи. Т.е. звонить и чатиться можно в нем только через Wi-Fi без боязни попасть на деньги, связанные с использованием интернета в роуминге. Особенно актуально это тем, кто только что слез с самолета в аэропорту и решил сделать звонок домой об успешном приземлении.

А раз так, то грабительским расценкам за роуминг можно сказать “Прощай”, ибо Wi-Fi есть практически везде, куда я езжу. Не везде он бесплатный, но в любом случае стоимость работы в платной сети вайфай на несколько порядков ниже стоимости звонка в роуминге. Я знаю о чем говорю, т.к в далеком 2010-м году я сдуру позвонил из аэропорта Майами, что обошлось мне в 150 рублей за минуту разговора. А вайфай в этом аэропорту полностью бесплатен; даже розетки питания есть возле кресел в зале ожидания – и они доступны для всех желающих с ноутбуками.

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

Проверка вхождения IP в диапазон адресов

Однажды мне понадобилось определить средствами php, входит ли IP адрес в диапазон адресов с маской. Пользуясь гуглом и природной ленью, нашел несколько решений. На мой взгляд одно из самых удачных выглядит так:


function net_match($network, $ip)
{
$ip_arr = explode('/', $network);
$network_long = ip2long($ip_arr[0]);
$x = ip2long($ip_arr[1]);
$mask = long2ip($x) == $ip_arr[1] ? $x : 0xffffffff << (32 - $ip_arr[1]);
$ip_long = ip2long($ip);
return ($ip_long & $mask) == ($network_long & $mask);
}

echo (net_match('192.168.17.1/16', '192.168.15.1')?"True":"False")."\n"; // пишет True
echo (net_match('127.0.0.1/255.255.255.255', '127.0.0.2')?"True":"False")."\n"; // пишет False
echo (net_match('10.0.0.1/32', '10.0.0.1')?"True":"False")."\n"; // пишет True

Работает на ура с двумя типами масок, как на 32 битных, так и на 64 битных машинах.

Любопытное поведение Adobe Flash Player в OpenSuSe 11.4

При просмотре видео в браузере заметил одну багу фичу. Если видео проигрывается в обычном окне, оно показывается нормально; при просмотре же в полноэкранном режиме изображение начинает сильно дергаться. Я грешил на древность Flash Player’а, но оказалось, что он не при чем. У меня были отключены все эффекты рабочего стола, и почему-то это влияло на Flash Player. Как только поставил галку “Включить эффекты рабочего стола” в настройках в центре управления – Flash Player заработал превосходно в полноэкранном режиме.