?

Log in

No account? Create an account
   Journal    Friends    Archive    Profile    Memories
 

const aka dv.66

ноя. 30, 2017 08:38 pm VirtualKD + Windows 10

Если вдруг нужно, чтобы взлетел VirtualKD с гостевой Windows 10, то после инсталляции оного внутри машины, нужно ещё обязательно выполнить bcdedit /dbgsettings serial, иначе кина не будет. Сэкономит часик времени на рисчёрч “а чо оно не работает”.

Originally published at . You can comment here or there.

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

ноя. 2, 2017 04:20 pm Google Crashpad

Для того, чтобы собрать crashpad под Windows с DLL runtime (/MD /MDd), нужно создать в своём домашнем каталоге (c:/users/konst например) подкаталог .gyp и в него положить файл include.gypi со следующим содержимым:

{
  'target_defaults': {
    'configurations': {
      'Release': {
        'target_conditions': [
          ['OS=="win"', {
            'msvs_settings': {
               'VCCLCompilerTool': {
                  'RuntimeLibrary': '2',
                }, 
             },
          }],
        ],
      },
      'Debug': {
        'target_conditions': [
          ['OS=="win"', {
            'msvs_settings': {
               'VCCLCompilerTool': {
                   'RuntimeLibrary': '3',
                }, 
            },
          }],
        ],
      },
    },
  },
}

И пусть это сэкономит те полдня, которые пришлось потратить, чтобы выяснить этот факт.

Originally published at . You can comment here or there.

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

янв. 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.





Оригинал

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

Back a Page