Фев
09
2009
--

Калам – Бур

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

Эрих Мария Ремарк — мужчина.

Последние слова Энштейн унес с собой в могилу. Сиделка не говорила по немецки.

Начальная скорость полёта пробки от шампанского — до14м/с, а высота полёта — до 12м метров.

http://dirty.ru/comments/20385

(далее…)

Опубликовал adik в Мыслепотамия |
Фев
09
2009
--

Изя! Ты думаешь что технологи́ческая сингуля́рность близка?

"Изя Кацман" (с) Галь Майк

"Изя Кацман" (с) Галь Майк

Как бы там не орали за изгородью ученые и врачи, что человеческий мозг работает на 20, 15, 5 процентов, думаю они не правы. А тут ещё поставили под сомнение, что метод выявления активных частей мозга “ни в какие ворота”.

А если подумать, то… . Представьте себя мозгом. Представьте, что вам поставили какую-то определенную цель. Кажется всё просто? Ну неееет уж… Чтобы получить нужную нам информацию мы перероем кучу ненужных нам знаний-событий-чувств. Вспомним звуки моря, клёвый porshe который видели у стоящего отеля, вспомним как пукали в общественном транспорте, вспомним как мы ищем фразы в гугле и находим из миллиона ссылок… В общем-то работа с ассоциативной памятью это вам не хухры-мухры. Самый “умный” среди нас тот, кто умеет с ней правильно обращаться? Да бог его знает… Из за того, что в нашей голове всегда хаос мы и становимся людьми, способными принимать самые невероятные решения. Стивен Талер, занимавшийся исследованиями нейронных сетей, натравил одну сеть “убийцу нейронов” на другую, получилась – “творческая машина”.

Так вот. Ваш мозг работает на все 100%, просто надо научится его слушать! Возможно это не выражается словами или… – это больше из разряда интуиции.

Думаю человечеству, в скором времени, все таки удастся построить первых роботов, по поведению похожих на зверей, имеющих так сказать “собственную индивидуальность”  и  пытающихся удовлетворять только “собственные инстинкты”(заложеную программу).  Но, это не будет началом той великой эпохи взрывоподобного роста скорости научно-технического прогресса. В первую очередь, нам самим необходимо усмирить в себе нашего “животного”. И тогда мы перестанем задавать себе вопрос, почему прогрессор Макси́м Ка́ммерер постоянно улыбается.

Опубликовал adik в Мыслепотамия |
Фев
08
2009
--

Dell/PERC RAID Manage in Debian

Иногда перед счасливыми обладателями серверов DELL стоит необходимость администрирования/мониторинга RAID контроллера без использования всякого рода GUI.

Для PERC 5 и PERC 6 котроллеров под управлением драйвера megaraid_sas используется утилита MegaCli

Для контроллеров SAS 5 и SAS 6 под управлением драйвера mptsas:

MegaCli and smartctl

To get the device ID within the array, say if you know per Dell OpenMange that the drive is in slot 3, query with:

[root@host]# MegaCli -PDInfo -PhysDrv[32:3] -aAll
 
Enclosure Device ID: 32
Slot Number: 3
Device Id: 3
Sequence Number: 13
Media Error Count: 182
Other Error Count: 23
Predictive Failure Count: 0
Last Predictive Failure Event Seq Number: 0
Raw Size: 476940MB [0x3a386030 Sectors]
Non Coerced Size: 476428MB [0x3a286030 Sectors]
Coerced Size: 476416MB [0x3a280000 Sectors]
Firmware state: Online
SAS Address(0): 0x1221000003000000
Connected Port Number: 3(path0)
Inquiry Data: ATA     ST3500320AS     SD15            9QM76H5M

From the above, we learn this failed drive is “Device Id”=3, so we can now query it using smartctl to see the full smart info:

[root@host]# smartctl -a -d megaraid,3 /dev/sdb
Опубликовал adik в Технотрония | Метки: , , ,
Янв
26
2009
--

Marshal.load = undefined class/module

