Автоматизация

Автоматизация – замена ручной работы программой на основе алгоритма.

 

Плюсы

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

 

Что не автоматизировать

Автоматизация не является ответом на все задачи:

  • в сфере творчества
  • задача появляется слишком редко
  • ресурсы (человеческие, временные, материальные), которые необходимы для автоматизации задачи, слишком велики и не сравнимы с преимуществами ее автоматизации

 

Принимаем решение

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

Читать дальше

MySQL: простая реплика данных с задержкой на базе rename MySQL

В mysql очень просто реализовать простую реплику с задержкой (например, раз в минуту/пять минут/etc по cron) в таблицу используя двойной rename.

В mysql rename даже на 10 млн записей делается почти мгновенно, причем на время rename база не отдает ложных значений, а ждет отработки rename.


Читать дальше

Ruby: работаем с базой mysql

Как показала недолгая практика использования gem mysql, лучше его не использовать вообще, а сразу использовать gem mysql2.

gem mysql не развивается (последний апдейт в 2013) и имеет косяки, например, с кодировкой (кириллица кладется в cp1251 и изменить, насколько я понял, никак).

Читать дальше

Ruby: удаляем спец. символы перед insert в базу

Метод на ruby по удалению мусора в виде разных скобок, exclamation и других символов, которые гарантированно приведут к ошибке при insert в базу. При необходимости можно добавить символы в переменную pattern.

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ....


Читать дальше

Cisco reverse telnet через async порты (aux/db68)

Ссыли 0 1  2

Очень удобная тема, хотя и старая как жигули. Соединяешь новую железку (напр. BRAS) с аплинковой через AUX+консоль или DB68+CAB-OCTAL-ASYNC. Чуть настраиваешь line’ы (пример ниже для DB68 или выше в ссылках).  Далее можно с любого места, с которого доступна аплинковая Cisco (причем по любому из ее IP адресов, не только Lo0) зайти на ненастроенный или, божи-божи, упавший по data портам девайс поконсоль через telnet.

Читать дальше

Делаем демон приложения в CentOS

В CentOS, в отличии от Ubuntu, по умолчанию нет Start-stop-daemon для запуска своих процессов в виде демонов. При его наличии запуск приложения в виде демона решается простой командой (главное чтобы скрипт был исполняемым :)).

start-stop-daemon -Sbvx /home/redkin_p/bin/test.rb

Для того чтобы сделать это в CentOS есть такие варианты:

1) собрать start-stop-daemon для CentOS.

Читать дальше

Поднимаем TFTP сервер на CentOS 7

Пошаговый гайд

0) Отключаем SELinux если раньше это не сделали и перезагружаем сервер (если уверены что он нам не нужен или не умеем с ним работать). Если без отключения для заливки файлов должна помочь строка setsebool -P tftp_anon_write 1

sudo vi /etc/selinux/config
SELINUX=disabled

1) Загружаем сервер, клиент и xinetd (без него никак, через него работает tftpd)

sudo yum install tftp tftp-server xinetd

2) Редактируем файл с конфигурацией /etc/xinetd.d/tftp.

Читать дальше

Программирование best practices и заметки

  • Не нужно учить синтаксис, будь то программирование или работа с устройствами. Намного важнее понимать технологии и принципы. Синтаксис на практике натаскается или за’tab’ится. 
  • Высшая математика и алгоритмы редко нужны в программировании. Важнее знать существующие инструменты/библиотеки/умение писать. Сложной математики не много в бизнес задачах.


Читать дальше

Основы VCS на примере Git

https://git-scm.com/ – тут крутые entry видео, документация и прочее.

VCS
Version Control System (VCS) – система контроля версий.
Из названия следует основной кейс применения таких систем – контроль версий систем. VCS сохраняет изменения, которые произошли от одной версии файла к другой.

Читать дальше

Telegram bot на Ruby c gem telegram-bot-ruby

РЕСУРСЫ, переменные И МЕТОДЫ
  • https://core.telegram.org/bots/api – основной необходимый MAN. Очень крутой, но не хватает примеров
  • https://github.com/atipugin/telegram-bot-ruby – ruby gem telegram, есть пример кода для разных кейсов
  • https://github.com/mustafababil/Telegram-Weather-Bot/blob/master/responseController.py – пример бота в телеграм на python
METHOD
bot.api.send_message - основной метод, отправка сообщений
bot.api.answer_callback_query- ответ на CallBackQuery, отвечать нужно после обработки сообщения, чтобы ошибки ответа на callback не привели к проблемам с самим ответом
bot.api.deleteMessage - удаление сообщений (своих, исходящих от бота)

ID
rqst.from.id - user info id.


Читать дальше