Поиск по блогу

четверг, 27 декабря 2018 г.

Не везет с клеевыми пистолетами

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

вторник, 18 декабря 2018 г.

Удаление bloatware на Samsung Galaxy Note Pro 12.2

В хозяйстве имеется планшет Samsung Galaxy Note Pro 12.2, который несмотря на довольно древнюю версию Android (последнее обновление от Samsung это 5.0.2), вполне справляется с задачами браузинга в интернете, просмотра YouTube и чтения PDF.

По железу никаких вопросов не возникает, но Samsung очень щедро напичкал его всякой ерундой вроде новостей NYTimes, Bloomberg, которая мне дома совсем не нужна и только зря занимает место в памяти. Часть приложений можно отключить в Settings → General → Application manager, но далеко не все.

Немного покопался в интернете и нашел способ удалить приложения не имея root пользователя на планшете.

понедельник, 10 декабря 2018 г.

Memtest86+ false positive

Столкнулся с некорректным поведением теста оперативной памяти Memtest86+ из комплекта дистрибутива Finnix. Больше часа игрался с чисткой контактов и установкой различных комбинаций планок памяти.


суббота, 8 декабря 2018 г.

Полезные ссылки для автомобилиста в Беларуси

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

воскресенье, 25 ноября 2018 г.

WARN src/common.c: unknown chip id! 0xe0042000

Я уже описывал программирование контроллера stm32f103c8t6 в Arduino IDE через stm32duino bootloader. Теперь пробую залить простенький скетч через программатор ST-Link/V2.


Перенос системы с HDD на SSD меньшего размера

Очередной апгрейд железа в виде замены HDD на SSD в ноутбуке. Просто скопировать разделы со старого диска на новый не получится, т.к. размер разделов на HDD превышает объем SSD. Ситуацию осложняет наличие томов lvm2 поверх dm-crypt и просто так данные перенести не выйдет. Но благодаря интернету нашлось решение.

воскресенье, 21 октября 2018 г.

Немного украсил страницу репозитария

На mozilla.debian.net подсмотрел идею динамической инстукции по настройке APT в зависимости от выбранной версии дистрибутива. Сделал себе такую же.


Теперь достаточно правильно выбрать свою версию дистрибутива и страница выдаст нужную последовательность команд. Новичкам должно стать попроще.

Еще сделал алиас для ubuntu, чтобы в url было разделение на /debian и /ubuntu. Хотя в остальном никакой разницы нет.

воскресенье, 7 октября 2018 г.

Пересобрал пакеты PHP 7.1.20 и 7.2.9 для Debian Stretch

По-умолчанию в Debian Stretch поставляется PHP версии 7.0.30, но свежие версии Laravel требуют как минимум PHP версии 7.1.3. Чтобы решить эту проблему я пересобрал пакеты PHP 7.1.20 и 7.2.9 для Debian Stretch (только amd64). Никаких модицикаций делать не пришлось, только добавил суффикс "~stretch1" к версии пакета.

Найти их можно в секции backports моего репозитария или скачать напрямую (7.1.20 и 7.2.9). Все три версии можно установить одновременно, но для mod_php нужно включать нужную версию явно.

суббота, 29 сентября 2018 г.

Professional Cloud Architect

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

четверг, 27 сентября 2018 г.

Обновление BIOS до версии A22 на Dell Latitude E6430

Ноутбук жены изредка чудит. Включается, затем несколько секунд показывает логотип Dell и выключается. После повторного включения все проходит нормально. Если поторопиться, то успеваю зайти в настройки BIOS перед выключением. При таком поведении в логе BIOS появляется запись "Power Off - AFS2 force off". В процессе работы проблем не бывает.

Вчера снова наткнулся на выключение ноутбука и полез на сайт Dell проверить появилась ли новая версия BIOS. Оказывается ее выложили еще в конце апреля.

суббота, 22 сентября 2018 г.

