RSS Add a new post titled:
Ритуальное самоубийство android...

Где-то с неделю назад мой смартфон под Cyanogenmod 7 совершил ритуальное самоубийство...

А дело было так: я зачем-то полез в настройки разработчика, телефон подтормозил, и я случайно попал пальцем по настройке "show running processes". Телефону этого хватило, чтобы уйти в reboot и никогда из него не выйти. Он догружался до этапа ввода pin-кода, и перезагружался снова и снова. Попытки обогнать падающий процесс и снять настройку успехом не увенчались.

Только потом я понял, что у меня есть shell доступ к телефону, так как adb я не выключал.

Google помочь с ходу не смог, пока я не нашёл, случайно, вот этот текст: http://forum.xda-developers.com/showpost.php?p=10695052.

Дальнейшее было делом техники:

sqlite3 /data/data/com.android.providers.settings/databases/settings.db
# sqlite3 /data/data/com.android.providers.settings/databases/settings.db
SQLite version 3.7.2
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .schema
CREATE TABLE android_metadata (locale TEXT);
CREATE TABLE bluetooth_devices (_id INTEGER PRIMARY KEY,name TEXT,addr TEXT,channel INTEGER,type INTEGER);
CREATE TABLE bookmarks (_id INTEGER PRIMARY KEY,title TEXT,folder TEXT,intent TEXT,shortcut INTEGER,ordering INTEGER);
CREATE TABLE secure (_id INTEGER PRIMARY KEY AUTOINCREMENT,name TEXT UNIQUE ON CONFLICT REPLACE,value TEXT);
CREATE TABLE system (_id INTEGER PRIMARY KEY AUTOINCREMENT,name TEXT UNIQUE ON CONFLICT REPLACE,value TEXT);
CREATE INDEX bookmarksIndex1 ON bookmarks (folder);
CREATE INDEX bookmarksIndex2 ON bookmarks (shortcut);
CREATE INDEX secureIndex1 ON secure (name);
CREATE INDEX systemIndex1 ON system (name);
sqlite> select * from system where name = "show_processes";
1376|show_processes|0
sqlite> update system set value = 0 where _id = 1376;
sqlite> # 

И система была вылечена.

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

Кодонаписательное...

Написать cgi скрипт на python - 15 минут

Добавить туда форму для посылки данных и обработчик - ещё 15 минут

Прочитать кучу документации и заняться отладкой, чтобы выяснить, почему не посылаются данные и какого чёрта ничего не работает с методом POST в форме - 2.5 часа.

Обнаружить, что в форме в полях было написано id вместо name, так как форма скопирована из другого проекта - бесценно.

OpenVPN и вебсервер на 443 порту. Одновременно

Вы держите собственный вебсервер?

У вас есть свой VPN?

Вы оказались в сети, где заблокировано всё кроме HTTP и HTTPS?

Выход есть!

Оказывается, можно повесить OpenVPN на 443 порт вместе с вебсервером. Для этого, в настройках openvpn указывается опция port-share

proto tcp
port 443
port-share 127.0.0.1 8443

Теперь осталось только перевесить вебсервер на адрес: 127.0.0.1:8443 (или любой другой свободный), ну и перезапустить сервисы вебсервера и openvpn.

Для lighttpd в debian, адрес настраивается в /etc/lighttpd/conf-enabled/10-ssl.conf:

fhunter@fhunter:~/$ cat /etc/lighttpd/conf-enabled/10-ssl.conf

$SERVER["socket"] == "127.0.0.1:8443"

PS. Оказывается есть ещё более интересная штука: http://www.rutschle.net/tech/sslh.shtml, позволяющая мультиплексировать ssh, https, openvpn на одном порту. Скажем нет кривым корпоративным политикам.

Почта России, продолжение

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

В итоге - огромное спасибо сотрудникам отделения 192076. Письмо отправили быстро, без проблем и очередей.Что после всего встреченного в предыдущем посте - очень сильно удивило.

PS. От Санкт-Петербурга до США, авиапочтой письмо дошло за 12 дней. Быстро однако :).

Почта России

О да. Почта России впереди планеты всей. Сегодня я собрался отправить банальное заказное письмо. Первое за 15 лет.

Место действия: Санкт-Петербург, Выборгская сторона. Вышел с работы в обеденный перерыв. За 50 минут ожидания я успел только купить конверт, написать адрес и дождаться в очереди, пока пройдёт 3 или 4 человека. Одно работающее окно, однако. Когда я уходил, перед мной ещё было столько же человек.

Один час сорок минут на то, чтобы отправить заказное письмо? Да это же просто праздник какой-то, товарищи!

Хорошо, по дороге с работы, а дело было уже после 20:00, я вспомнил, что есть два отделения почты, которые работают круглосуточно. Обнаруживаю одно из них, по адресу: 191036, Невский проспект, 87А.

Теперь место для юридически заверенного скриншота:

screenshot.png

И что же я увидел, придя на место?

Временно отделение работает
с 8:00 до 20:00 по будним дням.

Потеряно 28 рублей на метро и минимум полчаса времени. А если считать вместе с первым в этот день заходом, то ещё и обеденный перерыв.

