ApacheBench

В состав apache входит benchmark – называется ab (apachebench). Им можно тестировать не только сайт на apache, но и любой другой web-ресурс.

Опциями можно указать общее количество запросов (1000) и сколько будет запрашиваться одновременно (50):

ab -c 50 -n 1000 http://weril.me/

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

Ruby: вызов внешних команд

Дока

Правило: в общем случае лучше не использовать вызов внешних команд, а попробовать положиться на standart libraries/gem/modules native ruby.

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

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

Ruby: работа с ФС (файлами и папками)

ФАЙЛЫ

дока

Прежде всего нужно обозначить, что закрытие файла крайне необходимый процесс:
1) открытый файл может быть заблокирован файловой системой для других скриптов
2) при открытии создается file descriptor, их количество ограничено файловой системой, хотя и обычно значение ограничения довольно большое
3) могут произойти race conditions, когда несколько процессов пытаются прочитать/записать один и тот же ресурс (в данном случае файл) в один момент времени

Чтение и вывод

# вывод контента (первой строки)
File.open("test.txt")


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

Oracle DB: разное

Установка сервера на Windows

Oracle Database 11g Express Edition – с сервером идет сразу WEB интерфейс встроенный для управления БД. Качнуть можно бесплатно с сайта Oracle.

Файлы/папки

C:\oraclexe\app\oracle\product\11.2.0\server – основная папка сервера

C:\oraclexe\app\oracle\product\11.2.0\server\bin – тут утилиты oracle, например:

  • sqlplus.exe – Sql plus CLI, по умолчанию через ярлык запускается с опцией /nolog (sqlplus.exe


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

Ruby: работа с датой и временем

TIME

Класс Time

Получить hours:minutes (h:m) из Time.now можно по разному

1) лучший и самый универсальный способ через strftime

h_m = Time.now.strftime("%H:%M") # можно выцепить все что угодно, не только h:m, формат %d/%m/%Y %H:%M

2) хуже

h_m = "#{Time.now.hour}:#{Time.now.min}"

3) плохой

time_and_date = "#{Time.now}".split("


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

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

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

 

Плюсы

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

 

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

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

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

 

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

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

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

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.

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

Видеонаблюдение/видеоконференции: IP/WEB камеры, видео-контроллеры, RTSP viewer, запись видео с экрана, BigBlueButton, dante, smpte 2110, teamspeak

  • Частый вопрос – организация доступа к камерам без внешнего IP у роутера, за которым находятся камеры, решения в порядке моего приоритета:
    • VPN на шлюз с внешним сервером IP и маршрутизация внутри VPN – безопасно и достаточно просто при наличии внешнего VPN сервера
    • Облачный или не совсем контроллер (DVR) – cloud access ivideon, unify или другой, зачастую за $
    • DYNDNS (при необходимости с пробросом портов для нескольких камер)
    • Все таки покупка внешнего IP.


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