Посоветуйте книги или ресурсы где складывается информация как из повсюду валяющегося и торчащего техногенного и не очень хлама можно смастерить что-нибудь полезное, ну или хотя бы прикольное.
Анонимусы могут советовать в моих темах в техразделах - перенесу сюда хоть как-то соответствующее сей теме.
Коли я уж экспериментирую с 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, блекджек и прочее.
Теперь вопрос в чём. Я давно так близко не контактировал с дистрибутивом космонавта, но слышал что он всё больше становится похож на винду. У меня вопрос как там с телеметрией? Какого прогресса достигли дистростроители космонавта в этом плане? Как от такого «прогресса» защищаться?
Оно только запущенное через дефолтный гейзер сжирает over 220M оперативы. Это же в 4 раза больше самой жирной реализации CL - sbcl, запущенной со slime-ом! Ладно там у sbcl можно понять - есть навороченный компилятор, но у racket что? Может этот жор настраиваемый?
Я конечно могу потерпеть такой жор рантайма, когда он запущен для разработки чего-либо, но нельзя-ли жор немного поубавить для конечного приложения?
ЗЫ из-за этого жора я так понимаю мелкие скрипты на racket как и с SBCL тоже в пролёте?
Давно играл когда малой совсем был и о интернетах вообще ничего не знал. Помогите вспомнить название. Есть наёмники, вроде на задание их можно отбирать, снаряжение для них можно подбирать перед заданием. Действие где-то в Африке. Помню вторую миссию на нефтеперерабатывающем заводе с длинным мостиком на нефтяную платформу в море.
Сабж должен иметь какую-никакую русскую локализация - иначе я бы в неё не играл в своё время.
В отличие от JA2 нет большой карты страны с локациями и указаниями кому-куда надо топать. Просто следует ряд определённых миссий с боевыми действиями, перед которыми отбирается и снаряжается отряд. Помню плохо но вроде бой явно не в пошаговом режиме - даже можно переключить в режим реального времени. В JA изометрия, а в сабже точно 3D. Также в бою наёмники могли управлять техникой.
Сейчас просто вспомнил о такой игре и задался вопросом почему JA осталась в истории, а сабж нет.
Пишу gui на python+tkinter. Использую grid - первая строка 2 ползунка и ttk.Label с картинкой, на второй строке полностью один ttk.Label с текстом. Можно ли повысить приоритет расширения у ячейки с картинкой, чтобы при изменении размера окна все остальные виджеты не меняли свой размер и оставались прижатыми к краям окна, а все изменения размера окна «поглощал» виджет с картинкой?