Встроенный текст в tiff
В файлах прекрасно видны с помощью less посреди всякой бинарщины. Есть ли какая готовая либа их надёжно прочитать?
В файлах прекрасно видны с помощью less посреди всякой бинарщины. Есть ли какая готовая либа их надёжно прочитать?
Интересна стала вот такая фича подсветки лиспового синтаксиса: только в редакторе оформляется вход через '( или `( - меняем fg цвет. Выходим в обыкновенный код в том числе и посредством , или ,@ - меня меняем цвет fg на дефолтный обыкновенного кода. Можно ли такое замутить в emacs?
Провайдер дал очень много кабеля в квартиру и его девать некуда, но резать жалко. Недавно возникли проблемы со связью и хотя по всей видимости проблема в разболтавшемся штыре также остаётся любопытен и сабжевый вопрос.
dotsf - файл с точками. curvef(0) - файл с кривой фитования, генерирует его отдельная моя программа, очевидно точек разное количество поэтому в разных файлах. Можно ли сделать так чтобы в легенде кривая и точки оформились вместе под одним описанием?
dotsf = "../data/input/chout.dat"
curvef(x) = sprintf("../data/export/chout-fun.%02d.dat", x)
set output outputfile("chout")
plot dotsf using 1:2 with points title "", \
curvef(0) using 1:2 with lines title ""
Есть 2 директории, которые по большей части должны мало различаться. Одна директория с одной версией контента, другая - с более новой. Существует ли какая-нибудь утилита с помощью которой можно вывести список файлов, изменения которых отвечают за изменения контента в версиях? Также неплохо чтобы был вывод обыкновенного перемещения одного и того же файла в директории со сменой версии.
Какие ещё есть кроме известных работ Кнута и производных?
Есть один скрипт, для выполнения которого рождается процесс и живёт в среднем 1 мс. Как получить график зависимости от времени: занимаемой процессом ОЗУ, процессорного времени и io канала с диском?
CL-USER> (defvar *process*)
*PROCESS*
CL-USER> *process*
; Evaluation aborted on #<UNBOUND-VARIABLE *PROCESS* {1007C4B8C3}>.
CL-USER> (let* ((p (sb-ext:run-program "/usr/bin/R" nil
:output :stream
:error :stream
:input :stream
:wait nil))
(in (sb-ext:process-input p))
(s (sb-ext:process-output p)))
(declare (ignorable s in))
(prog1
(with-output-to-string (*standard-output*)
(loop :for c = (read-char s nil nil)
:repeat 10
:while (and c
(if (char/= c #\>)
t
(progn
(write-char c)
nil)))
:do (write-char c)))
(setf *process* p)))
""
CL-USER> *process*
#<SB-IMPL::PROCESS :EXITED 2>
CL-USER> (sb-ext:process-alive-p *process*)
NIL
CL-USER> (lisp-implementation-type)
"SBCL"
CL-USER> (lisp-implementation-version)
"1.3.11.debian"
со всякой мелочью типа /bin/ls проблем нет, хотя она также завершается быстро, но зато как положено и с результатом на выводе.
Хочу написать в issues парочке тамошних проектов. Зарегался в gitlab, но это не помогло. Писал в admin@common-lisp.net, но не отвечают. Может нужно в письме что-то сообщать для этого?
Шоткат - нажатие обычного пробела.
Изначально на нём забиндено slime-autodoc-space. Временами включаю минорный режим - view-mode. Вот его конфиг:
(require 'view)
(define-key ctl-x-map "\C-q" 'view-mode)
(define-key view-mode-map "b" 'scroll-down-command)
(define-key view-mode-map (kbd "<space>") 'scroll-up-command)
Видно что минорный режим включается, но на пробел всё равно всё ещё забинден slime-autodoc-space.
Замечу, что такая фигня случается только с интегрирующим slime режимом. В других случаях биндится как надо - scroll-up-command.
Есть у меня один проект - генератор поточных парсеров текста, размеченного конструкциями вида:
\macro{arg1}{arg2}
база построена на системе событий: обработчик идёт по тексту, выводит этот текст в свой результирующий поток. Как только ловит подобное macro - ищет его в таблице определений, оттуда он достаёт инфу о процедурах которые нужно проделать когда ловится такая макра, процедуре при начале считывании первого аргумента, окончании считывания первого аргумента и так далее. В процедурах доступны функции управления выводом текста, управления стеком окружений таких макров, таблицей определений - можно переопределять макры, доопределять, в том числе только в рамках определённого окружения отдельного макра.
Это база, на ней строится и всякий сахар типа работы с аргументами как со строками, заглушка вывода, механизм latex-окружений - конструкций вида:
\begin{env}{arg1}
text bla bla bla
\end{env}
Проект пишу на CL. Одна из причин создания проекта - препроцессинг tex-кода, нежелание учить тонкости расширения TeX его же средствами, представления о этих средствах как о довольно убогих инструментах. Вторая - мне нравятся подобные языки разметки и не понимаю почему они не выходят за рамки TeX-экосистемы, когда как они вполне могут представлять альтернативу всяким XML.
На данный момент уже есть прототип, в котором реализовано большинство намеченных функций. Причём этот прототип у меня валяется уже год без развития, не смотря на некоторые случаи практического применения. Недавно я возобновил работы над проектом.
Конечно у проекта есть проблемы. Это отсутствие документации, без которой я не вижу смысла публиковать код под свободной лицензией (а я намерен это сделать). Это проблемы с терминологией - в коде используются довольно неадекватные термины. Для этого я практически закончил писанину о концепции, краткую выжимку которой я описал выше и на основе которой буду писать документацию. Вот действительно как назвать этот проект? Как назвать семейство таких языков, на обработку которых нацелен проект?
Свежим взглядом прочитав код, планирую довольно глубокое перелопачивание кода. Для этого сейчас пишу тесты, чтобы тестировать хотя бы уже реализованные возможности.
Есть вот похожий по мотивации проект plump-tex.
Вот у меня есть окно и у программы с ней есть различные режимы. В разных режимах поведение окна кардинально разное. Думаю это можно устроить двумя способами: тупой - обработчик сигнала определяет какой режим и действует по ситуации, и более мне интересный - замена обработчика сигнала.
Насчёт последнего тут опять есть один очевидный вариант - вся эта динамика возлагается на имплементацию CL, т.е. намертво приколачиваем к сигналу лямбду, а та в свою очередь вызывает лямбду, которую лисп может менять в соответствии с режимом программы.
У меня же вопрос с более низкоуровневым переключением, на уровне инфраструктуры gtk. Что-то типа функции отключающей обработчики от сигнала, чтобы затем подключить другой соответствующий другому режиму. Я вот практически уверен, что ничего такого в cl-gobject-introspection нет. Остаётся вопрос - возможно ли это?
cast
monk
... которую я слышал во сне. Снилось мне что я сам её исполнял. Инструмент - ряд металлических трубок. Начиналась музыка так: сначала один стук по трубке, потом второй и постепенно постукивания учащались и звуки выстраивались в красивую музыку.
В общем «поиграв» во сне я на некоторое время проснулся и понял что музыка играла у соседа по общежитию на компьютере браузером во вконтакте. Соображал я недолго и дальше погрузился в сон. Потом стало интересно как найти композицию. От соседа толку никакого - он сам в то время спал и сказал что в то время проигрываться могло что угодно, перемотать назад было нельзя.
В общем можно ли как-то найти композицию?
Решил реализовать алгоритм генерации лабиринтов. Для начала взял алгоритм описанный в этой статье. К сожалению то что получается у моего генератора не соответствует заявленным свойствам алгоритма:
Алгоритм Эллера позволяет создавать лабиринты, имеющие только один путь между двумя точками.
Похоже я не так понял описание алгоритма. Поясню проблему на примере. Вот первые три ячейки левого края первой строки, множества определились как (1 | 2 2) - генератор решил построить стенку только между первыми двумя ячейками, но все три ячейки снизу решил не ограничивать. Т.е. на второй строке к 3-му шагу имеем карту множеств: (1 2 2) и делаем 3-й шаг. Первая стенка - решил не строить, карта: (1 1 2), вторая стена опять решил не строить карта: (1 1 1). Всё - в лабиринте цикл.
Генератор ведь строго по описанному алгоритму шёл?
Собираю пакет maxima чтобы она работала на sbcl:
checkinstall -D \
--type=debian \
--pkgname=maxima \
--pkgversion=5.39.0-1 \
--arch=amd64 \
--pkglicense=GPL2 \
--pakdir="./pack/" \
--requires=sbcl \
--install=no \
--exclude="/usr/share/doc" \
make install
Уже делал много пакетов с различными значениями --exclude, но всё равно в пакете присутствует эта директория с ненужным мне содержимым.
# checkinstall -v
checkinstall 1.6.2, Copyright 2009 Felipe Eduardo Sanchez Diaz Duran
This software is released under the GNU GPL.
Растёт Load_Cycle_Count.
# smartctl -a /dev/sda
smartctl 6.6 2016-05-31 r4324 [x86_64-linux-4.8.0-1-amd64] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF INFORMATION SECTION ===
Model Family: Toshiba 2.5" HDD MQ01ABD...
Device Model: TOSHIBA MQ01ABD100
Serial Number: 96BSP4JQT
LU WWN Device Id: 5 000039 742f04730
Firmware Version: AX1P5J
User Capacity: 1,000,204,886,016 bytes [1.00 TB]
Sector Sizes: 512 bytes logical, 4096 bytes physical
Rotation Rate: 5400 rpm
Form Factor: 2.5 inches
Device is: In smartctl database [for details use: -P show]
ATA Version is: ATA8-ACS (minor revision not indicated)
SATA Version is: SATA 3.0, 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is: Tue Dec 20 20:54:22 2016 MSK
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
General SMART Values:
Offline data collection status: (0x00) Offline data collection activity
was never started.
Auto Offline Data Collection: Disabled.
Self-test execution status: ( 0) The previous self-test routine completed
without error or no self-test has ever
been run.
Total time to complete Offline
data collection: ( 120) seconds.
Offline data collection
capabilities: (0x5b) SMART execute Offline immediate.
Auto Offline data collection on/off support.
Suspend Offline collection upon new
command.
Offline surface scan supported.
Self-test supported.
No Conveyance Self-test supported.
Selective Self-test supported.
SMART capabilities: (0x0003) Saves SMART data before entering
power-saving mode.
Supports SMART auto save timer.
Error logging capability: (0x01) Error logging supported.
General Purpose Logging supported.
Short self-test routine
recommended polling time: ( 2) minutes.
Extended self-test routine
recommended polling time: ( 242) minutes.
SCT capabilities: (0x003d) SCT Status supported.
SCT Error Recovery Control supported.
SCT Feature Control supported.
SCT Data Table supported.
SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x000b 100 100 050 Pre-fail Always - 0
2 Throughput_Performance 0x0005 100 100 050 Pre-fail Offline - 0
3 Spin_Up_Time 0x0027 100 100 001 Pre-fail Always - 1668
4 Start_Stop_Count 0x0032 100 100 000 Old_age Always - 128
5 Reallocated_Sector_Ct 0x0033 100 100 050 Pre-fail Always - 0
7 Seek_Error_Rate 0x000b 100 100 050 Pre-fail Always - 0
8 Seek_Time_Performance 0x0005 100 100 050 Pre-fail Offline - 0
9 Power_On_Hours 0x0032 100 100 000 Old_age Always - 48
10 Spin_Retry_Count 0x0033 102 100 030 Pre-fail Always - 0
12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 45
191 G-Sense_Error_Rate 0x0032 100 100 000 Old_age Always - 0
192 Power-Off_Retract_Count 0x0032 100 100 000 Old_age Always - 5
193 Load_Cycle_Count 0x0032 100 100 000 Old_age Always - 443
194 Temperature_Celsius 0x0022 100 100 000 Old_age Always - 35 (Min/Max 18/41)
196 Reallocated_Event_Count 0x0032 100 100 000 Old_age Always - 0
197 Current_Pending_Sector 0x0032 100 100 000 Old_age Always - 0
198 Offline_Uncorrectable 0x0030 100 100 000 Old_age Offline - 0
199 UDMA_CRC_Error_Count 0x0032 200 200 000 Old_age Always - 0
220 Disk_Shift 0x0002 100 100 000 Old_age Always - 0
222 Loaded_Hours 0x0032 100 100 000 Old_age Always - 37
223 Load_Retry_Count 0x0032 100 100 000 Old_age Always - 0
224 Load_Friction 0x0022 100 100 000 Old_age Always - 0
226 Load-in_Time 0x0026 100 100 000 Old_age Always - 276
240 Head_Flying_Hours 0x0001 100 100 001 Pre-fail Offline - 0
SMART Error Log Version: 1
No Errors Logged
SMART Self-test log structure revision number 1
No self-tests have been logged. [To run self-tests, use: smartctl -t]
SMART Selective self-test log data structure revision number 1
SPAN MIN_LBA MAX_LBA CURRENT_TEST_STATUS
1 0 0 Not_testing
2 0 0 Not_testing
3 0 0 Not_testing
4 0 0 Not_testing
5 0 0 Not_testing
Selective self-test flags (0x0):
After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.
# hdparm -i /dev/sda
/dev/sda:
Model=TOSHIBA MQ01ABD100, FwRev=AX1P5J, SerialNo=96BSP4JQT
Config={ Fixed }
RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=0
BuffType=unknown, BuffSize=8192kB, MaxMultSect=16, MultSect=16
CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=1953525168
IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
PIO modes: pio0 pio1 pio2 pio3 pio4
DMA modes: sdma0 sdma1 sdma2 mdma0 mdma1 mdma2
UDMA modes: udma0 udma1 udma2 udma3 udma4 *udma5
AdvancedPM=yes: unknown setting WriteCache=enabled
Drive conforms to: Unspecified: ATA/ATAPI-3,4,5,6,7
* signifies the current active mode
# hdparm -B /dev/sda
/dev/sda:
APM_level = 254
# hdparm -S /dev/sda
-S: bad/missing standby-interval value (0..255)
Погуглил - после hdparm -B254 -S0 /dev/sda рост параметра замедлился, но не перестал. Иногда слышится пощёлкивание.
От hdparm -B255 становится ещё хуже.
Вчера у меня сгорел основной комьютер. Но нет худа без добра.
По обстоятельствам пока приходится пользоваться компьютерами случайных добрых людей. Так вот с момента потери я прикасался к трём чужим компьютерам, принадлежащих абсолютно разным и совершенно случайно попавшимся мне людям: в моей лаборатории, соседа и моего учителя квантовой физики. НА ВСЕХ ТРЁХ МАШИНАХ РАБОТАЛ GNU/LINUX!!!
9 декабря 2016 года.
Не знаю как вы, а я запомню этот день навсегда...
Сабж по вашему мнению. Конечно можно сравнить по суммарному вкладу и по отношению вклада к ожидаемо возможному вкладу.
Перемещено leave из development
| ← назад | следующие → |