Про Paypal и регистратора internet.bs

С начала марта internet.bs перестал принимать Paypal для оплаты доменов. Если верить информации с их стены в фейсбуке, Paypal заблокировл их аккаунт для приема платежей:

Why have you stopped accepting PayPal?

It was not our decision, actually Paypal without notice and without a clear explanation suspended the service. We are working with them to find a solution.

We are shocked by their approach, but we are sure they will soon review their position as they might have received wrong or inaccurate reports, after all we are an ICANN domain name Registrar we only sell domains and we have always been in full compliance with their published policies and rules. As such there is really little ground for them to unilaterally suspend their services in particular without notice. Of course we welcome any advice or suggestion to have them reestablish the account without delay.

You should also notice that we have backup solutions for payment such as Moneybookers, WebMoney, AlertPay and we are working on 2Checkout and WorldPay. Last but not least we have applied for a dedicated merchant account, so we won’t be subject to third party “fancy” polices.

Особенно повезло американцам, которые регистрировали домены у багамского регистратора. Американцам уже давно прикрыли лавочку с Moneybookers (ныне именуемых Skrill), так что американскому трудовому народу придется пересаживаться на Webmoney или палить номера своих кредитных карточек в других сомнительных финансовых сервисах.

Старый ноутбук и KDE4

Есть у меня древний ноутбук (Dell Latitude L110 с 512Mb RAM), на который я установил OpenSuSe 11.4. В качестве оконного менеджера я с дуру поставил KDE4, о чем в последствии сильно пожалел. KDE4 штука красивая, но жутко требовательная к ресурсам – сам оконный менеджер стартует секунд 30, и съедает практически всю доступную память, и все приложения начинают дико тормозить

Оптимизировать KDE до определенных пределов можно, но все же это полумеры. Наиболее радикальным решением была бы смена оконного менеджера на что-нибудь более легковесное. И я решил попробовать icewm lite вместо KDE.

В OpenSuSe 11.4 сменить оконный менеджер очень легко, сначала через Yast надо его установить (там буквально 2-3 пакета), и далее редактором /etc/sysconfig в секции Desktop => Window manager => DEFAULT_WM заменить на icewm.

Запускаю иксы и удивляюсь – оконный менеджер загрузился моментально. Выглядит он, мягко говоря, по-спартански (в стиле Windows 95), эффектов графических нет, и благодаря этому примерно 256 мегабайт памяти было свободно. Ура, казалось бы, долгожданный эффект достигнут.

Однако две вещи меня не устроили. По умолчанию язык у меня был английский, и возможности переключения на русский не было. На привычные мне сочетания клавиш (Ctrl+Shift) оконный менеджер никак не реагировал.

Эта проблема решилась очень просто. Я создал конфигурационный файл /etc/X11/xorg.conf.d/90-keytable.conf следующего содержания:

Section "InputClass"
Identifier "LocalKeyboard"
MatchIsKeyboard "on"
Option "XkbLayout" "us,ru"
Option "XkbVariant" ",winkeys"
Option "XkbOptions" "grp:ctrl_shift_toggle"
EndSection

И со следующего запуска иксов у меня стала нормально работать русская раскладка клавиатуры с переключением между языками по нажатию Ctrl+Shift.

Вторая проблема – отсутствие звука. В KDE у меня звук регулировался приложением kmix, и я его решил добавить в автозагрузку icewm, чтобы привычными горячими клавишами его включать, выключать и регулировать громкость.

Для этого я создал файл /etc/icewm/startup со следующим содержимым:

#!/bin/sh
kmix &

На файл добавил права на исполнение:

# chmod a+x /etc/icewm/startup

И все. После запуска звук легко регулируется горячими клавишами (правда, в трее его не видно – но это уже мелочь).

