2021-03-30

Не ту страну назвали Гондурасом

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

 

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

 
  2021-03-29

Мониторинг серверов c Grafana и Influxdb

Есть меня несколько серверов которые бы мне хотелось постоянно мониторить на предмет оперативной памяти, диского пространства и т.п. Хотя сами сервера расположены в разных местах все они объединены между собой по openvpn. Для того чтобы решить задачку мой выбор пал на связку influxdb+grafana.

Influxdb это так называемая timeseries база данных, в которой мы можем хранить данные которые изменяются во времени. Grafana - это универсальный UI который удобно использовать для визуального представления таких данных. InfuxDB и Grafana поднимаются на при помощи docker-compose. К при этом для того, чтобы послать данные состояния сервера используется баш скрипт который периодически запускается через cron и при помощи curl посылает данные на сервер

Таким образом я всегда могу видеть состояние того или иного сервера. Все системы будем подымать в докере для этого достаточно склонировать репозиторий с docker-compose который содержит в себе 3 образа - influxdb, grafana и chronograph.

git clone git@github.com:maxistar/docker-compose-influxdb-grafana.git
cd docker-compose-influxdb-grafana
git checkout influx1_8
docker-compose up -d

Influxdb версии 2.x требует авторизации и поэтому я использовал версию 1.8. Исправленный docker-compose.yaml живет в ветке influx1_8 где я использую именно эту версию, возможно в будущем разберусь как использовать и последнюю версию.

После того как InfluxDB и Grafana запущены, на сервере, который будем мониторить, создаем bash скрипт (script.sh).

#!/bin/bash

dbName="db0"

stat=`free | awk -v RS="" '{print "memory,host=acentauri used=" $9 "\nmemory,host=acentauri total=" $8 "\nmemory,host=acentauri swap=" $15 "\nmemory,host=acentauri swapused=" $16}'`

curl -s -i -XPOST "http://10.8.0.100:8086/write?db=db0" \
	--data-binary "$stat" 
 

делаем файл исполнимым и добавляем команду для запуска скрипта в cron:

chmod +x script.sh
contab -e

в открывшимся файле добавляем следующую строчку:

* * * * * /home/maxim/infrastructure/utils/memusage/script.sh

После того как данные начали посылаться на сервере настраиваем dashboard и наслаждаемся.

После того как начал мониторить состояние asterisk сервера он волшебным образом перестал зависать! Возможно его зависания были связаны с тем что зависает wifi модуль и я его перестаю видеть по сети.

 

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

 
  2021-03-28

Быстрый тест на кароновирус

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

Для этого по всему Берлину открыты десятки центров где можно сделать тест. Один такой центр находится у нас прямо под окнами. Вчера проверили как это работает.

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

Все посетители в центре тестирования обязаны быть в маске и держать дистанцию полтора-два метра.

Буквально сразу после тестирования на электронную почту пришел пароль для доступа к результатам теста. А еще через полчаса пришел и сам тест в виде PDF файла.

Берегите себя и оставайтесь здоровыми!

 

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

 
  2021-03-23

Лайфхак

Вам надоела однообразная контекстная реклама в интернет? Надоела навязчивая и неинтересная реклама онлайн курсов? Достали предложения диванных экспертов купить их говнокнижку?

Зайдите на сайт lаmoda и положите пару шмоток в корзину - и..., ваша контекстная выдача волшебным образом преобразится! Не благодарите.

 

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

 
  2021-03-21

Доступ к домашнему фотоархиву

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

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

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

Что мне, собственно, нужно? Мне нужен веб интерфейс для фотоальбома, который будет генерироваться на основе картинок, разложенных по папкам и будет доступен по сети. Желательно чтобы решение работало максимально быстро и не требовало мощного железа. На что это похоже? На статический генератор сайтов!

Вчера попробовал несколько проектов статических фотогалерей и остановился на Sigal.

Sigal это статический генератор фотогалерей который создает статический сайт из папки с изображениями. Написан на Python 2.x, поддерживает субдиректории, имеет несколько тем и умеет работать со всеми основными медиаформатами.

Для установки достаточно набрать:

pip install sigal

Теперь, чтобы сгенерировать сайт наберем:

sigal build /path/to/your/images/

В результате выполнения в текущей директории появится папка _build которая будет содержать html файлы и превьюшки. Можно сразу скормить эту папку апачу или нджинксу или воспользоваться встроенной командой сигала:

sigal serve _build

Открываем адрес http://localhost:8000/ в браузере и наслаждаемся!

Конвертирование 617 гигабайт картинок заняло примерно четыре часа и финальный сайт с превьюшками весит примерно 5 гигабайт, то есть чуть меньше процента от реального размера фотоархива. Странички загружаются довольно шустро, даже несмотря на то, что трафик идет из России через openvpn с сервером в США и открывается в Германии через реверсивный прокси подняный на Raspberry pi Zero W.

А как вы храните свой фотоархив?

 

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

 
  2021-03-20

Компилируем Android приложения в Docker

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

Посидев пару вечеров, собрал простенький образ, который будет делать за меня всю черновую работу. Теперь, чтобы собрать любое приложение для android, достаточно выполнить вот такую команду из корня проекта:

