?

Log in

   Journal    Friends    Archive    Profile    Memories
 

const aka dv.66

янв. 15, 2017 12:18 am Motorola Droid Turbo XT1254 CDMA tuning

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

  1. Запускаем телефон в режиме BP Tools (из fastboot bootloader меню)
  2. Идём в Device Manager, выбираем устройство diag_mdm и ручками ставим драйвер Motorola QC Diag Port
  3. Запускаем DFS CDMA Tool (нужна старая версия, можно было скачать тут)
  4. Вводим SPC 000000 и переходим во вкладку Programming
  5. Находим вкладку Data и снимаем галку “Authentification require password encryption”.
  6. Ребутаемся, работает 3G (EVDO Rev.A)

Originally published at . You can comment here or there.

Метки:

Оставить комментарий

янв. 7, 2017 05:35 pm ESP8266 и датчик движения с фольгой

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

В результате на базе ESP8266, датчика движения BISS0001, сенсора AM2302 (DHT-22) и релешки OMRON G3MB-202P (вообще можно обойтись мосфетом, но было интересно SSD реле потыкать) был сделан контроллер ленты, который попутно сливал информацию о погоде на кухне. Всё это было аккуратно собрано в одну 6см распределительную коробочку шнайдер из “новой линии”. Напишу отдельно о процессе создания такой штуки.

Теоретически схема работала отлично, на практике тоже, датчик включал свет, через 40 секунд после последнего срабатывания выключался, температура с влажностью сливались, кроме одного нюанса: иногда свет включался сам. Системность выяснить не удавалось, поэтому пришлось демонтировать плату управления, прогреть её, почистить от флюса (я ещё тот паяльщик), но это не помогло. Пришлось гуглить и оказалось, что датчик движения чувствителен к Wi-Fi радио ESP, иными словами, когда контроллер передаёт информацию, то он может вызвать ложно-позитивное срабатывание сенсора, что приводит к включению света, несмотря на отсутствие кого-либо на кухне. Ну что же, красивую упаковку пришлось чуть разобрать и датчик вынести наружу, чтобы отдалить от радио-антенны и уменьшить наводки.

Экран из фольги

Свет стал включаться реже, но всё равно включается сам по себе. Пришлось заварить кофею и начать думать, как же поступить ещё… В голову пришла мысль заэкранировать датчик, под рукой оказалась продуктовая фольга – взял небольшой кусок, обмотал датчик движения, заизолировал изолентой внутри и снаружи и запустил систему заново.
Свет перестал включаться произвольно совсем! Теперь когда кто-то подходит к столешнице – ему услужливо включается подсветка и работает, пока этот кто-то там находится и что-то делает, после того, как человек уходит – свет отключается, а обычная кухонная фольга отлично экранирует наводки от радиосигнала Wi-Fi.

Блок питания, контроллер и вынесенный датчик движения
Подсветка кухни в деле

Originally published at . You can comment here or there.

4 комментария - Оставить комментарий

дек. 11, 2016 10:32 pm uwsgi

Случайно обнаружилось, что в ini конфиге uwsgi важен порядок объявления параметров, поэтому если сначала объявить virtualenv, а потом указать подключение плагина python3, то будет попытка завестись с системным питоном.

Originally published at . You can comment here or there.

Метки: ,

Оставить комментарий

ноя. 30, 2016 09:33 pm PostgreSQL backup to Azure

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

В нашем случае действие происходит на базе Ubuntu 14, PostgreSQL 9.5 установлен локально.
Первым шагом нам необходимо установить сам pghoard и supervisor, т.к. systemd нет, а запускать демона с системой нужно.

Текущая версия pghoard 1.4 в pypi нам не подходит (в ней нету поддержки новых модулей azure-storage), поэтому инсталлировать её нужно из репозитория, а поскольку pghoard работает только с третьим питоном, то делаем это с помощью pip3
UPDATE:
предварительно нужно установить модули:

azure
azure-storage==0.33

и проапгрейдить requests до версии 2.10+
END UPDATE

pip3 install git+https://github.com/ohmu/pghoard
apt-get install supervisor

