И это всё МОЁ

Крупнейший сервер Matrix — matrix.org — и его инфраструктура были подвергнуты хакерской атаке, выявившей проблемы в их безопасности. Пользователем matrixnotorg на Github были созданы тикеты, описывающие проблемы, существующие в инфраструктуре matrix.org, и их возможное решение.


Доступ к инфраструктуре был получен через «дыру» в устаревшей версии Jenkins — системе непрерывного развёртывания, которую использует matrix.org.


По заявлению matrix.org, репозитории и их Docker Hub не скомпрометированы.









 , ,








И это всё МОЁ

в строго определённое время резко умирают потоковые реплики (10 штук) постгреса и никакие перезапуски не помогают.
Началось это внезапно 2 дня назад, вроде ничего не делали с того времени. До этого всё было прекрасно. Запись напрямую в реплику не работает, проверяли (на тот случай, если вдруг какой-то процесс это делает)

ОС ubuntu 16.04, версия PG 9.5

2019-04-11 00:00:02.461 UTC [20140] LOG: invalid record length at 1B62/F21E54D8
2019-04-11 00:00:02.461 UTC [7142] FATAL: terminating walreceiver process due to administrator command
2019-04-11 00:00:02.463 UTC [20140] LOG: invalid record length at 1B62/F21E54D8
2019-04-11 00:00:02.463 UTC [20140] LOG: invalid record length at 1B62/F21E54D8

бах и всё. Пока не прибьёшь весь main и не накатишь в мастера - тогда работает дальше строго до 0 часов по UTC

Кто виноват и что делать?








 , ,








И это всё МОЁ


Платформа: Android
Версия: AIMP v2.80 или более новая

Тон: Темный, Светлый
Поверхность: Матовая
Интерфейс: Touch





И это всё МОЁ

Поскольку json-schema - говно я с горя упоролся и наваял свою правильную схему/валидатор

var config = {
meta : {
desc : "Bicycle validator example",
keywords : {
any : "^ANY",
or : "_or_",
notRequired : "^_",
comment : " - .*$"
}
},
types : {},
schema : {
ANY : {
id : "number - required parameter",
_name : "string - not required, but can be",
a_or_b_or_c : "string - need one of them",
e_or_d : "string - or them",
_list : ["string","number","string - list with types in this order"],
_list_etc : ["string","number - repeated list with spectype ...", "..."],
_st : "anything - any field",
_anyobj : {ANY : "anything - object with any content"}
}
}

}

Фичи/как работает:

  • Отдельно метаданные, отдельно схема, отдельно типы
  • Сама схема записывается так, как будто это объект. Структуры (объект, массив) пишутся как есть, типы пишутся строкой. И никаких сраных "type" : "string" везде и прочей не нужной писанины.
  • Требуемые поля объекта пишутся как есть. Необязательные поля должны соответствовать регулярке notRequired в meta.
  • Если допустимы произвольные наборы полей, то поле должно соответствовать регулярке any в meta
  • Если нужно одно из полей, но не все сразу или некоторые из них, то названия разделяются регуляркой or в meta
  • Из описания типа регуляркой вырезается шаблон комментария
  • Типы должны проверяться. Встроенные - int (целое), number, string. (Еще не тестил)
  • Массивы с типами, последовательностью типов (повтор - спецтип "...", хардкод)
  • Хардкодный тип anything для чего угодно, в т.ч. структур.
  • Можно делать свои типы добавляя функции в types. Функция получает значение, возвращает true - если всё нормально и что угодно другое, если всё плохо. При этом возвращаемое запишется в выдаваемый объект
  • На выходе выдаётся структура подобная входной с пожеланиями для автора в проблемных местах


Планируется

  • Схема в типах
  • Причесать код
  • Протестить работу с типами
  • Сделать тесты для всего
  • Ссылки и вложенные структуры
  • Вызов валидатора типов с параметрами (например intRng 1 100, для целых от 1 до 100 или цепочки типа int rng 1 100)


Говнокод сей поделки там -> https://github.com/Crutchmaster/bvalid-js

Приветствуются предложения, пожелания, проклятия.



