Утилиты от Etersoft — упрощение с помощью обобщения и не только (Виталий Липатов, OSSDEVCONF-2015) — различия между версиями

Материал из 0x1.tv

(Новая страница: «== Аннотация == ;Докладчик: {{Speaker|Виталий Липатов}} <blockquote> </blockquote> == Видео == {{vimeoembed|134705165|800|4…»)
 
== Аннотация ==
;Докладчик: {{Speaker|Виталий Липатов}}
<blockquote>
По разным причинам в арсенале компании Etersoft оказался набор инструментов, разработанных внутри: менеджер
пакетов epm, архиватор erc, инструмент для ведения параллельного upstream  gitum, средство создания резервных и
архивных копий eterbackup, оболочка над git  giter. В докладе будет рассказано о каждом из этих инструментов, причинах
их появления и пользе от их использования.
</blockquote>

== Видео ==

{{vimeoembed|134705165|800|450}}

<!-- {{youtubelink|}} -->

== Слайды ==
[[File:Утилиты от Etersoft — упрощение с помощью обобщения и не только (Виталий Липатов, OSSDEVCONF-2015).pdf|left|page=-|256px]]

{{----}}

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

При этом создатели инструментов обычно забывают о Unix-way: не используют совокупность инструментов для решения сложной
задачи, а пишут свой велосипед, решающий все задачи сразу. И у них даже есть на это оправдания.

Возьмём к примеру простую задачу разархивирования файла. Да, расширение файла обычно подсказывает, какую программу
задействовать. Её всего лишь надо установить, потом почитать справку и узнать, с каким ключом запускается разархивация.
Можно попробовать пользоваться 7-zip, который поставляется с плагинами, поддерживающими некоторые форматы. А можно
использовать erc. Вне зависимости от формата архива, создание и разархивирование происходит всегда одинаково, одними и
теми же командами. Причём теми, к которым вы привыкли. Причём достигается это простым способом:

<code-bash>
$ erc -h
erc  universal archive manager
Usage: erc [options] [<command>] [params]…
Commands:
  a|-a|create|pack      create archive
  e|x|-e|-x|u|-u|extract|unpack  extract files from archive
  l|-l|list             list archive contents
  t|-t|test|check       test for archive integrity
</code-bash>

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

На самом деле <tt>erc</tt> не самостоятельная программа, а оболочка над программой <tt>patool</tt>, которую разрабатывает <tt>Bastian Kleineidam</tt>, привносящая универсальную обработку параметров.

Такая же история с установкой пакетов в систему. Идея иметь один инструмент для управления пакетами на любой платформе
пришла не сразу, но настойчиво стучалась в дверь. Когда ей открыли, раздалось множество голосов: зачем столько систем,
нужно использовать одну, и не нужно будет изобретать ещё один пакетный менеджер; в MacOS нет пакетов, поэтому там не
нужен пакетный менеджер; опять изобрели велосипед. Всё это говорило о неравнодушии к поднятой проблеме. Зато теперь
можно установить пакет командой <tt>epm install</tt> или <tt>epmi</tt> (как вам удобнее), или определить принадлежность файла в системе к
пакету:

<code-bash>
$ epmqf vim
Note: vim is placed as /usr/bin/vim
 $ rpm -qf /usr/bin/vim
 `предупреждение: файл` /usr/bin/vim `не принадлежит ни одному из пакетов`
Note: /usr/bin/vim is link to /usr/bin/vim-neXtaw
 $ rpm -qf /usr/bin/vim-neXtaw
 vim-X11-neXtaw-7.3.353-alt4.1
</code-bash>
не задумываясь, какую команду нужно применять, и какой сейчас в этой системе моден пакетный менеджер.

Последняя наша разработка на эту тему  набор утилит eterbackup, служащих для создания и обслуживания резервных и
архивных копий. Там удалось применить несколько интересных наработок: начиная от журнального инкрементального
дедублицирующего архиватора zpaq, создаваемого Matt Mahoney, до прореживания старых архивных копий с логарифмическим
интервалом. Так же удалось найти компромисс между простотой доступа к архиву и количеством файлов в одном архиве для
таких данных, как почтовые ящики или домашние каталоги: для каждого каталога, начиная с определённого уровня
вложенности ведётся отдельный инкрементальный архив.

Основная суть все этих разработок, примитивных по сути и написанных на Shell  фиксирование накопленного опыта. При этом
это намного больше, чем «однострочник», решающий какую-либо задачу.

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


== Примечания и отзывы ==
<!-- <blockquote>[©]</blockquote> -->
* http://wiki.etersoft.ru/Utils

<references/>

[[Category:OSSDEVCONF-2015]]
[[Category:Open-source]]

<!-- topub -->

Версия 10:51, 17 ноября 2015

Аннотация

Докладчик
Виталий Липатов.jpg
Виталий Липатов

По разным причинам в арсенале компании Etersoft оказался набор инструментов, разработанных внутри: менеджер пакетов epm, архиватор erc, инструмент для ведения параллельного upstream — gitum, средство создания резервных и архивных копий eterbackup, оболочка над git — giter. В докладе будет рассказано о каждом из этих инструментов, причинах их появления и пользе от их использования.

Видео


Слайды

Утилиты от Etersoft — упрощение с помощью обобщения и не только (Виталий Липатов, OSSDEVCONF-2015).pdf Утилиты от Etersoft — упрощение с помощью обобщения и не только (Виталий Липатов, OSSDEVCONF-2015).pdf Утилиты от Etersoft — упрощение с помощью обобщения и не только (Виталий Липатов, OSSDEVCONF-2015).pdf Утилиты от Etersoft — упрощение с помощью обобщения и не только (Виталий Липатов, OSSDEVCONF-2015).pdf Утилиты от Etersoft — упрощение с помощью обобщения и не только (Виталий Липатов, OSSDEVCONF-2015).pdf Утилиты от Etersoft — упрощение с помощью обобщения и не только (Виталий Липатов, OSSDEVCONF-2015).pdf Утилиты от Etersoft — упрощение с помощью обобщения и не только (Виталий Липатов, OSSDEVCONF-2015).pdf Утилиты от Etersoft — упрощение с помощью обобщения и не только (Виталий Липатов, OSSDEVCONF-2015).pdf Утилиты от Etersoft — упрощение с помощью обобщения и не только (Виталий Липатов, OSSDEVCONF-2015).pdf Утилиты от Etersoft — упрощение с помощью обобщения и не только (Виталий Липатов, OSSDEVCONF-2015).pdf Утилиты от Etersoft — упрощение с помощью обобщения и не только (Виталий Липатов, OSSDEVCONF-2015).pdf Утилиты от Etersoft — упрощение с помощью обобщения и не только (Виталий Липатов, OSSDEVCONF-2015).pdf Утилиты от Etersoft — упрощение с помощью обобщения и не только (Виталий Липатов, OSSDEVCONF-2015).pdf Утилиты от Etersoft — упрощение с помощью обобщения и не только (Виталий Липатов, OSSDEVCONF-2015).pdf Утилиты от Etersoft — упрощение с помощью обобщения и не только (Виталий Липатов, OSSDEVCONF-2015).pdf Утилиты от Etersoft — упрощение с помощью обобщения и не только (Виталий Липатов, OSSDEVCONF-2015).pdf

Расширенные тезисы

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

При этом создатели инструментов обычно забывают о Unix-way: не используют совокупность инструментов для решения сложной задачи, а пишут свой велосипед, решающий все задачи сразу. И у них даже есть на это оправдания.

Возьмём к примеру простую задачу разархивирования файла. Да, расширение файла обычно подсказывает, какую программу задействовать. Её всего лишь надо установить, потом почитать справку и узнать, с каким ключом запускается разархивация. Можно попробовать пользоваться 7-zip, который поставляется с плагинами, поддерживающими некоторые форматы. А можно использовать erc. Вне зависимости от формата архива, создание и разархивирование происходит всегда одинаково, одними и теми же командами. Причём теми, к которым вы привыкли. Причём достигается это простым способом:

$ erc -h
erc — universal archive manager
Usage: erc [options] [<command>] [params]…
Commands:
  a|-a|create|pack      create archive
  e|x|-e|-x|u|-u|extract|unpack  extract files from archive
  l|-l|list             list archive contents
  t|-t|test|check       test for archive integrity

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

На самом деле erc не самостоятельная программа, а оболочка над программой patool, которую разрабатывает Bastian Kleineidam, привносящая универсальную обработку параметров.

Такая же история с установкой пакетов в систему. Идея иметь один инструмент для управления пакетами на любой платформе пришла не сразу, но настойчиво стучалась в дверь. Когда ей открыли, раздалось множество голосов: зачем столько систем, нужно использовать одну, и не нужно будет изобретать ещё один пакетный менеджер; в MacOS нет пакетов, поэтому там не нужен пакетный менеджер; опять изобрели велосипед. Всё это говорило о неравнодушии к поднятой проблеме. Зато теперь можно установить пакет командой epm install или epmi (как вам удобнее), или определить принадлежность файла в системе к пакету:

$ epmqf vim
Note: vim is placed as /usr/bin/vim
 $ rpm -qf /usr/bin/vim
 `предупреждение: файл` /usr/bin/vim `не принадлежит ни одному из пакетов`
Note: /usr/bin/vim is link to /usr/bin/vim-neXtaw
 $ rpm -qf /usr/bin/vim-neXtaw
 vim-X11-neXtaw-7.3.353-alt4.1

не задумываясь, какую команду нужно применять, и какой сейчас в этой системе моден пакетный менеджер.

Последняя наша разработка на эту тему — набор утилит eterbackup, служащих для создания и обслуживания резервных и архивных копий. Там удалось применить несколько интересных наработок: начиная от журнального инкрементального дедублицирующего архиватора zpaq, создаваемого Matt Mahoney, до прореживания старых архивных копий с логарифмическим интервалом. Так же удалось найти компромисс между простотой доступа к архиву и количеством файлов в одном архиве для таких данных, как почтовые ящики или домашние каталоги: для каждого каталога, начиная с определённого уровня вложенности ведётся отдельный инкрементальный архив.

Основная суть все этих разработок, примитивных по сути и написанных на Shell — фиксирование накопленного опыта. При этом это намного больше, чем «однострочник», решающий какую-либо задачу.

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


Примечания и отзывы