Фильм номер уно, суть токова: группа людей идёт и спорит кто из них андроид, который хочет погубить их всех. Также в этой группе был человек, который всю дорогу сосал верёвочку от капюшона. Его подозревали что это он андроид потому, что он не пил спиртного. В итоге был махач между двумя девушками-андроидами.
Фильм номер дос, суть токова: за одним человеком гонялась группа других людей, главный герой из подручных материалов клепал ловушки. Одной из этих ловушек была лампочка-бомба. (Не «Один дома»)
Вот я ковыряюсь с драйверами для видеокамер, что подключены через MIPI CSI 2 и все они управляются через I2C. И возник вопрос: могут ли быть камеры, которые не требуют управления и просто гонят поток данных?
Играюсь с MIPI CSI камерами на девките Jetson Nano с Ubuntu. Естественно, поддерживаются не все камеры. Например, хорошо работает из коробки LI-IMX219-MIPI-FF-NANO-H90 V1.3, а вот Raspberry Pi Camera Rev 1.3 P5V04A SUNNY на матрице OmniVision не работает. Вот у меня возник вопрос: как в системе Linux можно получить информацию про P5V04A SUNNY, как она там регистрируется? Из dmesg-а что-то ничего путного вытащить не могу.
Ковыряю ядро Linux. Очередные непонятки. Вот есть в ядре такой файл: /include/net/llc_conn.h , в нём есть функция static inline struct llc_sock *llc_sk(const struct sock *sk). Исходник. Сам текст функции:
Насколько я понимаю, тут указатель на некую структуру sock будет переделываться на указатель на структуру llc_sock. Причём начало структуры llc_sock выглядит так:
struct llc_sock {
/* struct sock must be the first member of llc_sock */
struct sock sk;
struct sockaddr_llc addr; /* address sock is bound to */
...
u32 copied_seq; /* head of yet unread data */
...
То есть, внутри структуры llc_sock есть структура sock. Меня интересует следующий вопрос: какое значение будет в copied_seq после подобного приведения? Насколько я могу судить, то значение copied_seq может быть любым, а struct sock sk будет являть собой struct sock sk из аргумента функции. Правильно ли это?
Продолжаю ковырять внутренности ядра. Теперь такой вопрос: есть файл net/llc/af_llc.c. Я заметил, что всё что содержится в этом файле не используется в других файлах. Нет никакого хедер-файла, который бы описывал функции/процедуры из af_llc.c. Вот с какой целью это может сделано?
Экспериментирую с KUnit. Скачал ядро отсюда. Пытаюсь сделать тестирование с помощью KUnit по этой инструкции. Пункт с выполнением ./tools/testing/kunit/kunit.py run отрабатывает, вроде бы, хорошо. Выхлоп:
Согласно инструкции, сперва должен сгенерироваться .config, но конфиг не генерируется. Я подозреваю, что .kunitconfig вообще не играет никакой роли. Я даже попробовал закомментировать всё содержимое .kunitconfig:
Есть задача. Коротенько о том, что надо сделать: на вход даётся строчка A и строчка B. Пример для А: «143175», для В: «120». Нужно между символами в строчке А вставить минимальное количество знаков «+» чтобы получить В. В данном случае: 14 + 31 + 75 = 120. На выходе программа должна возвращать минимальное количество плюсов. Количество символов в А не больше 1000, значение В не больше 5000. Время работы программы должно быть меньше 1 секунды.
Пример 2: А=«5025», В=«30». 5 + 25 = 30. Минимальное количество плюсов: 1.
Пример 3: А=«999899», В=«125». 9 + 9 + 9 + 89 + 9 = 125. Минимальное количество плюсов: 4.
Я написал такую программу:
checkPluses :: Int -> Int -> Int -> String -> String -> Bool
checkPluses result pVal 0 "" xs = pVal + (read xs :: Int) == result
checkPluses result pVal plusCount "" xs =
checkPluses result pVal plusCount [head xs] (tail xs)
checkPluses result pVal plusCount xs xs'
| pVal > result = False
| (length xs' < plusCount) = False
| (checkPluses result (pVal + (read xs :: Int)) (plusCount - 1) "" xs') ==
False = checkPluses result pVal plusCount (xs ++ [head xs']) (tail xs')
| otherwise = True
checkPlus :: String -> String -> Int -> Bool
checkPlus xs res pluses =
checkPluses (read res :: Int) 0 pluses "" xs
searchPlusesIter :: Int -> String -> String -> Int
searchPlusesIter pluses xs res
| checkPlus xs res pluses == True = pluses
| otherwise = searchPlusesIter (pluses + 1) xs res
searchPluses :: String -> String -> Int
searchPluses = searchPlusesIter 0
Пример работы программы:
λ> searchPluses "143175" "120"
2
Моя программа по сути наивно перебирает количество плюсов и смотрит на выход. Для первого примера она проверяет 1 + 43175 != 120, потом проверяет 14 + 3175 != 120, и т.д. Потом проверяет два плюса: 1 + 4 + 3175 != 120, 1+ 43 + 175 != 120, ..., 14 + 3 + 175 != 120, 14 + 31 + 75 == 120. И возвращает количество плюсов. Программа работает, но очень медленно.
Почему то народ на этом ресурсе любит обсуждать Илона Маска и его ракеты и в то же время не замечают других людей работающих в сфере космоса. Тут, буквально вчера, Китайская Народная Республика запустила ещё один искусственный спутник земли Shiyan-6.
За неделю Китай успешно вывел на орбиту 2 спутника
Shiyan-6 был запущен на орбиту для изучения околоземного пространства и тестирования космического оборудования. Этот аппарат является вторым спутником этой серии. Предыдущий запуск серии Shiyan (Xinjishu Shiyan-G и Xinjishu Shiyan-H) прошел в конце мая. Цель данных аппаратов — это испытание новых технологий передачи данных и наблюдение за Землей.
Стоит отметить, что в последнее время Китай активно запускает на орбиту свои аппараты. Так, несколько дней назад, 3 июля, страна вывела на орбиту Земли спутник серии спутник Gaofen. Эти космические аппараты предназначены для сбора специальных данных, которые в будущем используются в сельском и лесном хозяйстве, а также для мониторинга окружающей среды.
Тут случилось мне обновиться с texlive 2019 до texlive 2020 на gentoo. И приключилось вот это:
Package babel Warning: No hyphenation patterns were preloaded for
(babel) the language `Russian' into the format.
(babel) Please, configure your TeX system to add them and
(babel) rebuild the format. Now I will use the patterns
(babel) preloaded for english instead on input line 28.
Полный вывод здесь. Но пакет с поддержкой русского языка установлен:
* dev-texlive/texlive-langcyrillic
Latest version available: 2020
Latest version installed: 2020
Size of files: 3 110 KiB
Homepage: http://www.tug.org/texlive/
Description: TeXLive Cyrillic
License: GPL-1 GPL-2 LPPL-1.3 LPPL-1.3c MIT public-domain TeX-other-free
Пробовал снести texlive и установил заново. Ничего не поменялось. Как можно прикрутить поддержку переносов? Текст tex-файла здесь.
Пытаюсь понять алгоритм хеш-функции из ГОСТ Р 34.11-94. Текст можно посмотреть здесь: http://docs.cntd.ru/document/1200004857 .
Пытаюсь разобрать пример А.3.1. Разобрался до генерации ключа К1, а вот сгенерировать ключ К2 не получается. Согласно тексту ГОСТ-а нужно XOR-ить Х1 и Х2. Мой вопрос: Что тут есть Х1 и Х2? Насколько я понимаю Х1 здесь
6E 65 6C 20
73 69 68 54,
а Х2 это
3D 68 74 67
20 73 69 20.
Так это или нет?
На учёбе дали задание сделать rpm пакет для CentOS 8 из пути. Пример: есть /usr/bin/some_app - это готовая программа. Нужно сделать из этого пути rpm пакет так, чтобы можно было установить эту программу по тому же пути. Я почитал, но везде пишут про делание rpm-ов из исходников. Прошу помощи как это сделать.