Восстанавливаем из мертвых Pebble

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

Инструкция ниже проверена для Pebble Model 301WH (Pebble Smartwatch White) и для телефонов Sony Xperia Z5 Compact и Huawei P30 Lite.

Pebble такой.

Вот такие шаги для телефона на Android:

1. На Pebble заходим в Settings/Bluetooth и убеждаемся что там пусто. Если нет, выбираем и говорим Forget.

2. На телефоне включаем Bluetooth.

3. Скачиваем и устанавливаем последнюю живую версию приложения Pebble. Либо тут, либо тут (сохранил на всякий случай). Все разрешения даем. Запускаем.

4. Пропускаем login.

5. Выбираем тип часов, в нашем случае это нижний справа (просто Pebble). Оно начинает спариваться с часами. Нажимаем PEBBLE FDOC. Разрешаем сопряжение на телефоне и на Pebble.

6. Разрешаем уведомления.

7. Можем переходить к установке Вотчфейсов, для этого из Google Play установите Pebble App Store. В нем из списка выбираем что хотим, скачивам и открываем PBW. 

Обратите внимания что браузеры типа хрома неправильно ассоциируют PBW и приложение Pebble не открывается, решается это копированием ссылки на PBW и открытием в Firefox.

Если все ок, запустится приложение Pebble и предложит добавить Local app. На этом все, вотчфейс автоматом установится и включится на Pebble.

Также устанавливаем что угодно еще. Все работает.


Часть 2. Nightscout.

1. Подразумеваем, что уже стоит NightWatch, настроен и работает.

2. Идем в его настройки и включаем Pebble Integration.

3. Устанавливаем Pebble Round для Xdrip+ по ссылке или отсюда (скачал локально). 

далее см. п. 7 из Части 1.

Все работает, несмотря на то что компания Pebble мертва.

Телемама - ремонт ноутбука (спойлер: не надо)

Знайте своих героев.

У ноутбука стал полосить экран при его движении, матрица шла полосами, потом показывала ок, потом опять. Ну шлейф сломался-перетерся, подумал я. Нашли сервис с вроде бы адекватными ценами, типа 1500 тыс за замену шлейфа.

Принес ноут, сдал на диагностику, обещали через час перезвонить, не перезвонили через два - сам перезвонил. С вас 6800, говорят, шлейф + замена матрицы. Да ну нахрен, точно обманывают, пошел забрал.

Разобрали с товарищем, пломба на одном из винтов не сорвана. Как проводили диагностику, как определили что еще и матрицу надо менять, не ясно.

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

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

Салон - Телемама, на Октябрьской, имейте в виду.

Делаем NextGIS QGIS программой по умолчанию для QGS файлов в Ubuntu

Проверено в 14.04

1. Идём в  ~/.local/share/applications/ или /usr/share/applications
2. Создаём файл touch ngq.desktop
3. Копируем содержимое:

[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Name=NextGIS QGIS
Icon=qgis.png
Path=/usr/share/ngqgis/images/icons/qgis-icon.png
Exec=ngqgis %U
StartupNotify=false
StartupWMClass=qgis
OnlyShowIn=Unity;
X-UnityGenerated=true

4. Правой кнопкой щелкаем по какому-нибудь файлу с расширением qgs
5. Идем в Properties/Open With и нажимаем на 'Show Other applications' выбираем наше приложение.

Основано на: http://askubuntu.com/a/508787

запуск Civilization I под Android и Ubuntu

Захотелось олдскульного - первой Цивилизации в которую играл еще в школе. Ставится на смартфон она так:

1. Ставим aFreebox через Google Play
2. Качаем Civilization с Абандонии куда-нибудь в файловую систему, распаковываем
3. Запускаем freebox
4. DIR
5. cd CIVILI~2 или аналогично
6. CIV.EXE

Я запускаю в VGA, с мышью, без звука



В убунте все еще проще, используется то же содержание архива с абандонии, дальше:

apt-get install dropbox
dropbox
mount c /home/sim/dos/Civilization
c:
civ.exe

Ротируем прокси в Python

Унылые люди из различных проектов зачем-то пытаются закрыть от нас с вами свои данные. Один из любимых способ закрыться, но сохранить реноме, что мы, дескать, открытые - закрытие через API с ограничением количества запросов или просто защита сайта через определенное ограничение запросов. Что б не делать, только б не выкладывать нормальные православные дампы.

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

И всё это вместо того, чтобы выложить чёртовы дампы.

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

Задача: скачать странички сайта защищенного капчей.
Решение: ротирующиеся прокси (основано на этом рецепте, с небольшими изменениями порта прокси и конфига, иначе не работает).

По шагам.

1. Ставим requesocks, stem для Python (pip install requesocks).

2. Ставим Tor Browser

3. Редактируем файл c:\tools\Tor Browser\Browser\TorBrowser\Data\Tor\torrc Делаем так, чтобы там присутствовала такая секция:
SocksPort 9150 IPv6Traffic PreferIPv6 KeepAliveIsolateSOCKSAuth
ControlPort 9151
HashedControlPassword 16:05834BCEDD478D1060F1D7E2CE98E9C13075E8D3061D702F63BCD674DE
CookieAuthentication 1

9151 это порт, который открывает Tor
HashedControlPassword это захэшированное слово password, пароль который мы дальше будем использовать в коде.

4. Запускаем Tor Browser, он просто будет висеть в памяти.

5. Теперь пишем код на питоне.

Сначала импорты, понадобятся пакеты requesocks, stem, не забываем их заранее установить:

import requesocks
from stem import Signal
from stem.control import Controller

Такой запрос пойдет через прокси сделанный тором и выдаст IP отличный от нашего настоящего:

session = requesocks.session()
session.proxies = {'http': 'socks5://127.0.0.1:9150',
'https': 'socks5://127.0.0.1:9150'}

print session.get("http://httpbin.org/ip").text


А так можно эти прокси менять по мере надобности:

from stem import Signal
from stem.control import Controller
with Controller.from_port(port = 9151) as controller:
controller.authenticate(password="password")
controller.signal(Signal.NEWNYM)

print session.get("http://httpbin.org/ip").text


В принципе это все что нам нужно, теперь мы можем просто делать так:

1. Отправить запрос
2. Проверить появилась ли в ответе капча.
2а. Если да, сменить прокси, перейти к 1.
2б. Если нет, распарсить.

Работает медленнее, чем напрямую, но работает автономно.

Компиляция Pandas в Python 2.7 в MinGW

Почему-то установка pandas в Python 2.7 это какой-то гемор, не pip, ни easy_install не хотят ее устанавливать, последний на

easy_install pandas

ругается:

error: Setup script exited with error: Unable to find vcvarsall.bat

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

Скачиваем и устанавливаем MinGW: http://sourceforge.net/projects/mingw/files/latest/download

Запускаем консоль и идем в папку MinGW\bin:

cmd
cd c:\MinGW\bin\

Говорим там:
mingw-get install gcc
mingw-get install mingw-utils

Создаем c:\Python27\Lib\distutils\distutils.cfg, пишем там такое:

[build]
compiler = mingw32

Добавляем в переменную PATH бинарники MinGW
PATH=%PATH%;c:\MinGW\bin

Находим файл: distutils\cygwinccompiler.py и отредактировать его, убрав все-mno-cygwin (почему)

Ставим собственно панду:

easy_install pandas

Проверяем:

python
import pandas

Fake it till you make it

Дискуссии на тему "во всём виноват Запад" часто оказываются аналогичными: "У меня в гараже живёт дракон". Это название притчи Карла Сагана, которая является главой из его книги The Demon-Haunted World. Искал её на русском одним куском, но так и не смог найти, поэтому перевёл сам. А Ане спасибо за корректуру.

Оригинал: http://www.godlessgeeks.com/LINKS/Dragon.htm

"В моём гараже живет огнедышащий дракон", Карл Саган.

Представьте, что я (применяя методы групповой терапии психолога Ричарда Франклина) с полной серьезностью делаю такое заявление. Конечно вы захотите это проверить, сами посмотреть на дракона. За предыдущие века накопилось бесчисленное количество историй про драконов, но никаких вещественных доказательств. Вот она - возможность!

Вы говорите: "Показывай", и я веду вас в свой гараж. Заглядываем внутрь: там лестница, пустые банки из-под краски, старый велосипед - но никакого дракона.

Вы: "А где дракон?"

Я: "О, он прямо здесь", и показываю куда-то в сторону. "Забыл сказать, дракон - невидимый".

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

Я говорю: "Классная идея, но дракон парит в воздухе".

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

"Здорово, но невидимый огонь не выделяет тепла."

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

"Хорошая идея, но он бестелесный и краска не прилипнет." И так далее.

Каждый предлагаемый материальный эксперимент я парирую специальным объяснением, почему он не сработает.

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

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

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

Наконец-то стали поступать свидетельства появления следов драконов на муке. Но почему-то они никогда не появляются в присутствие скептика. Альтернативное объяснение кажется очевидным. Более пристальное изучение следов показывает, что их могли подделать. Еще один любитель драконов показывает обожженый палец и заявляет о том, что стал жертвой редкого физического проявления огненного дыхания дракона. Но, снова, есть и другие объяснения. Мы понимаем, что есть и другие способы обжечь палец, кроме как попасть под дыхание невидимых драконов. Такие "доказательства" - не важно, насколько серьезными их считает любитель драконов, - далеки от убедительных. Опять же, единственный осмысленный подход заключается в предварительном опровержении гипотезы о драконе, оставаясь открытым к новым данным в будущем и задаваясь вопросом, в чем может быть причина того, что столько вроде бы здравомыслящих и трезвых людей разделяют одну и ту же странную иллюзию.

Выборы депутатов в мосгордуму на участке 2632, Москва, Гродненская д.5

Всё прошло более менее гладко. Явка очень маленькая, около 20%. Одни пожилые люди, молодежи было примерно 3-4 человека, людей среднего возраста тоже, остальное за 50. Несколько бабушек сетовали, что их попросили придти проголосовать, пара человек узнавала номер УИК "чтобы отчитаться".

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

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

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

Официальные результаты:

http://www.moscow_city.vybory.izbirkom.ru/region/moscow_city?action=show&root=772003412&tvd=27720001543230&vrn=27720001539308&prver=0&pronetvd=null&region=77&sub_region=77&type=426&vibid=27720001543230

С нашим протоколом комиссии совпадают.



Досрочное голосование и организация выборов

Аццкий ад конечно, как у нас выборы организованы, чтобы проголосовать досрочно по весьма уважительной причине (собственно я ПРГ на другом участке), надо пройти круги ада, чтобы выяснить где вообще можно голосовать досрочно.

В области проходят сразу пачки выборов, у нас выбираются депутаты в Совет депутатов сельского поселения и выборы главы района. С выборами в Совет еле-еле разобрался позвонив сначала в ИК Московской области (+7495606-6351), а потом в её же "отдел по организации выборов" (+74956060742). После выяснений оказалось, что голосовать нужно не на своем УИКе, а в Муниципальной избирательной комиссии располагающейся в администрации поселения.

С главой района сложнее. Звонил в свой УИК (школа), отвечает женщина не член комиссии, ничего по досрочному голосованию сказать не может, позвать никого из членов не может (якобы они все на уроках), заявление на голосование на дому соответственно тоже принять не может (хотя оно мне и не надо).

Одинцовский ТИК на официальный телефон (+7495599-0404) не отвечает. Координатор по району от Гражданина Наблюдателя где ТИК не знает и сомневается что он вообще существует. Координатор по Мособласти от Гражданина Наблюдателя тоже где ТИК не знает.

Так и не проголосовал, обидно.

Получение Root на Sony Xperia Active ST17i

Модифицированная инструкция отсюда, исправлены ссылки, расшифрованы некоторые моменты.

Получение прав root на Android 4.0 на Sony Xperia Active ST17i

Подготовка

На телефоне

  • Включить USB debugging в Menu>>Settings>>Developer options>>Development>>USB debugging

  • Включить Unknown sources в Menu>>Settings>>Security>>Unknown sources

  • Включить MNC вместо MTP в Menu>>Settings>>Application>>Unknown sources

На компьютере

  • выключить PC Companion

Процесс

1. Качаем fleshtool: http://uploaded.net/file/b5w61lia

Устанавливаем.

2. Качаем прошивку: http://www.mediafire.com/download/rid82rydw6jhhzn/ST17i_4.0.2.A.0.42_GenericRU.zip

Распаковываем прошивку в папку flashtool\firmwares.

3. Выключаем телефон. Зажимаем клавишу "уменьшить громкость" и подключаем выключенный телефон по usb.

4. Запускаем fleshtool

Нажимаем кнопку Flash, дальше flashmode, и ok.

Внимание! Все данные с телефона будут удалены. Кроме данных на флешке, если она есть.

Ждем завершения флеша, отключаем телефон от usb, включаем. Первая загрузка может быть долгой.

5. Делаем Root

Нажимаем кнопку Root.

6. Скачиваем Xperia-ROOT и прошивку 4.0

Распаковываем прошивку в flashtool\firmwares, Xperia-ROOT без разницы куда.

7. Подключаем телефон к компу

Из папки Xperia-ROOT запускаем 01-local-prop.cmd.

8. Прошиваем 4.0 через флештул

Обязательно убираем отметку Wipe user data. После прошивки и запуска, телефон один раз перезагрузится.

9. Подключаем телефон к компу

Из папки Xperia-ROOT запускаем 02-push-root-files.cmd. Телефон перезагрузится.