LINUX.ORG.RU

Избранные сообщения Karthago

#PixelArt — всё о пиксельной графике под Unix-like OS

Форум — Multimedia

В этом топике собираем ссылки на программы и дополнения к ним, на туториалы и рукодства, а также ссылки на полезные ресурсы по тематике «pixel art».

Если вы знаете что добавить в шапку этого топика — пишите об этом в комментариях! ;-)

ГРАФИЧЕСКИЕ РЕДАКТОРЫ

GrafX2 — свободный редактор пиксельной графики.

Aseprite-GPL — свободный редактор пиксельной графики.

mtPaint — свободный редактор растровой и пиксельной графики.

AzPainterB — свободный редактор растровой и пиксельной графики.

GIMP — свободный редактор растровой графики.

AzPainter — свободный редактор растровой графики.

Krita — свободный редактор растровой графики.

СРАВНЕНИЯ РЕДАКТОРОВ ПИКСЕЛЬНОЙ ГРАФИКИ:

ФОРУМЫ / FORUMS

Pixel Joint Forum: Resources and Support
>>> http://pixeljoint.com/forum/forum_topics.asp?FID=6

Reddit - /r/linux: Good pixel art editor for linux?
>>> https://www.reddit.com/r/linux/comments/6cfo8f/good_pixel_art_editor_for_linux/

ГАЛЛЕРЕИ / ХОСТИНГИ / COMMUNITIES

РУКОВОДСТВА / TUTORIALS

>>> https://lospec.com/pixel-art-tutorials

ПАЛИТРЫ / PALETTES

>>> https://lospec.com/palette-list

КОНКУРСЫ / DEMOPARTIES

P.S.: ■ □ ◪ ▦ 🏁

Lospec - Resources
>>> https://lospec.com/resources

Топик «Работа с фотографиями в Linux»
>>> Работа с фотографиями в Linux

 , , , ,

atsym ()

Посоветуйте расширение Firefox которое может убирать любые элементы страницы (только не баннерорезки!)

Форум — General

Смотрю прогноз погоды на yandex.ru/pogoda

Как только я не пробовал adblock и ublock-origin-ом убрать там контекстную рекламу - она после перезагрузки снова вылазит! Попробуйте, у вас не получится!

В ящике на mail.ru такая же хрень вылазит. Режешь ее, снова заходишь, а она появляется!

Как это убрать то? Подскажите пожалуйста.

 ,

Anatuz ()

Обработка сканов с «манхэттенской» структурой

Форум — Desktop

Обработка сканов с «манхэттенской» (блочной) структурой.

Scan.png

Инструменты:

«Манхэттенская» структура означает, что скан можно разделить на кардинально отличающиеся друг от друга области: цветные иллюстрации и чёрно-белый (хотя не обязательно чёрный) текст.

Первое. Отделяем иллюстрации от текста:

$ croppertktopdf.py page-062.png
(как выглядит)

Устанавливаем параметры:

  • DPI: 600 - разрешение скана
  • Формат: png - на данном этапе используем Flate кодирование
  • div: 2 - downsample иллюстраций (скан не обладает достаточным качеством, чтобы имело смысл сохранять иллюстрации в 600dpi, поэтому сохранять их будем в 300dpi, что облегчит просмотр во вьючере)
  • []: 3 - clean margin, очистка дополнительно трёх пикселей вокруг иллюстраций на нулевом (текстовом) фрейме. Это чтобы не оставалось контуров от иллюстраций.

Используя моды [Zoom] и [+] можно очень точно выделить иллюстрации (не очень удобно правда, но лучше я уже сделать не смог). После того, как все иллюстрации выделены жмём [Crops]. В результате получаем <page-062.png.pdf> с иллюстрациями (как выглядит) и набор фреймов, из которых для дальнейшей обработки нужен только нулевой <page-062__crop__0.png> (как выглядит)

Иллюстрации имеют пока большой размер (11.2M), но только потому, что на данном этапе используется Flate компрессия.

Второе. Бинаризуем нулевой фрейм используя imagemagick:

convert +dither -colors 2 -units PixelsPerInch -density 600 -compress Group4 page-062__crop__0.png page-062__crop__0.tiff
(как выглядит)

Третье. Конвертируем бинаризованное изображение текста в pdf, используя tiff2pdf:

tiff2pdf -o page-062__crop__0.pdf page-062__crop__0.tiff
(как выглядит)

Размер page-062__crop__0.pdf с текстом вполне себе: 58K.

Четвертое. Объединяем текст и иллюстрации:

pdfwatermark page-062.png.pdf page-062__crop__0.pdf page.pdf
(как выглядит)

Размер page.pdf пока что большой (11.3M), по ещё Flate.

Пятое. Распознаем текст с помощью tesseract:

tesseract page-062__crop__0.tiff page-062__crop__0 -l rus+eng hocr
Преобразуем hocr в pdf с «невидимым» текстом:
hocr-pdf -d 600 -i tiff -o hocr.pdf -n .
И пристегиваем hocr.pdf к изображению страницы page.pdf
pdfwatermark hocr.pdf page.pdf page-062.pdf

Шестое. DCT компрессия иллюстраций с помощью ghostscript:

ps2pdf page-062.pdf page-062.gs.pdf
(как выглядит)

Результирующий документ page-062.gs.pdf имеет размер 800K, быстро просматривается во вьючере, текст чёткий, без муара, иллюстрации на месте, имеет OCR слой. (Можно оптимизировать дополнительно с помощью jpdftweak)

 , ,

Deleted ()

Прорекламирую неплохой VPS

Форум — Talks

