LINUX.ORG.RU

Сообщения ip1981

 

attempt to access beyond end of device

Форум — Admin

Программный RAID1 иногда бормочет вот это:

attempt to access beyond end of device
md0: rw=0, want=332031232, limit=332031104
attempt to access beyond end of device
md0: rw=0, want=332031232, limit=332031104
attempt to access beyond end of device
md0: rw=0, want=332031232, limit=332031104
attempt to access beyond end of device
md0: rw=0, want=332031232, limit=332031104

Гугл говорит, что такое бывает и без рэйда, но у меня появилось только на рэйде.

Иногда все файлы на таком примонтированном рэйде становятся только для чтения. Перезагрузка помогает.

Файловая система Reiser ошибок не обнаруживает.

WTF?

ip1981
()

[haskell] Покритикуйте программу численного интегрирования

Форум — Development

Метод (правых) прямоугольников:

equidistantPoints a b n = [a, a + h .. b]
    where h = (b - a) / n

squareIntegrateR f a b n =
    (sum (map f (tail (equidistantPoints a b n)))) * h
    where h = (b - a) / n

main = do
    print ( squareIntegrateR (\x -> cos x) 0 (pi/2) 100000 )
    print ( squareIntegrateR (\x -> x) 0 (pi/2) 10000 )
    print ( x*x/2 ) where x = pi/2

Проверка:

# ghc -o int int.hs && ./int
0.999992145996432
1.2338239201912735
1.2337005501361697

 

ip1981
()

2010 — Международный год биологического разнообразия

Форум — Talks
ip1981
()

[haskell] покритикуйте программу

Форум — Development

Только не спрашивайте, зачем она :-)

Задаётся натуральное число n. Если оно нечётное, то n = 3n+1, если оно чётное, то n = n/2. И так до тех пор, пока n ≠ 1.

Как результат интересны все промежуточные числа.

geblist :: [Integer] -> [Integer]
geblist (n:ns)
    | n == 1 = (n:ns)
    | otherwise = geblist (geb n : (n:ns))


geb :: Integer -> Integer
geb n
    | n == 1 = 1
    | odd n  = 3*n + 1
    | otherwise = n `div` 2

gebseq :: Integer -> [Integer]
gebseq n = reverse (geblist [n])

main = print (gebseq 27)

Вывод:

[27,82,41,124,62,31,94,47,142,71,214,107,322,161,484,242,121,364,182,91,274,137,412,206,103,310,155,466,233,700,350,175,526,263,790,395,1186,593,1780,890,445,1336,668,334,167,502,251,754,377,1132,566,283,850,425,1276,638,319,958,479,1438,719,2158,1079,3238,1619,4858,2429,7288,3644,1822,911,2734,1367,4102,2051,6154,3077,9232,4616,2308,1154,577,1732,866,433,1300,650,325,976,488,244,122,61,184,92,46,23,70,35,106,53,160,80,40,20,10,5,16,8,4,2,1]

 

ip1981
()

Очевидная идея для бэкапа

Форум — Desktop

Заводим почту на Гугле и Яндексе (где ещё большие ящики и письма?).

Настраиваем на одном из них (у меня Гугл) фильтр на слово «backup» (к примеру) так, чтобы это письмо копировалось на другие ящики и «входящие» не захламляло.

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

ip1981
()

[bash] Наконец-то вменяемая программа для изменения регистра

Форум — Development

Р-р-рекомендованное название --- recase.

#!/bin/bash

set -e
set -u


ACTION='no'
FORCE='no'
UPPER='no'
SCRIPT=$(basename "$0")

usage ()
{
cat <<USAGE
Usage: $SCRIPT [options] files...

Renames files to lower or upper case.
Default is to rename to lower case.

Options are:
    -A        Do actual work ($ACTION)
    -F        Force renaming if files exist ($FORCE)
    -u        Rename to upper case instead of lower ($UPPER)

    -h, -?    This help message


Examples:

# $SCRIPT ee/*
mv "ee/RBwrwRW" "ee/rbwrwrw"
mv "ee/УМЦУУкцускцу" "ee/умцуукцускцу"

# $SCRIPT -u ee/*
mv "ee/RBwrwRW" "ee/RBWRWRW"
mv "ee/УМЦУУкцускцу" "ee/УМЦУУКЦУСКЦУ"

USAGE
    exit 0
}

if [ $# == 0 ]; then
    usage
fi

while getopts AFhu? opt; do
    case $opt in
        A) ACTION='yes';;
        F) FORCE='yes';;
        u) UPPER='yes';;
        *) usage;;
    esac
done
shift $(expr  $OPTIND - 1)

if [ "$UPPER" == 'no' ]; then
    sed_cmd='s/[[:upper:]]/\l&/g'
else
    sed_cmd='s/[[:lower:]]/\u&/g'
fi

for p in "$@"; do
    
    d=$(dirname  "$p")
    f=$(basename "$p")

    n=$(echo "$f" | sed "$sed_cmd")

    if [ "$ACTION" == 'yes' ]; then
        if [ -e "$d/$n" ] && [ "$FORCE" != 'yes' ]; then
            echo "File '$n' exists. Use -F to overwrite"
            continue
        else
            mv "$d/$f" "$d/$n"
        fi
    else
        echo "mv \"$d/$f\" \"$d/$n\""
    fi

done

exit 0

 

ip1981
()

Qt 4.6.0, QPixmap, scaledToWidth

Форум — Development

Этот код вызывается несколько раз с разными «thumbname», файлы с такими именами 100% существуют

    QPixmap pixmap(thumbname);
    QIcon icon(pixmap.scaledToWidth(iconSize().width(), Qt::SmoothTransformation));
    QListWidgetItem *item = new QListWidgetItem(icon, filename);
    addItem(item);