Jenkins slave стал запускаться дольше 5 минут на Raspberry PI 3

После обновления плагинов Jenkins перестал запускаться агент на Raspberry PI 3. Попробовал увеличить таймаут до 5 минут, но это не помогло

суббота, 25 августа 2018 г.

Сделать файл выполняемым в Git

По-умолчанию Git не сохраняет права доступа на файлы, но есть возможность сделать отдельный файл исполняемым

$ git add script.sh

$ git ls-files --stage script.sh
100644 9f3f770bfcccad3d62d2e2d08b077469ef3722fa 0       script.sh

$ git update-index --chmod=+x script.sh

$ git ls-files --stage script.sh
100755 9f3f770bfcccad3d62d2e2d08b077469ef3722fa 0       script.sh

$ git commit -m 'Executable script'
[master (root-commit) 1cf26b3] Executable script
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100755 script.sh

среда, 22 августа 2018 г.

Монтирование EFS в кластере AWS ECS

Есть несколько способов смонтировать EFS в ECS кластере:
  • монтировать EFS на ноде кластера из cloud-init/puppet/chef/ansible/etc и делать bind mount в контейнер при старте (придется монтировать EFS на каждой ноде кластера где может запуститься контейнер)
  • монтировать EFS внутри контейнера контейнера (требует privileged для контейнера, т.к. монтирование файловой системы зависит от CAP_SYS_ADMIN)
  • использовать EFS в качестве docker volume (вроде появилось начиная с docker api 1.21, но я точно не уверен)
Хочу подробнее остановиться на последнем варианте, т.к. на мой взгляд он наиболее универсальный, но требует относительно свежий docker daemon и ecs-agent.

четверг, 9 августа 2018 г.

Сломалась LDAP аутентификация после обновления GitLab

После обновления GitLab с версии 9.5.10 до 10.8.7 столкнулся с ошибкой при входе с использованием LDAP аутентификации

Could not authenticate you from Ldapmain because "Ssl connect returned=1 errno=0 state=error: certificate verify failed".

Чтобы решить эту проблему нужно отредактировать файл /etc/gitlab/gitlab.rb и добавить параметр ca_file в секции настроек LDAP

вторник, 31 июля 2018 г.

Иконка skype в трее Xfce

С некоторых пор иконка skype в трее Xfce стала выглядеть странно - уменьшилась в размерах и стала дублироваться.


Я не знаю из-за чего это произошло и проявляется ли в других окружениях, но глаза мозолит и решил исправить.

четверг, 26 июля 2018 г.

Рекомендуемые настройки SSL от Mozilla

Нашел хороший генератор настроек SSL от Mozilla. В их wiki есть статья где расписаны три рекомендуемых профиля и возможные ограничения, связанные с их использованием.

Ну и еще раз продублирую ссылку на SSL сканер от Qualys.

суббота, 21 июля 2018 г.

Разблокировка iPod Classic

Дети покопались в настройках и случайно включили режим блокировки iPod


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

вторник, 17 июля 2018 г.

Поддержка symlink для shared folders в VirtualBox

Есть виртуальная машина VirtualBox в которой установлен Debian Stretch и проброшена часть системного диска с рабочими файлами в виде Shared Folder которая называется Work. Но вот незадача - VirtualBox не дает создавать symlink'и в этой директории

$ cd /media/sf_Work
$ touch 1
$ ln -s 1 2
ln: failed to create symbolic link '2': Read-only file system

На serverfault нашел решение для этой проблемы

четверг, 3 мая 2018 г.

Минималистичная проверка tcp порта

Частенько приходится проверять доступность того или иного ресурса в сети. Как правило достаточно убедиться что его имя резолвится в ip адрес и получается подключиться на порт. Если на хосте не установлено нету netcat, socat, nmap или telnet, то выручить может bash

$ host ya.ru
ya.ru has address 87.250.250.242
ya.ru has IPv6 address 2a02:6b8::2:242
ya.ru mail is handled by 10 mx.yandex.ru.