liteserver.nl держу там VPS-ку для VPN и тор-ноду, скорость хорошая, всё вроде работает. Суть в том, что там есть довольно дешёвый тариф на 256M, убунте хватает. С чернопятничной скидкой (на главной странице в шапке есть код) и годовой проплатой вышло €13,65 или €1.14 в месяц. На мой взгляд довольно хорошая цена, в своё время искал такой сервер.

 

Legioner ()

У чувака каждый apt-get update запускает Dwarf Fortress

Форум — Talks

А разгадка проста, скрипт запуска DF называется df.


https://askubuntu.com/questions/938606/dwarf-fortress-starting-during-apt-get...

 , ,

takino ()

Для тех, кто думает перейти на Gentoo

Форум — General

Привет

Достаточно часто создаются темы, где люди думают переходить на Gentoo и хотят уточнить некоторые моменты. Чтобы сэкономить время себе и другим, решил создать этот топик, в котором буду собирать ответы на частые вопросы.

TL; DR: Для тех, кто думает перейти на Gentoo (комментарий)

Преимущества
#1 Gentoo очень гибкая и всенастраиваема
Пример того что в Gentoo делается просто:
- Использовать openrc вместо systemd или наоборот; pulseaudio или без него
- Наложить кастомный патч; пример когда это нужно
- Подключить или отключить такие вещи как vaapi, vdpau, opencv и т. п.
- Иметь несколько веток софта; уточню, что это работает только для определённых пакетов; например можно одновременно установить python 2.7, 3.4, 3.5 или qt4 и qt5, но нельзя одновременно установить qt 5.7 и 5.8

#2 Очень удобный и функциональный пакетный менеджер
Примеры удобных фич:
- Прервать установку (вплоть до перегрузки компьютера), а потом ее продолжить. Можно продолжить с последнего пакета (emerge --resume), продолжить но пропустить последний пакет, например, если его установка прервалась с ошибкой (emerge --resume --skipfirst, некоторые нюансы); для больших пакетов можно продолжить саму компиляцию (ebuild <полный путь и имя файла>.ebuild merge).
- Когда при установке обновляется конфиг приложения, определяется редактировался ли предыдущий конфиг пользователем. Если да, конфиг не перезаписывается, а кладётся радом, и выводится сообщение пользователю с предложением обновить конфиг.
- Обновить всю систему, но исключить некоторые пакеты (удобно для исключения больших пакетов из ежедневного обновления)
- Почистить зависимости - удалить те пакеты, которые больше никому не нужны.
- Поскольку ebuild - текстовый файл, то можно пропарсить на предмет требований к количеству ресурсов для установки:

$ for F in $(find /usr/portage -name "*.ebuild") ; do REQ=$(grep "CHECKREQS" "$F") ; if [[ -n "$REQ" ]]; then echo -e "\n$F\n$REQ" ; fi; done
- Вынести компиляцию на другой компьютер (поддержка distcc на уровне пакетного менеджера). Важно когда Gentoo устанавливается на слабый компьютер.


#3 Хорошая документация, по крайней мере на английском. Более того, поскольку Gentoo-специфичные утилиты являются лишь надстройкой на generic механизмами, документация от других дистрибутивов (например от Arch) в большинстве случаев тоже подходит.
Опрос 2014: У какого дистрибутива лучшая документация

#4 Достаточно свежий софт, много сторонних репозиториев.
Список сторонних репозиториев
Gentoo - rolling release, а значит как только новая версия конкретного софта появилась в репозитории, её можно установить. Но здесь не имеется ввиду, что как только новая версия зарелизилась, она моментально становится доступна в основном дереве; лаг есть, но он как правило не большой, хотя зависит от пакета. В тестинг ветке новые версии появляются раньше. Кроме того мейнтейнеры Gentoo могут маскировать некоторые версии, если в них обнаруживаются серьезные баги. Однако всегда можно размаскировать нужную версию. Кроме того для некоторых пакетов есть -live версии, когда исходники скачиваются напрямую из github или аналога.
Пример когда «у меня не самый свежий софт в Gentoo»

#5 Полный порядок в системе, ничего лишнего - эстетическое удовольствие, плюс возможно можно немного улучшить перформанс

#6 В процессе установки и эксплуатации получаешь полное понимание как работает система, а значит возникающие проблемы решаются быстро. На самом деле без должного знания Линукса (или желания его узнать в процессе) Gentoo нормально не установить.

Недостатки
#1 Сложная и долгая первичная установка. Если устанавливать в первый раз, нужно готовиться потратить несколько дней. Для опытных - несколько часов + компиляция.
Время установки (компиляции) Gentoo, еще немного цифр по большим пакетам

#2 Пакетный менеджер хоть и удобный, но очень медленный

#3 Если не обновлять систему долго (полгода и более), то сложность обновления сопоставима с установкой новой системы. Есть мнение, что emerge-webrsync --revert=yyyymmdd должен помочь (лично я не проверял).

Особенности
#1 Высокий порог входа; дистрибутив не для новичков

#2 Обновляться нужно часто

#3 Основные фичи - в командной строке

#4 Есть две ветки: stable и testing. В stable меньше шансов встретить проблему, но в testing более свежий софт. Ветки можно комбинировать.

Мифы
Миф #1 Gentoo даст прирост производительности за счет того, что весь софт компилируется под конкретное железо.
Краткий ответ: В 99% случаев при смене дистрибутива X на Gentoo вы не заметите какого-либо улучшения в плане скорости работы. Если вы зададитесь целью сравнить свежеустановленный дистрибутив X с свежеустановленной Gentoo, то в 90% вы не увидите значительной разницы.

