wapmorgan » 2016.10.03 22:35

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

Показать/Скрыть
Библиотеки:

1. BinaryStream - библиотека для работы с бинарными данными. Удобное чтение как группами, так и отдельными порциями (битами, байтами, строками). Подгрузка конфигураций (с группами), записанных в обычных ини файлах. И другие плюшки.
Вот начало ридми и реп, если кто уже заинтересовался.
2. RemoteServer - библиотека для удаленного подключения к серверу через ssh или telnet, выполнение команд удаленно и контроль над выполнением. К тому шорткаты для базовых вещей (типа выключения, получения информации о конфигурации сервера или доступной памяти на жестком).
Вот начало ридми - и реп, если кто уже заинтересовался.
3. UnifiedText - библиотека, предоставляющая унифицированный интерфейс к текстовым документам, позволяющая работать с текстом как с набором абзацев, строк или получать весь текст сразу. К тому же с возможностью получать список вложенных файлов.
Вот начало ридми -  и реп, если кто уже заинтересовался.
4. UnifiedTable - унифицированный доступ к табличным документам. Получение списка и выбор одной из книг, получение данных построчно.
Вот реп, пока что даже начало ридми не написал.

Программы (консольные):

1. ServerVisor - монитор загруженности и общего состояния любого количества удаленных серверов (на основе RemoteServer). Отображение информации о нагрузке на профессор, загруженности памяти, занятости пространства на хранителе, установленном ПО, запущенных процессах, открытых портах, соединениях и другой информации. С регулируемым временем обновления и сокрытием ненужной информацией.
Вот реп, если кто уже заинтересовался. В прикрепленном пара фотографий, зарисованного в блокноте интерфейса.

2. CAM (Console Archive Manager) - одна программа для работы с самыми популярными форматами архивов. Всё операции (извлечение, добавление, создание, поиск) с единым интерфейсом и большим количеством опций, влияющих на результат распаковки или поиска.
Вот начало ридми -  и реп, если кто уже заинтересовался.

Gemorroj » 2016.10.04 14:57

Мне лично в реальной работе было бы интересно UnifiedTable. Потому как с этими экселями много проблем. Существующие реализации (https://github.com/PHPOffice/PHPExcel - масса функционала, но забаговано и практически не поддерживается, https://github.com/box/spout - мало функционала, https://github.com/PHPOffice/PhpSpreadsheet - видимо новая реинкарнация PHPExcel но я пока не щупал).
И вообще в данном проекте, лучше сразу отказаться от xls, а сделать поддержку только xlsx. Т.к. думаю, сил не хватит нормально поддержать бинарные структуры старых экселей.
RemoteServer - ну да, забавно, конечно, но реального применения не вижу.
BinaryStream - не вижу применения.
UnifiedText - я лично тоже не вижу применения, но может сеошникам пригодится, хз.
---
ServerVisor - это реально интересно. Профильно не админ, а пхпшник, но реально приходится заниматься в т.ч. и администрированием. Так что заинтересован в подобном инструменте. Так же желательно заранее предусмотреть работу с БД (NoSQL, РСУБД) в смысле мониторинга репликации, и другого анализирующего функционала.
CAM (Console Archive Manager) - есть Universal Extractor. Реализовывать на php не вижу смысла.
Добавлено спустя   6 минут  26 секунд:
Кстати, в пользу ServerVisor, обрати внимание на такой проект - https://github.com/pixelb/ps_mem. Все что делает - группирует все процессы и показывает занятую ими память. ИМХО, реализовать подобное не сложно, а более 550 звезд говорят о востребованности такого функционала.

DarkDaNTe » 2016.11.15 01:55

Да, UnifiedTable и я бы пользовался )

wapmorgan » 2017.01.08 00:58

Начал с самого простого. Пока что такая задумка:
https://github.com/wapmorgan/CAM

Вроде простой синтаксис и возможность расширять функциональность. Оцените

Gemorroj » 2017.01.08 11:30

wapmorgan написал:

Оцените

как обычно - PSR-2 и я бы сразу использовал какой-нибудь https://github.com/symfony/console для построения архитектуры приложения.

wapmorgan » 2017.01.18 03:23

https://github.com/wapmorgan/BinaryStream тоже готов

wapmorgan » 2017.06.19 23:52

Пока что отложил монитор серверов, т.к. он по сути будет дублировать функционал Munin и других продуктов.
Сделал просто монитор доступности серверов разного типа, консольный, с логгирование и нотификацией на email - ServerAvailabilityMonitor

wapmorgan » 2017.06.23 02:38

В общем, сейчас такую штуку делаю: одинаковый интерфейс доступа к популярным в России облачным храналищам в виде консольной утилитки и библиотеки.

Можно будет как из консоли проверять место в хранилищах, загружать файлы и публиковать, так и в виде библиотеки будет.http://forum.wapinet.ru/download.php?aid=1278

По сути менеджер пакетной загрузки в облачные хранилища за несколько строк кода.

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

Код:

1
2
3
4
5
6
7
8
9
10
11
$file = 'VeryBigArchive.zip';
$drive_path = 'public/VeryBigArchive.zip';
 
foreach ($cloud_drive as $name => $drive) {
if (!$drive->checkFileExists($drive_path, $file)) {
$driver->upload($drive_path, $file);
}
if (!$drive->isPublished($drive_path))
$drive->publish($drive_path);
echo $name.' link: '.$drive->getPublicLink($drive_path).PHP_EOL;
}
Gemorroj » 2017.06.23 10:25

Вроде как абстракции над файловыми системами типа flysystem такое умеют.

wapmorgan » 2017.06.23 13:33

У flysystem только Dropbox. Так что не конкурент. Но, правда, тут идет медленно, т.к. кода слишком много для работы с разными сервисами. И сейчас я пока обдумываю API.
Если честно, мне просто самому хочется сделать такую штуковину. Не обязательно, чтобы её употребляли на сайтах, а просто чтобы можно было из одного вызова утилиты проверить свободное место на всех хранилищах или загрузить туда файлы.

wapmorgan » 2017.06.23 16:50

Хотя не, реал бред. Пойду удалю

Gemorroj » 2017.06.24 15:24

зачем удалять, просто оставь проект) будет как пример кода, да и так будет что вспомнить потом)
Добавлено спустя   1 минуту  17 секунд:
а по поводу ServerVisor/munin. я не хочу munin, я хочу проект на php.

wapmorgan » 2017.06.25 00:59

Gemorroj написал:

зачем удалять, просто оставь проект) будет как пример кода, да и так будет что вспомнить потом)
Добавлено спустя   1 минуту  17 секунд:
а по поводу ServerVisor/munin. я не хочу munin, я хочу проект на php.

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

я хочу проект на php.

да проще будет настроить какой-нибудь munin, я бы сам им пользовался