docker run --rm -v ${PWD}:/var/app maxistar/android:latest bash \
 -c "gradle build && gradle compileDebugSources"

Готовый apk файл будет сохранен в папку app/build/outputs/apk/debug/app-debug.apk - его можно сразу скопировать не телефон и установить его (не забудьте разрешить установку приложений из неизвестных источников). 

Как был сделан этот образ? За основу взял образ Debian 9.

Установил Java 8 (Java 11 у меня не завелась если знаете как подружить gradle и java 11 поделитесь секретом)

apt-get update
apt-get -y install git wget unzip default-jdk

Для сборки нам нужен gradle установим его

wget https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip -P /tmp
unzip -d /opt/android /tmp/sdk-tools-linux-3859397.zip

Скачаем Android SDK:

wget https://services.gradle.org/distributions/gradle-6.8.3-bin.zip -P /tmp
unzip -d /opt/gradle /tmp/gradle-6.8.3-bin.zip

Еще нужно установить переменные окружения.

ENV ANDROID_SDK_ROOT=/opt/android
ENV GRADLE_HOME=/opt/gradle/gradle-6.8.3
ENV PATH=${GRADLE_HOME}/bin:${ANDROID_SDK_ROOT}/tools/bin:${PATH}

Теперь нужно скачать инструменты для сборки android приложений.

sdkmanager --update
sdkmanager "build-tools;30.0.2" "platform-tools" "platforms;android-30"
sdkmanager --licenses

Готовый Dockerfile выглядит вот так:

FROM debian:9

MAINTAINER Max Starikov <maxim.starikov@gmail.com>

ENV ANDROID_SDK_ROOT=/opt/android
ENV GRADLE_HOME=/opt/gradle/gradle-6.8.3
ENV PATH=${GRADLE_HOME}/bin:${ANDROID_SDK_ROOT}/tools/bin:${PATH}

RUN apt-get update && apt-get -y install git wget unzip default-jdk

RUN wget https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip -P /tmp && \
    unzip -d /opt/android /tmp/sdk-tools-linux-3859397.zip && \
    wget https://services.gradle.org/distributions/gradle-6.8.3-bin.zip -P /tmp && \
    unzip -d /opt/gradle /tmp/gradle-6.8.3-bin.zip && \
    sdkmanager --update && \
    yes | sdkmanager --licenses  && \
    sdkmanager "build-tools;30.0.2" "platform-tools" "platforms;android-30" && \
    yes | sdkmanager --licenses && \
    mkdir /var/app

WORKDIR /var/app

Следует заметить, что образ довольно большой (примерно 850Mb) - и для его использования нужно быстрое интернет соединение, но зато, единожды скачав, скачивать повторно docker его больше не будет.

Образ доступен на docker hub. Исходник находится на github.

 

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

 
  2021-03-17

Классное интервью у АйТи Бороды

Итеративная инкрементальная методология с промежуточными точками поставки. Это круто!

А вот и ссылка на мультик про который говорится на метке 33:37.

 

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

 
  2021-03-14

Старая клавиатура для ноутбука

У Ольги Громыко в серии Космоолухи был интересный момент где компьютерная клавиатура питалась крошками, которые на нее падали от неаккуратных пользователей. Как жаль, что реальные клавиатуры так не умеют! После того как на моем лаптопе появилась новая клавиатура, и я уже почти выкинул старую, стало любопытно - почему же она она перестала работать? 

Оказалось, старую клавиатуру еще можно было ожививть, ведь клавиши клавиатуры легко отщелкиваются! После того как отщелкнул проблемные клавиши, проблема открылась во всей красе (брезгливым не смотреть!):

Как в видите, в мусоре под клавишами уже самозародилась жизнь, эволюционировала в высокоразвитую цивилизацию и уже готовится покорять космос...

При помощи старой зубной щетки устроил маленький геноцид - удалил весь мусор и вернул клавиши обратно, они встали на место и защелкнулись без проблем.

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

 

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

 
  2021-03-13

Новая клавиатура для ноутбука

Заменил клавиатуру своего ноутбука HP ProBook 450 G1. В плане железа человек я консервативный и железо меняю редко. На своем рабочем ноуте я уже заменил жесткий диск и аккумулятор, после того как начал глючить тачпад я приобрел внешнюю мышку, но вот последнее время стала глючить клавиатура - цифра "5" и клавиша "v" и некоторые другие стали срабатывать через раз.

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

Тогда я подумал, а почему бы не поменять клавиатуру? Сказано - сделано! Заказал на Амазоне. Только что зашел на почту на посылкой. Оказывается, на этой модели, чтобы поменять клавиатуру достаточно отвинтить два болта! Вот они на этом видео на временной отметке 2:45.

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

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

 

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

 
  2021-03-12

Ichigo Tanuki на MaxiRock

Нацки и Виталий сходили на интервью к MaxiRock, получилось очень познавательно. С удивлением, узнал, что в японском кавере Бутусова "Я хочу быть с тобой" пел сам Бутусов. Ребята просто написали Бутусову, и он согласился поучаствовать. Вот этот кавер на канале самого Бутусова:

 

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