Детальный ответ.
Не следует ожидать что просто скомпилировав систему из исходников вы получите сколько-нибудь заметное улучшение перформанса.
Для большинства приложений компиляции под конкретное железо даст прирост производительности в районе 1-2%.
Ложка дегтя: в некоторых случаях даже может быть замедление. Например Firefox, можно ускорить с помощью PGO. В Gentoo по умолчанию это отключено, так как PGO увеличивает время компиляции почти в два раза. В бинарных дистрибутивах соотв. софт может быть скомпилирован с PGO.
Так как добиться улучшения производительности? Узкий круг приложений может быть значительно ускорен при компиляции под конкретную платформу - на 30%-50% и больше. В основном это приложения которые активно занимаются вычислениями. Но для этого требуется соотв. настройки. Например, активация SIMD инструкций, даст прирост производительности в мультимедиа приложениях. Некоторые процессоры имеют аппаратную поддержку шифрования AES. В бинарных дистрибутивах подобные фичи будут отключены, так как не все процессоры это поддерживают, а бинарные дистрибутивы в первую очередь заботятся о совместимости.
Небольшое улучшения перформанса возможно если убрать из системы всё лишнее (мнение 1, мнение 2).
Еще интересный случай

Миф #2 Обновления занимают много времени
Краткий ответ: 5-10 минут на фоне, не мешая основной работе.

Детальный ответ.
Обновления не занимают много времени, но опять же, при правильном подходе.
Во-первых, как было сказано выше, обновляться нужно часто. Для testing ветки это каждый день, или по крайней мере не реже чем в раз 2-3 недели. Для стабильной ветки - раз в неделю достаточно (на стабильной ветке намного реже выпускаются обновления)
Во-вторых, есть пакеты которые правда очень долго компилятся: libreoffice, firefox, chromium... Их всего 10-15. Я их исключаю из ежедневного обновления, а обновляю раз в несколько месяцев.
Еще нужно сказать, что на этом вопросе часто заостряют неоправданно много внимания. Обычно обновления происходят на фоне, и не сильно влияют на работу; так какая разница как долго они выполняются?
В итоге, у меня обновления занимают примерно 5-10 мин ежедневно (у меня тестинг-ветка).
К тому же всё происходит на фоне, в любой момент можно поставить на паузу (Ctrl+Z, fg), продолжить после прерывания (умышленного или случайного).
Мой скрипт ежедневного обновления

Миф #3 Gentoo требует много времени на обслуживание
Краткий ответ: Может быть больше, может быть меньше по сравнению с другими дистрибутивами. Очень зависит от того, насколько вы будете вчитываться в то, что пишет вам пакетный менеджер, и разбираться первопричинах.

Детальный ответ.
Обслуживание Gentoo занимает меньше времени по сравнению с другими дистрибутивами, но только при грамотном обращении, конечно. Достигается это за счет следующего:
- хороший пакетный менеджер: маскировки, глобальные и индивидуальные установки для пакетов (USE флаги, опции компиляции, каталоги), хуки, приоритеты (чтобы компиляция происходила на фоне и можно было работать), много опций для установки и анализа, подсказки после установки.
- всё происходит в CLI, а значит типовые операции можно обернуть в скрипты/алиасы.
- уже существуют много утилит для облегчения обслуживания: eselect, equery, eix, eclean, euse, genlop и др.
Грамотное обращение означает, что вы правильно и регулярно обновляете систему, исполняете предписания emerge, которые он выдает после установки, держите в порядке конфигурационные файлы, а если таки возникает проблема, которую решить вы не можете, то вы обращаетесь в форумы, а не просто жалуетесь на жизнь.
Что до проблем с обновлениями - см. следующий пункт «Миф #4 Установка, обновление постоянно падают; частые блокировки»

Миф #4 Установка, обновление постоянно падают; частые блокировки
Краткий ответ: Не чаще чем в других дистрибутивах

Детальный ответ.
Если говорить про «часто» и «постоянно», то проблемы с обновлением/установкой могут быть если:
- система давно не обновлялась
- система неправильно обслуживается (см. выше про Грамотное обращение)

В редких случаях пакет просто не компилируется. На самом деле это проблема не Gentoo, а тех, кто писал этот софт. И в подавляющим большинстве случаев это не является проблемой, и вот почему. Если это обновление, то можно продолжить процесс запустив emerge с параметрами --resume --skipfirst - он обойдет проблемный пакет, пересчитает зависимости чтобы система осталась консистентной, и продолжит обновление (а можно изначально передать параметр --keep-going, тогда это будет происходить автоматически, прерываний вообще не будет). Если пакет критичен, можно установить предыдущую версию, которая компилировалась (а проблемную замаскировать чтобы пакетный менеджер ее не видел).

Что может заблокировать обновление полностью:
- просьба пакетного менеджера поменять флаги пакета. При этом emerge предлагает сделать это автоматически, но лично я предпочитаю делать вручную. Для ручного способа, решается добавлением строчки в package.use
- просьба пакетного менеджера задать лицензию. Это валидно только для не-свободных лицензий, например EULA, Skype, Adobe Flash и т. п. Если мы говорим имено про обновление, то такое бывает только когда лицензия обновляется, что бывает очень редко (как много у вас пакетов под не-свободной лицензией, и как часто они меняют лицензию?). Решается добавлением одного слова в make.conf
- просьба пакетного менеджера размаскировать пакет. По моему опыту нужно не размаскировывать, а наоборот замаскировывать пакеты, которые тянут замаскированные зависимости. Это, да, требует минут 5-10 на разобраться. Но, если только у вас нет смешения веток и live пакетов, такой вариант случается раз в пятилетку.
- сложные блокировки. Большинство блокировок пакетный менеджер разрешает сам; по моим наблюдениям, качество данного механизма значительно улучшилось пару лет назад. Из своего опыты скажу, что (учитывая частые обновления) блокировок, которые бы совсем останавливали обновление я уже не видел года 1.5. Но если они есть, то это действительно сложный кейс.

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