$ bash -c 'cat < /dev/null > /dev/tcp/ya.ru/80'

Если bash завершился без ошибок, то порт доступен.

понедельник, 2 апреля 2018 г.

Увеличение размера диска VirtualBox содержащего снапшоты

Столкнулся с нехваткой свободного места на диске при установке довольно объемного справочника на семи DVD дисках в виртуальную машину VirtualBox. Изначальный размер единственного диска виртуальной машины был 40G и я понадеялся на то, что будет устанавливаться только часть данных относящихся к русскому языку. Вместо этого я столкнулся с нехваткой свободного места на предпоследнем диске.

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

среда, 28 марта 2018 г.

Закрывается Digg Reader

Сегодня пришло письмо о том, что закрывается Digg Reader, которым я стал пользоваться после закрытия Google Reader.
Какое-то время назад я перешел на использования News в составе Nextcloud и эта новость воспринимается не так болезненно как в случае с Google Reader.

воскресенье, 11 февраля 2018 г.

XScreenSaver 5.38

Использую Xfce4 и xscreensaver в качестве блокировщика экрана. Настройки питания и энергосбережения через xfce-power-manager. С одной стороны это позволяет иметь различные настройки энергосбережения экрана в зависимости от источника питания (батарея или сеть), а с другой не возиться с настройкой heartbeat'а (xscreensaver-command -deactivate) в различных программах.

Моя проблема заключается в настройке dpmsEnabled в xscreensaver - если она выключена, то xscreensaver полностью отключает поддержку DPMS, а не прекращает управлять ее настройками.

Чтобы отучить xscreensaver трогать настройки DPMS я собираю отдельный пакет с опцией --without-dpms-ext и патчем, который чинит эту опцию

вторник, 6 февраля 2018 г.

Просмотр изображений с расширением HEIC в Linux

Столкнулся с проблемой просмотра фотографий с расширением HEIC. Это новый формат HEIF (High Efficiency Image Format) от Apple, которым они решили заменить JPEG. Перебрал несколько вариантов (display, eog, gimp), но ни одна из программ не знает про этот формат.

Поиск в интернете вывел на tifig. С помощью этой утилиты получилось сконвертировать фотографии в JPEG.

$ find /path/to/photos -type f -iname '*.heic' -exec ~/tmp/tifig -i '{}' -o '{}.JPG' \;
$ rename 's/.HEIC.JPG/.JPG/' *.HEIC.JPG

К слову разница в размере не в пользу JPEG:

$ ls -l IMG_0513.*
-rw-r--r-- 1 andrey andrey 1360434 Feb  6 13:11 IMG_0513.HEIC
-rw-r--r-- 1 andrey andrey 2077232 Feb  6 13:26 IMG_0513.JPG

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

суббота, 13 января 2018 г.

Прошивка ESPEasy для ESP8266

Открыл для себя прошивку ESPEasy от Let's Control It для ESP8266. ESPEasy собирается с разным набором модулей и доступна для различных объемов flash памяти. Я буду заливать прошивку в ESP-12S, который купил ранее и мне нужно узнать какой объем flash памяти установлен на моих чипах.

$ ./esptool.py --port /dev/ttyUSB0 --baud 115200 flash_id
Connecting...
Manufacturer: ef
Device: 4016

Согласно информации проекта CoreBoot в модуле установлен чип Winbond W25Q32, содержащий 4MB памяти.

Если проверить модули ESP-01, с которых я начинал знакомство с ESP8266, то выдает следуещее:

$ ./esptool.py --port /dev/ttyUSB0 --baud 115200 flash_id
Connecting...
Manufacturer: c8
Device: 4013

Если верить CoreBoot, то должна быть установлена GigaDevice GD25Q40, и в подтверждение тому на плате стоит GD25Q41BT, имеющая объем flash памяти 4Mb или 512kB.