Для автозапуска демона создаём конфигурационный файл pghoard.conf с минимально необходимым контентом и кладём его в /etc/supervisor/conf.d/

[program:pghoard]
user = postgres  # Запускать нужно от имени postgres, иначе не удастся подключиться к СУБД
group = postgres
directory = /var/lib/pghoard
command = /usr/local/bin/pghoard /var/lib/pghoard/pghoard.json
autostart=true
autorestart=true
environment=HOME="/var/lib/postgresql"  # Должен быть HOME пользователя postgres (туда записывается пароль и потом оттуда считывается)

Создаём пользователя в postgresql для выполнения репликации:
psql -c "CREATE USER pghoard PASSWORD 'hoardpassword' REPLICATION"

И вносим в /etc/postgresql/9.5/main/pg_hba.conf запись, разрешающую выполнять репликацию:
host replication pghoard 127.0.0.1/32 md5

В конфигурационный файл postgresql.conf нужно внести изменения, разрешающие выполнять репликацию:

max_wal_senders = 2
wal_level = archive  # 'hot_standby' or 'logical' are also ok

Перезапускаем postgresql и настраиваем pghoard на работу с Azure:

{
        "backup_location": "/var/lib/pghoard",
        "backup_sites": {
                "mysite": {
                        "nodes": [
                        {
                                "host": "127.0.0.1",
                                "password": "hoardpassword",
                                "port": 5432,
                                "user": "pghoard"
                        }
                        ],
                        "object_storage": {
                                "storage_type": "azure",
                                "account_name": "<storage-account>",
                                "account_key": "<storage-account-key>",
                                "bucket_name": "<bucket-name>"
                        }
                }
        }
}

После этого выполняем service supervisor restart и наблюдаем, как бекапы заливаются в azure blob storage.

Originally published at . You can comment here or there.

Оставить комментарий

окт. 2, 2016 11:56 pm Home Automation Framework

Умный дом, или как программисту (и не только) добавить автоматики в своё жильё. Начну делиться своим опытом начального внедрения Z-Wave, а потом и самодельных девайсов в квартире.

В настоящее время для создания умного дома есть огромное количество различных решений. Если вы любитель DIY, или хотите сэкономить, а может и то, и другое – рекомендую обратить внимание на микросхемы ESP8266, или Arduino + nRF24. На базе ESP можно построить систему используя существующую домашнюю сеть Wi-Fi, на базе nRF можно построить систему по своей беспроводной сети, тоже работающией 2.4 ГГц, но не Wi-Fi, зато с преимуществом в виде возможности ретрансляции сигнала, т.е. каждая единица сети (нода) может общаться не только с контроллером, но и с другими нодами. Фактически mesh-сеть.

Читать дальше...Свернуть )

Оставить комментарий

сент. 9, 2015 03:35 pm OpenVPN DNS order

Иногда, при подключении к VPN оказывается, что тамошний DNS не резолвит местные имена. Это не потому что он плохой, а потому что винда странная (7). Есть два пункта, которые помогают этот вопрос урегулировать.
Для начала нужно в настройках сети поднять приоритет VPN сети повыше:

control panel -> network and sharing -> change adapter settings -> -n -> advanced settings
Make sure that your tap adapter is at the top of your connections list.

Перед подключением выполнить:
net stop dnscache

Должно помочь.
Можно пойти дальше и запихнуть net stop в батничек, который вызывать при подымании openvpn соединения.

Originally published at . You can comment here or there.

Метки:

Оставить комментарий

июл. 7, 2015 05:30 pm espresso test failure

Если внезапно вы решили подключить espresso и начать писать тесты, а потом после очередных манипуляций вдруг тесты приложения перестали запускаться и начали бросать исключение NoClassDefFoundError YourActivity, то вполне вероятно, что может спасти совершенно нелогичное действие:
Добавить исключения суппорт либы в gradle для компиляции espresso (в моём случае espresso-contrib)

androidTestCompile ('com.android.support.test.espresso:espresso-contrib:2.2') {
    exclude group: 'com.android.support'
    exclude module: 'support-v4'
}