Миф #5 В Gentoo нет бинарных пакетов
Краткий ответ: Есть там, где это действительно нужно.

Детальный ответ
Во-первых есть Calculate Linux - полностью бинарный форк Gentoo.
Во-вторых даже в самом Gentoo в основном репозитории есть несколько бинарных пакетов: libreoffice-bin, firefox-bin, некоторые другие. Связано это с тем, что из исходников они очень долго компилируются, и иногда проще поставить бинарник.
Бинарный пакет можно сделать самому командой quickpkg --include-config y <установленный пакет> - удобно для бекапов.

FAQ

#1 Установка на слабый компьютер
Смотря что есть слабый компьютер.
Из собственного опыта: Intel Core2 Duo 6600 @ 2.40GHz, 2Gb RAM + 4Gb swap хватало для комфортной работы в Gentoo.
Зачастую ebuld'ы содержат информацию о том, сколько нужно памяти для компиляции пакета. TOP 5:
16G - chromium
8G - ledger, isabelle
7G - ceph
6G - firefox x64 (для x32 нужно 3G), pypy x64 (для x32 нужно 3G)
5G - electron
Если компьютер и вправду слабый, то лучше выбрать не Gentoo (точнее не-source-based дистрибутив). Альтернатива - можно вынести компиляцию на другой «не-слабый» компьютер с помощью distcc.


Опрос 2018: Какой ОС вы пользуетесь на основном ПК?
Опрос 2017: Какую ОС вы используете на основном ПК?
Опрос 2014: Какой дистрибутив вы используете на десктопе?
W3Tech стастика дистрибутивов на серверах
Отличия дистрибутивов, время работы ноутбука
Чем удобны USE флаги
Сколько памяти нужно для РАБОТЫ Gentoo (сколько нужно для компиляции было указано выше)
Сколько места на диске нужно для Gentoo
Правильное полное обновление Gentoo, Мой скрипт ежедневного обновления, Еще вариант
Gentoo для девелоперов
Практика инсталляции Gentoo: в двух словах простым языком
Небольшой скрипт - сборка livecd

 

Kroz ()

Пьеса «Тред на ЛОРе», в одно действие.

Форум — Talks

по мотивам Ищу гуру Си программирования

Входит Вопрощающий:

Всем привет.
Есть тут свободные полгода
В которые хотел бы я программы изучать,
Даю вам это знать.
Пока что начал только Java лишь учить
По книге, впрочем, и дошёл до ООП,
Вы подскажите, это правильно, иль надобно тем книгам сгнить?
Хотел бы выбрать я ЯП и направление,
Что позволяло бы работать на фрилансе,
А также, у людей чтоб вызывалось изумление.

Входит ЛОРовец:
Двадцатник баксов в час, или забудь о нас

Входит Новенький:
You're welcome.
Давай свои контакты - отпишу.
Ведь мне не жалко помогать, один чёрт одиночество последнее недели
Так разъедает душу мне, что еле я дышу.

Входит Наркоман:
K&R расскажет, и покажет
Тебе всё милый друг,
Ну а коль что вдруг непонятно станет, то значит в голове недуг.
Ведь суть проста: конструкций мало, новых слов десятка два.
И сей язык освоишь быстро.
Хочу предупредить я, правда, что сам язык не цель твоя,
Ведь цель должна учится на ошибках.
Важнее знать не то, что как вам делать сударь,
Важнее путь тернистый, полный ям, и отроколов
Вам пройти и знать тропинку по которой надобно идти таким путем
Чтобы все ямки обойти.
И к сожаленью, или, может, к счастью, тропинку ту лишь одному тебе дано найти.
Ведь мудрый путник лишь укажет, в какую можно сторону идти.

Входит Зевака:
Внесите царя.

Входит Лавсан:
Я хоть не Царь, но знаю всё про Си, давай, спроси

Вопрощающий:
Жду контакта.

Входит Некто:
Будут вопросы - кастуй, или пиши на мыло.
И мыло можно, если что, найти в LKML и ffmpeg-develop.

Входит Царь:
О Наркоман, а почему нули,
Которые смешать с навозом в три счета,
Так много кукарекают о том, о чем не понимают ничерта?

И ладно, я бы понял, если ты бы что-то мог,
Но тыж не смог, дак почему ж несмогший путник,
Который тонет в луже иль болоте,
Иль где-то на задворках недовуза, тот пыжиться кого-то направлять?
Куда ты их направишь? Ты желаешь, их повернуть развитие всё вспять?
Ведь что ты можешь,
Как кроме повторять приевшиеся шутки,
и предлагать приевшиеся книжки,
Ответь, мальчишка?
И удиви меня своим вопросом.

Вопрощающий:
Увы, нет у меня таких вопросов
(И тут же поникает носом)

Входит Эдди: (лавсану)
Ты царь?

Лавсан:
Кто такой царь?

Новенький (лавсану):
Он твой последователь.
Вон, четырьмя постами выше.
И, потише,
Сейчас начнется развлеченье.

Эдди (лавсану):
А, раз не царь ты, то ведь Си не знаешь!
К тому же, зачем еще и о Царе тут вопрошаешь?

Царь (вопрошающему):
Причем тут удивительные.
Когда хотите вы спросить что-либо, то естественно,
Что на пространные вопросы,
Не менее пространные я буду вынужден вам отвечать ответы,
Поймите ж это.

Поэтому, Царя должны вы право заинтриговать,
Чтобы смог он для себя обосновать
Полезность траты времени на ху**оса.
Вот смысл моего вопроса.
Зачем царю писать куда-то, без причины?
Не есть ли это признак вроде Эдди дурачины?

Входит Аноним:
Какое-то собранье зебр в треде.
И странно, все стихами говорят.
Похоже, что попал я в Ад.