Для затравки. Это самая охрененая схема/валидатор. Вы видели json-schema? Дико многословное говно без возможностей которое без костылей невозможно использовать в принципе.








 , , ,








И это всё МОЁ

Докер-компоузом запущен «Postgres»+«Bareos-FD»
С сервера Бареос на клиентский ПК прекрасно телнетятся порты 5432(постгрес) и 9102 (бареос-фд)
Но при попытке сделать запрос с сервера бареос к клиенту бареос получаю отлуп - Failed to connect to Client.
Кто сталкивался? Кто чем может помочь?








 ,








И это всё МОЁ

Добрый день. У меня появился вот такой вопрос касательно докера.
На машинке установлен убунту 18.10(cosmic)
При запуске данного файла

FROM ubuntu:latest
RUN apt-get update && \
apt-get install libssl-dev -y && \
apt-get install build-essential -y

Выходит вот такой лог с ошибками:

Sending build context to Docker daemon  2.048kB
Step 1/2 : FROM ubuntu:latest
---> 94e814e2efa8
Step 2/2 : RUN apt-get update && apt-get install libssl-dev -y && apt-get install build-essential -y
---> Running in 43160add48ed
Err:1 archive.ubuntu.com/ubuntu bionic InRelease
Temporary failure resolving 'archive.ubuntu.com'
Err:2 security.ubuntu.com/ubuntu bionic-security InRelease
Temporary failure resolving 'security.ubuntu.com'
Err:3 archive.ubuntu.com/ubuntu bionic-updates InRelease
Temporary failure resolving 'archive.ubuntu.com'
Err:4 archive.ubuntu.com/ubuntu bionic-backports InRelease
Temporary failure resolving 'archive.ubuntu.com'
Reading package lists...
W: Failed to fetch archive.ubuntu.com/ubuntu/dists/bionic/InReleas... Temporary failure resolving 'archive.ubuntu.com'
W: Failed to fetch archive.ubuntu.com/ubuntu/dists/bionic-updates/... Temporary failure resolving 'archive.ubuntu.com'
W: Failed to fetch archive.ubuntu.com/ubuntu/dists/bionic-backport... Temporary failure resolving 'archive.ubuntu.com'
W: Failed to fetch security.ubuntu.com/ubuntu/dists/bionic-securit... Temporary failure resolving 'security.ubuntu.com'
W: Some index files failed to download. They have been ignored, or old ones used instead.
Reading package lists...
Building dependency tree...
Reading state information...
E: Unable to locate package libssl-dev
The command '/bin/sh -c apt-get update && apt-get install libssl-dev -y && apt-get install build-essential -y' returned a non-zero code: 100