Иногда в development при cache_classes = false

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
module Marshal 
  class <<self
    def load_with_preload_class(str, &p)
      str.scan(/.o:.([w:]+)/).each{|matches|
        begin
          # by constantizing the class name,
          # it should trigger it to be autoloaded.
          matches.first.constantize
        rescue NameError
          # I guess that wasn't a class we found after all.
          # Nothing to see here, move along
        end
      }
      load_without_preload_class(str, &p)
    end
    alias_method_chain :load, :preload_class
  end
end
Опубликовал adik в Технотрония | Метки:
Янв
21
2009
--

Неизменная мысль нашего века

“Духовность” все больше и больше деградирует в
“фельетонистическую эпоху”. На смену серьезным
занятиям науками и искусствами, самоотверженным поискам,
открытию новых законов и связей, созданию подлинных
произведений человеческого гения пришла пустопорожняя болтовня
о науке и искусстве. “Газетное чтиво” становится знамением
эпохи. Ученые и художники изменяют своему призванию, продаются,
так как их манят деньги и почести. Они более не служат своим
убеждениям, а развлекают и — главное — отвлекают своих
читателей. Армия интеллигенции трудится над писанием всякого
рода печатного хлама. Котируются анекдоты и мелкие происшествия
из жизни знаменитых людей или паукообразные сочинения, вроде:
“Фридрих Ницше и дамские моды в семидесятые годы девятнадцатого
столетия”, “Роль комнатных собачек в жизни знаменитых
куртизанок” и т.п. Не наука, а профанация науки, проституция
духовного творчества. Слово обесценилось, наступила инфляция
слова. За ней скрывается ужасающая духовная пустота и кризис
морали, страх перед будущим, перед неизбежностью новой войны,

перед всесилием “хозяев”.

В “фельетонистическую эпоху” много талантливых людей,
одаренных мыслителей. Этот век не является безыдейным, но, по
словам Гессе, он не знает, что делать со своими идеями, ибо в
глубине всего таятся страх и чувство обреченности. “Они
прилежно учились управлять автомобилем, играть в замысловатые
карточные игры и мечтательно отдавались разгадке кроссвордов,
ибо перед лицом смерти, страха, боли, голода они были почти
вовсе беспомощны… Люди, читавшие столько фельетонов,
слушавшие столько докладов, не изыскивали времени и сил для
того, чтобы преодолеть страх, побороть боязнь смерти, они жили
судорожно, они не верили в будущее”. Гессе приходит к
убеждению, что подобная цивилизация исчерпала себя и стоит на
пороге крушения, и ничто не сможет ее спасти.

(c) Герман Гессе. Игра в бисер

Опубликовал adik в Мыслепотамия |
Янв
15
2009
--

Good way for drop unused indexes in MySql

Очень хорошими людьми был написан замечательный patch (google-mysql-tools), одним фьючерсов которого является сбор статистики активности использования индексов #UserTableMonitoring

Вот несколько интересных рассуждений как можно мониторить/удалять ненужные индексы:

Тут можно взять билды mysql www.percona.com

Опубликовал adik в Технотрония | Метки: ,
Дек
19
2008
--
Дек
07
2008
--

Too many open files in system

find /proc/ -regextype posix-extended -maxdepth 1 \
-name '[0-9]*' -exec echo -n {} ' ' \; \
-exec sh -c 'ls -1 {}/fd/ | wc -l' \; | \
sort -n -k 2
Опубликовал adik в Технотрония | Метки:
Ноя
28
2008
--

InnoDB, count() в больших базах данных.

Как известно, InnoDB не очень хорош при работе с ключами.
Даже при вызове count() по PRIMARY INDEX – будет сканироватся вся таблица. А при огромном количестве записей – ето очень долго.

Вот один выход из проблемы:

CREATE TABLE `count_index_table` (
  `id` int(4) unsigned NOT NULL auto_increment,
  `name` char(100) NOT NULL,
  `size` bigint(20) unsigned NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB;
 
-- Ну очень большая таблица
CREATE TABLE `datatable` (
  `id` bigint(20) unsigned NOT NULL auto_increment,
  `datalong` varchar(255) default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB;
 
CREATE TRIGGER `datatable_before_ins` AFTER INSERT ON `datatable`
  FOR EACH ROW
BEGIN
   UPDATE count_index_table
   SET count_index_table.size = count_index_table.size +1
   WHERE count_index_table.name = 'datatable';
END;
 
CREATE TRIGGER `datatable_after_del` AFTER DELETE ON `count1i`
  FOR EACH ROW
BEGIN
   UPDATE count_index_table
   SET count_index_table.size = count_index_table.size-1
   WHERE count_index_table.name = 'datatable';
END;

Источник: http://sql.ru/forum/actualthread.aspx?tid=280049#2535574

Опубликовал adik в Технотрония | Метки:
Окт
09
2008
--

Восстановление программного RAID

Обнаружение ошибки

В случае ошибки промлемный физический том перестаёт использоваться raid-ом, и демон mdadm уведомляет администраторов о происшедшем по почте:

This is an automatically generated mail message from mdadm
running on buki

A Fail event had been detected on md device /dev/md2.

It could be related to component device /dev/sdj2.

Faithfully yours, etc.

P.S. The /proc/mdstat file currently contains the following:

Personalities : [raid1] [raid6] [raid5] [raid4]
md2 : active raid5 sdi2[0] sdl2[3] sdk2[2] sdj2[4](F)
  1463681856 blocks level 5, 64k chunk, algorithm 2 [4/3] [U_UU]

md1 : active raid1 sdk1[0] sdl1[1]
  489856 blocks [2/2] [UU]

md0 : active raid1 sdi1[0] sdj1[1]
  489856 blocks [2/2] [UU]

unused devices:

В данном случае ошибка была обнаружена на устройстве /dev/sdj2, входящем в raid /dev/md2.

(далее…)

Опубликовал adik в Технотрония | Метки: , ,
мая
28
2008
--

Easily build a Debian xen kernel package without PAE

When it comes to building custom parts for my current flavor of Linux distribution I am a bit of a purist and prefer to work within the distributions package management framework. The main reason being is that removal and upgrading of that package is easier and cleaner. With a good package management system like Debian’s it is actually easier than CMMI.

Recently I needed to build a custom Debian kernel for xen without pae extentions but I didn’t want to use a vanilla kernel. I wanted to use the official Debian kernel with its included distribution specific patches. Searching around the net I found many ways of doing it but they ultimately failed for one reason or another. Others worked but were just messy or incomplete. So I developed what I consider the cleanest and simplest way of building the kernel. It is actually not far off the official Debian kernel package building method. Here’s what I did in easy cut’n'paste steps for a fresh Debian Etch system.

  • Login as root or alternatively (and safer) you can use fakeroot.
  • aptitude update
  • aptitude upgrade
  • aptitude install xen-hypervisor-3.0.3-1-i386
  • mkdir debsource
  • cd debsource
  • apt-get source linux-2.6
  • apt-get build-dep linux-2.6
  • cd linux-2.6*
  • sed -i -e “s/-pae//g” debian/arch/i386/xen/defines
  • sed -i -e “s/-pae//g” debian/rules.gen
  • sed -i -e “s/-pae//g” debian/control
  • sed -i -e “s/# CONFIG_NOHIGHMEM is not set/CONFIG_NOHIGHMEM=y/”
    -e “s/^CONFIG_HIGHMEM/#CONFIG_HIGHMEM/”
    -e “s/PAE=y/PAE=n/” debian/arch/config.686-bigmem
  • debian/rules debian/build debian/stamps
  • make -f debian/rules.gen setup-i386-xen-686
  • make -f debian/rules.gen binary-arch-i386-xen-686
  • cd ..
  • dpkg -i linux-modules-2.6.18-6-xen-686_2.6.18.dfsg.1-17etch1_i386.deb
    linux-image-2.6.18-6-xen-686_2.6.18.dfsg.1-17etch1_i386.deb

http://blogs.ittoolbox.com/linux/locutus/archives/easily-build-a-debian-xen-kernel-package-without-pae-22254

Опубликовал adik в Технотрония | Метки: ,
Апр
20
2008
--

How to move a virtual machine from one computer to another

#create a snapshot of the LV drive
/usr/sbin/lvcreate -L5G -s -n vm_test_snap /dev/VolGroup00/vm_test

#turn the snapshop into a file image
dd if=/dev/VolGroup00/vm_test_snap | gzip -9 >/backup/vm_test.dd.gz

#remove the snapshot
/usr/sbin/lvremove /dev/VolGroup00/vm_test_snap

#move the file image

#copy and modify the Xen config file
cp /etc/xen/test /etc/zen/test2
vi /etc/zen/test2 

#change the name of the LV drive to vm_test2

#uncompress the file image into a LV drive
/usr/sbin/lvcreate -n vm_test2 --size 5G VolGroup00
gzip -dc /backup/vm_test.dd.gz | dd of=/dev/VolGroup00/vm_test2

#start the new VM
/usr/sbin/xm create -c test2

Источник: http://quadruple.ca/how-move-virtual-machine-one-computer-another

Опубликовал adik в Технотрония | Метки: ,
Фев
21
2008
--

xen 3.0.3 pygrub

http://www.kuro5hin.org/story/2007/4/23/3719/35994

apt-get source xen-hypervisor-3.0.3-1-i386-pae
cd xen-3.0-3.0.3-0/tools/pygrub/
apt-get install e2fslibs-dev

make

cp -av build/lib.linux-i686-2.4/grub/fsys/ext2 /usr/lib/xen-3.0.3-1/lib/python/grub/fsys/

mkdir -pv /var/lib/xen/

ln -s /usr/lib/xen-3.0.3-1/bin/pygrub /usr/bin/pygrub
Опубликовал adik в Технотрония | Метки:
Фев
20
2008
--

Установка Debian etch на Linux

Приводится пример установки Дебиана/Ubuntu из под других операционных систем.

Ссылки на первоисточники:

(далее…)

Опубликовал adik в Технотрония | Метки:
Фев
14
2008
--

Сборка Ngnix для Debian/Ubuntu

Оригинал http://deb.wapper.ru/nginx/

Если нужен пакет для testing/unstable или Ubuntu, то его надо будет пересобрать:

   1. Взять .dsc, .diff.gz, .orig.tar.gz
   2. dpkg-source -x этот.dsc
   3. cd в получившийся каталог
   4. dpkg-buildpackage -rfakeroot

после этого полученный пакет поставить обычным образом: dpkg -i nginx_0.4*.deb

Пакет по умолчанию собирается с большинством прибамбасов: fastcgi, imap/pop3, ssl. Для удобства траблшутинга есть также непострипанный бинарник с дебаг-символами: /usr/sbin/nginx.debug. Вся необходимая обвязка тоже есть: инит-скрипт, логротатор, вполне-рабочий конфиг.

Также пакет собирается и работает на Ubuntu Linux и на GNUSolaris.

Такую строку в /etc/apt/sources.list можно использовать для добавления репозитария:

deb http://deb.wapper.ru/nginx/ ./
Опубликовал adik в Технотрония | Метки: ,
Фев
02
2008
--

Обновляем пакеты в стабильном дистрибутиве (debian way)

Оригинал статьи: http://habrahabr.ru/blog/linux/33514.html

a также: http://www.debian.org/doc/manuals/apt-howto/ch-apt-get.ru.html#s-apt-show-versions
PbuilderHowto


Как вы уже наверно заметили в ubuntu, а тем более в debian, после выхода стабильного релиза, обновление пакетов происходит только в случае обнаружения критических ошибок. Это особенно заметно, когда обновление програмы которое вы так долго ждали, выходит спустя несколько дней после выхода вашего любимого дистрибутива. Но как вы уже догадываетесь – это нас не остановит.

Существует множество способов решения этой проблемы, поэтому сейчас мы все и рассмотрим

(далее…)

Опубликовал adik в Технотрония | Метки: ,
Янв
30
2008
--

Как установить Xen 3.2.0 из репозитория на Debian

cd /usr/src
wget http://bits.xensource.com/oss-xen/release/3.2.0/xen-3.2.0.tar.gz
wget http://msinhore.xen-br.org/files/xen/linux-2.6.18-xen.tar.gz

Что нужно для сборки

apt-get install iproute bridge-utils python-twisted gcc binutils make zlib1g-dev python-dev transfig bzip2 screen ssh debootstrap libcurl3-dev
libncurses5-dev x-dev libsdl1.2-dev  bin86 bcc python-pam patch latex-make  qemu qemu-launcher qemuctl graphviz graphviz-dev lvm2 libvncserver-dev
libjpeg62-dev libjpeg62 gettext python-xml gawk tetex-extra tetex-base

apt-get install unifdef

Если архитектура i386

apt-get install libc6-xen

Компиляция гипервизора и ядра

cd /usr/src
tar zxvf xen-3.2.0.tar.gz
tar zxvf linux-2.6.18-xen.tar.gz -C xen-3.2.0
cd xen-3.2.0
hg clone http://xenbits.xensource.com/linux-2.6.18-xen.hg
make dist && make install
depmod 2.6.18.8-xen
update-grub
update-rc.d xend defaults 20 21
update-rc.d xendomains defaults 21 20
mkinitramfs -o /boot/initrd.img-2.6.18.8-xen 2.6.18.8-xen

Оригинал статьи находится: http://wiki.xen-br.org/index.php?title=Compila_xen_etch

Ещё

#!/bin/bash

SOURCE_DIR=/lib/modules/`uname -r`/source
BUILD_DIR=/lib/modules/`uname -r`/build

KERNEL_HEADER_DIRS='i386'
KERNEL_ARCH='i386'
DIR=/usr/src/linux-headers-`uname -r`

##------------------------------------------------------------------------------

cd ${SOURCE_DIR};
(
  find .
    -path './Documentation/*' -prune -o
    -path './arch/*' -prune -o
    -path './include/asm*' -prune -o
    -path './scripts/*' -prune -o
    -path './include/*' -print -o
    ( -name 'Makefile*' -o -name 'Kconfig*' -o -name 'Rules.make' ) -print;
  find include/asm-generic -print;
  for i in ${KERNEL_HEADER_DIRS}; do
    find arch/$i
      ( -name 'Makefile*' -o -name 'Kconfig*' -o -name 'Rules.make' ) -print;
    find include/asm-$i -print;
  done;
)
|
cpio -pd --preserve-modification-time ${DIR}

##------------------------------------------------------------------------------

mkdir -p "${DIR}/arch/${KERNEL_ARCH}/kernel"
mkdir -p "${DIR}/include"
cp -a ${BUILD_DIR}/{.config,.kernel*,Module.symvers}  "${DIR}"

[ -d "${BUILD_DIR}/arch/${KERNEL_ARCH}/include" ] &&
        cp -a "${BUILD_DIR}/arch/${KERNEL_ARCH}/include" "${DIR}/arch/${KERNEL_ARCH}/include" || :
[ -f "${BUILD_DIR}/arch/${KERNEL_ARCH}/kernel/asm-offsets.s" ] &&
        cp "${BUILD_DIR}/arch/${KERNEL_ARCH}/kernel/asm-offsets.s" "${DIR}/arch/${KERNEL_ARCH}/kernel" || :
[ -f "${BUILD_DIR}/arch/${KERNEL_ARCH}/module.lds" ] &&
        cp "${BUILD_DIR}/arch/${KERNEL_ARCH}/module.lds" "${DIR}/arch/${KERNEL_ARCH}"

cp -a ${BUILD_DIR}/include/config "${DIR}/include"

ln -sf "${DIR}/include/asm-${KERNEL_ARCH}" "${DIR}/include/asm"

cd ${BUILD_DIR};
for dir in linux asm-generic asm-${KERNEL_HEADER_DIRS}; do
        mkdir "${DIR}/include/$dir";
        echo "${BUILD_DIR}/include/${dir}/* ${DIR}/include/$dir"
        cp -a ${BUILD_DIR}/include/${dir}/* ${DIR}/include/$dir
done

cp -a ${SOURCE_DIR}/scripts* ${DIR}
cp -a ${BUILD_DIR}/scripts/* ${DIR}/scripts/

rm ${BUILD_DIR}
ln -sf ${DIR} ${BUILD_DIR}

exit 0
Опубликовал adik в Технотрония | Метки: , ,

Работает на WordPress | Локализация: goodwin.wpbot.ru