ЗАНАВЕС.

 ,

lovesan ()

Android, зонды, безопасность, СПО, паранойя

Форум — Mobile

Disclaimer1: Проблема с данным маном в том, что местной аудитории, например, плевать на ведроид, а тому же 4pda наплевать на фанатичный СПО и избавление от зондов. Рискнем и запостим здесь.

Disclaimer2: Все описанное является суммой наклопленного мной опыта вперемешку с моим личным мнением. Пишите комменты, будем улучшать-дополнять-чинить

Уровень прошивки

Практически все стоковые прошивки на сегодняшний день идут с gapps (Google Apps). Что же это за зверь:

  • Любое приложение (даже не требуещее никаких прав) может с ним общаться.
  • Gapps имеют доступ к сети.
  • Gapps позволяют Google в любой момент установить/удалить с вашего телефона любое приложение.
  • Gapps постоянно держат открытое сетевое соединение с серверами гугла (для нужд push-нотификаций).
  • Gapps — нереальное огромное количество кода. Стоковый образ (если верить opengapps) будет весить около 700Мб.

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

Сложный вопрос, на самом деле. Есть три варианта действий:

  • Новый и простой, и профитный способ. Появилась прошивка «LingeageOS for microG». Если ваше устройство поддерживает её, просто ставьте её и наслаждайтесь. Fdroid+MicroG+пуши+signature spoofing+unlp+OTA-обновления из коробки
  • Самый простой способ. Если ваш андроид достаточно старый (на достаточно новом не удастся отключить самый главный компонент gapps), из Настройки->Приложения отключите все, связанное с Google (особенно, Google Service Frameworks):
    • root не требуется;
    • push-уведомления работать не будут;
    • на устройстве останется огромная и потенциальная куча гугловского дерьма, хоть и менее активная.
  • Способ посложнее. Накатываем root и вручную удаляем все пакеты и библиотеки, требуемые гуглу:
    • требуется root и разблокировка загрузчика;
    • минимальное количество зондов без смены прошивку на полностью опенсорсную;
    • увы, в последних версиях андроида вам, скорее всего, придется оставить несколько пакетов (вроде GoogleSetupWizard), иначе система не загрузится.
  • Самый профитный способ. Ставим альтернативную прошивку (или мотаем до следующей секции и покупаем устройство с пгавославной прошивкой без зондов из коробки). Наслаждаемся.
    • Требуется root, разблокировка загрузчика, шаманство и местами смена устройства.

Я тут начал наслаждаться, но вдруг понадобились пуши, да и Uber требует зонды. Что делать?

Вдоль

Попробовать поставить MicroG, свободную реализацию клиентской части гуглозондов. Самая больная часть: помимо собственно MicroG вам нужно будет запилить себе Signature Spoofing. Коротко говоря, это обход защитного механизма, не позволяющего прикидываться gapps'ами кому попало. Для этого необходимо либо патчить прошивку при помощи Xposed/Needle/Haystack, либо использовать совместимую прошивку (смотрите список, по ссылке, их стало очень много). Все подробности по той ссылке.

MicroG позволяет завести пуши, сервисы геолокации (со множеством бекендов, ищите nlp location backend в f-droid) и большое количество софта (когда я в последний раз тыкал, работали даже покемоны).

Уровень софта

Без гуглозондов жить есть!

https://f-droid.org/ — каталог с опенсорсным софтом.

Предлагаю вам следующий список приложений, способный заменить типичный набор проприетари из типичной вендорской прошивки. Аналогичный список: https://github.com/Datenschutz/awesome-FOSS-apps

  • Yalp store. Позволяет ставить приложения из Google Play (да, иногда это все-таки нужно), в том числе через общий аккаунт. Не требует зондов.
    • Позволяет так же выкачивать купленные приложения (но не факт, что они заработают: они при работе могут проверять лиценизию через gapps, возможно, тут может помочь microg).
    • Альтернативно, воспользуйтесь моим решением для выкачивания софта прямо в свой репозиторий f-droid.
  • K-9 Mail. Почтовый клиент.
  • DAVDroid. Синхронизация контактов с owncloud/nextcloud.
  • Gadgetbridge. Синхронизация с умными часами и браслетами (pebble, mi band и некоторые другие)
  • NewPipe. Клиент для YouTube. Умеет воспроизводить видео в фоновом режиме как музыку, загружать файлы.
  • Odyssey. Просто материальный музыкальный плеер, но в последнее время очень нужный, т.к. вендоры повадились заменять в прошивке плеер на Google Music.
  • Набор простых и красивых затычек для различных приложений — simple mobile tools.
  • Файрволл AFWall+ файрволл (имеет Xposed модуль для расширения возможностей)
  • Amplify Battery Extender.
  • DNS66.
  • KDE Connect.
  • OpenKeychain.
  • OpenVPN FOSS.
  • Картография и навигация: Maps.Me (приз симпатий от комментаторов), OsmAnd (приз глюкалова от меня, но щито поделать).
  • Список стал очень жирным. Пока новые элементы не добавляю, думаю над критериями включения в него софта.

Если вы будете ставить проприетарный софт, помните о следующем:

  • Желательно зайти в настройки приложения и вручную запретить доступ ко всем ненужным разрешениям, дабы не промахнуться в нужный момент.
  • Отключите приложению фоновый доступ к сети (если у вас свежий Android) или вообще доступ к сети (если у вас стоит файрволл).
  • Малвари вроде «Сбербанк Онлайн» вообще лучше создать отдельный аккаунт на телефоне.
  • Яндексовским приложениям нельзя давать доступ к местоположению. Вообще никаким — все сливают.
  • Проприетарь может читать названия аккаунтов, даже не принадлежащих ей. Называйте их максимально обще, т.е. вместо «sportloto@syncserver.com» делайте «contacts sync».