Скачать прошивку с GitHub можно здесь. Я брал ESP_Easy_v2.0-20180113_test_ESP8266_4096.bin чтобы была поддержка датчика углекислого газа MH-Z19.

Для заливки прошивки можно использовать esptool из Arduino или esptool.py. Я использую первый из них.

$ ~/.arduino15/packages/esp8266/tools/esptool/0.4.8/esptool -vv -cd nodemcu -cb 115200 -cp /dev/ttyUSB0 -ca 0x00000 -cf ~/tmp/ESP_Easy_v2.0-20180113_test_ESP8266_4096.bin
esptool v0.4.8 - (c) 2014 Ch. Klippel
 setting board to nodemcu
 setting baudrate from 115200 to 115200
 setting port from /dev/ttyUSB0 to /dev/ttyUSB0
 setting address from 0x00000000 to 0x00000000
 espcomm_upload_file
 espcomm_upload_mem
opening port /dev/ttyUSB0 at 115200
 tcgetattr
 tcsetattr
 serial open
opening bootloader
resetting board
trying to connect
 setting character timeout 0
 done
 setting character timeout 1
 done
 espcomm_send_command: sending command header
 espcomm_send_command: sending command payload
trying to connect
 setting character timeout 0
 done
 setting character timeout 1
 done
 espcomm_send_command: sending command header
 espcomm_send_command: sending command payload
 espcomm_send_command: receiving 2 bytes of data
 espcomm_send_command: receiving 2 bytes of data
 espcomm_send_command: receiving 2 bytes of data
 espcomm_send_command: receiving 2 bytes of data
 espcomm_send_command: receiving 2 bytes of data
 espcomm_send_command: receiving 2 bytes of data
 espcomm_send_command: receiving 2 bytes of data
 espcomm_send_command: receiving 2 bytes of data
Uploading 566528 bytes from to flash at 0x00000000
 erasing flash
 size: 08a500 address: 000000
 first_sector_index: 0
 total_sector_count: 139
 head_sector_count: 16
 adjusted_sector_count: 123
 erase_size: 07b000
 espcomm_send_command: sending command header
 espcomm_send_command: sending command payload
 setting timeout 15000
 setting character timeout 150
 done
 setting timeout 1
 setting character timeout 1
 done
 espcomm_send_command: receiving 2 bytes of data
 writing flash
..................................................
starting app without reboot
 espcomm_send_command: sending command header
 espcomm_send_command: sending command payload
 espcomm_send_command: receiving 2 bytes of data
closing bootloader

После сброса в сети появится новая точка доступа с именем "ESP_Easy_0" (пароль "configesp"). При подключении к ней телефон определил captivate portal в котором предлагается настроить подключение к WiFi.

К одному из модулей у меня подключены BME280 и MH-Z19, а ко второму SI7021. Оба датчика показывают очень близкие значения температуры и влажности, когда находятся рядом, но BME280 примерно в два раза дороже.

К обоим модулям подключены OLED экраны разрешением 128x64 на базе контроллера SSD1306. Данные передаются по MQTT в Mosquitto из которого Munin забирает их для построения графиков. В дальнейшем хочу перейти на что-то вроде MajorDomo, OpenHAD или Domoticz.


Для защиты от выгорания экран включается на 15 секунд по нажатию на кнопку flash (подключена к gpio-0).


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

Основная информация по работе прошивки.


Настройки прошивки: название юнита, настройки WiFi, статическая конфигурация сети (если нужно).


Настройки контроллеров. Я использую MQTT брокер Mosquitto.


Настройки выходов при загрузке.


Конфигурация подключенных датчиков. На этом модуле сконфигурирован экран SSD1306, BME280 и MH-Z19.


Нотификации я не использую, т.к. для этого у меня есть Nagios и Munin.


Раздел с инструментами. Из интересного /log и /json. Оба можно использовать для мониторинга устройства.


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