LINUX.ORG.RU

Сообщения Legioner

 

На что влияет галочка Enable SELinux в CentOS 7?

В инсталлере есть галочка Enable SELinux. На что она влияет в конечной системе? Конкретно интересует, как его правильно включить после установки, если галочка была снята.

Про /etc/selinux/config SELINUX=disabled поменять на enforcing знаю. Ещё на что-то может влиять?

 ,

Legioner ()

Почему в торрентах не раздают видео, аудио и субтитры отдельно?

Качаю, например, GoT с какого-нибудь трекера. Если бы всё было как в сабже, я легко мог бы это раздавать на том же рутрекере, звуковые дорожки на сотню мегабайтов подкачались бы и всё, а основной размер в видеопотоке оставался бы в оригинальном файле (например хардлинками). Да и в целом все эти странные форматы вроде матроски просто не нужны, положить в папочку все нужные файлики и всё! Какие ещё матроски.

 ,

Legioner ()

Скрипт для билда: обновление во время билда

Делаю скрипт, который будет дёргаться при изменении в репозитории. Смысл в том, чтобы сделать pull, собрать новую версию, установить куда положено. Как обрабатывать ситуацию, когда событие произошло во время билда? Второй билд запускать не хочу. Собственно хочу, чтобы билд дошёл до конца, а потом запустился ещё раз, сбилдив на сей раз последнюю версию.

Пока делаю примерно так:

if [ -e build-in-progress ]; then
  touch rebuild
  exit
fi
touch build-in-progress
...
if [ -e rebuild ]; then
  rm rebuild
  exec $*
fi
rm build-in-progress

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

Есть ли какой-нибудь способ сделать это всё по уму, который будет работать железобетонно?

 

Legioner ()

Ищу VPS, который даёт маршрутизируемую /56 IPv6 подсеть

Собственно сабж. Очень желательно Нидерланды, но в крайнем случае можно и другие европейские страны, можно и российский, если на их серверы не действует великий российский фаервол.

Из известных мне: online.net вроде бы, но там нужно покупать дорогой выделенный сервер, зато даёт /48 на аккаунт. Вроде хвалили linode но просто так не дают, просят обосновать, я попросил, они вроде и не отказывают но автоматом не дают, а настаивать я стесняюсь.

PS неужели IPv6 такой дорогой? У меня сервер с IPv4 арендуется меньше чем за евро в месяц (по акции, правда, но сомневаюсь, что они в минус работают). Я бы тот же бакс в месяц за /48 платил без проблем.

 ,

Legioner ()

Очередной поиск замены микросерверу

В очередной раз интересуюсь заменой Microserver Gen8. Сейчас придумал такой план. Во-первых есть бесшумные компьютеры маленького фактора (вроде Intel NUC, но других производителей), даже без вентиляторов есть. Во-вторых сегодня обнаружил такой класс продуктов, как SATA Backplane. Как я понял, это во-первых корзина для дисков, во-вторых там сзади стоит какая-то микросхема, которая магическим образом соединяет все диски в один шнурок и втыкается куда-то там в компьютер. Информации по такому чудо устройству мало и хотелось бы почитать более детально, если кто знает:

1. Я вообще правильно пишу или что-то путаю?

2. Как это подключается? Можно ли подключить по USB? Для четырёх дисков требуется немалое питание, как его подключать?

3. Требуется ли специальное охлаждение для четырёх дисков? Никогда этим не заморачивался, но четырёх дисков в ряд у меня и не было. В идеале хочется, чтобы всё работало без единого вентилятора. Диски обычные HDD 3.5 класса WD Red или подобного (5400 оборотов в секунду).

4. Как линукс увидит всё это? Просто как 4 обычных диска, а дальше уже моё дело? Не потребует ли это каких-нибудь треклятых проприетарных драйверов?

5. Есть ли дешёвые способы сделать удалённое управление для не-сервера? Т.е. чтобы я мог установить Linux тот же по сети, не таская монитор с клавиатурой туда-сюда?

 ,

Legioner ()

Простой неблокирующий HTTP-стек для Java