Права суперпользователя

Читая васянский 4pda вы часто можете увидеть «ну и накатываем SuperSU.zip». Не делайте этого. Есть прекрасный опенсорсный superuser, совместимый со свежими ведроидами. Нужно лишь поставить zip (используйте beta на android >=6) и apk.

Если ваша прошивка основана на LineageOS, то все еще проще. Где-то рядом с загрузками в директории extra должен валяться zip, включающий встроенные и интегрированные в прошивку права суперпользователя. Профит.

XPosed

XPosed — опенсорсный фреймворк для низкоуровневых хаков.

  • Не доступен для свежих андроидов.
  • Позволяет заставить не увидеть root всякие «Сбербанки Онлайн».
  • Имеет кучу некрофильских и неопенсорсных модулей. Осторожнее.
  • Легким движением руки может окирпичить прошивку.
  • Полезные модули:
    • PlayPermissionsExposed
    • YouTubeAdAway (но все-таки советую использовать NewPipe, LightTube, WebTube, SkyTube или MiniTube. Тысячи их!)
    • XPrivacy — по своей сути это «песочница» для любого, даже системного, ПО. Xprivacy применяет правила ко всему ПО. Эти правила можно создавать самому или качать готовые. То есть, к примеру, если установлено нечто местами полезное, но попутно показывающее свою рекламу, Xprivacy можно просто запретить этому ПО доступ в сеть. Или если очередная косынка хочет интернет, список контактов, доступ к микрофону и камере, то с Xprivacy это легко и просто запрещается конкретно этой гадости и она даже будет при этом работать не имея доступа к тому, что ей будет запрещено.

Уровень устройства

Тут тоже всё плохо. Выбор:

  • Рандомный флагман с хорошей поддержкой LineageOS (CyanogenMod). Поддержка, вероятно, будет хорошей, секьюрити-апдейты будут приходить долго (например, для htc desire hd цианоген обновлялся до самого конца — декабря 2016 года), но вот версия андроида, скорее всего, застрянет. Обычно дорого. Можно искать по списку официально поддерживаемых линейкой устройств.
  • OneplusOne / Wileyfox Swift 1. Поставлялись с CyanogenOS, имеют хорошее коммьюнити разработчиков, будут долго обновляться в софтовой части. В железной — все плохо. 1+1 уже довольно старый и хорошие запчасти купить сложно. Wileyfox изначально имел несколько проблем, в т.ч. слабенькую батарейку. Компенсируется ценой, местами можно найти новое в продаже. Довольно бюджетно.
  • Fairphone 2. Очень дорого, очень хорошо. Но это в теории, как там на практике — хз, не пользовался, отпишитесь.
  • Рандомный телефон с официальным портом los. Сойдет, главное, чтобы фатальных багов в порте не было. Долгой жизни порта не ждите.
  • Рандомный телефон с васянским los. Совсем плохо, но если телефон уже куплен, ничего не поделать.
  • Рандомный телефон с васянским ведроидом, основанным на стоковой прошивке / без исходников / проч. Лучше такое не ставить, а подготовить прошивку самостоятельно, смотрите выше и ниже.

Следует также заметить, что:

  • Существует несколько устройств с CyanogenOS, без доступной Cyanogenmod. В комплекте идут сервисы microsoft, gapps и много разной другой блотвари. Исходники обычно зажабены. Пример устройств: Wileyfox Spark, Wileyfox Swift 2(|+|x).
  • Выбирая устройство, так же загляните на его страничку на 4pda. Ресурс хоть и васянский, но очень полезный: можно увидеть список доступных прошивок, FAQ по типичным проблемом, список самых вероятных заводских проблем (которые можно проверить еще перед покупкой).

Уровень физической безопасности

Для чего нужна физическая безопасность:

Допустим, ваш девайс попал в руки злоумышленнику.

  • Во-первых, вы хотите, чтобы он не имел никакой возможности прочитать важные файлы с вашего телефона (кейз ФБ-1).
  • Во-вторых, вы хотите узнать, не добавил ли он кейлоггеров в ваш загрузчик (кейз ФБ-2).

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

Я бы на вашем месте на это не рассчитывал.

  • Аппаратные защиты часто не надежны и опираются на принципах безопасности через неясность, в них переодически находят уязвимости
  • На прекрасных, казалось бы, телефонах Xiaomi вы не сможете разблокировать загрузчик, если с Xiaomi что-либо случится: разблокировка производится с участием интернета при помощи (работающей только под Windows) программы, требующей их аккаунта и доступа к интернету. У HTC похожая ситуация, но в несколько более мягких условиях.
    • Скорее всего, это доставит неудобств именно вам, а не злоумышленнику
  • Всякие проприетарные системы полнодискового шифрования тоже не выдерживают проверок специалистами.

Выводы:

  • Для хранения ваших секретных файлов в безопасности от ФБ-1 используйте, к примеру, Secrecy.
  • «Таблеток» от ФБ-2 на сегодняшний день нет. Промбируйте телефон при помощи скотча и волос и не расставайтесь с ним.
  • Лучше все-таки не хранить никакие важные данные на телефоне.

Модули сотовой связи

В каждом мобильном телефоне, почти каждом планшете есть GSM-модуль мобильной связи. Это —

  • Фактически отдельное устройство, обычно имеющее максимальный доступ к процессору, памяти и переферии. Зачем это делают — черт знает. Возможны исключения, нужно уточнять в каждом отдельном случае.
  • Идентифиционный модуль, который постоянно разговаривает с воздухом.
  • Куча проприетарного кода, который никто не анализировал. В тех немногих случаях, когда анализировали — находили кучу всего интересного.
  • Работает это все на протоколах, местами разработанные в 80-х годах.

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