Результат - результат правильный - несколько иконок с текстом в QListWidget.

Если же я удалю Qt::SmoothTransformation (по умолчанию станет Qt::FastTransformation),

Все иконки будут одинаковыми - как в первом файле, но при выборе иконка меняется, но опять у всех одинаковые.

WTF?

Это в Qt 4.6.0. В Qt 4.5.2 было нормально.

ip1981
()

Я же говорил, что в Париже ...

Форум — Talks

Я же говорил, что в Париже ... люди нетрадиционной ориентации

http://lenta.ru/news/2009/12/29/title/

ip1981
()

Если бы вы могли жечь взглядом,..

Форум — Talks

... вы бы жгли личный автотранспорт?

ip1981
()

Попробуем?

Форум — Talks

Transmission 1.80b3

magnet:?xt=urn:btih:188d323054871c36718e6b08570e622ca365608c&dn=%D0%91%D0%B8%D0%91%D0%B8%D0%A1%D0%B8%20---%20%D0%A2%D0%B5%D0%BB%D0%BE%20%D1%87%D0%B5%D0%BB%D0%BE%D0%B2%D0%B5%D0%BA%D0%B0

ip1981
()

Срочно в номер!

Форум — Linux-hardware

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

ip1981
()

mdadm и сменившийся файл SATA

Форум — Admin

В продолжении темы http://www.linux.org.ru/view-message.jsp?msgid=4372112&lastmod=1261860532048

Допустим, я создал RAID, указав какие устройства к него входят (напр., dev/sda1,/dev/sdc1); но после перезагрузки буквы дисков произвольно поменялись.

Как мне собирать RAID в таких случаях?

ip1981
()

Диски SATA меняются буквами

Форум — Admin

Имел два диска SATA, подключённые к каналам SATA1 и SATA2,
BIOS так и показывал, в системе они были соответственно sda и sdb.

После подключения третьего диска к каналу SATA3
этот третий диск стал sda, а два прежних - sdb и sdc.

BIOS же показывал правильно: два прежних SATA{1,2}, третий - SATA3

Хочу, чтобы SATA3 был таки sdc.

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

Что делать?

Linux life 2.6.29.6-smp #1 SMP Mon Aug 17 00:18:05 CDT 2009 i686 AMD Athlon(tm) 64 X2 Dual Core Processor 5000+ AuthenticAMD GNU/Linux

ip1981
()

Вы в опасности!!!

Форум — Talks
ip1981
()

the X series takes one year

Форум — Talks
ip1981
()

Эпично :-)

Форум — Talks

http://slackware.com/changelog/current.php?cpu=i386

l/cairo-1.8.8-i486-1.txz: Upgraded.
       Firefox 3.5.6 requires a new cairo to fix a bug on Windows. :-/
ip1981
()

RAID-1 на двух флэшках :-)

Форум — Talks

Втыкаем флэшки

# dmesg
scsi 19:0:0:0: Direct-Access     Sony     MSAC-UAM1        1.00 PQ: 0 ANSI: 0 CCS
sd 19:0:0:0: [sdc] 124416 512-byte hardware sectors: (63.7 MB/60.7 MiB)
...
scsi 20:0:0:0: Direct-Access     KINGMAX  USB Flash Disk   2.00 PQ: 0 ANSI: 2
sd 20:0:0:0: [sdd] 512000 512-byte hardware sectors: (262 MB/250 MiB)

Создаём RAID-1

# mdadm --create /dev/md0 --level 1 --raid-devices 2 /dev/sdc /dev/sdd
mdadm: largest drive (/dev/sdd) exceed size (62144K) by more than 1%
Continue creating array? y
mdadm: array /dev/md0 started.

Форматируем

# mke2fs /dev/md0
mke2fs 1.41.8 (11-July-2009)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
15552 inodes, 62144 blocks
3107 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=63700992
8 block groups
8192 blocks per group, 8192 fragments per group
1944 inodes per group
Superblock backups stored on blocks: 
	8193, 24577, 40961, 57345

Writing inode tables: done                            
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 32 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

Монтируем

# mount /dev/md0 /mnt/tmp/

Смотрим

# dmesg
md: bind
md: bind
md: md0: raid array is not clean -- starting background reconstruction
raid1: raid set md0 active with 2 out of 2 mirrors
md: resync of RAID array md0
md: minimum _guaranteed_  speed: 1000 KB/sec/disk.
md: using maximum available idle IO bandwidth (but not more than 200000 KB/sec) for resync.
md: using 128k window, over a total of 62144 blocks.
 md0:
md: md0: resync done.
RAID1 conf printout:
 --- wd:2 rd:2
 disk 0, wo:0, o:1, dev:sdc
 disk 1, wo:0, o:1, dev:sdd

Пишем, отключаем, останавливаем

# touch /mnt/tmp/test
# umount /mnt/tmp
# mdadm --stop /dev/md0

Приводим флешки в чувство

# mdadm --zero-superblock /dev/sdc
# mdadm --zero-superblock /dev/sdd

Обе флэшки содержат ext2 с файлом test и могут теперь использоваться по отдельности

ip1981
()

Ведь могут, если заставить!

Форум — Talks
ip1981
()

Гугл хакнули :-)

Форум — Talks
ip1981
()

Дзен

Форум — Talks

Существует ли целое число такое, что при возведение 2 в степень этого числа, получалось бы число, кратное 3?

Да, существует, его имя - "число такое, что при возведение 2 в степень этого числа, получается число кратное 3"

Это ничуть не хуже вопроса: существует ли число, квадрат которого равен -1?

Да, существует, его имя - "число, квадрат которого равен -1"

ip1981
()

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