LINUX.ORG.RU

Сообщения ados

 

Встроенный текст в tiff

В файлах прекрасно видны с помощью less посреди всякой бинарщины. Есть ли какая готовая либа их надёжно прочитать?

 ,

ados
()

Подcветка квазицитат

Интересна стала вот такая фича подсветки лиспового синтаксиса: только в редакторе оформляется вход через '( или `( - меняем fg цвет. Выходим в обыкновенный код в том числе и посредством , или ,@ - меня меняем цвет fg на дефолтный обыкновенного кода. Можно ли такое замутить в emacs?

 , ,

ados
()

Можно ли скручивать рабочий ethernet кабель в комок?

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

 , ,

ados
()

Точки и кривая фитования в единой строчке легенды в gnuplot

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 ""

 

ados
()

Сравнение контента в директории

Есть 2 директории, которые по большей части должны мало различаться. Одна директория с одной версией контента, другая - с более новой. Существует ли какая-нибудь утилита с помощью которой можно вывести список файлов, изменения которых отвечают за изменения контента в версиях? Также неплохо чтобы был вывод обыкновенного перемещения одного и того же файла в директории со сменой версии.

 ,

ados
()

Какие есть годные примеры литературного программирования в open source?

Какие ещё есть кроме известных работ Кнута и производных?

 literate programming

ados
()

Поставить на счётчик короткоживущие процессы.

Есть один скрипт, для выполнения которого рождается процесс и живёт в среднем 1 мс. Как получить график зависимости от времени: занимаемой процессом ОЗУ, процессорного времени и io канала с диском?

 

ados
()

Не получается работать с внешним процессом

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 проблем нет, хотя она также завершается быстро, но зато как положено и с результатом на выводе.

 ,

ados
()

Вступить в клан gitlab.common-lisp.net

Хочу написать в issues парочке тамошних проектов. Зарегался в gitlab, но это не помогло. Писал в admin@common-lisp.net, но не отвечают. Может нужно в письме что-то сообщать для этого?

 ,

ados
()

Перебить шоткат минорным режимом

Шоткат - нажатие обычного пробела.

Изначально на нём забиндено 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.

 ,

ados
()

Парсер языка разметки

Есть у меня один проект - генератор поточных парсеров текста, размеченного конструкциями вида:

\macro{arg1}{arg2}

база построена на системе событий: обработчик идёт по тексту, выводит этот текст в свой результирующий поток. Как только ловит подобное macro - ищет его в таблице определений, оттуда он достаёт инфу о процедурах которые нужно проделать когда ловится такая макра, процедуре при начале считывании первого аргумента, окончании считывания первого аргумента и так далее. В процедурах доступны функции управления выводом текста, управления стеком окружений таких макров, таблицей определений - можно переопределять макры, доопределять, в том числе только в рамках определённого окружения отдельного макра.

Это база, на ней строится и всякий сахар типа работы с аргументами как со строками, заглушка вывода, механизм latex-окружений - конструкций вида:

\begin{env}{arg1}
  text bla bla bla
\end{env}

Проект пишу на CL. Одна из причин создания проекта - препроцессинг tex-кода, нежелание учить тонкости расширения TeX его же средствами, представления о этих средствах как о довольно убогих инструментах. Вторая - мне нравятся подобные языки разметки и не понимаю почему они не выходят за рамки TeX-экосистемы, когда как они вполне могут представлять альтернативу всяким XML.

На данный момент уже есть прототип, в котором реализовано большинство намеченных функций. Причём этот прототип у меня валяется уже год без развития, не смотря на некоторые случаи практического применения. Недавно я возобновил работы над проектом.

Конечно у проекта есть проблемы. Это отсутствие документации, без которой я не вижу смысла публиковать код под свободной лицензией (а я намерен это сделать). Это проблемы с терминологией - в коде используются довольно неадекватные термины. Для этого я практически закончил писанину о концепции, краткую выжимку которой я описал выше и на основе которой буду писать документацию. Вот действительно как назвать этот проект? Как назвать семейство таких языков, на обработку которых нацелен проект?

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

Есть вот похожий по мотивации проект plump-tex.

 , ,

ados
()

INSTEAD-JS

 

ados
()

cl-gobject-introspection и динамические обработчики сигналов

Вот у меня есть окно и у программы с ней есть различные режимы. В разных режимах поведение окна кардинально разное. Думаю это можно устроить двумя способами: тупой - обработчик сигнала определяет какой режим и действует по ситуации, и более мне интересный - замена обработчика сигнала.

Насчёт последнего тут опять есть один очевидный вариант - вся эта динамика возлагается на имплементацию CL, т.е. намертво приколачиваем к сигналу лямбду, а та в свою очередь вызывает лямбду, которую лисп может менять в соответствии с режимом программы.

У меня же вопрос с более низкоуровневым переключением, на уровне инфраструктуры gtk. Что-то типа функции отключающей обработчики от сигнала, чтобы затем подключить другой соответствующий другому режиму. Я вот практически уверен, что ничего такого в cl-gobject-introspection нет. Остаётся вопрос - возможно ли это?

cast monk

 cl-gobject-introspection, , ,

ados
()

Помогите найти музыкальную композицию.

... которую я слышал во сне. Снилось мне что я сам её исполнял. Инструмент - ряд металлических трубок. Начиналась музыка так: сначала один стук по трубке, потом второй и постепенно постукивания учащались и звуки выстраивались в красивую музыку.

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

В общем можно ли как-то найти композицию?

 ,

ados
()

Генератор лабиринтов

Решил реализовать алгоритм генерации лабиринтов. Для начала взял алгоритм описанный в этой статье. К сожалению то что получается у моего генератора не соответствует заявленным свойствам алгоритма:

Алгоритм Эллера позволяет создавать лабиринты, имеющие только один путь между двумя точками.

Похоже я не так понял описание алгоритма. Поясню проблему на примере. Вот первые три ячейки левого края первой строки, множества определились как (1 | 2 2) - генератор решил построить стенку только между первыми двумя ячейками, но все три ячейки снизу решил не ограничивать. Т.е. на второй строке к 3-му шагу имеем карту множеств: (1 2 2) и делаем 3-й шаг. Первая стенка - решил не строить, карта: (1 1 2), вторая стена опять решил не строить карта: (1 1 1). Всё - в лабиринте цикл.

Генератор ведь строго по описанному алгоритму шёл?

 ,

ados
()

Firefox hello всё

 

ados
()

checkinstall, исключение директорий

Собираю пакет 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.

 ,

ados
()

Попался мне хард-щелкунчик.

Растёт 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 становится ещё хуже.

 , ,

ados
()

Я дожил

Вчера у меня сгорел основной комьютер. Но нет худа без добра.

По обстоятельствам пока приходится пользоваться компьютерами случайных добрых людей. Так вот с момента потери я прикасался к трём чужим компьютерам, принадлежащих абсолютно разным и совершенно случайно попавшимся мне людям: в моей лаборатории, соседа и моего учителя квантовой физики. НА ВСЕХ ТРЁХ МАШИНАХ РАБОТАЛ GNU/LINUX!!!

9 декабря 2016 года.

Не знаю как вы, а я запомню этот день навсегда...

 , , , процент

ados
()

Наиболее полезная для СПО организация или коммерческая компания.

Сабж по вашему мнению. Конечно можно сравнить по суммарному вкладу и по отношению вклада к ожидаемо возможному вкладу.

Перемещено leave из development

 , , ,

ados
()

RSS подписка на новые темы