Java versioning policy?

2019-02-23 Пенетрантность Oleksandr Gavenko
Кто может прояснить будущую политику версионирования и поддержки Java в Debian?

Согласно:

https://wiki.debian.org/Java

v11 будет в buster.

Как патчи безопасности будут применяться?

Вкладываются в Java RedHot/IBM, SAP, Azul, открывая при этом доработки.

Не ясно из каких источников будут выгребать патчи.



Что делать, если хочется разных версий? Для эксперимертов.

Я вижу:

* https://adoptopenjdk.net/releases.html
* https://www.azul.com/downloads/zulu/zulu-linux/

Раньше версии были растянуты на года и потому среди пакетов были текущая и
предыдущая.

Как поступают с Python? Там такая же проблема - много релизов, как их
притащить в Debian для тестирования? Не хочеться "скачать" трояны из Инета,
нужно место, которому бы доверял...

-- 
http://defun.work/



Re: LXC vs Docker и форматы контейнеров

2018-12-29 Пенетрантность Oleksandr Gavenko
On 2018-10-11, Oleksandr Gavenko wrote:

> * Есть ли локальные запускалки контейнеров, альтернативные Docker?

https://discuss.linuxcontainers.org/t/lxc-3-0-0-has-been-released/1449

New OCI template

This adds support for creating application containers from OCI formats.
Examples:

create a container from a local OCI layout in …/oci:

  sudo lxc-create -t oci -n a1 -- -u oci:../oci:alpine

create a container pulling from the docker hub.

  sudo lxc-create -t oci -n u1 -- -u docker://ubuntu


-- 
http://defun.work/



Re: LXC vs Docker и форматы контейнеров

2018-10-20 Пенетрантность Oleksandr Gavenko
On 2018-10-15, Tim Sattarov wrote:

> рекомендую послушать вот этого товарища:
> https://www.youtube.com/watch?v=xXWaECk9XqM одно из лучших на мой взгляд
> обозрений контейнерных технологий

Интересный парень. Автор dtrace...

Он кстати говнит Linux как среду для контейнеров, потому как из мира Solaris
Zones и фанат нативного исполнения в cloud (в том числе стоит за компанией,
предоставляющий клауд на SmartOS). В других видео он выражался что важнее
libc, а не ядро. И что будущий формат контейнеров - ELF.

Я посмотрел другие его выступления и очень близко к душе "припало" его
мета-наблюдения по отладке https://www.youtube.com/watch?v=30jNsCVLpAE

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

-- 
http://defun.work/



Re: LXC vs Docker и форматы контейнеров

2018-10-11 Пенетрантность Oleksandr Gavenko
On 2018-10-11, Oleksandr Gavenko wrote:

> * Есть ли локальные запускалки контейнеров, альтернативные Docker?
>
Разработка rkt остановилась (https://news.ycombinator.com/item?id=17496877):

> Yes, they announced at the Red Hat summit that they'll be phasing out
> development of rkt, though of course will do nothing to stop outside
> development

Т.е. напугали Docker Inc и умерли.

Как дела с cri-o (It is a lightweight alternative to using Docker as the
runtime for kubernetes) пока не ясно.



> * Правильно ли впихивать 10 гигабайт в контейнер или это должен быть Alpine
>   (100 mb с lighttpd) или CoreOS (500mb)?
>
> Не будет Debian без Python и без 1GB места в голом виде?
>
Совсем недавно Minimal Ubuntu (29MB):

https://blog.ubuntu.com/2018/07/09/minimal-ubuntu-released

Также есть RancherOS, но она чисто под Docker (в ней init 1 == Docker xD).

И есть еще http://www.projectatomic.io/

CoreOS - без пакетов, просто сборка с командами docker, docker-compose,
docker-machine.

-- 
http://defun.work/



Re: LXC vs Docker и форматы контейнеров

2018-10-11 Пенетрантность Oleksandr Gavenko
Приношу извинения за приват. В Gnus не заходил пол года и нажал R, вместо F...

Вы уже ответили в приват. Я не переношу ответ сюда, соблюдая приватность
пересылки.

Если автор выскажет желание - я могу его опубликовать. Сам вопрос:

On 2018-10-11, Stanislav Vlasov wrote:

> Более того, у нас на работе мастер-образы для виртуалок в kvm
> создаются на базе соответствующих образов докера путём доустановки
> нужных пакетов в распакованном chroot.
> Это оказывается быстрее и удобнее, чем debootstrap и тем более, чем руками.

Я хочу подробностей...

В оригинальном письме об этом спрашивал.

Как запаковывать? Какие форматы архивов/контейнеров?

Вы виртуалки для KVM подготавливаете как хостер или для запуска конечных
приложений?

Это какой-то cow / qcow / qcow2 / qed / raw / vmdk / etc блоб?

Я так полагаю что они все "совместимы" и даже tar для этого достаточен (не
учитыая что теряем разметку хранилища и файловую систему). Важет только
контент в файлах и имена/атрибуты файлов.

Т.е. можно "распаковать" любой формат в chroot, внести модификации на уровне
контента файлов и засунуть результат обратно в иной блоб.

Мне кажется что сами форматы эквивалетнты, у каждого просто свои особенности.

Каким софтом можно создавать и модифицировать? Какие ключевые слова что бы
самому поискать?

> Ну и окончательная конфигурация (хостнейм, сеть, пароли, ключи)
> создаётся после раскатывания образа при помощи runc.

Если runc - то значит у Вас контейнеры все же?

https://github.com/opencontainers/runc
CLI tool for spawning and running containers according to the OCI specification

Т.е. Вы используете контейнеры запакованые согласно OCI specification, а не
докеровкие форматы?

И инфраструктурно - кто закускает runc и как описана схема развертывания
(что/откуда, сколько и куда)? Есть ли динамизм (запусть N штук), в файле под
контролем версий или как запись в БД?



Общий вопрос: я не понимаю необходимости держать в контейнерах. Т.е. зачем
покупать одну толстую машину и нарезать контейнеры, если можно купить 10 машин
для каждого приложения.

Из того что я вижу - менеджер контейнеров имеет унифицированое API. А вот
виртуалки на проде будут от AWS, Google Cloud, DigitalOcean / etc - у каждого
свое API для оркестрации.

Аргумент что RAM лучше экономится с контейнерами пока выглядит слабо мне...

-- 
http://defun.work/



Re: LXC vs Docker и форматы контейнеров

2018-10-11 Пенетрантность Oleksandr Gavenko
Приношу извинения за приват. В Gnus не заходил пол года и нажал R, вместо F...

Вы пока не отвечали, если будет интересно - с нетерпением жду в рассылке...

On 2018-10-11, Victor Wagner wrote:

> В Thu, 11 Oct 2018 01:29:09 +0300
> Oleksandr Gavenko  пишет:
>
>> Всевозможные User-mode Linux, OpenVZ, Xen и т.д. я пропустил. Его
>> нужно было либо на голом железе крутить или с особыми ядрами. В общем
>> VistualBox можно кликать, экономя время и мозги.
>>
>
> Правильно поставленный вопрос - это больше половины ответа. У докера
> есть своя область применения, у LXC-своя. А есть вещи (вроде того же
> запуска skype) для которых LXC - это избыточно тяжеловесное решение, и
> надо испольовать что-то типа firejail или chroot.
>

Это потому что избыточно тянуть системные библиотеки (200 MB зависимостей)
когда просто нужно оградить забором?

> К сожалению, из огромного письма, перечисляющего разные свойства
> технологий (в которые почему-то вместе с технологиями изоляции и
> виртуализации попали технологии массового управления системами -
> ansible и CFEngine) я так и не понял чего хочется получить.
>
Мне не ясно нужно ли тратить время на ansible, если я буду упаковывать все в
контейнеры, а остальное что не пакуется предоставляется провайдер (например
Amazon Relational Database Service).

Провиженинг Vagrant коробок я делаю с помошью bash/sed, т.к. Puppet/Salt
требует отдельного сервера (мне не нужно дополнительных абстракций), а Ansible
и CFEngine умеет без сервера, но требуют инталяций в коробке. Мне не нравится
что 50 MB Python доставится что бы только поменять какую то строчку в
/etc/bla-bla.d

С другой стороны работать с структурироваными форматами (ini/yaml/json/xml) из
sed - неблагодарный труд и лишний Python/Ruby не так неприятен ))

> 1. Обеспечить работу недоверенных приложений...[SKIP]
>
Принято!

> Решение на базе LXC или LXC+Ansible здесь может оказаться проще потому
> что не надо приноравливаться к тому как сделали разработчики докера, а
> можно сделать как кажется нужным в конкретной ситуации.
> LXC-низкоуровневый конструктор, этим и плох, этим и хорош.
>
А как хостить LXC? С kubernates к примеру есть способ описывать деплои в
терминах Docker-контейнеров.

Это предполагается что нужно свое решение делать, набрав пул виртуальных
машин?

С kubernates хостеры поддерживают сервера / балансировщики / хранилища
настроек вне кластера контейнеров и зачастую бесплатно.

Для LXC как я понимаю есть LXD и его крутить придется вручную и еще за хостинг
платить?

> 2. Обеспечить разработку и тестирование программы на возможно широком
> спектре дистрибутивов Linux при ограниченных аппаратных ресурсах.
> Вот здесь, на мой взгляд, LXC гораздо лучше. Хотя на практике часть
> тестовых систем все равно приходится держать в KVM, несмотря на
> его более высокий оверхед поскольку необходимо бывает тестироваться с
> их родными ядрами. Какой-нибудь Oracle Linux unbreakable kernel или
> Astra Smolensk с ее мандатным доступом.
>
Пока не знаю заведется ли Jenkins в паре с LXC.

Всякие CircleCI, Bitbucket Pipelines, Google cloud-build работают только с
образами Docker...

> 3. То же что и 2, но поддерживаемых линуксов меньше десятка, а основной
> упор в переносимости надо делать на системы с другими ядрами. Тогда
> проще не париться и все держать в KVM/VirtualBox/VMWare. Необходимость
> менеджить две системы изоляции/виртуализации обойтется дороже, чем
> оверхед от загоняния в виртуальную машину того, что могло бы жить в
> контейнере.
>
Принято!

> 4. Поиграться с готовыми образами систем/приложений. Вот тут докер вне
> конкуренции. Потому что у него есть DockerHub где этих образов море.
> Хотя тут уже надо смотреть в сторону убунтовских snap. Видимо, в ubuntu
> эту технологию стали развивать когда уткнулись в ограничения докера.

Я позно попал на бал упаковки всего узерспейс окружения и начал с Vagrant.

У них есть свой хаб https://app.vagrantup.com с одной бедой - append only +
нету проверок издателя. Т.е. нельзя "убить" проблемный релиз и все образы
недоверенные и без какиз либо гарантий. Они не хотят менеджить гарантии кто
есть кто, как в докер-хаб.

Если смотреть на проекты, то пока еще можно встретить запаковки в Vagrant что
бы поиграться, но все больше все скатываются в Docker, убивая популярность
Vagrant.

-- 
http://defun.work/



LXC vs Docker и форматы контейнеров

2018-10-10 Пенетрантность Oleksandr Gavenko
Всевозможные User-mode Linux, OpenVZ, Xen и т.д. я пропустил. Его нужно было
либо на голом железе крутить или с особыми ядрами. В общем VistualBox можно
кликать, экономя время и мозги.

Идея chroot стала ясна после Linux From Scratch, аж захотелось скайп там
запускать.

Потом пришел LXC, но его нужно было конфигурировать через текстовые файлы. Я
не осилил настройку бриждей.

Vagrant + VirtualBox мне абсолютно понятен, но тяжеловесен и узкоприменим.
Напишешь скрипт развертывания - а к проду он не применим, только локально
поиграться ((

Всевозможные Chief, Ansible, Puppet, Salt, CFEngine я пропустил, поигравшись с
Ansible и CFEngine только потому что оба в дистрибутиве Alpine, а последний
еще не тянет Ruby/Python.

Зачем настраивать коробку очередным YAML DSL, если можно ее загрузить
контейнерами. Как для обывателей - вставил в розетку и работает ))

Мания на контейнеры пошла с 2013: https://www.youtube.com/watch?v=wW9CAH9nSLs

Из контейнерного хайпа мне нравится только что можно собирать юзерспейс
"дистрибутив" с версиями всего внутри как сам захочишь.

Вопросы (концептуальные, интересно почему, а не юзай продукт С потому что мне
нравится):



* Во что оборачивать контейнеры? Вроде есть:

  - https://github.com/moby/moby/tree/master/image/spec + 
https://github.com/docker/distribution/tree/master/docs/spec
  - https://github.com/opencontainers/image-spec

и докеровский Manifest Version 2, Schema 2 - самый популярный.

По идее это tar файл, только что то для его сборки долго требовался
root-сервис от Docker и его все ненавидели, кто следует тру-философии.

Вроде как все облачные хостеры его поддерживают.

Правильно что никто не стремится поддердивать другие форматы? Или есть
альтернатива и при том рабочая?



* Стоит ли заморачиваться с LXC для развертывания локальных демо-стендов? Как
  писал выше я умею варить Vagrant+VirtualBox. Пару лет назад настройка
  бриждей была непосильна разуму.

Docker + Compose - вроде функциональная альтернатива. Я еще не понимаю как там
думать в терминах портов, с VirtualBox я работал в терминах IP адресов, что
приближено к реальности...



* Есть ли локальные запускалки контейнеров, альтернативные Docker?



* Правильно ли впихивать 10 гигабайт в контейнер или это должен быть Alpine
  (100 mb с lighttpd) или CoreOS (500mb)?

Не будет Debian без Python и без 1GB места в голом виде?



* Микросервис - это потому что выставляется немного HTTP REST эндпоинтов,
  связаных функционалом?

А то когда видишь "микросервисный" Java-jar файл в 100 MB в гигабайтном
убунтовом контейнере - дисонанс с моим калькулятором МК-61 с 104 однобайтными
ячейками памяти...



* Зачем вообще разбираться с Puppet, Ansible, Salt, CFEngine и т.д., если все
  пакуется в контейнеры?

Что бы менеджить оставшийся не "микросервисный" софт (базы данных, файерволы и
остальное, что требует больше чем RAM+CPU)?



* Можно ли жить без Docker?

По идее Docker не нужен, нужен только формат пакета и "исполнятор". Запускать
как бы и раньше умели другими технологиями... Прибавочная стоимость в
оркестрации, а не голом запускании...

По идее тут будет у нас https://packages.debian.org/source/sid/kubernetes

Да и сам Докер не без приключений добрался в Debian
https://www.collabora.com/news-and-blog/blog/2018/07/04/docker-io-debian-package-back-to-life/

-- 
http://defun.work/



Re: Долговечность SSD

2017-08-02 Пенетрантность Oleksandr Gavenko
On 2017-08-01, Andrey Jr. Melnikov wrote:

>> Также светиться размер блока в 8 KiB для Samsung. Это для записи. Стирание у
>> TLC вроде 1.5 GiB.
> Стирание (как впрочем и запись) у флешей всегда идет страницами. С
> контроллером, который знает как именно у него организованна память и как её
> надо стирать-перезаписывать, знание размера блока в обычной жизни не нужно.

Описался, 1.5 MiB.

-- 
http://defun.work/



Re: Долговечность SSD

2017-08-02 Пенетрантность Oleksandr Gavenko
On 2017-08-01, Andrey Jr. Melnikov wrote:

>> Также светиться размер блока в 8 KiB для Samsung. Это для записи. Стирание у
>> TLC вроде 1.5 GiB.
> Стирание (как впрочем и запись) у флешей всегда идет страницами. С
> контроллером, который знает как именно у него организованна память и как её
> надо стирать-перезаписывать, знание размера блока в обычной жизни не нужно.

Я ошибся 1.5MiB.

-- 
http://defun.work/



Re: systemd не поднимает интерфейс из /etc/network/interfaces

2017-07-30 Пенетрантность Oleksandr Gavenko
On 2017-07-30, yuri.nefe...@gmail.com wrote:

>> iface eth1 inet static
>>
>
>  Ещё надо указать
>
>  auto eth1
>
>  или
>
>  allow-hotplug eth1

Упустил. Давненько не настраивал...

-- 
http://defun.work/



Re: systemd не поднимает интерфейс из /etc/network/interfaces

2017-07-30 Пенетрантность Oleksandr Gavenko
On 2017-07-28, Tim Sattarov wrote:
>>
> Нескромный вопрос: а он прописан как auto ?
>
> On 28/07/17 04:28 PM, Oleksandr Gavenko wrote:
>> В виртуалочке один интерфейс NAT в мир (разрешаеться по DHCP наверно), другой
>> **статически** описан в /etc/network/interfaces и не инициализируеться при 
>> старте.

iface eth1 inet static

-- 
http://defun.work/



Долговечность SSD

2017-07-30 Пенетрантность Oleksandr Gavenko

http://www.samsung.com/us/business/oem-solutions/pdfs/V-NAND_technology_WP.pdf

Есть слайдик с retention 1 year и 3 months. Как то не понятно что это
означает.

По форумам читал что действительно зарядик стекает и ECC применяется, особенно
важно для TLC.

Т.е. SSD как бекап - опасный носитель, требующий питания и перезаписи
существующей информации контроллером в офлайн?

Также светиться размер блока в 8 KiB для Samsung. Это для записи. Стирание у
TLC вроде 1.5 GiB.

Может быть кеш + контроллер пишет "оптимально" через дополнительный маппинг и
не нужно размер блока FS подгонять (к 8 в случае Samsung).

Все что читаю - типа ненужно замарачиваться, все FS уже давно по умолчанию
блок в 4k делают.

Также типа не нужно играться с over provisioning на современных SSD (типа
держать 10% пустым что б продлить жизнь). Типа размеры в 120 или 240/250
потому что кусочки от 128 и 256 - как раз используються для увеличения срока
жизни в случае нехватки места для записи.

-- 
http://defun.work/



systemd не поднимает интерфейс из /etc/network/interfaces

2017-07-28 Пенетрантность Oleksandr Gavenko
В виртуалочке один интерфейс NAT в мир (разрешаеться по DHCP наверно), другой
статически описан в /etc/network/interfaces и не инициализируеться при старте.

Комадной:

  sudo /sbin/ifup eth1

поднимаеться. Это в Jessy уже не используеться /etc/network/interfaces ?

Или нужно поколдовать с systemd?

-- 
http://defun.work/



Re: Установка эмулятора Windows для приложения

2017-07-07 Пенетрантность Oleksandr Gavenko
On 2017-07-07, Victor Wagner wrote:

> Недостатки - нужна копия Windows, работает медленнее, про 3d-графику
> можно на ближайшие пару лет забыть.

Вот только просмотрел:

https://level1techs.com/video/gpu-passthrough-virtualization-ryzen-now-working

Не на всех конфигурациях и моделях, но реально пробросить GPU из Linux в
Windows.

-- 
http://defun.work/



Re: Стратегия поддержания резервных копий. Деградация носителей.

2017-07-07 Пенетрантность Oleksandr Gavenko
On 2017-07-07, Oleksandr Gavenko wrote:

> В случае ZFS, Btrfs скрабинг будет выполняться по используемым блокам, что
> эффективней чем в случае md сканировать весь массив. И с md нет контрольных
> сумм что бы выяснить какой диск обманывает.

Интересно, восстановление в случае упавшего диска в ZFS также затронет только
используемые блоки? Ведь эта оптимизация на уровне FS, где присутствует
необходимая информация. Это должно сэкономить время восстановления в 2-3 и
более раз в зависимости количества "свободного" места...

-- 
http://defun.work/



Re: Стратегия поддержания резервных копий. Деградация носителей.

2017-07-07 Пенетрантность Oleksandr Gavenko
On 2017-06-23, Oleksandr Gavenko wrote:

> Тут писали про CD/DVD, флешки, диски.

https://en.wikipedia.org/wiki/M-DISC

  Millenniata testing found that M-Disc DVDs are more durable than
  conventional DVDs. "The discs were subject to the following test conditions
  in the environmental chamber: 85°C, 85% relative humidity (conditions
  specified in ECMA-379) and full spectrum light".[9][10] But according to a
  test of the French National Laboratory of Metrology and Testing at 90 °C and
  85% humidity, for 1,000 hours, the DVD+R with inorganic recording layer such
  as M-DISC showed similar deterioration in quality as other conventional
  discs with an organic recording layer, with a maximum lifetime of below 250
  hours.[11]

Хоть и рекламируют 1000 лет не все так радужно даже для любителей лазерных
дисков. В отличии от лент, повторное использование невозможно.

Т.е. нужно записывать с кодом корекции и периодически проверять и например раз
в 10 лет переписывать на новый носитель.

> Деградация носителей - обычный процес.

Еще почитал, таки есть понятия:

* https://en.wikipedia.org/wiki/Data_degradation

* https://en.wikipedia.org/wiki/Data_scrubbing

  error correction technique that uses a background task to periodically
  inspect main memory or storage for errors, then correct detected errors
  using redundant data in the form of different checksums or copies of data.
  Data scrubbing reduces the likelihood that single correctable errors will
  accumulate, leading to reduced risks of uncorrectable errors.

По заявлениям Wikipedia md, Btrfs, ZFS предоставляют on demand проверку
протухших бит. Как например:

https://raid.wiki.kernel.org/index.php/Scrubbing
  A RAID array can suffer from sleeping bad blocks. i.e. blocks that you
  cannot read, but normally you never do (because they haven't been allocated
  to a file yet). When a drive fails, and you are recovering the data onto a
  spare, hitting that sleeper can kill your array. For this reason it is good
  to regularly (daily, or weekly, maybe monthly) read through the entire array
  making sure everything is OK.

  echo check > /sys/block/mdX/md/sync_action
  echo repair > /sys/block/mdX/md/sync_action

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

  
https://unix.stackexchange.com/questions/105337/bit-rot-detection-and-correction-with-mdadm

Ведь если в RAID5 будет bit flip или в RAID 6 disk failure + bit flip, то
выяснить на каком диске произошел сбой - не будет возможн и что бы
проголосовать за правильный набор дисков нужна контрольная сумма.

В случае ZFS, Btrfs скрабинг будет выполняться по используемым блокам, что
эффективней чем в случае md сканировать весь массив. И с md нет контрольных
сумм что бы выяснить какой диск обманывает.

https://unix.stackexchange.com/questions/137384/raid6-scrubbing-mismatch-repair
  It is possible in theory: the data+parity gives you three opinions on what
  the data should be; if two of them are consistent, you can assume the third
  is the incorrect one and re-write it based on the first two.

  Linux RAID6 does not do this. Instead, any time there is a mismatch, the two
  parity values are assumed to be incorrect and recalculated from the data
  values. There have been proposals to change to a "majority vote" system, but
  it hasn't been implemented.

  The mdadm package includes the raid6check utility that attempts to figure
  out which disk is bad in the event of a parity mismatch, but it has some
  rough edges, is not installed by default, and doesn't fix the errors it
  finds.

https://serverfault.com/questions/391922/linux-mdadm-software-raid-6-does-it-support-bit-corruption-recovery
  Linux software RAID is not going to protect you from bit corruption and
  silent data corruption is a well known issue with it. In fact, if the kernel
  is able to read the data from one disk it would never know that it is bad.
  The RAID only kicks in if there is an I/O error when reading the data.

  If you are worried about data integrity you should consider using a file
  system like Btrfs or ZFS that ensure data integrity by storing and verifying
  checksums. These file systems also take care of the RAID functionality, so
  you don't need the kernel software raid if you go that way.

Так что md в RAID6 поступает паскудно.

Итого размными доступными решениями являються только Btrfs + ZFS.

