Есть одна программа для андроида, в которой работа идёт над некоторыми образами и для передачи образов между устройствами используются зёрна (seed) образов в виде короткой текстовой строки. Развёртка зерна начинается так:
Random r = new Random(seed.hashCode());
Далее код с использованием r.nextInt мне понятен. Я хочу реализовать алгоритм получения из зерна того же образа, которое андроид получает из этого же зерна. А для этого мне нужно реализовать аналогичный r.nextInt, hashCode, Random. Пока читаю исходники далвика и пока не очень врубаюсь. Может кто знает и кинет ссылку на описание известной схемы, если здесь такая используется?
PS походу далвик уже вышел из употребления и я ищу не там. Хотя сомнительно что такие принципы поменялись с новой платформой
$ ls -l /var/run/bluealsa/hci0
srw-rw---- 1 root audio 0 Jan 12 20:37 /var/run/bluealsa/hci0
$ sudo aplay -D bluealsa:HCI=hci0,DEV=D4:F5:13:5D:08:24,PROFILE=a2dp september-colors-ost.wav
../shared/ctl-client.c:102: Connecting to socket: /var/run/bluealsa/hci0
../shared/ctl-client.c:213: Getting transport for D4:F5:13:5D:08:24 type 1
ALSA lib bluealsa-pcm.c:660:(_snd_pcm_bluealsa_open) Couldn't get BlueALSA transport: No such device
aplay: main:828: audio open error: No such device
Есть одно устройство которое попыталось приобрести меня благодаря некоторому деду Морозу. Я как порядочный линуксоид интересуюсь вычислительными мощностями устройства и хочу получить root-права. У устройства есть некоторые функции включая некую «технологию» samsung pay, которая позволяет, как я понял, имитировать любую банковскую или дисконтную карту чтобы использовать для платежей устройство, вместо того чтобы таскать с собой пачку пластиковых карт. Эта и ещё пачка «очень нужных функций» «выгорает» с какими-то захардкоренными предохранителями при получении root-прав. Примечательно что именно эта модель и отличается такими функциями (ну т.е. можно было просто взять аналогичную модель без этих функций и не париться). Что сука характерно «дед Мороз» при выборе подарка о подобных деталях даже не знал.
Тем не менее я решаю от «очень нужных» функций избавиться банально из-за наличия подобных схем предохраняющих от непредусмотрительного администрирования.
Мне кажется что аналог samsung pay можно заставить работать на любом вычислительном устройстве вне зависимости от того кто администрирует этим устройством. Вопрос только в разработке и установке ПО на устройстве и терминалах инфраструктуры. Разве я не прав?
Посоветуйте книги или ресурсы где складывается информация как из повсюду валяющегося и торчащего техногенного и не очень хлама можно смастерить что-нибудь полезное, ну или хотя бы прикольное.
Анонимусы могут советовать в моих темах в техразделах - перенесу сюда хоть как-то соответствующее сей теме.
Коли я уж экспериментирую с glib-объектами, то решил заодно и родные таймауты попробовать. Значит у объекта GtkWindow к сигналу realize приделываю запуск таймаута с перерисовкой. Пока что код такой:
Вот тут цепочка пар предложений на русском и мои переводы их на английский:
Здесь видна особенность в том что дебаг-корректировка сообщает
стартовую позицию сигнала в исходном потоке.
A feature of that debug correction communicate signal's start
position in input stream may be seen here.
Более точная корректировка информации об ошибках в данных сигнала
должна быть реализована на более высоком уровне сигнальной системы с
учётом особенностей преобразования исходных данных в данные сигнала.
More accurate correction of infomation about errors in signal's
content should be implemented on higher level of signal system taking into
account of transformation features content from input to signal's
content.
Вот есть у меня записывающее устройство, в котором очевидно хранилище памяти на базе флеш-памяти. ФС - vfat. По мере использования данные в память и записываются и стираются, как обычно. Как известно у флеш-памяти ограничен ресурс - количество циклов записи. Какова вероятность отсутствия механизмов балансировки записываемых ячеек памяти по ресурсу? Зависит ли работа таких механизмов от файловой системы?
Есть одна машинка, а на ней оффтопик и ещё одна проблема - она
не справляется с отводом тепла. Машинка довольна стара и у неё довольно
низкий предел перегрева - 85C. Но тем не менее, наблюдая за её работой с
виндой и с настройкой биоса, я считаю что проблемы в драйверах
винды. Цифры 2006 в дате версии драйверов, связанных с системой ACPI
эту версию подкрепляют. Если что машинка служит всего около 4
лет. Если послушать пользователя машинки раньше таких проблем не
было. Больше особо наблюдений выбить не удаётся - следить за
температурой с помощью Open
Hardware Monitor начали только недавно.
Поэтому думаю провести эксперимент - запустить с флешки systemrescuecd
(флешка с этой системой у меня уже есть) и с помощью программы которая
может с заданным уровнем загрузить процессор и sensors проследить как
машинка справляется с отводом тепла из под linux. У меня вопрос по
поводу первой программы - существует ли её реализация для таких
экспериментов? Если нет, то как её реализовать?
Набор программных платформ на systemrescuecd довольно скуден и наверно
я буду писать такую программу на python.
Тут вспоминается мой недавний опыт с такими экспериментами - я
пытался разгадать секрет непредсказуемых перезагрузок у машинки и,
подозревая связь с загруженностью процессора, загрузил все 2 ядра на
100% вычислением факториалов - поработав пару минут
машинка совсем
вышла из строя.
Из-за чего машинка непредсказуемо перезагружалась. Может перегрев
какой-нибудь важной схемы. Но почему перезагрузка если при
перегреве камня следует логичная защитная реакция отключения
машины. Да и следил я за sensors - высокого нагрева не было.
Другая возможная причина - трещина в схеме, которая после некоторой
работы давала разрыв цепи.
Так или иначе послы вывода машины из строя нужно было срочно искать
замену и справляться с кучей проблем. Сейчас уже всё устаканилось, но
останки от машины ушли за пределы доступа и дальнейший анализ причин
затруднён. Вопрос у меня - могла ли быть основной причиной выведения
машины из строя работа моей программы вычисления факториалов или
машина действительно была в состоянии очень сомнительной надёжности?
Или другими словами могу ли я
экспериментами из первой части поста вывести из строя нормально
работающую машину таким же образом?
Вот допустим есть транслятор который читает файл. Он натыкается на ошибку и кидает condition. Позицию ошибки в файле он определяет по номеру строки и номеру символа от начала строки. Чтобы подсветить ошибку в логах программа прочитает кусок файла с ошибкой - для этого она ещё раз откроет файл на чтение и, прочитав, закроет его. Первоначальное открытие файла сохраняет своё состояние из-за особенностей обработки ошибок в CL - после обработки работа программы продолжается в том же самом режиме.
Вот я попробовал сейчас из линукса вот такое сделать:
Я помню винду с её жуткими придирками по поводу занятости файлов работами в приложениях и есть вопрос: а насколько будут такие фокусы кросплатформенны?
Заранее извиняюсь за на коленке налабанный говнокод.
Для экспериментов нашёл свою старую курсовую в LaTeX и, редактируя и копипастя, раздул файл до 200M.
Вот результаты экспериментов у меня:
PERCHAR-VS-BUFFERING> (let ((*buffer-size* (* 4 (expt 2 10))))
(time
(with-open-file (*standard-input* #P"text3.tex")
(let ((lv (multiple-value-list (run-perchar))))
(setf *x* lv)
(first lv)))))
Evaluation took:
4.092 seconds of real time
4.092759 seconds of total run time (4.042829 user, 0.049930 system)
100.02% CPU
9,427,500,968 processor cycles
7,733,248 bytes consed
114337080
PERCHAR-VS-BUFFERING> (defparameter *x2* *x*)
*X2*
PERCHAR-VS-BUFFERING> (let ((*buffer-size* (* 4 (expt 2 10))))
(time
(with-open-file (*standard-input* #P"text3.tex")
(let ((lv (multiple-value-list (run-with-buffering))))
(setf *x* lv)
(first lv)))))
Evaluation took:
3.162 seconds of real time
3.162505 seconds of total run time (3.117984 user, 0.044521 system)
100.03% CPU
7,284,480,890 processor cycles
7,765,280 bytes consed
114337080
PERCHAR-VS-BUFFERING> (equal *x* *x2*)
T
PERCHAR-VS-BUFFERING>
Как некоторые могут догадаться экспериментировали с делающими одно и то же программами, но немного разными путями. Задачку выбрал несложную чисто для эксперимента.
От многоуважаемой публики прошу аналитику и замечания по техническим аспектам, а также предложения улучшить эксперимент.
PS для некоторых проверок запускал wc -m. Хотя задача у него гораздо проще чем у реализаций на CL, но что примечательно - он проигрывал в скорости от самой медленной реализации на CL более чем на 800 мс.
PS2 Жирный и тупой троллинг от хомячков т.н. мейнстрима и других д**ов здесь не нужен
Арч, sbcl 1.3.20, maxima 5.40.0, slime+swank староват правда. Вот с каких пор я без всякого пердолинга с почти дефолтным .sbclrc от quicklisp могу просто запустить imaxima в эмаксе?
Могу просто с таким немудрённым кодом:
(in-package :cl-user)
(load "/usr/share/sbcl-source/contrib/asdf/uiop.lisp")
(load "/usr/share/sbcl-source/contrib/asdf/asdf.lisp")
(require 'asdf)
(progn
(flet ((%gpath (p)
(push (merge-pathnames p
*default-pathname-defaults*)
asdf:*central-registry*)))
(let ((*default-pathname-defaults*
#P"/usr/share/sbcl-source/contrib/"))
(map nil #'%gpath
'(#P"sb-cltl2/"
#P"sb-introspect/")))
(let ((*default-pathname-defaults* (user-homedir-pathname)))
(%gpath #P".emacs.d/site-lisp/slime/")))
(asdf:oos 'asdf:load-op :swank))
;; я уверен тут много лишнего с недавних времён
(swank:create-server :dont-close nil
:port 23146)
... запустить с ней swank без беспорядочного засирания в ~/.cache? Подключиться и начать ломать её как мне вздумается? И спокойно без всякого геморроя загрузить что-нибудь через quicklisp, например gsll? Когда наступил этот праздник?
Есть одна группа людей с которой мне бы хотелось связаться. У группы принята связь по raidcall. Попробовать я не проч и уровень общения сильно конфиденциальным быть не планируется. Однако оказалось, что мало того что это проприетарщина так ещё у неё форма регистрации выполнена по незашифрованному HTTP. Это нормально у проприетарщиков настолько забивать на безопасность или я парюсь из-за какой-то мелочи?
Доконал меня в одно время Arch своими сюрпризами при полных обновлениях - решил попробовать debian testing. Опыт получился весьма не ахти. Не исключено, что кривость рук немного подыграла здесь. Решил, что у меня машинка пока ещё новая и debian довольно консервативный дистрибутив для такого. На опыте также убедился в ложности утверждения что «прикладной софт в Debian testing стабильнее чем в арче».
Поэтому планирую пощупать софт из репозиториев космонавта. Устанавливать планирую как я привык - запуск systemrescuecd с флешки, развёртывание debootstrap с минимальной файловой системой и пакетным менеджером, подключением к репозиториям космонавта, далее: ядро + всякая системная мелочь, lightdm, awesome, emacs, блекджек и прочее.
Теперь вопрос в чём. Я давно так близко не контактировал с дистрибутивом космонавта, но слышал что он всё больше становится похож на винду. У меня вопрос как там с телеметрией? Какого прогресса достигли дистростроители космонавта в этом плане? Как от такого «прогресса» защищаться?