Вроде, все, что хотел сказать. Выдыхаю

 , , , ,

derlafff ()

Стала вдруг квадратный мышъ

Форум — Talks

Скажите, как вы решаете проблему частого клика указательным пальцем?

Если уже болеть начал.

Сменить работу пока не предлагать. Клавиатура приемлимая.

P.S.Линукс на работе внедрять в ближайшем будущем не будут.

 ,

pacify ()

Конвертирование djvu в pdf с сохранением сегментации (pdfbeads)

Форум — General

Задача преобразования djvu в pdf рассматривалась на ЛОРе много раз. Но предлагаемые до этого методы сводятся к тупому преобразованию djvu в tiff с последующим преобразованием в pdf. Такое преобразование приводит к потере сегментации mask+fg+bg и существенным искажениям там, где они нежелательны.

В данном топике предлагаю скрипт, извлекающий изображения из djvu в сегментированном виде. Скрипт заточен под pdfbeads, так как это пока единственный известный мне генератор pdf из сегментированных изображений.

cat djvubeads.sh
#!/bin/bash

tprogs=""
if [ ! -f "/usr/bin/djvused" ]
then
    # djvused, ddjvu, djvuextract, djvumake <- djvulibre-bin
    if [ "+$tprogs" != "+" ]
    then
	tprogs="$tprogs, "
    fi
    tprogs="$tprogs""djvused (djvulibre-bin_*.deb)"
fi
if [ ! -f "/bin/grep" ]
then
    if [ "+$tprogs" != "+" ]
    then
	tprogs="$tprogs, "
    fi
    tprogs="$tprogs""grep (grep_*.deb)"
fi
if [ ! -f "/usr/bin/awk" ]
then
    if [ "+$tprogs" != "+" ]
    then
	tprogs="$tprogs, "
    fi
    tprogs="$tprogs""awk (gawk_*.deb)"
fi
if [ ! -f "/usr/bin/convert" ]
then
    if [ "+$tprogs" != "+" ]
    then
	tprogs="$tprogs, "
    fi
    tprogs="$tprogs""convert (imagemagick_*.deb)"
fi
if [ "+$tprogs" != "+" ]
then
    echo "!!!!"
    echo "  Not found $tprogs!"
    echo "!!!!"
    exit 1
fi

function usage()
{
    echo "DjVu extract mask+fg+bg."
    echo
    echo "USAGE: bash $0 [options] djvufile"
    echo "options:"
    echo "  -o Name     output path (default = djvuname);"
    echo "  -q N        quality jpeg compression (default = 50);"
    echo "  -h          help."
    echo
    exit 1
}
if [ $# = 0 ]
then
    usage
fi

tq="50"

while getopts ":o:q:h" opt
do
    case $opt in
        o) dst="$OPTARG"
            ;;
        q) tq="$OPTARG"
            ;;
        h) usage
            ;;
        *) echo "Unknown option -$OPTARG"
            exit 1
            ;;
    esac
done
shift "$(($OPTIND - 1))"
src="$1"
if [ -z "$dst" ]
then
    dst="${src%.*}"
fi

echo "$src"
echo ""
mkdir -pv "$dst"

tpages=`djvused -e 'n;' "$src"`
tlist=`djvm -l "$src" | grep "djvu$" | awk '{ print $4 }'`

i=0

for tpage in $tlist
do
    let i=i+1
    let j=10000+i
    tname="$dst/page-${j:1}"
    fginfo=""
    bginfo=""
    ddjvu -format=tiff -page=$i "$src" "$tname.tif"
    fginfo=`djvused "$src" -e "select $i; dump" | grep -m 1 "FG44" | awk '{ print $10 }' | tr "x" " "`
    bginfo=`djvused $src -e "select $i; dump" | grep -m 1 "BG44" | awk '{ print $10 }' | tr "x" " "`
    if [ ! -z "$fginfo$bginfo" ]
    then
	convert "$tname.tif" "$tname.png"
	rm "$tname.tif"
	ddjvu -format=pbm -mode=mask -page=$i "$src" "$tname.pbm"
	convert -compress Group4 "$tname.pbm" "$tname.black.tiff"
	rm "$tname.pbm"
	echo "Page $i: Image"
    else
	convert "$tname.tif" "$tname.png"
	rm "$tname.tif"
	convert -compress Group4 "$tname.png" "$tname.tif"
	rm "$tname.png"
	echo "Page $i: Mask"
    fi
    if [ ! -z "$fginfo" ]
    then
	fgw=`echo "$fginfo" | awk '{ print $1 }'`
	fgh=`echo "$fginfo" | awk '{ print $2 }'`
	djvuextract "$src" -page=$i FG44="$tname.fg44"
	djvumake "$tname.fg44.djvu" INFO=$fgw,$fgh,300 BG44="$tname.fg44"
	rm "$tname.fg44"
	ddjvu -format=ppm "$tname.fg44.djvu" "$tname.fg.ppm"
	rm "$tname.fg44.djvu"
	convert -quality "$tq" "$tname.fg.ppm"  "$tname.fg.jpg"
	rm "$tname.fg.ppm"
    fi
    if [ ! -z "$bginfo" ]
    then
	bgw=`echo "$bginfo" | awk '{ print $1 }'`
	bgh=`echo "$bginfo" | awk '{ print $2 }'`
	djvuextract "$src" -page=$i BG44="$tname.bg44"
	djvumake "$tname.bg44.djvu" INFO=$bgw,$bgh,300 BG44="$tname.bg44"
	rm "$tname.bg44"
	ddjvu -format=ppm "$tname.bg44.djvu" "$tname.bg.ppm"
	rm "$tname.bg44.djvu"
	convert -quality "$tq" "$tname.bg.ppm"  "$tname.bg.jpg"
	rm "$tname.bg.ppm"
    fi