Зачем Почте России сайт? Всё равно ведь информация на нём не соответствует действительности.

PS. Редактировать новости они уже научились, о чём мы убедились после пожара. А вот сайт держать в обновлённом состоянии пока нет.

Про аврал...
Я люблю свою работу.
Я приду сюда в субботу.
И конечно в воскресенье.
Здесь я встречу день рожденья,
Новый год, восьмое марта.
Ночевать здесь буду завтра.
Плащ-палатка, вещмешок,
У супруга будет шок.
Если я не околею,
Не сорвусь, 
Не озверею,
Здесь я встречу все рассветы,
Все закаты и приветы.
От работы дохнут кони.
Ну а я... Бессмертный пони.

© Не известен.

Настраиваем Huawei e173 в linux

Настраиваем модем Huawei e173 в linux.

Как настроить модем Huawei e173 для Мегафона, с использованием интерфейса wwan (Не ppp).

Для настройки потребуются: утилита chat, для ввода pin-кода. Набор следующих chat скриптов:

pin_needed:

ABORT '+CPIN: SIM PIN'
ABORT ERROR
TIMEOUT 1
'' atz
OK ''
'' at+cpin?
'+CPIN: READY' ''

pin enter:

ABORT ERROR
TIMEOUT 1
'' atz
OK at+cpin=$PIN
OK ''

wwan_up:

TIMEOUT 1
'' atz
OK 'at\^ndisdup=1,1,internet'
OK ''

А так же скрипт положенный у меня в /usr/local/sbin/wwan_preup: wwan preup

#!/bin/sh
if /usr/sbin/chat -e -f /usr/local/etc/pin_needed < /dev/ttyUSB0 > /dev/ttyUSB0 ;then
        /usr/sbin/chat -e -f /usr/local/etc/wwan_up < /dev/ttyUSB0 > /dev/ttyUSB0
        exit 0
fi
PIN=xxxx /usr/sbin/chat -e -E -f /usr/local/etc/pin_enter < /dev/ttyUSB0 > /dev/ttyUSB0
/usr/sbin/chat -e -f /usr/local/etc/wwan_up < /dev/ttyUSB0 > /dev/ttyUSB0

После того, как эти скрипты будут добавлены, нужно добавить следующий кусок в /etc/network/interfaces:

iface wwan0 inet dhcp
        hwaddress ether 00:01:02:03:04:05
        pre-up '/usr/local/sbin/wwan_preup'

PS. Пост написан с этого самого модема

Плоттер

Относительно недавно, в мои руки попал старый плоттер Poltik MDG-116.

После раскопок в сети выяснилось:

  • Это серия плоттеров, MDG-1*, модели отличаются интерфейсами. В моём случае, это были последовательный и параллельный интерфейсы.
  • Последовательный интерфейс работает с параметрами 4800 бит/c, 7e1. Он выведен обычным 25-pin разъёмом со стандартной распайкой. Используются 3 провода (GND, RTS, TXD). (На моём плоттере не заработала линия RTS, по причине непропаянной ножки микросхемы).
  • Параллельный интерфейс реализует стандарт ИРПР-М, и, на современных машинах, без доработки не работает.
  • Используется набор команд DXY-GL, аналогичный плоттерам Roland DXY-800 и Roland DXY-101.
  • Плоттер представляет из себя клон Sharp-CE515P http://pocket.free.fr/html/sharp/ce-515p_e.html. (Механика очень похожа, используемые перья (EA-850B/EA-850C) совпадают. ТТХ аналогичны.

Система команд

Плоттер может работать в 2-х режимах, тестовом и графическом.

В графическом режиме плоттер использует систему команд DXY-GL.

Всего поддерживаются 12 однобуквенных команд:

Команда Параметры Описание Комментарии
Z Сброс плоттера. Переход в текстовый режим. Пишущий элемент переводится в крайнее левое положение.
J n Выбор цвета пера 1 - чёрный, 2 - синий, 3 - зелёный, 4 - красный
D x1, y1, ..., xn, yn опустить перо и прочертить линию в абсолютных координатах количество точек не ограничено
H Перевод пера в начальную точку
F Назначить текущую точку в качестве начальной
I dx1, dy1, ..., dxn, dyn опустить перо и прочертить линию в относительных координатах
L n выбор штрихования для линии 0 - сплошная, 1 - пунктир, 2...15 - различные штриховки
M x1, y1, ..., xn, yn поднять перо и перейти в точку в абсолютных координатах
P c1c2cЗ ... сn вывод символов уточнить таблицу символов и способ кодирования
Q n выбор направления вывода символов 0 - 0 градусов, 1 - 90 градусов, 2 - 180 градусов, 3 - 270 градусов
R dx1, dy1, ..., dxn, dyn поднять перо и перейти в точку в относительных координатах
S n изменение размера символов 0 - 2.8 мм, 1 - 5.6 мм, 2 - 11.2 мм, 3 - 22.4 мм

ТТХ

Разрешение: 0.1мм

Особенности

Использованные материалы:

This blog is powered by ikiwiki.