Как вы в ваших программах сообщаете пользователю об исключениях?
Перемещено boombick из Голосования
Выгнал память из свопа:
# free -m; swapoff -a; swapon -a; free -m
total used free shared buffers cached
Mem: 993 645 347 0 10 199
-/+ buffers/cache: 435 557
Swap: 2047 637 1410
total used free shared buffers cached
Mem: 993 981 11 0 4 188
-/+ buffers/cache: 787 205
Swap: 2047 0 2047Смотрим строки "-buffers" и «Swap» в столбце «used». Странная арифметика. В чём нюанс?
Старая как мир задача: виндузятникам перекодировать имена файлов на ftp в cp1251.
Монтирую так:
[root@battlehummer ~]# ll /srv/ftp/pub/
итого 12
drwxr-xr-x 9 legolegs legolegs 4096 Мар 7 19:54 fedora
drwxr-xr-x 2 root root 48 Мар 8 21:39 music
[root@battlehummer ~]# convmvfs -o allow_other,ocharset=cp1251,direct_io,default_permissions,srcdir=/mnt/big/Music/ /srv/ftp/pub/music
srcdir=/mnt/big/Music
icharset=UTF-8
ocharset=cp1251
[root@battlehummer ~]# ll /srv/ftp/pub/
итого 20
drwxr-xr-x 9 legolegs legolegs 4096 Мар 7 19:54 fedora
drwxr-x--- 109 legolegs users 4096 Янв 31 16:40 music
[root@battlehummer ~]# su -c "ls -l /srv/ftp/pub/" legolegs
итого 20
drwxr-xr-x 9 legolegs legolegs 4096 Мар 7 19:54 fedora
drwxr-x--- 109 legolegs users 4096 Янв 31 16:40 music
[root@battlehummer ~]# su -c "ls -l /srv/ftp/pub/" otheruser
ls: невозможно получить доступ к /srv/ftp/pub/music: Отказано в доступе
итого 12
drwxr-xr-x 9 legolegs legolegs 4096 Мар 7 19:54 fedora
?????????? ? ? ? ? ? music
Как видно, allow_other я указал. Пользователь-владелец директории всё видит, пользователь, входящий в группу users видит вопросики вместо прав доступа.
Что я делаю не так?
Какой способ используют эксперты ЛОРа? Интересует минимальное падение скорости и переносимость хотябы в рамках x86. Примеры кода с асмрм приветствуются.
веревка достаточной длины чтобы выстрелить себе в ногу
Этот метод не срабатывает в С++, потому что функции конструктора вызываются неявно в качестве части объявления; объявление часто скрывает вызов функции. Если вы пропускаете объявление, то вы пропускаете и вызов конструктора. Например, в следующей программе деструктор для x вызовется, а конструктор нет:
Вследствие этой проблемы лучше всего совсем избегать переходов goto в программах на С++.foo() { if ( некое_условие ) goto выход; некий_класс x; // Конструктор не вызывается. (Оператор goto // перескакивает через него.) // ... выход: // Здесь вызывается деструктор для x при выходе x из // области видимости. }
С чтением вопросов практически нет: fbreader и khaalireader отлично работают. В первом даже есть базовая функциональность библиотеки.
Хотелось бы иметь тулзы для конвертирования в правильный формат из неправильных (в т.ч. пакетные/консольные). Существует что-нибудь такое? Стабильность и наличие в репозиториях желательны, но необязательны.
Автор формата и первых утилит для работы с ним - убеждённый вантузятник и копираст, хотелось бы видеть свободные программы, с возможностью писать патчи.
>>> Подробности (Invalid URL, no host part!)
>>> Подробности (Invalid URL, no host part!)
Вот запустил nexuiz и для пробы выбрал "ultimate" в разделе видео-настроек. (Ну я понимаю, что это была не лучшая идея, но виснуть то зачем?) Спустя пару секунд амарок позаикался, покрякал, завис и позже заткнулся, тем временем мышь шевелилась рывками и тоже встала. numlock переключался с задержкой и тоже перестал реагировать. Всё зависло на хрен. Прямо как в оффтопике. Позор. :(
Такое уже случалось раньше и, судя по признакам, дело в свопинге. В высокопроизводительной многозадачной операционной системе, выполняющейся на двухъядерном процессоре и со свопом на sata-диске со включенным DMA. Смерть от свопинга. Приехали.
Практика показывает, что обычно в своп попадают редко используемые данные, и всё идёт хорошо. Но иногда в свопе оказываются часто используемые данные. Просто потому, что места в ОЗУ для них нет. И начинается бешеный свопинг, подкачка осуществляется не время от времени, а постоянно. Разумеется, это ОЧЕНЬ медленно. Ну пусть бы, раз программа не умеет экономить память - пусть тормозит. Но нэээт! Остальные программы, добросовестные, вообще останавливаются!!! Включая, разумеется, X.org и даже /bin/login! Однажды я просто не смог залогиниться с виртуального терминала, т.к. login слишком долго проверял пароль и отваливался по таймауту! Но я не пойму, ПОЧЕМУ??? Ведь процессор не используется (хотя бы одно ядро то), а для планировщика IO вроде как все равны. Откуда тормоза, блин? Как бороться? Как предотвращать?
>>> Подробности (Invalid URL, no host part!)
Конкретно: Alpha Centauri (от loki естественно), ja2-stracciatella и даже openttd. Никаких сообщений в stderr. Просто нет звука. При этом в том же quake3 звук есть, ls -R ~ > /dev/dsp как и положено противно шипит и т.п. Как чинить?
>>> Подробности (Invalid URL, no host part!)
Определитель Рауса - это такая здоровенная квадратная матрица и надо сначала взять кусочек из левого верхнего угла размером 1х1 элемент и посчитать определитель, затем 2х2, затем 3х3 и т.д. Рисуется это примерно так:
||||11| 12| 13| 14|
||| 21 22| 23| 24|
|| 31 32 33| 34|
| 41 42 43 44|
Вопрос знатокам: как это реализуется фтех?
PS Пробовал комбинировать \multicolumn и \multirow и внутри делать табличку с рамкой - не получается. Ещё есть вариант с \vline - но слева они слипаются в одну линию.
>>> Подробности (Invalid URL, no host part!)
Возникла необходимость сконвертировать много файлов .djvu в
"обыкновенный" формат. Пришлось долго думать, в чём, собственно, суть
кучи утилит в составе djvulibre.
В итоге родился простенький скрипт, делающй из djvuшника директорию со страницами. Пользуйтесь :)
Возможности:
=> Многопоточность (по числу процессоров)
=> ddjvu в моей сборке любит падать на ровном месте, скрипт запустит его повторно
=> Конвертация во множество различных форматов (за счёт imagemagick)
Проблемы:
Очень большие большие изображения обрабатываются в несколько потоков гораздо медленнее из-за нехватки памяти, используйте команду
JOBS=1 djvu2any.sh file.djvu
чтобы принудительно использовать 1 поток.
Программа не прерывается по ctrl+c, надо "добивать" через
killall djvu2any.sh ddjvu convert
Вообще я не очень в программировании на шелле, наверно много сделал неоптимально. И с английским проблемы, но фиг с ним :)
Сам скрипт:
#!/bin/sh
# This program is free software, released under terms of GNU GPL3
# 2007 (c) Osypov Oleg [ legolegs at yandex ru ]
# requires: djvulibre, ImageMagick
FNAME=$1
TOFORMAT=$2
if [[ "$FNAME" == "" ]]; then
echo "Usage: $0 file [to_format (default: png)]" 1>&2
exit 1
fi
if [[ "$TOFORMAT" == "" ]]; then
TOFORMAT=png
fi
DIRNAME=`echo $FNAME | sed "s/\.\w*$//"`
if [[ "$DIRNAME" == "$FNAME" || "$DIRNAME" == "" ]]; then
DIRNAME=${FNAME}_export
fi
mkdir $DIRNAME
if (! touch $DIRNAME) ; then
echo "Cannot use dir \`\`$DIRNAME''" 1>&2
exit 1
fi
PAGES=`djvudump $FNAME | grep INFO | wc -l`
if (($PAGES < 1)); then
echo "0 pages found" 1>&2
exit 1
fi
rm $FNAME.log 2> /dev/null
if [[ "$JOBS" == "" ]]; then
JOBS=`cat /proc/cpuinfo 2> /dev/null | grep "^processor" | wc -l`
if (($JOBS < 1)); then
JOBS=1
fi
fi
for j in `seq 1 $JOBS`; do
for i in `seq -w $j $JOBS $PAGES`; do
OK=true
if (! ddjvu -format=ppm -page=$i $FNAME $DIRNAME/$i.ppm ); then
echo "ddjvu crush on page $i, retrying..." 1>&2
rm $DIRNAME/$i.ppm 2> /dev/null
if (! ddjvu -format=ppm -page=$i $FNAME $DIRNAME/$i.ppm ); then
echo "ddjvu crush twice on page $i, logged" 1>&2
echo "$i" >> $FNAME.log
OK=false
fi
fi
if ($OK); then
convert $DIRNAME/$i.ppm $DIRNAME/$i.$TOFORMAT
rm $DIRNAME/$i.ppm
fi
done &
WAITUS="$WAITUS $!"
done
wait $WAITUS
ERRORS=`cat $FNAME.log 2> /dev/null | wc -l`
if (($ERRORS > 0)); then
echo "$ERRORS pages are not exported, see \`\`$FNAME.log'' for numbers" 1>&2
fi>>> Подробности (Invalid URL, no host part!)
KDEшный визард раз из 20 показывает hal:///org/freedesktop/Hal/devices/usb_device_ffffffff_ffffffff_noserial_printe r_noserial (и никогда - "просто USB") но отпечатать тестовую страницу не удалось ни разу. В логах
I [21/Oct/2007:23:18:35 +0400] Started backend /usr/lib/cups/backend/hal (PID 5425) for job 60.
E [21/Oct/2007:23:18:35 +0400] [Job 60] Unable to open device "hal:///org/freedesktop/Hal/devices/usb_device_ffffffff_ffff ffff_noserial_printer_noserial": No such device
Попробовал ситапку с прилагаемого диска - тоже ничего не фурычит :(
Стал копать глубже и заметил, что lsusb часто задумывается и в итоге не видит принтера (флешки и мобильники видятся и работают). Такое ощущение, что проблема в кабеле, но у меня их два разных. Не пойму куда копать.
Должен ли вообще принтер быть виден как /dev/ttyUSB0 ?
>>> Подробности (Invalid URL, no host part!)
Что посоветует ЛОР?
>>> Подробности (Invalid URL, no host part!)
[root@battlehummer ~]# grep "(WW)" /var/log/Xorg.0.log.old
(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(WW) No monitor specified for screen "Screen0".
(WW) The core pointer device wasn't specified explicitly in the layout.
(WW) No FontPath specified. Using compiled-in default.
(WW) intel(0): Register 0x61114 (PORT_HOTPLUG_STAT) changed from 0x00000000 to 0x00000b00
(WW) AIGLX: 3D driver claims to not support visual 0x23
(WW) AIGLX: 3D driver claims to not support visual 0x24
(WW) AIGLX: 3D driver claims to not support visual 0x25
(WW) AIGLX: 3D driver claims to not support visual 0x26
(WW) AIGLX: 3D driver claims to not support visual 0x27
(WW) AIGLX: 3D driver claims to not support visual 0x28
(WW) AIGLX: 3D driver claims to not support visual 0x29
(WW) AIGLX: 3D driver claims to not support visual 0x2a
(WW) AIGLX: 3D driver claims to not support visual 0x2b
(WW) AIGLX: 3D driver claims to not support visual 0x2c
(WW) AIGLX: 3D driver claims to not support visual 0x2d
(WW) AIGLX: 3D driver claims to not support visual 0x2e
(WW) AIGLX: 3D driver claims to not support visual 0x2f
(WW) AIGLX: 3D driver claims to not support visual 0x30
(WW) AIGLX: 3D driver claims to not support visual 0x31
(WW) AIGLX: 3D driver claims to not support visual 0x32
(WW) <default pointer>: No Device specified, looking for one...
[root@battlehummer ~]#
Ne znayu chto delat :( Menyal drajver s intel na i810 i dazhe na vesa. Udalyal konfig voobsche - reakciya odna i tazhe - iksy visnut namertvo. pisal v sosednej konsoli
sleep 60 && killall -9 Xorg ; killall -9 X; killall -9 startx
ne pomogaet. Hotya po power normal'no komp vyklyuchaetsya (no `ekran chiornyj vsyu dorogu)
Pomogite, chto delat'? PS izvinite za translit, pishu iz links, u nego `eto vmesto russkoj raskladki pochemuto.
| ← назад | следующие → |