done

Применение:

bash djvubeads.sh test_file.djvu
...
cd test_file
pdfbeads -m G4 -b JPEG -o ../test_file.pdf

В pdfbeads используется сжатие Group4 для черно-белых изображений и JPEG для цветных масок. Возможно использование jbig2 для черно-белых изображений и JPEG2000 для цветных масок при определённой модификации скрипта, но это плохо совместимо с портативными устройствами, поэтому здесь не рассматривается.

Результирующий pdf имеет размер ~3*djvu, при этом искажения минимальны (только на цветных масках).

Результат:

ls -l
итого 71864
-rw-r--r-- 1 zvezdochiot zvezdochiot     3205 Апр 15 13:00 djvubeads.sh
-rw-r--r-- 1 zvezdochiot zvezdochiot      871 Янв 30 19:02 pdfinfocopy.sh
-rw-r--r-- 1 zvezdochiot zvezdochiot  2947707 Июл 12  2016 Книга_01-Эйнштейн-Теория_относительности.djvu
-rw-r--r-- 1 zvezdochiot zvezdochiot 12072915 Апр 14 23:50 Книга_01-Эйнштейн-Теория_относительности.pdf
-rw-r--r-- 1 zvezdochiot zvezdochiot  2012411 Июл 12  2016 Книга_50-Чандрасекар-Звездная_эволюция.djvu
-rw-r--r-- 1 zvezdochiot zvezdochiot 11242989 Апр 15 11:25 Книга_50-Чандрасекар-Звездная_эволюция.pdf
-rw-r--r-- 1 zvezdochiot zvezdochiot  9312996 Апр  5  2015 Попов_ОБ-Рихтер_СГ-2007-Цифровая_обработка_сигналов_в_трактах_звукового_вещания.djvu
-rw-r--r-- 1 zvezdochiot zvezdochiot 31096585 Апр 14 23:32 Попов_ОБ-Рихтер_СГ-2007-Цифровая_обработка_сигналов_в_трактах_звукового_вещания.pdf
-rw-r--r-- 1 zvezdochiot zvezdochiot  1838167 Июл 12  2016 Специальный_выпуск-Перьевые_ручки.djvu
-rw-r--r-- 1 zvezdochiot zvezdochiot  2975375 Апр 15 11:13 Специальный_выпуск-Перьевые_ручки.pdf

Pdfbeads homepage: https://github.com/ifad/pdfbeads

 , ,

Deleted ()

Скрипт для выгрузки всех скриншотов linux.org.ru и описания. Локально.

Форум — Talks

Написал на досуге скрипт на python3 для выгрузки локально всех скриншотов галлереи лора с 1999 года.
Решил просто замутить галлерею отдельную с историей таких скриншотов, вдохновился лором, и решил нарабатывать навыки написания кода на python (пишу 2 неделю на нем), до этого писал 6 лет на php.
Весь код открыт, находится на github:

https://github.com/foozzi/linux.org.ru-gallery

Буду рад помощи и вашим доработкам скрипта, вскоре запущу (если администрация разрешит), ресурс с галереей этих скриншотов онлайн.

UPD 07.03.17:
Собственно прислушался к техническим пожеланиям grazor и создал модуль почти полноценный, спасибо остальным за проявленный интерес.

 , , , ,

foozzi ()

Бумажный журавлик в Origami Editor 3D

Галерея — Скриншоты

Origami Editor 3D - один из немногих активно развиваемых свободных САПР для проектирования фигур оригами. Программа написана на языке JAVA и является кроссплатформенной (размер JAR-файла ~ 300 Kbyte) и уже поставляется с более чем 30 примерами, среди которых есть и традиционный бумажный журавлик.

Особенности:

  • в окне программы 2D схема и 3D модель отображаются бок-о-бок;
  • пошаговое сложение фигуры;
  • ORI - собственный формат файла проекта;
  • OrigamiScript - поддержка написания скриптов, с возможностью их сохранения и открытия в формате TXT;
  • экспорт пошаговой инструкции по созданию фигуры в PDF (скачать пример);
  • экспорт 3D фигуры в формат меша OpenCTM;
  • экспорт анимации создания или 3D обзора текущей фигуры в формате GIF;
  • экспорт в виде JAR-приложения со встроенной 3D моделью и проигрывателем анимации;
  • экспорт 2D паттерна в формате PNG;


>>> Руководство пользователя Origami Editor 3D

>>> Просмотр (1280x800, 125 Kb)

 , , ,

atsym ()

Ман как создать свой deb репозиторий.

Форум — General

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

 ,

webmak ()

Записывание прохождения игр на видео с аппаратным ускорением

Форум — Games

Хочу записывать видео, эдакий аналог FRAPS, только под Linux. Очень желательно, чтобы умело аппаратное кодирование видео.

Кто что порекомендует?

 ,

MyLittleGentoo ()

Свободная программа для рисования красивых диаграмм - есть такая?

Форум — Desktop

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

 ,

aquadon ()

Сайты Debian теперь доступны в Tor и как сервисы Onion

Новости — Debian
Группа Debian

Более 40 статических сайтов проекта Debian теперь доступны как сервисы Onion внутри сети Tor благодаря администратору Peter Palfrader.

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

Установив пакет apt-transport-tor теперь можно загружать и устанавливать пакеты и обновления используя только сеть Tor.

( читать дальше... )

>>> Подробности

 ,

anonymous00 ()

Какими расширениями для Firefox вы пользуетесь?

Форум — Talks

Title. Хочу взять для себя что-то полезное.

 , ,

ilipnitsky ()