Есть ли такой в природе? В первую очередь интересен Android. Вроде nio есть, то бишь неблокирующий код можно писать, но популярная библиотека Volley держит пул потоков (ещё и довольно маленький) для каждого запроса. В том числе DNS, я так понимаю, он по дефолту в жаве блокирует поток, поэтому нужна альтернативная реализация. Какая-то странная ситуация выходит. Ладно серверы, там гонять потоки не проблема, а в мобильном приложении во-первых неблокирующий АПИ позволит убрать всю синхронизацию, т.к. всё будет в одном потоке, во-вторых там же вроде как в принципе должны все экономить циклы, а тут пускаем кучу потоков, жрём память, не нужно ведь всё это. Интересует и сервер и клиент (HTTP везде примерно одинаковый, поэтому по идее разницы большой не должно быть).

 , , ,

Legioner ()

Продвинутый HTML видеоплеер

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

Что мне не нужно: комбайны вроде Emby или Plex.

Что мне нужно: 1. Серверная часть, которая умеет на лету ремуксить файл как положено. Естественно посредством ffmpeg и очень желательно именно на лету, без всяких предобработок по 5 минут. Естественно с оффсетами, то бишь если я перематываю в конец, чтобы там тоже перезапустился процесс. 2. Клиентская часть, которая умеет это всё запрашивать и показывать.

Телевизор умеет показывать всё, что ему скормишь через стандартный HTML-плеер. В плане кодеков. То бишь никакой причины перекодировать что-либо нет. Всё, что надо: сремуксить исходный файл в mkv-поток с выбранным аудио-потоком. Дальше он разберётся. Это раз. Субтитры он умеет только в vtt, субтитры из mkv вытаскивать дело геморное, в общем и целом я считаю, что субтитры нужно прикручивать сверху, тем более, что в качественных релизах субтитры во всяких графических форматах вроде pgs, которые, естественно, хочется показывать как положено: люди стараются, выбирают цвета, позиционирование.

Что я делаю сейчас: если нужный мне аудиопоток не дефолтный, делаю ремукс, иначе кормлю mkv файл как есть. Делаю тупо малюсенький HTML руками, в котором указываю этот файл и vtt. Если субтитры в PGS, вытаскиваю их, делаю перекодирование какой-то жаваутилитой в XML+PNG и простым жаваскриптом показываю поверх видео. В принципе работает, но это всё из дерьма и палок, как говорится. Хочется цельного приятного опенсорс решения.

Озаботился ли кто-то таким или я первый, кому такое в голову пришло? Давно хочу это всё сделать в нормальном виде, вроде всё просто, но нюансов много. Особенно если на входе DVD или BDMV файлы, там, конечно, вообще хочется полноценный интерпретатор этого хозяйства на JavaScript, с менюшками и всем таким, но это, конечно, уже совсем другой уровень. Пока можно и mkv обойтись.

Всякие DLNA лесом, не понимаю я, как оно работает, и понимать не хочу.

 

Legioner ()

VPS в нидерландах дешевле $3.5 в месяц

Есть vultr: 10 GB SSD, 1 CPU, 512 MB, 0.50 TB, $3.50/mo. Накидайте варианты получше.

 

Legioner ()

Кошерный способ распространять APK кому положено

Есть приложение, которое не интересно широкой публике (не секретное, но предназначено для определённых клиентов). Как его правильней распространять? Если просто засунуть в Google Play, то его будет качать кто попало, само по себе пофиг, конечно, но это визуальный мусор, ещё какие-нибудь отзывы и рейтинги начнут ставить, в общем ни к чему. Если просто давать скачивать APK с сайта, то не будет автоматического обновления, к тому же вроде бы в Google Play заливаются краши? В общем какую-то ценность этот Play вроде несёт. Я так понял, там есть какие-то корпоративные каналы, но тут не понятно, сами устройства будут обычные без всяких там управлений. Т.е. в идеале должен быть доступ по ссылке, чтобы оно не показывалось в поисках и тд, а только тем, кто зашёл по прямой ссылке, отключены всякие там рейтинги и прочее.

 

Legioner ()

Любителям перевешивать ssh на другой порт

Серверу один день. Глянул интереса ради