Еще статьи об OpenSuSe 11.4:

  • OpenSuSe 11.4 и старый матричный принтер
  • OpenSuSe 11.4 и встроенные видеокарты Intel
  • Переход на OpenSuSe 11.4
  • OpenSuSe 11.4 и встроенные видеокарты Intel

    После перехода на OpenSuSe 11.4 я заметил, что видеокарта Radeon HD 5570 с пропиетарными драйверами ATI работает без нареканий; однако две других машины с интегрированными видеокартами Intel работали из рук вон плохо.

    Во-первых, меня очень разочаровал мой ноутбук Dell Latitude L110 c видеокартой на чипсете Intel 915GM. Но не потому, что он плохой; а потому, что железо уже морально устарело (буку стукнуло 5 лет, которые он отслужил верой и правдой в боевых условиях), и поддержка некоторых фич прекращена с 1 квартала 2011 года. Это значит, что в следующих релизах операционных систем семейства Linux заставить карту работать будет все сложнее, и в конце концов случится то же, что и произошло с картой ATI Radeon X 1650, т.е. на оборудовании можно будет ставить крест.

    Но на сегодняшний день эта карточка у меня завелась (хотя и со скрипом). Оживить ее можно так.

    1. Обновляем до последних версий пакеты

    xorg-x11-driver-video
    xorg-x11-driver-intel-legacy

    2. Сохраняем старый xorg.conf (на всякий случай):

    # mv /etc/X11/xorg.conf /etc/X11/xorg.conf.old

    В runlevel 3 (без иксов) запускаем конфигурилку X:

    # X -configure

    Он там подумает, и родит файл /root/xorg.conf.new. В нем надо внести некоторые исправления:

    а) если драйвер определился как “intel”, меняем его на “intellegacy”:

    Driver “intellegacy”

    б) включаем DRI (у меня он был выключен после автоматического конфигурирования, и mplayer показывал видео только в маленьком окошке без возможности развернуть его на весь экран):

    Option “DRI” “on”

    в) Отключаем фичу, которая больше не поддерживается:

    Option “XvMC” “off”

    Потом копируем его в xorg.conf и запускаем иксы:

    # cp /root/xorg.conf.new /etc/X11/xorg.conf
    # startx

    У меня после этого все заработало на ноутбуке. После этого проверил 3D ускорение:

    $ glxinfo | grep direct
    direct rendering: Yes

    На второй машине у меня была другая видеокарта, но тоже интеловская (Intel Corporation 82865G Integrated Graphics Controller).

    Сконфигурировал там xorg.conf аналогичным образом, и в результате X запустились, glxinfo показал direct rendering: Yes, a mplayer перестал работать.

    Лечится исправлением видеодрайвера для mplayer:

    # cat /etc/mplayer/mplayer.conf | grep gl2
    vo=gl2,x11

    Теперь и mplayer заработал на ура.

    Как свалить с платформы Google App Engine

    Логотип Google App Engine

    Примерно с 17 февраля 2011 года гугл без предупреждения стал блокировать доступ к сайтам на платформе GAE. Причем блокировались IP адреса из Германии, Канады, США и многих других “правильных” стран. Прошло 3 месяца, а воз и ныне там, что-либо менять они не собираются.

    При таком раскладе можно только распрощаться с этой говноплатформой, но сделать это не так-то просто. Очень жаль потраченного времени на написание CMS под GAE, разработку шаблонов, да и времени на миграцию остается не так много. Но тем не менее, если вам дороги постоянные клиенты, Google не оставляет другого выбора.

    К счастью, для работы с приложениями на платформе GAE предусмотрен так называемый remote api. Он то и позволяет забрать или залить данные без использования веб интерфейса. В моем приложении этот интерфейс был реализован, и забрать данные для меня не составило особого труда.

    Забрать дамп базы можно так:

    ./bulkloader.py –dump –app_id=your-app-id –url=http://your-app-id .appspot.com/remote_api –filename=dump.sql3

    Дальше надо бы перенести данные на новую CMS, или на худой конец, согнать данные в статику.

    Понятно, что статика не позволит интерактивно взаимодействовать с клиентами, и эту часть придется реализовать самостоятельно; однако страницы с описанием товаров/услуг можно оставить в виде статических файлов HTML.

    Получить статику можно, натравив на сайт обычный wget с рекурсией; но при невысокой скорости интернета этот процесс может затянуться. Поэтому будет рационально развернуть скачанный дамп на локальной машине, и натравить wget на localhost.

    Сначала стартуем свое приложение:
    ./dev_appserver.py your-app-id
    В другой консоли разворачиваем скачанный дамп, используя remote api:
    ./bulkloader.py –restore –app_id=your-app-id –url=http://127.0.0.1:8080/remote_api –filename=dump.sql3
    Используем wget для получения статических файлов HTML:
    wget -r http://localhost:8080

    Все, теперь у нас есть куча статики, которую можно использовать.

    Не исключено, что гугл все-таки одумается, и снимет блокировки айпи адресов на своей стороне. Поэтому окончательно отказываться от GAE я бы не стал, пока что есть возможность поддерживать CMS на локальной машине.

    Однако неожиданно выяснилось, что так же просто забрать данные с локальной машины и залить их в гугловский GAE не получится. При попытке скачать dump с локальной машины в один файл, bulk_uploader ругается примерно так:

    [ERROR ] Unable to download kind stats for all-kinds download.
    [ERROR ] Kind stats are generated periodically by the appserver
    [ERROR ] Kind stats are not available on dev_appserver.

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

    ./bulkloader.py –dump –app_id=your-app-id –kind=table1 –url=http://127.0.0.1:8080/remote_api –filename=table1.sql3

    ./bulkloader.py –dump –app_id= your-app-id –kind=table2 –url=http://127.0.0.1:8080/remote_api –filename=table2.sql3

    Сохраненные таким образом дампы таблиц без проблем заливаются по очереди на Google App Engine.

    Обновление Mplayer и файлы WMV

    Очередное обновление Mplayer оказалось неудачным, при попытке проиграть любой файл WMV программа сваливается с вот таким текстом ошибки:

    MPlayer interrupted by signal 11 in module: init_video_codec

    - MPlayer crashed by bad usage of CPU/FPU/RAM.

    Recompile MPlayer with --enable-debug and make a 'gdb' backtrace and

    disassembly. Details in DOCS/HTML/en/bugreports_what.html#bugreports_crash.

    - MPlayer crashed. This shouldn't happen.

    It can be a bug in the MPlayer code _or_ in your drivers _or_ in your

    gcc version. If you think it's MPlayer's fault, please read

    DOCS/HTML/en/bugreports.html and follow the instructions there. We can't and

    won't help unless you provide this information when reporting a possible bug.

    Чтобы все заработало снова, надо всего лишь удалить пакет w32codec-all из системы, и все заработает.

    Решение весьма странное, поскольку видеокодеки всегда помогали Mplayer’у в обработке различных видеофайлов. Похоже, что последние версии Mplayer’а больше не нуждаются в этом пакете и более того, конфликтуют с кодеками из w32codec-all.

    Как скачать видео с сайта: продолжение.

    В своей предыдущей статье Как скачать видео с сайта я рассказал о 4-х способах сохранения видеофайлов с сайтов, и самый популярный из них – достать файл из кэша браузера. Однако сейчас ситуация изменилась, после обновления Flash Player стал себя вести по-другому. Он по-прежнему кэширует видеофайлы на диске в директории /tmp, однако невооруженным взглядом такие файлы не видны; команда ls ничего не покажет.

    Однако, если начать загрузку интересующего нас видео ролика:

    и в командной строке запустить:

    $ lsof | grep Flash
    plugin-co 12081 ed 16u REG 8,4 32839768 473170 /tmp/FlashXXqNVerC (deleted)

    Интересное кино получается. Файл открыт, используется, и при этом удален! Ну и хрен с ним, все равно его можно будет «оживить» простой командой копирования из поддиректории /proc/

    Не буду томить, вот оживляющий скрипт:

    #!/bin/bash
    pid=`pgrep -f flashplayer | tail -1`
    file=`lsof -p $pid | grep '/tmp/Flash' | awk 'END{print "/proc/" $2 "/fd/" $4}' | sed 's/[rwu]$//'`
    /bin/cp $file "/tmp/movie.flv"

    после запуска скрипта интересующее нас видео будет лежать в /tmp/movie.flv

    Просмотр первого канала онлайн

    Дело было вечером, отходить от компа было лень. И тут начинается какая-то передача, которую не хотел пропустить. Думаю, а не посмотреть ли мне ее онлайн? Зашел на сайт первого канала, кликнул ссылку – и вроде бы заработало все под моей OpenSuSe 11.2. Да только спустя 15 минут просмотра в полноэкранном режиме изображение свернулось в маленький квадрат, оставив остальную часть экрана в черном цвете.

    «Интересно девки пляшут», подумал я, поперхнувшись пивом. А не обновить ли мне mplayer и браузерный плагин к нему? Нарушил я золотое правило админа и таки обновил его до последней версии. И получил не совсем то, что хотел, ибо онлайн трансляции первого канала перестали показываться.

    Стал я разбираться в чем дело, и нашел вот что. Если взять URL online трансляции и скормить его обновленному mplayer’у, то видим примерно вот такие сообщения об ошибках:

    $ mplayer "http://live3.1internet.tv/1tv-efir?key=+qs2TPeN6JUcMK7AQRfDiBKE&wmbitrate=350000"

    ....
    Ahhhh, stream_chunck size is too small: 0
    Error while parsing chunk header
    Ahhhh, stream_chunck size is too small: 4
    Error while parsing chunk header
    Ahhhh, stream_chunck size is too small: 0
    Error while parsing chunk header
    Ahhhh, stream_chunck size is too small: 4
    Error while parsing chunk header
    Ahhhh, stream_chunck size is too small: 0
    Error while parsing chunk header
    Ahhhh, stream_chunck size is too small: 4
    Error while parsing chunk header
    ...

    Ну все, думаю, приплыли… Сломался mplayer.

    Весь мозг себе сломал, пока пытался починить. К слову, mplayer так его и не стал показывать, зато нашлось совсем другое решение. Первый канал еще транслирует версию для Silverlight, которую стоило попробовать.

    Silverlight – это поделка Microsoft, который с линуксом не шибко дружит. Однако добрые люди написали порт под Linux c открытым кодом, и назвали его Moonlight. И даже сделали плагин для Firefox, и что самое интересное, плагин работает! Только ставить надо не последнюю версию плагина, а последнюю стабильную (2.4).

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

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

    Первое разочарование от Google App Engine

    Логотип Google App Engine

    Как я уже писал, Google App Engine представляет собой очень интересную платформу для разработки веб-приложений на Python или Java. Однако совсем недавно Google в одностороннем порядке и без каких-либо уведомлений стал блокировать доступ к платформе googleappengine из некоторых стран. Причем, часть IP адресов были взяты просто от балды, и вместе с Ираном и Северной Кореей в список запрещенных стран попали и многие IP адреса из Германии. Просьба ко всем, кто хостит свои приложения на Google App Engine, отписаться здесь в случае обнаружения блокирования доступа к приложению из “правильной” страны, из которой у вас есть свои посетители.

    Голосовые звонки с сайта

    Для многих компаний очень важную роль играет обратная связь с клиентами. Компании даже готовы сами оплачивать звонки от клиентов, арендуя номера бесплатного дозвона 8-800-…. Но подобные звонки оплачиваются за счет компании, что делает затраты на связь непредсказуемыми.

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

    1. Зебра телеком, кнопка справа с изображением зебры и телефона. Если на нее нажать и разрешить Flash-приложению доступ к микрофону, звонок пойдет в службу техподдержки Зебры.

    2. Ростелеком, кнопка справа (Позвоните в справочную службу Ростелеком прямо сейчас). Здесь добавлена возможность посылать сигналы DTMF во время разговора, т.е. можно набрать добавочный номер сотрудника и позвонить ему.

    3. Ну и совсем уж маленькая демка для тех, кто хочет оставить голосовое сообщение мне. Если там нажать на кнопку Call, вы дозвонитесь до нашей АТС, где автоответчик предложит вам оставить мне сообщение. Специально оставил все на английском, чтобы вы смогли представить себе возможности нашей кнопки – все можно перерисовать, перевести на любой язык и настроить конкретно под пожелания клиента.

    Как это работает. На вашем сайте размещается наше Flash-приложение, которое инициирует звонок и отвечает за передачу голоса. Звонок отправляется на нашу ATC, с которой он может быть направлен куда угодно – на городской номер, на SIP номер, на голосовую почту или на вашу АТС. Система очень гибкая и легко настраивается, от вас лишь требуется указать, куда отправить звонок с сайта.

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

    Если у вас возникнет желание проверить качество передачи голоса, оставьте мне голосовое сообщение и сообщите, куда переслать записанный файл – все сделаем в лучше виде. Если у Вас возникли вопросы, пишите мне или оставьте комментарий к этому сообщению.

    Как обойти защиту от хотлинкинга

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

    Работает это как прокси-сервер, скрипт забирает картинку и отдает ее тому, кто ввел капчу. Вроде несложно и кому-то может пригодиться. Кстати, вручную реферер вбивать не обязательно, скрипт попытается его вычислить. Но надежности ради я предусмотрел возможность добавления реферера вручную. Проверить можно хотя бы на этом примере.

    Если найдете багу, просьба писать в камменты здесь или напрямую написать мне

    З.Ы. Сервис абсолютно бесплатный