Т.е. RAID функциональность нужно встраивать в FS для эффективной борьбы с
протуханием битов. Контрольные суммы на хешах лучше сравнения данных и parity
и отловят double flip`ы и scrubbing будет "давать" 1/2^256 гарантию сохранности
блока.

Также:

https://superuser.com/questions/1131701/btrfs-over-mdadm-raid6
  In 2016, Btrfs RAID-6 should not be used.

  You can see on the Btrfs status page that RAID56 is considered unstable. The
  write hole still exists, and the parity is not checksummed. Scrubbing will
  verify data but not repair a

Re: В stretch отсутствует virtualbox

2017-07-07 Пенетрантность Oleksandr Gavenko
On 2017-07-06, Alexander Galanin wrote:

> Как оказалось, есть ещё одна проблема: в репозитории virtualbox.org нет
> гостевых модулей, т.е. того, что лежит в пакете virtualbox-guest-dkms. Модули
> для хоста есть, а для гостя - отсутствуют.

И нету проброски USB 2.0 в гостевую ОС. Нужно качать с сайта Oracle
дополнительный модуль для VirtualBox.

Я шью всякое китайское дерьмо через WinXP в виртуалке, т.к. моддеры и китайцы
выкладывают на стремных ресурсах свои прошивальщики. Безопасность прошивки для
тех Android устройств не была важна.

-- 
http://defun.work/



Re: NAS

2017-07-06 Пенетрантность Oleksandr Gavenko
On 2017-07-07, Oleksandr Gavenko wrote:

> Например RAID 5 из 5 шт. Запись 1 блока требует 4 паралельных чтения (место
> куда писать не нужно считывать) и 2 паралельных записей (сами данные и
> скоректированую парность), чтение может быть в 5 раз быстрее, это все в
> теории...

Неправда, достаточно 2 чтения - старое место + парность и 2 записи - новые
даные и парность.

-- 
http://defun.work/



Re: NAS

2017-07-06 Пенетрантность Oleksandr Gavenko
On 2017-07-06, Ivan Shmakov wrote:

>  > — RAID, кроме mirror, не дают повышения надёжности (упал диск —
>  > потерял часть данных, упал диск в рэйде — рейд может и не
>  > пересобраться, потеряются все данные, упало два — капут).  Это верно?
>
>   Все RAID, кроме RAID0, именно что повышают надежность.
>   (RAID0, напротив, повышает производительность в ущерб
>   надежности.)

И все же Вы недоговариваете про скорость чтения, подчеркивая только
"надежность".

Зеркало в теории даст прирост на чтение в X раз, если **работать из X
потоков** на Х дисках.

https://superuser.com/questions/385519/does-raid1-increase-performance-with-linux-mdadm

Т.к. на вертящихся дисках нету смысла последовательные данные читать с разных
дисков то в `md` драйвере скорее всего не делали round robin для RAID 1. Хотя
это уже имеет смысл для SSD носителей... Я подробностей не знаю и md может
быть туповатый и не дать x2 даже при чтении двумя потоками...

Также RAID 5 и 6 в зависимости от числа носителей дают буст в IOPS на
чтение.

Например RAID 5 из 5 шт. Запись 1 блока требует 4 паралельных чтения (место
куда писать не нужно считывать) и 2 паралельных записей (сами данные и
скоректированую парность), чтение может быть в 5 раз быстрее, это все в
теории...

Проверяют ли драйвера RAID на чтении в случае зеркала совпадение обоих блоков
и в случае 5 / 6 - парность? Наверно чексумы эфективнее считать чем повышеное
количество байтов ганять... Что скажет сообщество?

-- 
http://defun.work/



Re: Стратегия поддержания резервных копий. Деградация носителей.

2017-07-06 Пенетрантность Oleksandr Gavenko
On 2017-06-23, Oleksandr Gavenko wrote:

> Флешки тоже дохнут. Стандартные заявления - 10 лет заряд стекает с
> транзистора.

Полезное видео про SSD носители, MLC, TLC и over provisioning:

  https://www.youtube.com/watch?v=-XZNr7mS0iw

Вывод - нужно держать минимум 10% места свободным на носителе. А лучше 20%.

-- 
http://defun.work/



Re: Стратегия поддержания резервных копий. Деградация носителей.

2017-06-30 Пенетрантность Oleksandr Gavenko
On 2017-06-29, Fedor Zuev wrote:

>   badblocks -n ?

Интересно, но не развернутой FS:

  -n

  Use non-destructive read-write mode. By default only a non-destructive
  read-only test is done. This option must not be combined with the -w option,
  as they are mutually exclusive.

В случае отключения питания могут быть повреждены как данные так и метаданные,
л журнале FS утилита не знает...

А вот перед началом использования чистого раздела - вполне можно замарочиться.

-- 
http://defun.work/



Re: Стратегия поддержания резервных копий. Деградация носителей.

2017-06-26 Пенетрантность Oleksandr Gavenko
On 2017-06-26, Михаил Касаджиков wrote:

> Это уже другая тема. И remap происходит при записи. При невозможности чтения
> мы просто получим ошибку чтения, какая-то там ATA_ERROR.

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

Я к тому имеет смысл переписывать с одного носителя на другой (магнитные
диски) или подержал 3 года носитель, перенес на другой и про первый забыл?

Или поступать как с лентами - попеременно между лентами гонять данные, что бы
освежать намагниченность?

-- 
http://defun.work/



Re: Плееры на Linux

2017-06-25 Пенетрантность Oleksandr Gavenko
On 2017-06-25, artiom wrote:

>> Вам не говорили что сервер сканирует музыку в выбраных каталогах? С
>> произвольнго места не проиграть.
>> 
> В смысле, я не могу "ползунок" двигать?

В смысле скачали файлик и вместо послушать - запихиваете его в какой-то
каталог и заставляете сервер пересканировать файлы.

-- 
http://defun.work/



Re: ZFS

2017-06-25 Пенетрантность Oleksandr Gavenko
On 2017-06-25, artiom wrote:

> Так рейд поломан будет, он же собраться не должен.

А что на зеркале чтение идет с 2 дисков и затем сравнивается? По причине
производительности мне казалось что чтение будет ити попеременно с накопителей
но никогда одновременно не читаться... 

И если это не метаданные - то ошибочка будет себе жить-поживать. Да еще разные
значения выдавать при разных чтениях...

-- 
http://defun.work/



Re: Стратегия поддержания резервных копий. Деградация носителей.

2017-06-25 Пенетрантность Oleksandr Gavenko
On 2017-06-25, Михаил Касаджиков wrote:

> Что так, что эдак, всё равно файл нужно полностью прочитать. И тут не сильно
> большая разница между чтением с проверкой целостности средствами самой ФС и
> «md5sum -c».

Повторюсь с вопросом, а то фокус сдвинулся. Только прочитать достаточно?

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

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

Немножко размыто понятие между бекапом и архивом. Есть поговорка "Backups are
for recovery; archives are for discovery".

Фоточки смотрятся раз в 5 лет, а потерять до смерти жалко. Пополняються не
часто и дублируються изредка на внешние носители инкриментно. Не похоже на
бекап, т.к. не регулярно переношу. Не похоже на архив, т.к. оригинал не
удаляю.

-- 
http://defun.work/



Re: Плееры на Linux

2017-06-25 Пенетрантность Oleksandr Gavenko
On 2017-06-25, artiom wrote:

>> А также имеет киллер-фичу, мне потребовавшуюся - по Ctrl+1 начало, по Ctlr+2
>> отметить конец области для проигрывания по циклу и по Ctrl+3 продолжить
>> играть обычно. При разучивании языков очень класно!
>> 
> Мне не потребуется: у меня по этим сочетаниям раскладки переключаются. :-)
>
~/.xmodmaprc:

  keycode 133 = Super_L
  keycode 134 = Hyper_L
  ! keycode 135 = Menu
  clear mod3
  clear mod4
  add mod3 = Super_L
  add mod4 = Hyper_L

С двумя дополнительными модификаторами весело жить. Безусловное переключение
языков по LWin+1/2/3.

На контрол клавосочетания вешать незя, Emacs накажет ))

>> С MPD можно мучиться, если секса в жизни мало. По мне проще когда запускаешь
>> приложение в котором кнопочка "+" и через секунду Ваш файл играет.
>> 
> Одни хвалят, другие мучаются, странно...

Так они уже получили удовольствие, потому и рекомендуют.

Вам не говорили что сервер сканирует музыку в выбраных каталогах? С
произвольнго места не проиграть.

Работа с кросплатформенными решениями позволяет себя чуствовать более
комфортнее в форточке.

-- 
http://defun.work/



Re: Плееры на Linux

2017-06-25 Пенетрантность Oleksandr Gavenko
On 2017-06-19, Артём Н. wrote:

> Подскажите, чем удобно играть музыку "в фоне"?

Сейчас у меня Audacious, ранее был VLC из-за вседоступности.

Audacious также кросплатформинен.

Библиотека в VLC это ужас. И в инет он отдает что я слушаю, клацанье галочек
почему то не отключает загрузку обложек.

У Audacious самой библиотеки тоже нету, но он сохраняет содержимое плейлистов
меджу перезапусками и даже положение проигрывания.

А также имеет киллер-фичу, мне потребовавшуюся - по Ctrl+1 начало, по Ctlr+2
отметить конец области для проигрывания по циклу и по Ctrl+3 продолжить
играть обычно. При разучивании языков очень класно!

С MPD можно мучиться, если секса в жизни мало. По мне проще когда запускаешь
приложение в котором кнопочка "+" и через секунду Ваш файл играет.

-- 
http://defun.work/



Альтернативы Fvwm?

2017-06-25 Пенетрантность Oleksandr Gavenko
FVWM is in use since 2008. Как подумаю о многомониторном setup или
переворачивании экрана - мурашки по коже, сколько мануалов придется читать...

Также древние баг с фокусом в Java GUI коде не будет фикситься, Fvwm
разработичи гордые и не желают встраивать обходной код, а кликать мышкой для
получения фокуса ввода 10 лет подряд - глупо.

И во встроеном модуле переключения между окнами "странный" алгоритм
сортировки, по 1 нажатию не всегда попадаешь к предыдущему окну.

Что есть:

* nodm + ~/.xinitrc, отсюда

setxkbmap us,ru,ua
kbdd
xmodmap ~/.xmodmaprc &
fvwm &
goldendict &
/usr/lib/notification-daemon/notification-daemon &
exec xterm -geometry 80x42 -name "xinitrc" -title "*** xinitrc ***" -bg 
bisque -e bash -i

* из "виджетов" xclock -digit  + скрывающийся FvwmPager.
* меню через debian-menu
* навигация между десктопами и приложениями (alt+TAB) через клаву
* запуск приложений по Win+R через gmrun.
* переключение языков я делаю через dbus + kbdd. kbdd поддерживает
  индивидуальную раскладку по каждому приложению.

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

На что бы перейти не забивая рабочее пространство свистелками и гигабайтами
графики?

Вроде как тайловость и все таже минималистичность будут даже "прогресом" над
текущим сетапом.

Я люблю автопродолжения и историю (например в запуске по Win+R). 

Не против скрываемых виджетов и помагалок, сейчас уже все знать не сможешь. Но
было бы не плохо что бы виджеты были "программируемыми" / настраиваемыми, но
не на Haskel...

В Fvwm есть возможность читать+интерпретировать вывод сторонней команды, но
внешний скрипт не будет иметь програмный доступ к списку окон и геометрии.
Т.е. расширять функционал получаеться только через Perl...

В целом задача уйти с Fvwm добавив больше контроля над положение окон с
клавиатуры (тайловость), получать помощь от WM/DM из виджетов/менюшек когда
дополнительные экраны цепляються, оставив возможность составления своих
менюшек и програмные приколы типа раскрывать специфические приложения на весь
экран автоматом.

-- 
http://defun.work/



ВыскоDPI экраны в вертикальном режиме.

2017-06-25 Пенетрантность Oleksandr Gavenko
Так уж повелось что 9:16 - стандарт видео контента и разрешения
у производителей соответствующие.

Ранее subpixel rendering был актуалный, пока DPI был 70-90 и поворачивать
экран вертикально - терять в четкости.

Сейчас DPI 140-200 это нормально и нужды в subpixel rendering особо нету.

В процесе разработки приложений полезнее число строк кода. Вертикальное
положение экрана дает это.

Как X-window расскакзать что нужно включаться вертикально? Передают ли мониторы
по интерфейсу свое положение?


-- 
http://defun.work/



Re: Стратегия поддержания резервных копий. Деградация носителей.

2017-06-25 Пенетрантность Oleksandr Gavenko
On 2017-06-24, Sergey Matveev wrote:

> Лично у меня две вот таких железки дома:
> http://netberg.ru/products/netberg-demos-p200-m3/

Посмотрел на современное железо, не понятно что с поддержкой на "серверных
материнках" интерфейсов M.2 NVMe:

https://en.wikipedia.org/wiki/M.2
https://en.wikipedia.org/wiki/NVM_Express

Мне машинка под разработку/компилирование и носители на этом интерфейсе -
самое оно, вот цифирки:

1,775/560 MB/s and 128.5K/128K IOPS

http://ark.intel.com/products/94924/Intel-SSD-600p-Series-512GB-M_2-80mm-PCIe-3_0-x4-3D1-TLC
https://www.amazon.com/dp/B01K375CDY

-- 
http://defun.work/



Re: NAS

2017-06-24 Пенетрантность Oleksandr Gavenko
On 2017-06-24, Артём Н. wrote:

>> Когда говорят о надожности в RAID - приводят пример легитимной операции
>> удаления файла )) Где же надежность?
>>
> Она легитимна, хотя и может быть нужный файл удалён умышленно, это крайне 
> маловероятно.
> Вопрос в том, что будет, если один из пачки дисков откажет, и что выдержит 
> рейд.
>
Если API позволяет удлить файл, то самый важный файл будет удален. Закон Мерфи.

Я отписался только из-за терминологии и ожиданиях, которое люди вкладывают,
когда говорят о RAID. Ваше реакция - типична на мое замечание и пример с
удалением файла не убеждает отказаться от "надежности" и начать говорить об
"доступности". Как хотите, по сути это философская позиция ))

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

>> Дома за доступностьплатить нет смысла. А за надежность есть.
>>
>> Но достигается надежность избыточностью, бекапами и архивированием.
>>
> С NAS?
> Репликацией в облако?

Посудите сами, что Вы хотите? Уменьшить цену поддержки данных NAS?

В RAID Вы выжимаете ресурс у 2-3 дисков одновременно. Без RAID Вы держите 1
диск и раз в день/месяц делаете копию, как пожелаете.

Время тратите на средства резервирования данных, вместо настройки RAID.

А делать то копию все равно нужно, если стоит вопрос сохранности данных.

Говорить про надежность RAID особо нечего. Выдержит ли сбой 1/2/3 дисков
одновременно. Тоже и про распаралеливание чтений / записей много не
поговоришь. Даже на Wikipedia все написано.

-- 
http://defun.work/



Re: NAS

2017-06-24 Пенетрантность Oleksandr Gavenko
On 2017-06-23, Sergey Matveev wrote:

> то Western Digital, но ни в коем случае
> не всякие Green модели, типа тихие, экологичные и прочее -- насколько
> знаю, это просто бракованные модели которые на пониженных
> нагрузках/мощностях хоть как-то тянуть. У меня все зелёные модели
> сдыхали довольно быстро -- табу на их приобретение.

Добавлю свою небольшую статистику по всем двум зеленым, которые были, дохнут
заразы. За годик.Но было это давно, лет 5 назад.

-- 
http://defun.work/



Re: NAS

2017-06-24 Пенетрантность Oleksandr Gavenko
On 2017-06-23, artiom wrote:

> - RAID, кроме mirror, не дают повышения надёжности (упал диск - потерял
> часть данных, упал диск в рэйде - рейд может и не пересобраться,
> потеряются все данные, упало два - капут). Это верно?
> - Mirror - слишком дорого, не стоит его ставить на домашний NAS?

Обычно говорят что RAID повышает *доступность*. Меньше простоя.

Когда говорят о надожности в RAID - приводят пример легитимной операции
удаления файла )) Где же надежность?

Дома за доступностьплатить нет смысла. А за надежность есть.

Но достигается надежность избыточностью, бекапами и архивированием.

-- 
http://defun.work/



Re: Стратегия поддержания резервных копий. Деградация носителей.

2017-06-24 Пенетрантность Oleksandr Gavenko
On 2017-06-24, Sergey Matveev wrote:

> Я достал диск -- весь IO встал. Я вставил диск -- он моментально понял что с
> целостностью всё ok и прозрачно продолжил работу.

Какие физические интерфейсы поддерживают - вынять/вставить?

Что можно себе дома поставить?

Я работал по старинке - ATX размера коробка или лаптоп. Туда хотплаг только по
USB ))

Сейчас есть e-SATA, я не сильно понимаю на сколько оно полезно для накопителей
и вроде питание не передает интерфейс...

-- 
http://defun.work/



Re: Стратегия поддержания резервных копий. Деградация носителей.

2017-06-24 Пенетрантность Oleksandr Gavenko
On 2017-06-24, Sergey Matveev wrote:

>   пользователь CVS или Subversion скажет что ему бранчи не нужны, но
>   когда он с ними столкнётся в Git-е, то поймёт насколько это удобно.

В современном SVN бранчи удобные если извращенные воркфловы не делать.

И даже "продвинутые", т.к. информация о мержах это список ревизий. Я не совсем
понял чери-пики в Git как то отслеживаются или нет. В Subversion 1.6 и выше из
коробки, с оговоркой что но во все стороны мигрирються ченджи.

-- 
http://defun.work/



Re: Стратегия поддержания резервных копий. Деградация носителей.

2017-06-24 Пенетрантность Oleksandr Gavenko
On 2017-06-24, Sergey B Kirpichev wrote:

> ext2 не может защитить даже от порчи метаданных, не говоря уж о данных.

Для архивов это ж неважно? Если чек-сума не сошлась, восстанавливаем с
предыдущего носителя, а текущий выкидываем. Ну и делает еще одну копию...

-- 
http://defun.work/



Re: Стратегия поддержания резервных копий. Деградация носителей.

2017-06-23 Пенетрантность Oleksandr Gavenko
On 2017-06-23, Sergey Matveev wrote:

> Передёргивать нужно не только на чтение, но, в идеале, ещё и на запись.

Это потому что нету гарантий производителя?

Современные роботизированые type library просто переодически перезаписывают
данные на новую бобину. Производитель обеспокоился, пользователи не
замарачиваються.

У нас же наоборот дешовенькие диски (с кодами контроля ошибок и избыточностью)
и дорогие твердотельные, которые скорее всего даже без четности, не говоря об
избыточности...

Я не представляю как архивы кто либо переписывает на регулярной основе в
одного массива на другой на предприятии...

Когда бос спросит админа что он делает - ответ "переливаю из пустого в
порожнее" не впечатлит ((

Архивы есть? Что жы ты делаешь?

Есть конечно понятная практика - попытка восстановления из архива, что бы
навыки не потерять и быстро реагировать + проблемы посторонние выявить до дня
X. Но совсем не похоже на "переливание".

Я работал как то в банке и слышал про очень дорогие шкафы, в которых диски
просто перевтыкаешь и оно там "само все делает". Помигивает когда хочет
внимания.

А как поступают в конторках с меньшим числом денег? Или как получают гарантии
в облаке?

Выходит что проще с архивами поступать как с бекапами - переписывать на новый
носитель с ротациями и проверкой целосности. Или периодически реплицировать по
сети с проверкой целосности...

-- 
http://defun.work/



Re: Стратегия поддержания резервных копий. Деградация носителей.

2017-06-23 Пенетрантность Oleksandr Gavenko
On 2017-06-23, Tim Sattarov wrote:

> Я, честно говоря, скептичен, но описание файловой системы и то как она
> борется с такими "тихими" проблемам достаточно, чтобы посмотреть в её
> сторону...

Мои познания в ZFS ограничены "чексумами".

Во первых не ясно как ошибка в чексуме вернется через системный вызов в
приложение. При чтении что я увижу в случае с проблемой?

Во вторых не ясно перечитывает ли в офлайне ZFS чексумы файлов и как она
сообщит о проблеме?

Также остаеться открытым вопрос - достаточно ли умные контроллеры дисков что
бы в офлайне сами перечитывали данные или нужно самому "подергивать" и
достаточно ли подергивания или нужна реальная запись (самый неудобный вариант,
делающий инкрементное копирование полубезсмысленным).

-- 
http://defun.work/



Re: Стратегия поддержания резервных копий. Деградация носителей.

2017-06-23 Пенетрантность Oleksandr Gavenko
On 2017-06-23, Artem Chuprina wrote:

> Если я правильно понимаю, btrfs из-за своей сложности - больший риск
> потери данных, чем банальный ext2 (для архивного носителя, не путать с
> бэкапным, даже возможности ext4 не требуются).

Даже журнал не нужен.

Только вот вопрос как чистить каталог при сбое питания. Удалить иерархию -
достточно и есть ли fsck ключик не восстанавливать, а просто почистьт. А то
каких то левых файлов насоздаеться, еще ищи их и чисть...

-- 
http://defun.work/



Re: Стратегия поддержания резервных копий. Деградация носителей.

2017-06-23 Пенетрантность Oleksandr Gavenko
On 2017-06-23, Михаил Касаджиков wrote:

> Потому что я говорю о «резервных копиях надолго». А для оперативных копий у
> меня давно настроен backup-manager с сохранением архивов на домашний NAS и с
> периодической чисткой этого дела.

Т.е. речь про лазерные диски не идет? Если бы была - по мне крайне интересно.
А то важные архивы с пяток под 100 GiB каждый. Даже с BlueRay придется
дробить. Как это делать не представляю.

Еще вопрос - архивы этож не tar на магритную ленту? Индивидуальными файлами,
правда?

-- 
http://defun.work/



Re: Стратегия поддержания резервных копий. Деградация носителей.

2017-06-23 Пенетрантность Oleksandr Gavenko
On 2017-06-23, Artem Chuprina wrote:

> Собственно, я абсолютно уверен, что надо проверять криптосуммы. Ну, если
> тебя интересует, не чтобы оно в принципе читалось, а чтобы оттуда
> считывалось ровно то, что ты хотел бы считать. md5 -c вполне достаточно,

Да, я такого не делал, но к этому прихожу. Сам вопрос остался в силе. Бытовые
проблемы. Где хранить md5sum - рядом с файлом, в отдельной иерархии, одним
файлом.

Я склоняюсь к мысли в такой иерархии:

  /backup/photo/2017-06-23/*
  /backup/photo/2017-06-23.md5

А то я упирался в 256 символов в имени из ntfs в ext3, добавлять .md5 суфикс
в имя - возможные проблемы.

+ по единственному текстовому файлу можно и грепом погулять и редактором и
inode сберегу...

Перечитывание иерархии будет простым: md5 -c 2017-06-23.md5

А вот дополнительные файлы как детектить однострочником (например при
повреждении fs) если есть 2017-06-23.md5?



Можно ли расчет сум оптимизировать по inode?

А то с хардлинками и rsync замарачиваешся, а с md5 нет?

Есть ли что то готовое под такой кейс?

Я бекаплю перед важными событиями в жизни, например когда переежаю и хочется
побыстрее на носитель *разницу* скинуть. Может в это время и md5 не так
важно...

Еще не ясно где считать md5. Я полагаю на оригинале. Стает резонный вопрос
проверить совпадение хешей с предыдущими бекапами по известным файлам...

-- 
http://defun.work/



Re: Стратегия поддержания резервных копий. Деградация носителей.

2017-06-23 Пенетрантность Oleksandr Gavenko
On 2017-06-23, Михаил Касаджиков wrote:

> Даже не в сырости дело. Просто я не вижу смысла использовать такую
> навороченную ФС (с кучей метаданных) для однократной записи (DVD, лента). Ведь
> если это архив для долговременного хранения — его не будут многократно
> перезаписывать. Скорее всего этот архив вообще будет записан один раз за всю
> историю.

Почему Вы пишите об однократной записи?

С минитюризаций персоналок CD/DVD/BlueRay ридеры/врайтеры перестали вставлять.
Не говоря про планшетики. Эти носители уже живой анахронизм. Порой драйвера
предлагают скачать на сайте в квик-гвайд, что бы сэкономить на диске.

Разве что на западе лицензионное медиа фанаты покупают, как грампластинки ))

Цена на внешний накопитель не малая для местного бюджета, но все же ротировать
раз в три года устройства для бекапа можно...

-- 
http://defun.work/



Стратегия поддержания резервных копий. Деградация носителей.

2017-06-23 Пенетрантность Oleksandr Gavenko
Тут писали про CD/DVD, флешки, диски.

Понятно что устареванием старых ридеров нужно обеспокоиться переносом данных
на новые типы носителей (перфокарты => бобины, CD => DVD => BlueRay, IDE =>
SATA).

Интересен другой момент. Информацию мы же не гравируем на платиновой
пластинке. Деградация носителей - обычный процес.

Не читаються старые CD/DVD, в не зависимости от марки/уцены, приобретенные на
местном рынке.

Флешки тоже дохнут. Стандартные заявления - 10 лет заряд стекает с
транзистора.

Ране я тут спрашивал по методу хранения данных "на долго", но касались они
"организационных" вопросов. Железные особенности не обсуждались.

На неработающем диске данные деградируют. Размагничивается область. Т.е. не
подключенный к питанию диск гарантировано да 5-10 лет будет с бедами.

Есть чуйка что контроллеры современных дисковых носителей умеют рефрешить
данные в офлайте если коды целосности детектируют значительные проблемы.

Вопрос 1. Делают ли диски это в реале, какие марки?

Вопрос 2. Нужно ли перечитывать данные, что бы вызвать функцию "обновления"
данных.

Вопрос 3. Имеют ли флеш накопители подобный механизм? Какие производители?

Вопрос 4. Какой практический период перечитывания стоит выбрать?

Вопрос 5. Выходит что

  cp -al /backup/old  /backup/new
  rsync -r /orig/  /backup/new/

не достаточно. Возможно потребуеться еще переодически

  find /backup -exec dd if={} of=/dev/null

??

Последнее будет очень долгим. Как оптимизировать find что бы повторные inode
не дергались?

Вопрос 6. Как поддерживать md5, sha1, shs256? По dd можно заменить

  md5 -с, sha1 -с, shs256 -с

с большей пользой для дела. Ваши советы!

-- 
http://defun.work/



Re: Разбор ошибок в логах.

2017-06-23 Пенетрантность Oleksandr Gavenko
On 2017-06-22, Tim Sattarov wrote:

> транспортный протокол (порт 9300) удобнее в каких то случаях, но я
> пользовался только REST (9200)
> клиенты расписаны здесь
> https://www.elastic.co/blog/found-java-clients-for-elasticsearch
> https://www.elastic.co/guide/en/elasticsearch/client/index.html

Есть проблема с их Java API. Мне интересно только Bulk API, по зависимостям
они танут весь Netty + Lucene:

  
https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/java-docs-bulk.html

Итого 26 MiB. Хоть и будут толкать вроде по 9300 порту, не думаю что как либо
умнее чем это сделает curl / HttpURLConnection...

-- 
http://defun.work/



Re: Разбор ошибок в логах.

2017-06-22 Пенетрантность Oleksandr Gavenko
On 2017-06-22, Eugene Berdnikov wrote:

>  Оракл, к примеру, именно так и делает. В лог он пишет: ошибка такая-то,
>  сгенерён трейс-файл, лежит там-то. Если нужно, идёшь и смотришь трейс.

Сколько инстансов Оракла в организации?

В модном облаке может быть сотни сервисов и по ssh никто не лазит.

Я не работал в такой организации, не представляю как они собирают логи, скорее
всего покупают некое решение.

Суть в том что "плохую ноду" просто убивают и в течении минуты развертываеться
новая.

А данные для разбора инцидента сохранены отдельно.

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

Кстати в традициях Java компонентов плевать много стек-трейсов. inode'ы
закончаться очень быстро.

Я столкнулся раз с таким в IDE NetBeans, они на каждый ивент пользовательского
ввода писали файл. Я их час удалял с загрузочной флешки ))

-- 
http://defun.work/



Re: Разбор ошибок в логах.

2017-06-22 Пенетрантность Oleksandr Gavenko
On 2017-06-22, Tim Sattarov wrote:

> я, чтобы избежать тормозов logstash, на всех источниках логов, где мог,
> включил/настоял на JSON  вывод.
> теперь он только занимается складированием логов плюс небольшая логика
> по развёртыванию geoip и user-agent информации.

Есть подозрение что конечным пунктом у Вас Elasticsearch.

В общем я не в восторге от Logstash - требования по памяти нереальные и
реализован на JRuby. Для "низкоуровневых" сервисов типа сбора/роутинга/доставки
событий крайне печально выглядит.

В основном то пользуються что бы обогатить события геотегом и определить
тип девайсика на кофейной гуще. Если я ошибаюсь - поправьте!

Даже сама компания-производитель для обогащения данных в Elasticsearch в
момент инсерта придумала Ingest Nodes, почитайте:

https://www.elastic.co/blog/new-way-to-ingest-part-1

What are Ingest Nodes?

Ingest Nodes are a new type of Elasticsearch node you can use to perform
common data transformation and enrichments.

Легковесными сборшиками / мониторилками событий (серия *Beat от elastic.co)
они впихивают данные уже напрямую в Ingest Nodes, минуя logstash.

Ведь сама Elasticsearch - маштабируемая, работает в кластере с протоколами
резервированния / балансировки данных.

Я API не раскопал для доступа к этой ноде. Пока эксперементировал с REST/Json
PUSH запросом на порт 9200. По 9300 можно типа как то эфективней вбрасывать,
это порт общения между нодами в кластере, но протокол тоже не особо
документирован.

> По поводу потерь логов и буферизации - рекоммендуют использовать redis
> или что то подобное. Я пока не заморачивался, но придётся.
> Поток и размер логов стремительно растёт.
>
Я смотрю на https://redis.io/topics/introduction и не понимаю как применить на
практике...

Пока рассматривал такую идею логгера. Собирать события в очереди и по обьему /
времени отправлять пачки по сети в рамках самого процеса. Если сервис не
доступен или очередь переполнилась - писать на диск. Затем записанное
отправить в более удачное время.

Ключевым вижу (а Java позволяет) запустить отдельный поток отправляющий
данные, выбрать неблокирующую очередь для сбора событий и сериализовать
избыточные события в файлы. И все в рамках одного PID.

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

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

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

-- 
http://defun.work/



Re: Установить debian без systemd

2017-06-22 Пенетрантность Oleksandr Gavenko
On 2017-06-21, Andrey Jr. Melnikov wrote:

> Надо будет при случае найти CD 2002 года с музыкой и проверить - читается
> или нет.

Есть разные технологии нарезки CD/DVD. "Домашние" перестают читаться за 5 лет
лежания в конверте.

Маркетинговые заявления про 120 лет (выведенные старением через повышеную
температуру) - чушь.

Тут есть толковый материал по деградации лазерных дисков (на научных 
публикациях) http://www.cd-info.com/archiving/

-- 
http://defun.work/



Re: Разбор ошибок в логах.

2017-06-22 Пенетрантность Oleksandr Gavenko
On 2017-06-22, Eugene Berdnikov wrote:
>  Здесь мы уходим от исходного утверждения "grep в терминале бессмысленен".
>  В less тоже есть подсветка, кстати.
>
>> grep -B120 ?? В отличии от Python причина ошибки в Java трейсе в конце...
>
>  Здесь мы уходим от исходного утверждения "grep не работает". Работает.
>  Только задаче он не сильно адекватен, но это уже другой вопрос.
>
Игра словами. Я не разбирался есть ли в less закладки. Но это потому что пока
я умею наиболее эфективно в Emacs копаться по логам.

Кстати Emacs на длинных строках (в десятки переводов строк) - тормозной.

Кроме трейсов есть еще длиннющие SQL запросы от ORM. Интерес зачастую
представляет "from", что можно поиском найти. Или попросить ORM
отформатировать однострочник в многострочник - становящийся читаемым.

>  Тогда ещё одно событие, и мозг будет вынесен. :) Зато будет повод
>  отвлечься и подумать о том, как структурировать отладочный вывод.
>  Возможно, также упорядочить код и переделать структуры данных.
>
Вот я и задумался ))

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

Цены от провайдеров комплексных решений в килобаксах в год. Не разумно за
сотню мегабайт логов в неделю отдавать такие деньги.

>  У разработчика всегда есть выбор средств отладки. Он может пользоваться
>  printf() и его аналогами, а может копаться в дампах, трейсах, ковыряться
>  в программе дебаггером и т.д. При выборе неадекватного средства появляются
>  шансы захлебнуться в потоках дерьма, особенно при близости к Java.
>
Не, у разработчика есть что другие сделали. Если ничего не сделали, то ничего
и нету.

printf() мой любимейший способ. Но он работает только:

* по знакомой кодобазе или имплементации знакомого протокола
* открытых исходниках

В чужих незнакомых компонентах printf() не работает. Т.е. суть метода -
подтвердить или опровергнуть гипотезу, вставив printf() в *правильное* место.

Логирование - аналог отладочного printf(), только систематично/структурировано.

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

Запись в текстовый файл в одну строку - решение для 80-ых. Структурированые
данные легче фильтровать, чем выкручиваться regex'ами.

-- 
http://defun.work/



Re: Ищу голосовую общалк у.

2017-06-22 Пенетрантность Oleksandr Gavenko
On 2017-06-22, Sohin Vyacheslav wrote:

> 22.06.2017 10:42, sergio пишет:
>> 
>> Я нашёл --- это Riot!
>> 
>> https://riot.im
>> 
>  Current release: v0.11.3
>
> не сыровато ли?
>
Смотрю что Message-Id ведет к моему давнему вопросу.

Из децентрализованых я пробовал Tox и Ring. Оба были год назад сырыми и
неудачными решениями. Я также смотрел на наличие Android клиентов.

Весь спектр "общалок" доступен для выбора на сайтах типа:

  http://alternativeto.net/software/tox/

-- 
http://defun.work/



Re: Разбор ошибок в логах.

2017-06-22 Пенетрантность Oleksandr Gavenko
On 2017-06-22, Eugene Berdnikov wrote:

> On Thu, Jun 22, 2017 at 10:31:05AM +0300, Oleksandr Gavenko wrote:
>> * длиннючие строки, grep в терминале бессмысленен, через ag в Emacs исследую
>
>  У меня xterm длинные строки не обрубает, а показывает в несколько строк,
>  и боюсь, у него это по дефолту. :) Вообще, есть less, он умеет и обрубать,
>  и переносить, и менять режим на ходу (-S). Чтобы легче было что-то найти
>  в длинной выдаче грепа, рекомендуется ставить ключик --color=auto.
>
10 переводов строк и уже нечитабельно. В Emacs по С-s можно двигаться к
нужному месту, есть история поиска и подсветка кусочков по регулярке в разные
цвета...

>> * в случае трейсов они многострочные - grep не работает
>
>  У грепа есть ключики -A и -B, рекомендую.
>
grep -B120 ?? В отличии от Python причина ошибки в Java трейсе в конце...

>> * события раскиданы по группе файлов, пока копаешься в одном, фокус на тройку
>>   других теряеться (может многотабовый редактор тут поможет, я не уверен)
>
>  Создатель поставил человеку мозг, который способен держать в фокусе
>  внимания от 3 до 7 объёктов одновременно. А уж как эти объекты перед своим
>  носом повесить -- дело вкуса: некоторые подключают к компу три монитора.
>
Если в конкретном логе сосредоточился на группе 7 событий?

Если разбор конкретного лога длиться 30 сек? Кратковременная память
человека в среднем 20 сек и в пиках до 40 сек?

>> * события из разных потоков перемешаны между собою, фильтрация из-за
>>   многострочных трейсов by grep невозможна
>
>  Вы о логах или трейсах? Трейсы в Java это отдельный мотив для суицида... :)
>
Трейс всегда идет как дополнение к комплекту. Что можно достать из события:

https://logback.qos.ch/apidocs/ch/qos/logback/classic/spi/ILoggingEvent.html

Трейсы всегда полезны и позволяют зачастую воссоздать довольно реалистично
состояние приложения.

На них смотрят если они важны. Вопрос в фильтрации, что бы не смотреть на
ненужные и grep не поможет фильтровать текстовую сериализацию ILoggingEvent.

>> Согласны ли Вы терять события в случае недоступности колектора логов или
>> гранилища логов?
>
>  Терять? Я согласен. У меня есть, например, распределённая (по паре городов)
>  почтовая система, и сетевой коллектор логов. При проблемах с сетью, понятно,
>  часть записей может быть потеряна при передаче, даже при высоком уровне
>  резервирования межофисных каналов. Но меня это не волнует. Во-первых,
>  есть ещё локальные хранилища логов на узлах, если что -- можно свериться
>  с ними. Во-вторых, я уверен, что при недостатке каких-то фрагментов я это
>  замечу. Ну и в третьих, необязательно заливать всё в хранилище на лету,
>  если нужна полнота -- есть масса способов надёжно реплицировать данные
>  по сети, пожертвовав риалтаймом. Но эти способы дороже простого риалтайма,
>  и мне с ними заморачиваться не хочется.
>
Под репликацией Вы подразумеваете передачу файлов без понимания внутренней
структуры? Тут тоже есть засада с ротацией файлов (придеться именовать файлы
по датам, а не .1, .2, ...) и особо себя вести с обновляемым логом (в который
щас пишут).

Filebeat по назначению такое умеет, понимая ротацию и детектируя запись и
"восстанавливаясь" после своего падения или падения колектора логов (есть
баги, не всегда это делает успешно) и еще бесплатный и "практически
реалтаймовый".

-- 
http://defun.work/



Разбор ошибок в логах.

2017-06-22 Пенетрантность Oleksandr Gavenko
Я использую Java и логи ограничатся Java.

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

Я встречаю сложности типа:

* длиннючие строки, grep в терминале бессмысленен, через ag в Emacs исследую
* в случае трейсов они многострочные - grep не работает
* события раскиданы по группе файлов, пока копаешься в одном, фокус на тройку
  других теряеться (может многотабовый редактор тут поможет, я не уверен)
* бессмысленная сложность из-за ротации файла
* из-за ротации файлов теряеться история, лазить в архивах очень больно
* события из разных потоков перемешаны между собою, фильтрация из-за
  многострочных трейсов by grep невозможна
* для анализа я запаковую файлы и качаю с удаленного хостя
* время разработчика (меня) теряеться, если будет интуитивно понятный Web
  доступ с кнопочками часть инцидентов решит выделенный человек, отвечающий за
  поддержку пользователей

В целом иметь базу с возможностью автоматических запросов - правильно:

* история становиться линейной - нет ротационных проблем, нет нужды стыковать
  время при рассмотрении логов из разных типов логов
* фильтрация станет милисекундным делом, а не shell-fu подвигом на 10 мин
* логи под рукой, забываю про архивирование/копирование

Не хватает только "смотрелки" для базы.

Популярным бесплатным решением есть ELK. Пробовал.

Скажу сразу что не понравилось разношерстность:

* elasticsearch - Java - OK, умею тюнить
* filebeat - Go - WTF? 50 МБ рантайма для парсера/отправителя логов?
* Logstash - JRuby - WTF? 1 GiB хипа и хипстерский тормознутый рантайм?
* Kibana - nodejs, бог с ним, это на выделенном сервере и есть
  недокументированый ключик --max-old-space-size=

Парсить логи filebeat неприятно. Особенно если формат расширяем через MDC (см
ниже).

Logstash - дерьмо. Хипстеры, лентяи и тупые ставят. Конкурирующие решения не
без проблем (Apache Flume доку не доделали, читай сорцы называется).

Для добавления полезной информации (типа имени клиента, номера телефона,
номера обрабатываемого документа) есть Mapped Diagnostic Context:

  https://logback.qos.ch/manual/mdc.html

Для алертов есть еще маркеры https://www.slf4j.org/api/org/slf4j/Marker.html

Вот это дело хотелось бы куда-то засунуть и как-то визуально фильтровать.

Elasticsearch+Kibana решают задачу, но есть проблемы с доставкой данных в
Elasticsearch.

Я хотел бы что бы база стала местом, которому я доверяю.

Самым надежным местом записи есть файл.

Потом парсить файлы опасно внешним процесом. filebeat имеет баг репорты когда
данные пропукались из-за ротации и недоступности Elasticsearch.

Да и парсить изначально структурированные данные, записаные в
неструктурируемой форме (многострочные трейсы или расширяемые парамерты MDC)
неадекватно.

Есть писатели в рамках Java процеса в Elasticsearch. В случае даунтайма
Elasticsearch они могут копить в буфер в памяти. Если остановить сервис -
данные пропадут.

В рассылке Logback мне сказали что луди только на коленках писали решения,
буферизирующие на диск, пока Elasticsearch. Т.е. готового нету.

Я начал "писать надежную доставлялку" в Elasticsearch стуктурированых данных
логирования в Java и появились вопросы по целесообразности.



Интересно стороннее мнение по написаному выше.

Как обычно решаються перечисленные сложности при анализе ошибок/инцидентов по
логам?



Есть ли Web-морды для фильтрации и просмотра отлогированых событий (по типу
Kibana) но для реляционных хранилищь (MariaDB/PostgreSQL/etc)?

Или может есть "нетраниционные" хралища и морды к ним?

X-Pack для ELK стоит в районе 10к/год, остальные "Ынтырпрайз" больше-меньше, не
рациональная трата для маленькой компании.



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



Согласны ли Вы терять события в случае недоступности колектора логов или
гранилища логов?

Я удивлен что "писатели" в Java мире такого не делают.

-- 
http://defun.work/



Re: firefox addons (Re: policykit/consolekit/udisk2 - это кошерно?)

2017-05-03 Пенетрантность Oleksandr Gavenko
On 2017-04-29, Maxim Nikulin wrote:

>>> Из любимых фич мозилки - это userContent.css:
>>>
>>>   :link { outline: 1px dotted !important; }
>>>   :link { outline-color: DodgerBlue !important}
>>>   :visited { outline-color: DarkOrange !important; }
>>>
>>> подсвечивать посещенные ссылки. Больше ничто не держит. Но
>>> альтернатив то не
>>> много ))
>
> Разве уже не работает? Этому вроде можно придумать замену
> на WebExtensions, только вот после каждой модификации придется
> ходить за подписью к mozilla. Странное ощущение от такой защиты
> от самого себя.

С Electrolysis это не работало 3 года: 

https://bugzilla.mozilla.org/show_bug.cgi?id=1046166

Пока не научились отправлять userContent.css "детям" пару месяцев назад.

Я специально выключал Electrolysis.

-- 
http://defun.work/



Re: policykit/consolekit/udisk2 - это кошерно?

2017-05-03 Пенетрантность Oleksandr Gavenko
On 2017-05-03, Igor Savlook wrote:

> А есть ссылка почитать об этом? А то уже как лет 5 слышу что жопа
> мозилле и у них с финансами хренова да тока все еще никак неприкроются.
>
https://www.mozilla.org/en-US/foundation/annualreport/2015/

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

Они всегда были мейнстримом. Потому как зачастую реализовывали драфты
стандартов.

-- 
http://defun.work/



Re: policykit/consolekit/udisk2 - это кошерно?

2017-05-02 Пенетрантность Oleksandr Gavenko
On 2017-04-30, Igor Savlook wrote:

> И ни у одного из них кроме лисы нет нормального multi-line tabs. Да и
> тот тут тока расширением tabmixplus. Собсно как для меня это kill фича
> браузера.

У меня более 1000 вкладок открыто. "All Tabs Helper" заменяет стандартный
виджет поиском, навигацией, удалением, поиском дупликатов.

multi-line tabs мне не поможет.

И мне нравится "Space Next" которые по rel="next" переходит. По пробелу
читаешь форум и автоматом переходишь на следующую страницу.

Привычки можно поменять если производитель браузера "прикалывается".

А жопа с финансами у Mozilla большая и менеджеры там сумашедшие в последнее
время.

-- 
http://defun.work/



Re: policykit/consolekit/udisk2 - это кошерно?

2017-04-29 Пенетрантность Oleksandr Gavenko
On 2017-04-29, Artem Chuprina wrote:

> Захватить мир :)

Судя по всему у них получается. Opera выбросила свой движок.

Firefox обьявил о новом API для расширений, совместимом с Chrome и
несовместимом с Firefox ))

-- 
http://defun.work/



Re: policykit/consolekit/udisk2 - это кошерно?

2017-04-29 Пенетрантность Oleksandr Gavenko
On 2017-04-29, Igor Savlook wrote:

>> Не так даво они похерили XUL/XPCOM, я как раз хотел плагинчик
>> написать.
>
> Это как похерили, его теперь вообще нету?

Вот такой банер висит на доке по XPCOM / XUL:

WebExtensions are becoming the new standard for creating add-ons. Eventually
support for XPCOM add-ons will be deprecated, so you should begin to
investigate porting your add-ons to use the WebExtensions API, and report any
missing functionality so we can be sure to address your concerns. Work is
ongoing on WebExtension capabilities, so your input will help prioritize and
plan the work. To learn more about the kinds of changes that will be needed,
see Comparison with XUL/XPCOM extensions. In addition, any binaries you use
will then need to be converted for use with the WebExtensions native messaging
API, or compiled using WebAssembly or Emscripten.

-- 
http://defun.work/



Re: policykit/consolekit/udisk2 - это кошерно?

2017-04-29 Пенетрантность Oleksandr Gavenko
On 2017-04-29, Igor Savlook wrote:

> Это как похерили, его теперь вообще нету?

Официально с 2015 deprecated. Из-за экосистемы плагинов и отсутствия
вменяемого нового API пока есть.

Но официально нету.

https://blog.mozilla.org/addons/2015/08/21/the-future-of-developing-firefox-add-ons/

Слышали про Electrolysis and Servo?

Electrolysis - это запускать вкладку в отдельном процесе. Из-за этого все
XPCOM деприкейтят, т.к. нужно межпроцесное взаимодействие продумывать.


-- 
http://defun.work/



Re: policykit/consolekit/udisk2 - это кошерно?

2017-04-29 Пенетрантность Oleksandr Gavenko
On 2017-04-29, Жанибек Нагашыбай wrote:

> Есть браузер на основе огнелиса: palemoon. Из плюсов: меньше жрет
> памяти и работает шустрее.

У него проблемы с лицензией на art-work как у оригинальной лисы.

И будучи оберткой вокруг Firefox он также будет требовать PulseAudio.

Midori / QupZilla - более менее рабочие альернативные браузеры на WebKit. Но
Youtube HTML 5 не смогли проиграть.

dillo - вообще с нуля layout engine пишут, но базовая реализация.

Итого остался Chromium, не знаю про их планы.

-- 
http://defun.work/



Re: policykit/consolekit/udisk2 - это кошерно?

2017-04-28 Пенетрантность Oleksandr Gavenko
On 2017-04-28, Igor Savlook wrote:

> Нет. Очередной ... на тему systemd ненужен?

Можно начать другой срач.

Обновился на Firefox 53 из experimental и пропал звук.

Все просто. С v52 они поддержуют только PulseAudio.

Не так даво они похерили XUL/XPCOM, я как раз хотел плагинчик написать.

Из любимых фич мозилки - это userContent.css:

  :link { outline: 1px dotted !important; }
  :link { outline-color: DodgerBlue !important}
  :visited { outline-color: DarkOrange !important; }

подсвечивать посещенные ссылки. Больше ничто не держит. Но альтернатив то не
много ))

-- 
http://defun.work/



Re: policykit/consolekit/udisk2 - это кошерно?

2017-04-28 Пенетрантность Oleksandr Gavenko
On 2017-04-28, Alexander Galanin wrote:
> Есть пакет evince-gtk, которого гномовых зависимостей поменьше, чем у
> evince. А gvfs там вообще только в Suggests и Recommends соответственно,
> потому можно поставить без него.

Можно, стоит. Но:

> Oleksandr Gavenko  wrote:
>
>> Из читалкок PDF, запоминающих позицию в файле есть Evince и форк atril
>> Они используют используют gvfs

для **запоминания** позиции. Натравите:

  gvfs-info -a "metadata::*" $FILE

Запоминание позиции в файле для меня стало критичным. Я прохожу несколько
учебников и удобно возвращаться на прошлое место. А то придется на листочке
записвыать.

Пока перешел на zathura, как альтернативу. Он запоминает позицию при закрытии
документа.

Напрягает минимализм и если электричество пропадает (я люблю pm-suspend на
долгое время), то позиция теряется.

-- 
http://defun.work/



policykit/consolekit/udisk2 - это кошерно?

2017-04-28 Пенетрантность Oleksandr Gavenko
Из читалкок PDF, запоминающих позицию в файле есть Evince и форк atril

Они используют используют gvfs, та в свою очередь тянет
gvfs-daemon/policykit/consolekit/udisk2.

Кошерные ли эти пакеты или есть неоправданость в таких зависимостях (как с
sysyemd)?

-- 
http://defun.work/



Re: Архив рассылки

2017-04-17 Пенетрантность Oleksandr Gavenko
On 2017-04-16, Коля Гурьев wrote:

> Я нашёл в архиве этой рассылки сообщение о подобной проблеме, но, к сожалению,
> Gmane выглядит нерабочим на данный момент. Какие есть ещё способы?

У Gmane убрали Web-интерфейс. А так NNTP работает довольно стабильно.

Для NNTP нет нужды "качать" архив. Это доступно коммандами протокола и Gmane
хранит полную историю.

-- 
http://defun.work/



Re: Замена x.org

2017-01-24 Пенетрантность Oleksandr Gavenko
On 2017-01-22, Artem Chuprina wrote:
 > On 16.01.2017 03:12, Max Dmitrichenko wrote:
>  > Весьма разумно. Пожалуй, так и сделаю, хотя и придётся менять привычку, 
> потому
>  > что если более двух языков, переключалка уже становится неудобной.
>  > Но на Windows тоже придётся делать подобное.
>
> Оно, кстати, умеет. Из коробки, правда, неудобно. Я кому-то объяснял
> свою любимую пару Caps/Shift+Caps, но не помню, кому... То ли Punto
> Switcher'у, то ли вообще AutoIt...

Последние Windows дофига сочетаний на Win кнопку навесили. Ранее я по Win+1,
Win+2, Win+3 c autohotkey:

  #1:: SendMessage, 0x50,, 0x04090409,, A ; английский
  #2:: SendMessage, 0x50,, 0x04190419,, A ; русский
  #3:: SendMessage, 0x50,, 0x04220422,, A ; украинский

жил, но сейчас не получается без глюков т.е. на эти комбинации ускорители
запука задач из панельки. Alt/Ctrl нельзя занимать из-за Emacs.

Терпимо с новомодным переключением по Win+Space.

Ввод в Emacs - кроссплатформенная благодать.

-- 
http://defun.work/



Какой командой выключать компьютер.

2017-01-09 Пенетрантность Oleksandr Gavenko
С приходом systemd привычные:

  sudo init 0
  sudo halt

оставляют ноут включеным, на экране консоль, кнопочки не приворят к реакции,
только 5 сек на кнопке power делает дело.

Еще я пользуюсь nodm и по указанным выше командам после закрытия X-сессии
моментально nodm перезапускается. Что приводит к запуску Firefox/Emacs (по
~/.xinit) и спустя пару сек все снова выключается, в итоге нештатно обрывается
сессия этих программ и впоследствии они предлагают восстановить пред. сессию.
nodm поставляется с /etc/init.d/nodm - не ясно это прикол nodm или systemd.

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

-- 
http://defun.work/



Как автомонтировать влешку в Jessie?

2017-01-09 Пенетрантность Oleksandr Gavenko
С приходом systemd usbmount помер.

Есть udisks2 и через:

  $ udisksctl status
  $ udisksctl mount --block-device /dev/sdc1

руками я монтирую флешку по "современному". А как это автоматизировать по
"современному"? У меня FVWM, я не тяну декстопные апплеты.

Интересно решение - установил пакет и работает, простыни udev скриптов и
systemd service скриптов я насмотрелся в поисковике...

-- 
http://defun.work/



Re: Null в качестве разделителя в скрипте

2016-12-10 Пенетрантность Oleksandr Gavenko
On 2016-12-01, Artem Chuprina wrote:

>  >> Но в принципе, уже достаточно полистать историю правок к скриптам
>  >> пакетов в дебиане за период, когда шла волна борьбы за работу скриптов в
>  >> dash. То и дело всплывала вычистка башизмов из скриптов, начинающихся на
>  >> #!/bin/sh.
>
>  > Простите, а это здесь каким боком?
>
> Элементарно, Ватсон. Понимание башем башизма в режиме совместимости с
> /bin/sh не является POSIX-совместимым. Потому что не позволяет заменить
> /bin/sh на другой POSIX-совместимый для выполнения этого скрипта.

Может те случаи подпадали под undefined behavior?

В результате скрипты переписали, исключив элемент неоднозначности, допустимый
стандартом?

bash(1):

  Bash is intended to be a conformant implementation of the Shell and Utilities
  portion of the IEEE POSIX specification (IEEE Standard 1003.1).  Bash can be
  configured to be POSIX-conformant by default.

  If bash is invoked with the name sh, it tries to mimic the startup behavior
  of historical versions of sh as closely as possible, while conforming to the
  POSIX standard as well.

Все что не так - это ошибка и будет исправлено в новой версии.

В ``info bash`` описаны 2 несоответствия POSIX:

There is other POSIX behavior that Bash does not implement by default
  even when in POSIX mode.  Specifically:

  1. The 'fc' builtin checks '$EDITOR' as a program to edit history
 entries if 'FCEDIT' is unset, rather than defaulting directly to
 'ed'.  'fc' uses 'ed' if 'EDITOR' is unset.

  2. As noted above, Bash requires the 'xpg_echo' option to be enabled
 for the 'echo' builtin to be fully conformant.

-- 
http://defun.work/



Re: shell background job and trap SIGCHILD

2016-10-31 Пенетрантность Oleksandr Gavenko
On 2016-10-29, Dmitry Alexandrov wrote:

>> Проще command -v ${command}
>
> Пардон, для чего проще?  Для программной проверки, быть может, и так, но для 
> восприятия человеком (как здесь) — боюсь, что нет.
>
``which`` сторонняя утилита и ничего не говорит о том как поступает 
интерпретатор.

>> оно если с полным путем, то бинарь на диске,
>
> Да не обязательно с полным.  Если подать на вход относительный, то он его и 
> вернет, при условии, что по нему есть исполняемость.
>
> $ command -v .bin/chdate
> .bin/chdate
>
> Или если в «$PATH» за каким-то чертом внесен относительный путь, то также 
> именно он и будет возвращен.
>
> $ export PATH=".:$PATH"
> $ cd .bin
> $ command -v chdate
> ./chdate

Да, забавно. Можно и относительные пути писать, ./run-me синтаксис нужен что
бы добавить слеш в путь, тогда PATH не используется.

Из POSIX 2013 по built-in ``command -v``:

  Utilities, regular built-in utilities, command_names including a 
  character, and any implementation-defined functions that are found using the
  PATH variable (as described in Command Search and Execution), **shall** be
  written as **absolute** pathnames.

Но по env var ``PATH``:

  If the pathname being sought contains a , the search through the path
  prefixes shall not be performed. If the pathname begins with a , the
  specified path is resolved.

И тут же:

  The list shall be searched from beginning to end, applying the filename to
  each prefix, until an executable file with the specified name and appropriate
  execution permissions is found.

Выходит что "**shall** be written as **absolute** pathnames" не совсем
однозначно трактуется.
-- 
http://defun.work/



Re: Ищу голосовую общалку.

2016-10-10 Пенетрантность Oleksandr Gavenko
On 2016-10-07, Oleksandr Gavenko wrote:
> Я так понимаю что они в beta и ранее были SIP, только в 2014 через Google
> summer of Code вкрутили DHT/Kademlia:
>
>   https://ring.cx/en/about/practical
>

  https://ring.cx/en/news
14 March 2016 Ring - Now in Beta

Состояние дел:

  https://ring.cx/en/documentation/faq#node-59

We haven't had time to add contact managing features (adding, editing,
etc.) to Ring yet as its not the priority in the alpha stage.

Действительно меню добавить из истории в контакты зачастую неактивно по
неизвестной причине.

Я успешно общался между Debian дектопом и Windows лаптопом.

По умолчанию включает голос с видео. При отключении видео судя по всему
поисходит повторное рукопожание, т.к. имеется 10 сек и более задержка.



Бизнес-модель проста:

  https://blog.savoirfairelinux.com/en-ca/2016/intensive-weekend-ring/

With our 110 engineers, all of very high level and all specialized in open
technologies, we are present in the defence and embedded electronics
sector, in the banking sector, with Desjardins our client, as well as in
the insurance sector, the software engineering sector...

Т.е. ring  - это рекламный буклет.

Понятно что рано или позно кто то придет с полноценным решением, но судя по

  https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=830265

Upstream seem uninterested in patches to make backports easier and I lack 
the
time to push the issue.

ring может не дожить.



Эта штуковина разрабатывалась долго и только для работы с текстом, но в
репозиториях Debian не появилась:

  https://wiki.debian.org/ru/RetroShare


Голос/видео добавляют через плагин.

-- 
http://defun.work/



Re: Ищу голосовую общалку.

2016-10-07 Пенетрантность Oleksandr Gavenko
On 2016-10-05, Sohin Vyacheslav wrote:

>> В mumble есть возможность подергать ручки (битрейт, размер буфера).
> ну вроде ж mumble позиционируется как для геймеров общалка и интерфейс
> какой-то у неё мрачно-минималистичный...

В FAQ они заверяют что хорошо поработали над оптимизацией трафика и
задержками:

  http://wiki.mumble.info/wiki/FAQ#What_are_the_bandwidth_requirements.3F

  With top quality, minimum latency and positional information sent, it is
  144.0 kbit/s including the IP and UDP overhead. With 60 ms transmission
  delay, the lowest quality speech and no positional information, it is 15.8
  kbit/s (again with IP and UDP overhead). The default quality setting uses
  58.8 kbit/s. When comparing with other products, remember to compare the
  total bandwidth use and not just the bitrate of the audio encoding.

  There are two parts to tuning the bandwidth; the audio bitrate per audio
  frame (e.g. 10ms) and the amount of frames to put in each packet. Each
  transmitted packet has an overhead of 28 bytes from IP and UDP alone, so at
  the highest transmission rate (100 packets per second), that is 2800 bytes
  of data for raw network overhead alone. You should try to find a balance
  that works well for you, but we generally recommend sacrificing high audio
  bitrate for lower latency; Mumble sounds quite good even on the lowest
  quality setting. 

-- 
http://defun.work/



Re: Ищу голосовую общалку.

2016-10-07 Пенетрантность Oleksandr Gavenko
On 2016-10-05, Dmitry Alexandrov wrote:

>> TOX вроде пока в альфе и в репозиториях нету. Идея децентрализации и
>> приватности конешно нравится.
>>
>> Другие альтернативы не знаю.
>
> Ring?  В Дебиане он начиная со Стретча.

И вправду есть:

  $ apt-get install ring ring-server

Я познее откопал на сайте сравнений:

 * http://alternativeto.net/software/ring/
 * http://alternativeto.net/software/retroshare/

но подробней не смотрел.

Нужно изучать, тем более что есть для большого числа платформ:

  https://ring.cx/en/download

Я так понимаю что они в beta и ранее были SIP, только в 2014 через Google
summer of Code вкрутили DHT/Kademlia:

  https://ring.cx/en/about/practical

-- 
http://defun.work/



Re: Ищу голосовую общалку.

2016-10-07 Пенетрантность Oleksandr Gavenko
On 2016-10-06, Sohin Vyacheslav wrote:

> 05.10.2016 13:36, Oleksandr Gavenko пишет:
>> Jitsi давным-давно пробовал - тогда была очень тормозная штука. Не доверяю я
>> Java приложению для real-time communication.
>
> а что там может быть несекьюрного? вроде ж Open Source...

Вопрос в производительности - как гарантировать realtime доставку если runtime
с garbage collector. Архитектурно неестественно выглядит...

-- 
http://defun.work/



Ищу голосовую общалку.

2016-10-05 Пенетрантность Oleksandr Gavenko
Список есть тут:

  http://alternativeto.net/software/tox/

Сам TOX вроде пока в альфе и в репозиториях нету. Идея децентрализации и
приватности конешно нравится.

Я запускал murmur (mumble сервер). По описанию то что нужно, только нужен
мастер-сервер:

  https://wiki.mumble.info/wiki/Running_Murmur
  https://wiki.mumble.info/wiki/FAQ/English

  $ sudo service mumble-server start 
  $ mumble &

Jitsi давным-давно пробовал - тогда была очень тормозная штука. Не доверяю я
Java приложению для real-time communication.

Другие альтернативы не знаю. Что посоветуете? Нужно для языковой практики
группе людей.

В mumble есть возможность подергать ручки (битрейт, размер буфера).

-- 
http://defun.work/



Re: Фонт для редактора.

2016-09-27 Пенетрантность Oleksandr Gavenko
On 2016-09-27, Dmitry Alexandrov wrote:

>> Он сравнивает свой:
>>
>>   https://github.com/larsenwork/monoid
>>
>> с Fira Mono, Source Code Pro and Pragmata Pro и приводит показаельную
>> картинку где его фонт на 15 пикселях практически не расплывается.
>
> Это да.  Главное — грамотно подобрать, что и с чем будем сравнивать. :-)

Он так и писал:

  I chose to take the legibility priority one step further by looking at what
  my prefered line height for coding was. It was 15px so I wanted Monoid to
  look really sharp at that specific grid size — i.e. maximum legibility at
  15px.

Т.к. outline фонт привязал к 15px сетке и другое ему не надо, то с хинтингом
не заморачивался. И кирилический шрифт для него явно не родной, Lorem Ipsum

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

  http://dpi.lv/

> Теперь отключим субпиксельное сглаживание:

Если отключить хинтинг (я через ~/.config/fontconfig/fonts.conf):


  
lcdnone
  


для DejaVu Sans это будет (до и после):


Это когда нету anti-aliasing и subpixel rendering:


  
false
  



  
lcdnone
  


В шрифте Monoid нету хинтинга. Автор как раз гордится что выкрутился без
embedded bitmap и hinting для 15px.

На гряжущих высоко-DPI мониторах впоследствии его шрифт будет выглядеть также
хорошо.

-- 
http://defun.work/


Re: Фонт для редактора.

2016-09-25 Пенетрантность Oleksandr Gavenko
On 2016-09-26, Dmitry Alexandrov wrote:
> Всегда пожалуйста. Причем в прямом смысле — я совсем не художник, но если надо
> будет, что-нибудь да нацарапаю. :-) Тем паче, что вполне даже может оказаться,
> что оно у меня уже и нацарапано; правда только для одного размера (которым я
> собственно пользуюсь; но да можно и размножить — это дело техники), и в
> формате, не позволяющем сформировать аккуратную «заплатку» (см. ниже; но да
> что-нибудь придумаем).

Интересный способ разработки фотнтов у:

  
https://medium.com/larsenwork-andreas-larsen/designing-a-coding-font-b10cabd594fc

Он сравнивает свой:

  https://github.com/larsenwork/monoid

с Fira Mono, Source Code Pro and Pragmata Pro и приводит показаельную
картинку где его фонт на 15 пикселях практически не расплывается.

При таком подходе и учитывая что DPI растет я засомневался в целесообразности
копаться в растровых фонтах.

Конешно растровый проще рисовать - кубики накидываешь, то ли тягать сплайны.

И вспомнил почему с дефолтного фонта для GTK (DejaVu Sans) я перешел на
misc-fixed.

Давно у DejaVu Sans Mono русский скрипт был жирнючий, а ASCII тоненькое.

Сейчас это поправили до определенной степени, а на ASCII "DejaVu Sans Mono" в
14 и 15 пикселях очень четкий.

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

>> Я не вникал а в поиске ничего не нашео что есть в пакетах - чем визуально
>> редактируются bdf файлы?
>>
>> Для векторных вижу что FontForge применяется...
>
> Он же и для растровых прекрасно подходит.
>
> Но тут есть одна тонкость — как и всякий визивиговый редактор он совершенно не
> стесняется перезаписывать в файле то, что перезаписывать там не нужно. То есть
> чтоб генерировать аккуратные патчи (и вообще мочь все это безобразие
> версионировать), надо знать, чем пользуется именно т. Жеков. А это явно не
> Фонтфорж, а что — он не пишет, и спросить у него негде. Хотя есть у меня
> подозрение, что gbdfed’ом он пользуется. Ну по крайней мере, именно он
> генерирует BDF почти идентичный оригинальному.
>
Удалили gbdfed в 2011:

  https://packages.qa.debian.org/g/gbdfed.html

На кладбище

  deb [arch=amd64] http://archive.debian.org/debian squeeze main contrib 
non-free

нашел, придется такое держать, а то безжалосно удаляют. Качать с сайтов и
распаковывать неподписаное - неприятно.

> А вот я, честно говоря, даже и не пробовал на пользовательском уровне ничего с
> этим делать. Для тестирования шрифт устанавливать не надо, а для постоянного
> пользования православно шрифт пакетировать и пакетом устанавливать — ну и я
> пакетирую по образцу и на замену «xfonts-terminus». Тем более, что через один
> только «xset fp» шрифт не будет доступен в GTK / Qt (или я неправ, и будет?)

TTF шрифты после подкидывания в ~/.local/share/fonts и перезапуске приложения
сразу доступны даже без:

  fc-cache -f -v

-- 
http://defun.work/



Re: Фонт для редактора.

2016-09-25 Пенетрантность Oleksandr Gavenko
On 2016-09-25, Dmitry Alexandrov wrote:

> И чтобы не быть голословным, собственно вот патчик. Товарищ Димитр Жеков
> почему-то избегает пользоваться системой контроля версий, так что патч
> относительно последнего тарболла (terminus-font-4.40.tar.gz).

Класно!

Я не вникал а в поиске ничего не нашео что есть в пакетах - чем визуально
редактируются bdf файлы?

Для векторных вижу что FontForge применяется...

И когда пробовал чужие bdf фонты тестировать:

  $ bdftopcf -o font.pcf font.bdf
  $ cp font.pcf $FONTDIR
  $ mkfontdir $FONTDIR
  $ xset fp+ $FONTDIR
  $ xset fp rehash

на шаге:

  bash# xset fp+ $PWD
  xset:  bad font path element (#0), possible causes are:
  Directory does not exist or has wrong permissions
  Directory missing fonts.dir
  Incorrect font server address or syntax

Когда делаеш в /usr/share/fonts/x11/tmp от sudo - так не ругается. А с
/home/user/tmp не хочет...

-- 
http://defun.work/



Re: Фонт для редактора.

2016-09-25 Пенетрантность Oleksandr Gavenko
On 2016-09-25, Dmitry Alexandrov wrote:

> Из-за двух отсутствующих литер (причем откровенно примитивных) менять всю
> гарнитуру? Пардон, но что может быть проще, чем просто взять, да и
> дорисовать пару символов в свободный *растровый* шрифт?

Я помучился с настройками, на селедущий день решение заработало:

  
http://emacs.stackexchange.com/questions/27312/default-font-has-no-slant-italic-but-i-want-to-show-italic-text/

  (set-frame-font "-*-terminus-*-*-*--14-*-*-*-c-*-*-*")
  (setq-default line-spacing nil)
  (set-fontset-font nil 'cyrillic "-*-terminus-*-*-*--14-*-*-*-c-*-*-*")
  (set-fontset-font nil 'greek "-*-terminus-*-*-*--14-*-*-*-c-*-*-*")
  (set-fontset-font nil nil "-misc-fixed-*-*-*--13-*-*-*-*-*-*-*")
  (set-fontset-font nil 'phonetic "-misc-fixed-*-*-*--13-*-*-*-*-*-*-*")
  (set-fontset-font nil 'symbol "-misc-fixed-*-*-*--13-*-*-*-*-*-*-*")
  ;; MODIFIER LETTER is not present in terminus, this includes ˌːˈ characters.
  (set-fontset-font nil '(#x02C0 . #x02FF) 
"-misc-fixed-*-*-*--13-*-*-*-*-*-*-*")

Не знаю чего послдедняя строка вчера не работала.

Полагаю не всегда запускал в "чистом" огружении.

Автору terminus предложил свои услуги, через приват. На SourceForge он че то
выключил возможность заводить баги.

Как альтрнатива всем требованиям (кроме эстетики) удовлетворяют любой из:

  (set-frame-font "FreeMono-12")
  (set-frame-font "DejaVu Sans Mono-10")

У DejaVu Sans Mono немного потолже линии, и поразмытей он.

Эти слишком размытые и толстые:

  (set-frame-font "Hack-10")
  (set-frame-font "Terminus-12")
  (set-frame-font "Inconsolata-11")
  (set-frame-font "IBM 3270-12")
  (set-frame-font "Space Mono-10")

А у этих не все есть:

  (set-frame-font "Unifont-12")  ; Lack italic
  (set-frame-font "Liberation Mono-11")  ; Lack phonetic script

-- 
http://defun.work/



Re: Фонт для редактора.

2016-09-25 Пенетрантность Oleksandr Gavenko
On 2016-09-25, Egorov N.V. wrote:

>> Нужен для редактора исходного кода с вариациями weight=bold,
>> slant=italic и с глифами в кирилице, греческом и фонетическом скрипте.
>
> Для меня два рабочих варианта AnonymousPro-11 или Terminus-12, правда
> не в курсе как у последнего с Греческим. Про фонетический скрипт вообще
> не в курсе что там за глифы.
>
AnonymousPro оказывается нужно брать самому с:

  http://www.marksimonson.com/fonts/view/anonymous-pro

Примечательно:

  Bitmaps are included for these ppems: 10, 11, 12, and 13.

Понятно что набор глифов - только часто встречающиеся. Псевдографика
(например BLACK RIGHT POINTING POINTER) в них не входит.

Про Terminus я уже писал. Это вроде алиас на битмапный xos4-terminus:

  Terminus-12  ===  -*-terminus-*-r-*--16-*-*-*-c-*-*-*

  http://terminus-font.sourceforge.net/
  https://sourceforge.net/projects/terminus-font/

Автор в этом году что то там делал, можно попросить его добавить недостающие
мне 3 символа.

В FAQ автор не хочет делать slant=italic, народные умельцы (Anton Zinoviev
) посредством bdfslant.pl сгибают глифы для пакета в
Debian.

Потому увидеть битмапный oblique и тем более italic - маловероятно, никто не
заморачивается.

>> TTF все имеют вариации italic/bold? Она строится алгоритмически?
>
> Нет, не все, и алгоритмически они не строятся, а выбираются наиболее
> подходящие из установленных, по семейству.  

Ясно. Разница между oblique и italic небольшая и я заметил что Emacs подбирает
oblique если просишь italic. Это для всех приложений так работает? Типа если
не roman то взять что-то другое?

-- 
http://defun.work/



Re: Фонт для редактора.

2016-09-24 Пенетрантность Oleksandr Gavenko
On 2016-09-25, Oleksandr Gavenko wrote:

> Тут большуший список фонтов:
>
>   https://www.slant.co/topics/67/~programming-fonts

Забыл, ссылки отсюда

  https://wiki.archlinux.org/index.php/fonts#Monospaced

Для Arch конешно много чего запакетировано, но без лицензионной чистоты.

Очень долго в этом всем копаться.

-- 
http://defun.work/



Re: Фонт для редактора.

2016-09-24 Пенетрантность Oleksandr Gavenko
On 2016-09-24, Oleksandr Gavenko wrote:

> Захотелось моно-фонт с вариациями weight=bold, slant=italic и
> weight=bold:slant=italic при чем с позициями для кирилицы, греческого и IPA
> (IPA не обязательно в вариациях).

Тут большуший список фонтов:

  https://www.slant.co/topics/67/~programming-fonts

За хорошие фонты нужно платить:

  http://www.fsd.it/shop/fonts/pragmatapro/
170$

На последнем сайте есть gif с демонстрацией набора кода на Haskell. Как только
несколько специфических символов набирается подряд - они заменяются
спец-символом.

Это в хинтах фонта прописано или фича редактора исходных текстов?

Судя по

  
http://askubuntu.com/questions/125297/how-can-i-fix-ttf-fonts-ligatures-tt-ti-fi-ff-etc-in-firefox

вполе может быть.

-- 
http://defun.work/



Re: Фонт для редактора.

2016-09-24 Пенетрантность Oleksandr Gavenko
On 2016-09-24, dimas wrote:

> monospace не пойдет? у меня в терминале и в Kate. болд, италик - есть, 
> символов
> дофига и больше (не весь юникод, конечно, но в достатке)

Я не сильно понимаю fontconfig, если полазить в
/usr/share/fontconfig/conf.avail/*.conf то будет ясно что monospace это алиас
к одному из фонтов:



Bitstream Vera Sans Mono
monospace


DejaVu Sans Mono
monospace


Liberation Mono
monospace


Inconsolata
monospace


Courier New
monospace


Courier
monospace

  ...

-- 
http://defun.work/



Фонт для редактора.

2016-09-24 Пенетрантность Oleksandr Gavenko
В Emacs много лет жил с:

  -misc-fixed-*-*-*--14-*-*-*-*-*-*-*

В фонте есть кирилица, греческий и IPA полностью.

Только один недостаток - нету slant кроме roman. Правда на 13 размере есть
oblique, но это не сильно спасает, нужно еще хакать редактор.

В терминале понятно что нету italic и потому фонт не будет дорабатываться.

Для xterm его оставлю.

Захотелось моно-фонт с вариациями weight=bold, slant=italic и
weight=bold:slant=italic при чем с позициями для кирилицы, греческого и IPA
(IPA не обязательно в вариациях).

В общем то:

  -xos4-terminus-*-r-*--16-*-*-*-c-*-*-*

имеет указанные вариации, для IPA я смогу использовать misc-fixed:

  (set-fontset-font "fontset-default" 'phonetic 
"-misc-*-*-*-*--16-*-*-*-*-*-*-*"nil)

но так неудачно оказывается что в скрипте латинницы нет глифа для "ː"
(MODIFIER LETTER TRIANGULAR COLON) и "ˈ" (MODIFIER LETTER VERTICAL LINE).

В итоге текст с произношением выглядит плохо. Может в Emacs и можно настроить
мапинг индивидуальных символов, но это перебор.

Из TTF фонтов со скрптами в кирилице/греческом/IPA нашел DejaVu Sans Mono и
FreeMono.

К FreeMono есть притенции - в 12 размере слишком "длинные" по сравнению с
misc-fixed. FreeMono-11 выглядит похоже, но к сожалению алиасингом сьедаются
контуры у некоторых глифов да и мелковато.

В DejaVu Sans Mono немного жирноватые линии, хотя 11 размер очень хорошо
читается, особенно с большим межстрочным промежутком:

  (setq-default line-spacing 1) 

Можно ли как то покрутить толщину линий глифов и ширину глифов в TTF фонтах?

Может нужно алиасинг, хинтинг мучить?

Мне по душе битмапный четкий misc-fixed...



Какие фонты посоветуете, а то:

  $ fc-list :spacing=mono
  $ xlsfonts -fn '*-*-*-*-*-*-*-*-*-*-*-m*'
  $ xlsfonts -fn '*-*-*-*-*-*-*-*-*-*-*-c*'

работает только на установленных фонтах...

Нужен для редактора исходного кода с вариациями weight=bold, slant=italic и с
глифами в кирилице, греческом и фонетическом скрипте.



TTF все имеют вариации italic/bold? Она строится алгоритмически?

Потому как не ясно почему файлов несколько:

  $ ls /usr/share/fonts/truetype/freefont/FreeMono*.ttf
  FreeMonoBoldOblique.ttf
  FreeMonoBold.ttf
  FreeMonoOblique.ttf
  FreeMono.ttf

-- 
http://defun.work/



Re: ищу планировщик, todo-лист на замену BSD calendar

2016-09-17 Пенетрантность Oleksandr Gavenko
On 2016-09-16, Dmitrii Kashin wrote:

>>  * настраивать зависимость задач друг от друга (т.е. зависимая задача
>>не появляется в листе, пока не будет выполнена задача, от которой
>>она зависит)
>
> Конечно. Можно упорядочить задачи либо иерархически, либо ключевым
> словом :ORDERED:.

Я пользуюсь линейной структурой т.к. мне не понятна как должны производится
архивация, если есть вложеность, потому как я ожидал бы сохранение вложености
и в архиве.

Например:

 * Task
 ** Subtask 1
 ** DONE Subtask 2
 ** Subtask 3

Я хочу архивировать "Subtask 2" в другой файл, а не просто пометить :ARCHIVED:

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

Штатный способ архиваци может:

  9.6.1 Moving a tree to the archive file
  ---

  The most common archiving action is to move a project tree to another
  file, the archive file.

Я накалялкал свой, который бы пробегал **по всем** org файлам (и полагается на
линейную организацию записей):

  http://hg.defun.work/dot-emacs/file/a062de941d68/.emacs-my#l1700



Имеется физическая копия Девид Ален GTD. Потерпев паскудный роботизированый
русский перевод (издатели козлы) и отбросив рекомендации поубирать бумажки на
столе отмечу рекомендации:

 * 5 мин. задачу вместо планирования сделай тут же и вернись к планированию ))

 * В общем между задачами нету зависимостей. Есть приоритеты и сроки.

   
http://productivity.stackexchange.com/questions/367/handling-task-dependencies-with-gtd

   Приоиртеты контролируются тем в каком списке задача.

Мне достаточно сроков, без иерархии и приоритетов.



Блокнотик с ручкой и вычеркивание отработаного - отлично работает, если не
требуется копипастить ))

-- 
http://defun.work/



Re: Gmane потихоньку умирает...

2016-09-10 Пенетрантность Oleksandr Gavenko
On 2016-08-22, Dmitry Derjavin wrote:

> Жалко было бы permalink, но, думаю, и его подхватят.

Для Gnus можно сделать:

  (defun my/gnus-search-web-by-message-id ()
"Search for article archive by Message-Id in Google."
(interactive)
(let ( (msgid (message-fetch-field "Message-Id")) (subj 
(message-fetch-field "Subject")) )
  (setq msgid (replace-regexp-in-string "[<>]" "" msgid))
  (setq subj (replace-regexp-in-string "[\"#]" " " subj))
  (browse-url (format "https://www.google.com.ua/search?q=%s; 
(url-encode-url (format "%s OR \"%s\"" msgid subj
  (browse-url (format "http://mid.mail-archive.com/%s; (url-encode-url 
msgid)

  (eval-after-load 'gnus-art
(define-key gnus-article-mode-map [(control return)] 
#'my/gnus-search-web-by-message-id))

marc.info как то плохо ищет по:

  https://marc.info/?i=XX

Понятно что нужно дождаться пока статья проиндексируется. Еще фильтры могут
прибить статью. Ну и вычурные Message-Id не индексируются.

-- 
http://defun.work/



Re: Firefox, Youtube и /tmp

2016-09-10 Пенетрантность Oleksandr Gavenko
On 2016-09-08, Андрей wrote:

> Я просто его еще с винды всегда ставил в false, с ввода html5 на ютубе,
> потому что во включенном состоянии он подгружал видео по мере просмотра, но
> у меня почему то подгрузка тупила и видео смотреть было невозможно, а в
> выключенном состоянии он загружал видео все сразу и было нормально. Сейчас
> же выключал этот параметр просто по привычке)

Вот это все можно включать в FF 48 или быть может и более раннем:

  media.fragmented-mp4.exposed
  media.fragmented-mp4.ffmpeg.enabled
  media.mediasource.enabled
  media.mediasource.webm.enabled

К FF довольно болезнено прикручивали поддержку видео.

Без указанных настроек edX и Coursera не функционировали корректно.

-- 
http://defun.work/



Re: Firefox, Youtube и /tmp

2016-09-10 Пенетрантность Oleksandr Gavenko
On 2016-09-08, Eugene Berdnikov wrote:

>  Плагин может складывать в /tmp/. Если мне не изменяет склероз,
>  флешплейр именно это и делал, сначала явно оставляя файл,
>  потом зачем-то стал удалять его после открытия (видимо, тогда
>  Адоб договорился с Гуглом затруднить скачивать видео с ютуба).

В свете HTML5 video и audio поставляется с прямыми ссылками.

Крупные игроки договорились с производителями браузеров и W3C о политиках
ограничения доступа к содержимому фреймов если домены не совпадают, потому
ссылки генерируются проприетарными способами и сайты не смогут красть контент.

Не обязательно следовать соглашению браузеров ))

Несколько проектов реверсят способ генерации ссылок для множества популярных
сервисов.

Для Firefox и Chrome:

http://www.downloadhelper.net/
  Video DownloadHelper

А так вообще:

  $ sudo apt-get install youtube-dl
  $ youtube-dl 'https://www.youtube.com/watch?v=qHGTs1NSB1s'

Удобно посмотреть видео потом и/или скинуть на мобильный гаджет.

-- 
http://defun.work/



Re: Тестирование DNS в lxc контейнере.

2016-09-05 Пенетрантность Oleksandr Gavenko
On 2016-09-05, Иван Лох wrote:

> В системе i386 и ядром amd64 уже ставится и работает?

Чем такая конфигурация привлекательна?

Вендоры не поставляют 32-bit драйверов и хочется сэкономить на RAM в офисных
компьютерах?

-- 
http://defun.work/



Re: Тестирование DNS в lxc контейнере.

2016-09-05 Пенетрантность Oleksandr Gavenko
On 2016-09-05, Михаил Касаджиков wrote:

>> VirtualBox не запустится пока не выгрузить kvm.ko и наоборот с vboxdrv.ko
>
> Прекрасно работают одновременно и KVM и VirtualBox:
> $ lsmod | grep -e ^kvm -e ^vbox
> vboxpci24576  0
> vboxnetadp 28672  0
> vboxnetflt 28672  0
> vboxdrv   450560  3 vboxnetadp,vboxnetflt,vboxpci
> kvm_amd61440  0
> kvm   565248  1 kvm_amd

Я сделал коственный вывод, KVM ускорение Android эмулятора конфликтует с
VirtualBox. Модули то загружаются, но конкретно ругались приложения:

  $ emulator-x86 -avd $NAME -qemu -m 512 -enable-kvm
  $ virtualbox

У меня было как в:

  
http://stackoverflow.com/questions/16168799/android-emulator-and-virtualbox-cannot-run-at-same-time

Правда официальный Android эмулятор у меня жутко тупил, я использовал freeware
Genymotion, который основан на VirtualBox ))

-- 
http://defun.work/



Re: Тестирование DNS в lxc контейнере.

2016-09-04 Пенетрантность Oleksandr Gavenko
On 2016-09-04, Victor Wagner wrote:
> Eugene Berdnikov  wrote:
>> > Лучше взять KVM, а не virtual box.   
>> 
>>  Чем лучше? Неужто в virtualbox резолвер криво работает? :)
>
> 1. Не нужно дополннительных модулей в ядро.

bash# lsmod | grep kvm
63:kvm_intel 184320  0
64:kvm   552960  1 kvm_intel

VirtualBox не запустится пока не выгрузить kvm.ko и наоборот с vboxdrv.ko

Наверно имелось ввиду что kvm в дереве исходников Linux:

  bash# locate kvm.ko
  /lib/modules/4.5.0-2-amd64/kernel/arch/x86/kvm/kvm.ko

  bash# locate vboxdrv.ko
  /lib/modules/4.5.0-2-amd64/updates/dkms/vboxdrv.ko

Таки да, Oracle в любой момент может убить проект VirtualBox.

-- 
http://defun.work/



Re: Тестирование DNS в lxc контейнере.

2016-09-03 Пенетрантность Oleksandr Gavenko
On 2016-09-03, Oleksandr Gavenko wrote:

> Я не хочу заводить virtualbox под Debian sid, но не очевидно как в LXC
> контейнере будет выполняться разрешение имен DNS.

В LXC релиз Sid не стартует, а в Stretch connman завершается с ошибками.

В итоге проверил в VirtualBox ))

-- 
http://defun.work/



Тестирование DNS в lxc контейнере.

2016-09-03 Пенетрантность Oleksandr Gavenko
Я не понимаю можно ли в LXC проверить что мой багрепорт разрешен.

  https://bugs.debian.org/cgi-bin/bugreport.cgi?archive=yes=805797
connman: Utility to flush DNS cache?

Я не хочу заводить virtualbox под Debian sid, но не очевидно как в LXC
контейнере будет выполняться разрешение имен DNS.

У контейнера есть lxcbr0 с настройками в /etc/default/lxc-net



Используется ли libc из host в LXC guest? Или только ядро шарится, а весь
userspace берется из файлов в /var/lib/lxc/*/* ?

-- 
http://defun.work/



Отладка проблем при установке/удалении пакетов

2016-09-03 Пенетрантность Oleksandr Gavenko
Как заставить apt-get / aptitude выполнить установку/удаление игнорируя глупые
ошибки что бы не терять время на изучение?

= TL;DR 

Удаление пакета ofono завершалось с ошибкой:

  Removing ofono (1.15-3) ...
  [] Stopping Bluetooth DUN daemon: dundeeTerminated
  ...
  Errors were encountered while processing:
   ofono
  E: Sub-process /usr/bin/dpkg returned an error code (1)
  Failed to perform requested operation on package.  Trying to recover:
  Press Return to continue.

/var/lib/dpkg/info/ofono.prerm вызывает:

  invoke-rc.d dundee stop || exit $?

/etc/init.d/dundee вызывает:

  do_stop()
  {
  start-stop-daemon --stop --quiet --oknodo --name $NAME
  }

"set -x" и "strace -f" на start-stop-daemon говорит что проблема там, хотя
самостоятельный вызов:

  $ sudo start-stop-daemon --stop --quiet --oknodo --name dundee

завершается с нормальным кодом 0.

Я подменил на:

  do_stop()
  {
  true # start-stop-daemon --stop --quiet --oknodo --name $NAME
  }

и aptitude успешно завершил работу.

-- 
http://defun.work/



Re: Gmane потихоньку умирает...

2016-08-24 Пенетрантность Oleksandr Gavenko
On 2016-08-24, Dmitry Derjavin wrote:

>> А вот как теперь новые списки рассылки-то добавлять?
>
> Раньше ведь был почтовый адрес какой-то. Или нет? Не помню, давно уже
> добавлял.

Не все так плохо, если популярный сайт умер:

  https://web.archive.org/web/*/gmane.org

  https://web.archive.org/web/20160708090156/http://gmane.org/import.php

  larsi+gm...@gnus.org

-- 
http://defun.work/



Re: Gmane потихоньку умирает...

2016-08-22 Пенетрантность Oleksandr Gavenko
On 2016-08-22, Dmitry Derjavin wrote:

> https://lars.ingebrigtsen.no/2016/07/28/the-end-of-gmane/comment-page-1/#comment-13502
>
> Там же основные проблемы были из-за web-интерфейса. NNTP точно
> останется.

Я попал на даунтайм позавчера. Потому искал альтернативы.

Обновил страничку https://wiki.debian.org/UseNet

В общем:

  linux.debian.* - gateways to debian-*@lists.debian.org 

По идее это пробрасывание в mail серверах проекта Debian настроено.

> Жалко было бы permalink, но, думаю, и его подхватят.

У меня в блокнотике где то 70 шт. Из Archived-At выдирал вместе с текстом, что
бы по необходимости вернуться к дискусии.

-- 
http://defun.work/



Gmane потихоньку умирает...

2016-08-22 Пенетрантность Oleksandr Gavenko
Пояснения автора:

  https://lars.ingebrigtsen.no/2016/07/28/the-end-of-gmane/

Мне нравилось что можно ранее прочитаные статьи подгружать (по Message-ID
из References).

Gnus восстанавливал нить разговора.

С подпиской в рассылку не понимаю как подобный workflow организовать, потому
как прочитаные письма я почти всегда удаляю.



На news.eternal-september.org есть группа linux.debian.user.russian с
содержимым https://lists.debian.org/debian-russian/ как говорится на:

  https://www.debian.org/support#usenet

Т.е. можно продолжать следить за рассылкой не подписываясь и не фильтруя
письма по каталогам.

-- 
http://defun.work/



Re: net_ratelimit: 2 callbacks suppressed

2016-07-12 Пенетрантность Oleksandr Gavenko
On 2016-07-11, Andrey Melnikoff wrote:

>>  Теперь вроде понятно: переданных пользователю сообщний вообще нет,
>>  а удалённые ядром сообщения посчитаны, так? Причём интервал гораздо
>>  больше нескольких секунд. Тогда это похоже на багу.
> Нее, не бага. Этож VPS. Судя по всему - какой-нить протухший openvz, в
> котором часть мессаджей тупо отфильтрованно. А судя по набору симптомов и
> жалобам поциЭнта - у него тупо кончаются лимиты на сеть.
> Найти в наше время такой VPS - надо долго и качественно стараться.
>
> Автор, файлик /proc/user_beancounters есть в наличии? Если есть - покажи
> чего в нем. Если нет - вывод `cat /proc/1/environ`

  # cat /proc/user_beancounters
  cat: /proc/user_beancounters: No such file or directory

  # sudo cat /proc/1/environ
  
SHLVL=1HOME=/init=/sbin/initTERM=linuxdrop_caps=BOOT_IMAGE=/vmlinuz-3.16.0-4-amd64PATH=/sbin:/usr/sbin:/bin:/usr/binPWD=/rootmnt=/root

  # sudo dmidecode -s system-product-name
  KVM

  # sudo virt-what
  kvm

Конешно я не учел что возможны приколы от виртуализации и не ясно как сетевой
код изолирован между виртуалками. Реализация может запрещать попадать
сетевым сообщениям в логи или у соседа чего то творится...

В общем обращаюсь к хостеру, не стоит угадывать, спасибо ответившим.

-- 
http://defun.work/



Re: Настроить Wi-Fi на новой системе

2016-07-10 Пенетрантность Oleksandr Gavenko
On 2016-07-10, Евгений Золотов wrote:

> Теперь проблема. Wi-Fi-соединение установлено: роутер меня видит, ноут
> роутер видит, сила сигнала показывается, интерфейс wlan0 поднят
> (ifconfig). Пинги до 127.0.0.1 идут нормально. Но при попытке
> пинговать что-либо извне (ну пусть google.ru) IP-адрес узла
> _определяется_, но пинги не идут: destination host unreacheable.

Следующее предложение соласуется с Вашими наблюдениями:

  * по DHCP получен адрес DNS резолвера - роутера (см. /etc/resolv.conf) -
потому nslookup работает
  * дефолтный маршрут через роутер не установлен (см. ip route show), потому
ping 8.8.8.8 не сработает

-- 
http://defun.work/



Re: net_ratelimit: 2 callbacks suppressed

2016-07-10 Пенетрантность Oleksandr Gavenko
On 2016-07-10, Eugene Berdnikov wrote:

> On Sun, Jul 10, 2016 at 04:21:47PM +0300, Oleksandr Gavenko wrote:
>> По сообщению в логе /var/log/messages:
>> 
>>   net_ratelimit: 2 callbacks suppressed
>> 
>> нашел обьяснение:
>> 
>>   
>> https://bani.com.br/2015/06/linux-getting-rid-of-net_ratelimit-n-callbacks-suppressed-messages/
>> 
>> и повысил лимиты в /etc/sysctl.conf:
>> 
>>   net.core.message_cost = 1
>>   net.core.message_burst = 20
>> 
>> 
>>   bash# sudo sysctl -p
>> 
>> Соответствующие сообщения перестали сыпаться. Хотелось увидеть какие 
>> сообщения
>> пропадают, попробовал через:
>> 
>>   bash# sudo inotifywait -e modify -m -r /var/log
>
>  Вы же их выключили, :) т.е. запретили передачу из ядра в syslog, а теперь
>  пытаетесь найти что-то в /var/log/. Конечно, там теперь ничего не будет.
>

Почему выключил и что выключил?

Мое понимание - были некие события, которые не попали в логи, т.к. для
сетевого кода ядра и модулей по дефолту net.core.message_cost = 5,
net.core.message_burst = 10 (т.е. ограничение не более 10 событий за 5 сек).

Я повысил лимит сначала до 5 событий в секунду и все еще проскальзывало
сообщение:

  bash# dmesg -e | tail 
  [Jul10 14:59] net_ratelimit: 7 callbacks suppressed
  [Jul10 15:03] net_ratelimit: 7 callbacks suppressed
  [Jul10 15:05] net_ratelimit: 7 callbacks suppressed
  [Jul10 15:09] net_ratelimit: 7 callbacks suppressed
  [Jul10 15:12] net_ratelimit: 7 callbacks suppressed
  [Jul10 15:14] net_ratelimit: 7 callbacks suppressed
  [Jul10 15:17] net_ratelimit: 7 callbacks suppressed
  [Jul10 15:20] net_ratelimit: 7 callbacks suppressed
  [Jul10 15:23] net_ratelimit: 7 callbacks suppressed
  [Jul10 15:26] net_ratelimit: 7 callbacks suppressed

Последняя запись - посделняя за день, когда лимит еще не был задран - до 20
соб/сек.

>> Как узнать куда уходят сообщения, ранее скрываемые "net.core"?
>
>  Для этого, во-первых, нужно сообщения вытащить из ядра. То есть вынимать
>  из /dev/kmsg безусловно, во-вторых, сделать чтение из syslogd по запросу.
>

Вроде dmesg делает чтение из /dev/kmsg, коственно по тексту man страницы и
сравнением вывода:

  $ cat /dev/kmsg
  $ dmesg -r

Сообщение "7 callbacks suppressed" видно в /dev/kmsg и такие записи последние.

Если несколько "callbacks suppressed", а потом не-suppressed я ожидал что они
отобразяться в /dev/kmsg.

Хотя меня смущает слово "callbacks". Может никаких событий логгирования и не
происходило?

>  Вам не нравится, что сообщения сыпятся в /var/log/messages? Так отключите,
>  переконфигурив syslog. Если нужно читать on demand, сделайте так, чтобы
>  syslog писал их в /dev/null, например. Или посылал по сети туда, где никто
>  не слушает, например, на 127.0.0.1. В первом случае можно будет смотреть,
>  что пишется в файловый дескриптов strace'ом, во втором -- ловить и смотреть
>  пакеты tcpdump'ом. Первый способ намного дешевле по ресурам.

Я не все понимаю из предложеного.

У меня VPS с домашней страничкой перестал быть доступным из сети, хотя
WEB-панелька хостера говорила что виртуалка жива. Перезагрузка VPS из панелки
сделала хост снова доступным, в логах ряд наиболее послених сообщения вида:

  2 callbacks suppressed

Есть небольшое желание сделать так что бы в следующий раз видеть что то более
осмысленное.

-- 
http://defun.work/



net_ratelimit: 2 callbacks suppressed

2016-07-10 Пенетрантность Oleksandr Gavenko
По сообщению в логе /var/log/messages:

  net_ratelimit: 2 callbacks suppressed

нашел обьяснение:

  
https://bani.com.br/2015/06/linux-getting-rid-of-net_ratelimit-n-callbacks-suppressed-messages/

и повысил лимиты в /etc/sysctl.conf:

  net.core.message_cost = 1
  net.core.message_burst = 20


  bash# sudo sysctl -p

Соответствующие сообщения перестали сыпаться. Хотелось увидеть какие сообщения
пропадают, попробовал через:

  bash# sudo inotifywait -e modify -m -r /var/log   
 

Выдало только наподобии:

  /var/log/ MODIFY auth.log
  /var/log/ MODIFY auth.log
  /var/log/ MODIFY auth.log
  /var/log/lighttpd/ MODIFY access.log
  /var/log/lighttpd/ MODIFY access.log
  /var/log/ MODIFY auth.log
  /var/log/ MODIFY auth.log
  /var/log/ MODIFY auth.log

и /var/log/auth.log говорит о подборе пароля root через ssh, там с
периодичностью в 5 сек долбят. lighttpd огуливают поисковые боты, более
щадяще.

Документация по net.core.message_cost:

  https://www.kernel.org/doc/Documentation/sysctl/net.txt

  message_burst and message_cost
  --

  These parameters  are used to limit the warning messages written to the kernel
  log from  the  networking  code.  They  enforce  a  rate  limit  to  make  a
  denial-of-service attack  impossible. A higher message_cost factor, results in
  fewer messages that will be written. Message_burst controls when messages will
  be dropped.  The  default  settings  limit  warning messages to one every five
  seconds.

Я не вижу связи с sshd и lighttpd.

На VPS:

  bash# pstree
  init─┬─cron
   ├─6*[getty]
   ├─lighttpd
   ├─rsyslogd─┬─{in:imklog}
   │  ├─{in:imuxsock}
   │  └─{rs:main Q:Reg}
   ├─sshd───sshd───sshd───bash───emacs───bash───pstree
   ├─udevd
   └─xinetd

Как узнать куда уходят сообщения, ранее скрываемые "net.core"?

-- 
http://defun.work/



Re: html -> pdf

2016-07-10 Пенетрантность Oleksandr Gavenko
On 2016-06-30, Alex Kicelew wrote:

> Да, в итоге так и сделал. Просто было лень писать парсер, была надежда,
> что такая задача уже перед кем-нибудь вставала. :)

Я хотел читать HTML книжки в Kindle и Calibre обладает соответсвующим
инструментом:

http://ebooks.stackexchange.com/questions/2/how-can-i-convert-an-html-site-into-an-ebook/6285#6285

  $ wget -r -np -nc -k -c http://.../.../..

  Locate your main HTML file (usually book.html or index.html) and convert to 
MOBI:

  $ cd dir-with-index
  $ ebook-convert index.html book.mobi
  $ ebook-convert index.html book.fb2
  $ ebook-convert index.html book.epub

С PDF тоже работает:

  $ ebook-convert index.html book.pdf

Читать можно но Calibre убирает форматирование, работатет как скринридер или
как оно называется (отображение текста в формате для тех кого disabilities).

В личку копию что бы точно дошло.

-- 
http://defun.work/



Re: Удобная читалка для ebook форматов.

2016-06-17 Пенетрантность Oleksandr Gavenko
On 2016-06-11, Dmitrii Kashin wrote:

> "d.himro"  writes:
>
>> Но и из работающего нормальных аналогов пока не имеется.
>
> Не стоит забывать про существование старого доброго IRC. Он никуда не
> исчез, и до сих пор широко используется для тематических бесед.

И простота протокола оставляет его привлекательным навсегда:

  {
  echo 'USER bot 0 * :buildbot
  echo 'NICK bot'
  echo 'JOIN #channel'
  echo 'PRIVMSG #channel :Build failed!'
  echo 'QUIT'
  } | nc irc.freenode.net 6667

http://archive.oreilly.com/pub/h/1963
  IRC Over Telnet 
https://tools.ietf.org/html/rfc2812
  Internet Relay Chat: Client Protocol

-- 
http://defun.work/



  1   2   3   4   5   6   7   8   >