Подскажите пожалуйста в чем может быть проблема? Из лога видно, что он пытается скачать с bionic, а это версия 18,04....
Не понимаю что нужно делать....пакеты с бионика менял на космик(( пока не помогло(((








 , ,








И это всё МОЁ

Какая общепринятая практика выполения сложных отчётов (большие запросы с оконными функциями, case'ами и прочим) на стеке Spring? Грубо говоря это raw sql с data bindings. Не хочется городить много DTO и переносить это на плечи JPA. JdbcTemplate или есть лучше способы?








 ,








И это всё МОЁ

Помогите пожалуйста понять почему система не разрешает сохранить файл cron?

я зашёл не под рутом и в консоли ввёл команду:

crontab -e

в результате открылся файл в текстовом редакторе. я добавил задание так:

* * * * * ls

после этого попытался сохранить файл, но получил следующее сообщение об ошибке: http://i.yapx.ru/D5I8U.png








 , ,








И это всё МОЁ

Провайдер режет скорость скачивания в Steam. Скорость скачки идёт «лесенками»: снижается от примерно 40кбит до 20кбит, подскакивает и снова... Включаю VPN - поднимается до стабильных 2Мбит. В чём прикол? Зачем резать стим?








 , ,








И это всё МОЁ

лучше чтобы оформление было похоже на windows 2000, навороты не нужны.

запустить нужно пару графических прог.
подключаться планирую по rdp с windows

xfce?








 








И это всё МОЁ

Тут: Биометрию в метро внедряют (комментарий)

некорректно распарсил астериск (*), пришлось завернуть в [code]

maxcom








 








И это всё МОЁ

https://360tv.ru/news/transport/moskovskoe-metro-zapustilo-sistemu-raspoznava...


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

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

Любопытно, что про распознавание лиц уже говорят года два-три и даже вроде кого так находили. Но получается, что недостаточно надежно раз понадобились специальные камеры. Любопытный момент. Кроме того интересно, что там две камеры. Одной мало. А почему? Стереоизображение строится (хотя и по вертикали)? Или там на разные части спектра камеры, например, одна камера инфракрасная, другая - обычная. Или один объектив - это вообще не камера, а инфракрасная подсветка, а камера одна.

Интересно, темные очки + антигриппозная маска могут помешать камерам.








 ,








И это всё МОЁ

Использую СУБД postgresql.
Есть иерархическая таблица с каталогами данных (в примере корнями каталогов являются Корень1, Корень2 у них поле parent и root
заполнено null)
Рабочий пример


https://www.db-fiddle.com/f/2hbRo3qUfhwACNHVBxy3A9/0


CREATE TABLE rec (
id INTEGER,
full_code VARCHAR (255),
code VARCHAR (255),
parent INTEGER,
root INTEGER,
is_node bool
) ;–DEFAULT CHARSET=utf8 ;


INSERT IGNORE INTO rec
(id, full_code, code, parent, root, is_node)
VALUES
(1, ‘Корень1’,‘Корень1’, null, null, true),
(2, ‘Корень1.2017-12-31’, ‘2017-12-31’, 1, 1, false),
(3, ‘Корень1.2016-12-31’, ‘2016-12-31’, 1, 1, false),
(4, ‘Корень1.2015-12-31’, ‘2015-12-31’, 1, 1, false),
(5, ‘Корень1.111’, ‘111’, 1, 1, null),
(6, ‘Корень1.111’, ‘111’, 4, 4, null),
(7, ‘Корень1.111’, ‘111’, 3, 3, null),
(8, ‘Корень1.111’, ‘111’, 2, 2, null),
(9, ‘Корень1.222’, ‘222’, 2, 2, null),
(10, ‘Корень1.333’, ‘333’, 3, 3, null),
(11, ‘Корень2’,‘Корень2’, null, null, true)


В каждом каталоге есть папки с датой, в этой папке лежат записи актуальные до указанной даты,
у таких папок поле is_node имеет значение false.


Нужно написать запрос, который по значению full_code и дате, вернет запись актуальную на указанную дату.
Если будет передан полный код корня каталога или полный код записи с папкой, то нужно вернуть
актуальную папку с датой.
Например:



  1. если full_code = ‘Корень1.111’ Дата = ‘2017-02-02’, то должно вернуться
    (8, ‘Корень1.111’, ‘111’, 2, 2, null)

  2. если full_code = ‘Корень1.111’ Дата = ‘2019-02-02’, то должно вернуться из корня запись
    (5, ‘Корень1.111’, ‘111’, 1, 1, null)

  3. если full_code = ‘Корень1.111’ Дата = ‘2012-02-02’, то должно ничего не вернут, так как
    есть папка с датой 2015-12-31 в ней нет записи с кодом ‘Корень1.111’

  4. если full_code = ‘Корень1’ Дата = ‘2017-02-02’, то должно вернуться
    (2, ‘Корень1.2017-12-31’, ‘2017-12-31’, 1, 1, false)

  5. если full_code = ‘Корень1’ Дата = ‘2019-02-02’, то должно вернуться
    (1, ‘Корень1’,‘Корень1’, null, null, true)

  6. если full_code = ‘Корень1.2017-12-31’ Дата = ‘2019-02-02’, то должно вернуться
    (1, ‘Корень1’,‘Корень1’, null, null, true)


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


WITH ROOT AS(
select (
case WHEN r1.root is NULL THEN r1.id

WHEN r1.is_node is False THEN r1.root

else (select case WHEN r2.root is NULL THEN r2.id else r2.root end from catalog r2 where r2.id = r1.root LIMIT 1) end ) as root
from catalog r1
where r1.full_code = ‘Корень1.111’
limit 1),
T AS(
select id
from catalog
where (parent = (select * from root) and is_node is false

AND code >= ‘2017-02-02’::text) OR id= (select * from root) ORDER BY parent NULLS LAST, code
LIMIT 1 ),
IDS AS(
select ( select * from T ) as id
from catalog
where (parent is null or is_node is false) and full_code = ‘Корень1.111’
union
select id
from catalog
where root = (select * from t) and full_code = ‘Корень1.111’ and (parent is not null and is_node is not false)
limit 1)
SELECT *
FROM catalog
where id in (select * from ids)


Вопросы такие:



  1. Как упростить запрос?

  2. Главный вопрос, как написать запрос, если передан массив полных кодов, и нужно получить массив актуальных записей.
    Даже нет идей, как решить этот вопрос???









 ,








И это всё МОЁ

Если да, то как это сделать?








 , ,








И это всё МОЁ

Что-то поверхностный гуглёж не нашёл, как запустить мониторинг платы, поэтому предлагаю свой вариант, ну и чтобы не забыть, проверено на OpenSuSe 15.1:

модуль it87

modprobe it87 force_id=0x8628
#создаем /etc/modprobe.d/50-it87.conf
# в нем
# options it87 force_id=0x8628
#в /etc/modules-load.d/ создаем it87.conf
# в нем
# it87
# после ребута выполнить sensors, если нет никто, то суем эти файлы в
# /usr/lib/modprobe.d - 50-it87.conf и it87.conf в /usr/lib/modules-load.d








 








И это всё МОЁ

Простой пример: если в файле есть ип адрес, то создаем каталог.

Содержимое crontab

* * * * * /root/run.sh

Содержимое run.sh
#!/bin/bash
wget "192.168.0.11/list.txt";
if [ $? -eq 0 ] ;then
myip=$(ifconfig | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1}')
if grep --quiet $myip list.txt; then
mkdir "HELLO"
rm -rf list.txt
else
rm -rf list.txt
exit
fi
else
rm -rf list.txt
exit
fi

wget отработал фаил загрузился, но папка не создается.
Если просто запустить скрипт, то все работает








 








И это всё МОЁ

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

  • Как мне использовать key-value структуру данных? В других языках используется библиотека (Java) или встроенная реализация (Go). А что используют в проектах, написанных на C?
  • Как в проектах на C узнают длину массива, переданного как аргумент? Я знаю, что массивы передаются как указатели, а указать длину данных за указателем - невозможно. Нужно всегда передавать длину как аргумент? Я также понимаю, что можно создавать свои структуры, состоящие из указателя и длины, но как это грамотно сделать, чтобы потом не запутаться в типах и бойлерплейте? Возможно, есть нормальная практика, которой все следуют?
  • Единственный способ иметь в структуре несколько массивов - использовать указатели. Значит, память нужно выделять и очищать вручную. Значит, для работы с такими структурами нужно иметь функции-обёртки. Так все делают для создания нескольких массивов в структуре?







 , ,








И это всё МОЁ

Для Ъ:



https://twitter.com/matrixdotorg/status/1116304867683905537

https://www.opennet.ru/opennews/art.shtml?num=50501



Не используйте большой централизованный сервер, поднимите свой. Это не так дорого и очень просто.









 , , , ,








И это всё МОЁ

Добрый день!
Пытаюсь разобраться как работает smb в linux,
Прошу подтвердить\дополнить\опровергнуть следующие мысли:
Для монтирования каталога, так или иначе требуется вызывать systemd.mount
Для монтирования каталога требуются права root
При использовании команды типа mount -t cifs %//server/share% %mountpoint% -o credentials=%//path/credfile% монтирование происходит под пользователем вымывавшим команду и у данного пользователя обязательно должен быть доступ к файлу с учетными данными %//path/credfile%








 , ,








И это всё МОЁ

Native Skype 4.3 for Linux no longer connects/works или нативный Skype для Linux сдох (комментарий)

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

Переезжаем на веб-вкладку либо электрон?








 , ,