Цвета терминала и управление вывода с sh и php echo

Иногда, когда пишешь терминальное приложение (миграции например), хочется кроме стандартного потока, создавать более красочные сообщения и прогресс-бары. Для этого надо использовать управляющие коды для шелла. Перепечатаю для себя шпаргалку на будущее.. (далее…)

Многообразие тестов

Типы автоматических тестов я разделяю таким образом..

​Чёрный ящик

Это семейство тестов рассматривает тестируемую систему как изолированный объект малоизвестной природы
  • Базовые сценарные/UI тесты. Соответсвуют фичам, в основном тестируют навигацию и наличие html элементов
  • Продвинутые UI тесты. Автоматизированы и эффективны. Тестируют все роли пользователей, ресетят данные, повторяющиеся функции абстрагированы. Medium priority
    • drag-and-drop
    • тестирование различных ролей на привилегии
    • многопоточный аплоад файлов
    • тесты с вебсокетами на cross-browser data synchronization
  • Поведенческие тесты. Пишутся для бизнеса что-бы "наглядно" показывать что тестируется, но требует парсер на более низкий уровень
  • Скриншоты и CSS регрессия. Тестируют слетающий UI, шрифты, разные браузеры и телефоны
  • Snapshot тесты
(далее…)

Микросервисы #2

В прошлой статье я начал изучать микросервисный подход, но до полноценного решения тогда не дошёл. Тогда я пробовал сам поднимать процессы на php, управлять ими, связывать между собой через очереди потому что монолит не мог справиться с асинхронными задачами. Но чего у меня реально нехватало, так это нормальной изоляции и деплоймента, межсервисного взаимодействия и стабильной работы. (далее…)

Микросервисы

Микросервисы в современной веб-разработке это архитектурный подход по разделению изначального монолитного приложения на независимые системные (linux) процессы. Необходимость в таком разделении возникает когда монолит становится слишком медленным для одного синхронного процесса, когда код тянет слишком много зависимостей и когда повышается риск что-то сломать в этой длинной цепочке обработки данных. (далее…)

Мини-шпаргалка по Unix

С  юниксом я до некоторых пор был в достаточно прохладных отношениях - мы встречались довольно редко, каждый раз у него были новые дистрибутивы и формы. То в университете Солярис удивлял своим UI, то на хостинге каком-то надо покопаться через ssh. В какой-то момент я стал пристальней посматривать за его возможностями, удивляясь популярности. Наконец я поставил все основные дистрибутивы на виртуальные машины. Ленивый Slackware сопротивлялся больше всех. На этом казалось можно было бы и поставить точку в нашем романе. Но теперь я работаю на маке и приходится разбираться основательней. Основное преимущество *никсов это конечно консоль и гибкая обработка файлов и текста из неё. (далее…)

Основы Android-приложения

Android - основанная на linux платформа для мобильных устройств использующая изменённую виртуальную машину Java построенную для учёта компактности файлов и энергоэффективности Dalvik. Из-за этого используется не Mobile Edition и тем более не Java SE, а свои библиотеки. Приложения соответсвенно пишутся на Java, либо же через обходные пути  — TitaniumAppInventorAdobe AIR. Интересно что из библиотек есть SQLite и OpenGL - не прийдётся изобретать велосипеды. Кроме того в системе есть менеджеры для обмена данными между приложениями, сенсорами и тп. (далее…)

Шпаргалка по golang – часть 1

После php и node начал писать на go, поэтому по-аналогии с unix-шпаргалкой, выпишу для себя основы..

Запуск

go run main.go → компиляция и запуск exe go build main.go → только компиляция и создание exe, без запуска go get -u https://github.com/x/y → импортирование зависимостей (далее…)

Dashboard на основе Grafana и InfluxDB

В продолжение темы умного дома где мой котёл умел выдавать API для мониторинга температур, захотелось мне вывести эти данные в более приятный вид. Кроме того, хотя сам котёл умеет рисовать графики, он показывал на них только температурную зону одного контура, а мне хотелось видеть два. Поэтому я решил поизучать бесплатный dashboard и графико-генератор на основе Grafana. Зарегился и упёрся в то что он сам не хранит данные. Он умеет только подключаться к внешним источникам и делать запросы туда. (далее…)

Как параллельно запустить процессы в sh скрипте

Порой надо написать какой-то установочный скрипт, который требует одновременный запуск нескольких задач, из которых некоторые достаточно долгие — сервер, билд проекта. Это не то же самое что последовательный запуск с «&&» или «;» разделителями. Shell-скрипты могут и это с помощью комманды trap. Комманда работает на прерывании процесса (второй параметр). В данном случае это EXIT и TERM. Основная комманда - убиение запущенных этим терминалом в фоне процессов (jobs -p). Сами они перечисляются дальше с группировкой фигурными скобками. (далее…)

JasperReports

JasperReports Server это web-приложение на java (spring, hibernate, axis), бегающее на tomcat сервере (по умолчанию - http://localhost:8080/jasperserver/ ) с postgres базой данных. Основная цель - бизнес аналитика, тоесть получение агрегированных данных для отчётности по продажам, пользователям, их поведению. (далее…)


Любишь мемасики?

Подпишись на мой телеграм-канал!

Открыть
Закрыть