94.191.44.208 - - [19/Feb/2019:16:12:39 +0600] "GET /cacti/plugins/weathermap/editor.php HTTP/1.1" 404 169 "-" "Mozilla/5.0 (Windows NT
94.191.44.208 - - [19/Feb/2019:16:12:39 +0600] "POST /wuwu11.php HTTP/1.1" 404 571 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537
94.191.44.208 - - [19/Feb/2019:16:12:39 +0600] "POST /xw.php HTTP/1.1" 404 571 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36
94.191.44.208 - - [19/Feb/2019:16:12:40 +0600] "POST /xw1.php HTTP/1.1" 404 571 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36
94.191.44.208 - - [19/Feb/2019:16:12:42 +0600] "POST /9678.php HTTP/1.1" 404 571 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.3
94.191.44.208 - - [19/Feb/2019:16:12:43 +0600] "POST /wc.php HTTP/1.1" 404 571 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36
149.202.191.218 - - [19/Feb/2019:16:12:43 +0600] "\x15\x03\x01\x00\x02\x02P" 400 173 "-" "-" "-"
149.202.191.218 - - [19/Feb/2019:16:12:43 +0600] "\x15\x03\x01\x00\x02\x02P" 400 173 "-" "-" "-"
и такого сотни. На какой порт nginx перевешиваете? :)

 

Legioner ()

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

Сейчас получается, что я сую в приложение кучу всякого мусора. Китайский SDK для RFID-сканера, Zebra SDK для принтера. В итоге ради того, чтобы работала одна кнопочка, приложение пухнет на десяток jar-ок и несколько мегабайтов, ещё и на других платформах запускается с костылями. Тот же proguard нифига не работает, я уж не стал разбираться почему, он мне там простыню выстлал под сотню строк ошибок.

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

По каким словам гуглить такие техники? Вообще на практике я, как юзер, такого пока не видел. Я предполагаю, что мне надо делать отдельные apk, которые будут содержать в себе сервисы специально для моего приложения, а приложение потом будет взаимодействовать с этими сервисами, правильно?

 

Legioner ()

Поругайте Xperia XZ1 Compact Black

Нужен девайс для разработки. Гугловые девайсы у нас не продаются, а даже если найти, стоят больше топовых айфонов, в общем не то. Как я понял, Sony уважает открытый андроид и даёт официальную сборку AOSP для этих телефонов. Я за это их уважаю и хочу купить именно их модель. Посмотрев в магазинах нашёл сабж за 15 тысяч, вроде копейки, надо брать. По быстрому просмотру и отзывам вроде ничего плохого не нашёл, я бы сказал, он мне даже нравится. Что в нём может быть плохого? Могу за похожие деньги взять XA2, но он подороже и в нём какой-то древний процессор. Ещё и экран лопата. Я люблю маленькие экраны.

 

Legioner ()

Андроид, человеческое поведение для форм

По умолчанию поведение фокуса какое-то упоротое. Т.е. я просто беру простейшую форму, кидаю туда TextEdit, button и начинаются проблемы. Во-первых сразу при запуске курсор стоит в TextEdit-е, причём клавиатуры нет и зачем он там стоит - никому не понятно. Во-вторых если таки кликнуть на TextEdit и потом нажать зеленую кнопку типа Ок, то жмякается следующая кнопка (вроде как фокус переходит на неё) но клавиатура не закрывается, лол. Причём ввод из неё идёт в никуда. Снять выделение с Input-а просто невозможно, кликаешь там в пустое место и тд, реакции 0.

По отдельным моментам вроде есть какие-то решения, всякие там магические заклинания android:focusableInTouchMode=«true» на Layout и тд, можно, наверное, на каждую мелочь написать обработчик в форме, но это жесть, на примитивный функционал, который, казалось бы, должен быть по умолчанию, столько усилий.

Может я что-то в корне не так понимаю?

 ,

Legioner ()

Android, JNI для одной архитектуры

Добавил .so для одной архитектуры (armчегото), теперь на x86 эмулятор вообще apk не ставится. Можно как-то сделать, чтобы он хотя бы ставился, понятно, что те классы, которые грузили ту библиотеку, работать не будут, мне и не надо, пусть кидают исключения. Версии этой библиотеки для x86 естественно нет.

 ,

Legioner ()

Nearby connections API

Есть локальная сеть предприятия, в которой будут девайсы на андроиде. В норме они будут общаться через сервер. Но интернета может не быть какое-то время, а работу прерывать недопустимо. Каким образом понадёжней обеспечить взаимодействие устройств друг с другом? Надёжно ли апи из сабжа? Можно ли рассчитывать на гарантированную работу? Недоверие у меня к такого рода p2p решениям, я бы лучше сервер нормальный в этой сети поставил, но это по ряду причин неудобно.

 ,

Legioner ()

Не срабатывает правило на ICMP6 Neighbor advertisement

OpenBSD 6.4. Значимые строчки из pf.conf:

block log
pass in quick on vio0 inet6 proto icmp6 icmp6-type neighbradv code 0