Originally published at . You can comment here or there.

Оставить комментарий

авг. 24, 2013 02:03 pm Android x86 emulator и google maps/play services

Google и intel сделали крутую штуку – образы андроида для x86 atom, которые работают весьма шустро на x86 платформе, в отличие от тормозных armv7. Но счастье резко заканчивается, когда нужно делать приложение, использующее google apis (maps, play services) – x86 образы есть только для чистого андроида.


Тем не менее, гугол (который поиск) помогает решить эту проблему – мы модифицируем образ в эмуляторе.



1. Устанавливаем библиотеку для google maps


Для этого надо её сначала выдрать из образа armv7, поэтому создаём эмулятор для платформы Google APIs – API Level 18, включаем его и выдираем нужные либы:



adb pull /system/etc/permissions/com.google.android.maps.xml
adb pull /system/framework/com.google.android.maps.jar

После этого мы перешиваем образ системного раздела x86 эмулятора (данная магия может применяться и для других задач в будущем)


Запускаем уже x86 (Android 4.3) эмулятор из командной строки с увеличенным разделом и пишем в него выдранные либы



emulator -avd 4.3x86 -partition-size 512
adb remount
adb push com.google.android.maps.xml /system/etc/permissions
adb push com.google.android.maps.jar /system/framework

Теперь нам нужно сохранить образ системного раздела. В интернетах советуют использовать mkfs.yaffs2.x86 и шаманить с ним, но есть значительно более простой способ. Во время работы эмулятора образ системного раздела доступен в хост системе (т.е. той, на которой запущен эмулятор) по адресу C:\Users\[%USER_NAME%]\AppData\Local\Temp\AndroidEmulator\[randomname].tmp (для всяких линупсов и осх поиск файла значительно проще -> /tmp/system.img)


Файл там лежит с нулевым размером, но это не мешает его просто взять, и скопировать в каталог нашего x86 эмулятора под именем system.img


Теперь после ребута эмулятора эти либы будут в нём лежать, как будто так и должно быть.


2. Устанавливаем google play apis


Выкачиваем com.google.android.gms_20130908.apk


и com.android.vending_20130908.apk


Инсталлируем в x86 эмулятор:


adb install com.android.vending-20130716.apk 
adb install com.google.android.gms-20130716.apk 

Вуаля, готово.


Порядок установки лучше соблюдать, иначе библиотека от maps не будет подхватываться и инсталлятор будет ругаться про не найденную shared library.





Оригинал

Оставить комментарий

июл. 16, 2013 10:16 pm Jenkins, MSBuild и Includes

Однажды оказалось, что Jenkins фейлит билды MSVS 2012 (которые выполняются посредством консольного msbuild), с сообщениями о том, что не найдены всякие заголовочные файлы (например al.h). Как известно, в студии начиная с 2010 “глобальные” настройки путей к инклюдам, либам и прочему перенесены в странное место – Property Manager->$Project|$Configuration -> Microsoft.Cpp.$Platform.user. Ну и ладно, казалось бы, зашли, прописали и всё хорошо. Студия компилит, в консоли msbuild тоже нормально всё делает… Вот только Jenkins запускает своего slave windows сборщика от системного пользователя, а настройки путей, они не глобальные, а per-user оказывается, поэтому он и не подхватывает эти пути.


Самым простым решением оказалось, как ни странно, создать каталог, скопировать туда “свой” файлик C:\Users\konst\AppData\Local\Microsoft\MSBuild\v4.0\Microsoft.Cpp.Win32.user.props и добавить в командную строку запуска /p:UserRootDir=d:\msbuild_home





Оригинал

2 комментария - Оставить комментарий

июл. 23, 2012 07:09 pm Упрощение визового режима

Тут в новостях начали муссировать сообщение о том, что вроде как "упростили ещё визовый режим с ЕС" и "скоро отменят визы".
Решил почитать первоисточник с "той стороны".

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

After signature of the Agreement, the consent of the Parliament will be needed before the agreement is concluded. As a final step in the ratification procedure, the Council will decide on the adoption of the conclusion decision

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

Оставить комментарий

Back a Page