Т.е. смысл в том, чтобы пропускать этот пакет без лога. Судя по pflog они этим правилом не ловятся:

16:34:36.321539 rule 0/(match) block in on vio0: fe80::225:90ff:fed4:e03e > ff02::1: [|icmp6]
  0000: 6000 0000 0020 3aff fe80 0000 0000 0000  `.... :.........
  0010: 0225 90ff fed4 e03e ff02 0000 0000 0000  .%.....>........
  0020: 0000 0000 0000 0001 8800 aafe 2000 0000  ............ ...
  0030: 2a04 52c0 0101 0502 0000 0000            *.R.........

Другие ICMP6 пакеты ловятся (похожим правилом). Пытался по байтам разобрать пакет, вроде ICMP6 пакет именно указанного типа. Пытался ловить более общими правилами:

pass in quick on vio0 inet6 proto icmp6
pass in quick on vio0 inet6 proto icmp6 icmp6-type neighbradv
тоже не ловятся (другие пакеты вроде пингов нормально ловятся).

 , , , ,

Legioner ()

Сигнализировать ошибку в процессе передачи ответа

Каким образом сервер может вернуть ошибку, если он уже отослал заголовки? Пусть даже без сообщения, просто сам факт, чтобы клиент мог понять, что на сервере что-то не так и не продолжать выполнять нормальную логику. Приходит в голову только «тупо» закрыть соединение в надежде на то, что ответ в виде какого-нибудь JSON-а вернётся невалидным и клиент свалится на парсинге или что длина ответа не совпадёт с Content-Length или ответ будет содержать невалидный чанк, если ответ не содержит длины. А если ответ уже полностью записан? Дописать ещё мусора?

 ,

Legioner ()

Альтернативы Flyway для миграции БД

Есть ли хорошие альтернативы? А то они продали душу дьяволу и хотят деньги за базовые фичи. Ну их нафиг. Много не надо - тупо запускать SQL-ы из src/main/resources/db по очереди, сохранять прогресс в БД и не жаловаться, что у меня 9-й оракл или постгрес 9.2.

 ,

Legioner ()

Теряется свич

Дома стоит 2 свича. Модель TP-Link TL-SG108E 2.0. Настроил сеть определённым образом с использованием VLAN, всё работало. Через несколько месяцев перестало работать (как-то роутило, но не как надо). На веб-интерфейс свичей не заходило, передёрнуть питание не помогло. Сделал им Reset, пока не настраивал VLAN, просто по минимуму подключил. Через несколько дней руки дошли, собираюсь начать настраивать, у одного свича веб-интерфейс опять не открывается. У второго открывается. При этом пакеты ходят. Пинг свича тоже не работает.

Адреса свичам раздал через DHCP (это на модеме). На нём же привязал их маки к определённым адресам. На модеме есть список подключённых устройств, не работающий свич в этом списке не значится. По умолчанию свичи имеют статический адрес 192.168.0.1 (у меня дома сеть 192.168.1.0/24). Если переключить сеть на 192.168.0.1, то неработающий свич тоже не находится.

Передёрнул питание, помогло, но всё равно это как-то не нормально.

Можно ли что-то в такой ситуации предпринять? На свичах стоит последняя прошивка (2016 года). OpenWRT для него вроде нет, да и не для свичей кажется эта ОС. Пока планирую забэкапить конфигурацию после настройки и в случае проблем делать reset/restore configuration, но хотелось бы в идеале, чтобы оно просто работало.

 ,

Legioner ()

Activity vs AppCompatActivity

Начал разбираться с андроидом и сразу встал вопрос сабжа. AppCompatActivity не нравится такое имя, сразу какая-то устарелость ассоциируется, в приложение тянется мегабайтная библиотека. Судя по гуглу если я буду использовать Activity, то в 4-м андроиде у меня не будет Material L&F, в принципе я и не против, он мне нафиг не нужен. Ещё одни пишут про какие-то мифические багфиксы в этом compat, другие пишут про то, что эти багфиксы конфликтуют с китайскими андроидами (а мне надо, чтобы работало везде нормально), в общем фиг пойми. Какие ещё могут быть доводы в пользу AppCompatActivity?

Примерно такой же вопрос про ConstaintLayout. Тоже тянет библиотеку на 200 килобайтов, что мне не понравилось. Лэйаут у меня будет несложный, имеет смысл его выкинуть?

 ,

Legioner ()

RSS подписка на новые темы