среда, 16 февраля 2011 г.

тонкости regexp в sed


http://blog.perlover.com/2009/10/29/sed-regexp/


отличия:
В языке PerlВ sed редактореПояснение
(…)\(…\)Группировка
{X,Y}\{X,Y\}Заданный множитель
+\+Повторитель – один и более раз
?\?Повторитель – один или ноль раз
\bfoo\b\поиск ‘foo’ с границами слова
$1, $2\1, \2Подмена на группу

воскресенье, 30 января 2011 г.

монтируем qcow образ в debian



apt-get install kvm

modprobe nbd max_part=8

kvm-nbd --connect=/dev/nbd0 ubuntu.10-10.x86-64.20101010.qcow


fdisk -l /dev/nbd0

Disk /dev/nbd0: 10.4 GB, 10485760000 bytes
4 heads, 32 sectors/track, 160000 cylinders
Units = cylinders of 128 * 512 = 65536 bytes
Disk identifier: 0x00013a61

     Device Boot      Start         End      Blocks   Id  System
/dev/nbd0p1               1      160000    10239984   83  Linux


mount /dev/nbd0p1 /mnt/test

ls /mnt/test/
bin   dev  home        lib    lost+found  mnt  proc  sbin     srv  tmp  var
boot  etc  initrd.img  lib64  media       opt  root  selinux  sys  usr  vmlinuz


umount /mnt/test

 kvm-nbd -d /dev/nbd0
/dev/nbd0 disconnected

четверг, 21 октября 2010 г.

mount loop offset


losetup --find --offset 512 file

losetup -a

mkfs.ext3 /dev/loop1
losetup -d /dev/loop1

http://wiki.eeeuser.com/howtocustomrestoreimage:pt2mkcustomimage

суббота, 18 сентября 2010 г.

mtop/mytop in centos

mtop (Mysql Top)

http://packages.sw.be/mtop/

yum -y install perl-Curses
wget http://packages.sw.be/mtop/mtop-0.6.6-1.2.el5.rf.noarch.rpm
rpm -ivh mtop-0.6.6-1.2.el5.rf.noarch.rpm

yum -y install perl-TermReadKey perl-DBD-MySQL perl-DBI perl-Curses
wget http://packages.sw.be/mytop/mytop-1.4-2.el5.rf.noarch.rpm
rpm -ivh mytop-1.4-2.el5.rf.noarch.rpm

mytop -u root --prompt -d mysql

понедельник, 13 сентября 2010 г.

puppet replace some lines in files




http://projects.puppetlabs.com/projects/1/wiki/Simple_Text_Patterns


define replace($file, $pattern, $replacement) { 
  exec { "/usr/bin/perl -pi -e 's/$pattern/$replacement/' '$file'": 
      onlyif => "/usr/bin/perl -ne 'BEGIN { \$ret = 1; } \$ret = 0 if 
/$pattern/ && ! /$replacement/ ; END { exit \$ret; }' '$file'", 
   } 

} 

Example:
 
replace { "/etc/bashrc": 
   file => "/etc/bashrc", 
   pattern => "PS1", 
   replacement => "PS1 DOMAINA.COM" 
} 

вторник, 7 сентября 2010 г.

Некоторые малоизвестные факты о программировании

Программист тратит 10-20% своего времени на написание собственно кода, и большинство программистов пишут всего 10-12 строк кода в день, которые попадают в конечный продукт, независимо от их уровня. Хорошие программисты тратят большую часть оставшихся 90% времени на размышления, исследования и эксперименты в поисках наилучшего решения. Плохие программисты тратят это время на отладку, случайные изменения в коде и последующую проверку его на работоспособность.

«Хороший токарь работает в несколько раз лучше среднего, но хороший программист стоит в 10000 раз больше, чем обычный»
Билл Гейтс.

Хороший программист в 10 раз более продуктивен, чем средний. Отличный программист в 20-100 раз более продуктивен, чем средний. И это не преувеличение — исследования, проводящиеся с 1960-х годов, чётко это показывают. Плохой программист не просто непродуктивен: он не только не выполняет свою работу, но ещё и создаёт проблемы, которые приходится решать другим.

Лучшие программисты тратят очень немного времени на написание кода. По крайней мере того, который попадает в конечный продукт. Программисты, тратящие много времени на код либо слишком ленивы, либо слишком безграмотны, либо слишком высокомерны, чтобы искать существующие решения старых проблем. Отличные программисты — мастера определения и использования стандартных подходов. Хорошие не боятся постоянного рефакторинга в поисках идеальной архитектуры. Плохие же пишут код, которому недостаёт концептуальной целостности, лаконичности, иерархичности, шаблонов проектирования, и его невероятно сложно рефакторить. Проще выбросить плохой код на помойку и начать заново, чем что-то менять в нём.

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

В исследовании 2004-го года было обнаружено, что большая часть программных проектов (51%) сталкиваются с критическими проблемами (срыв сроков, превышение бюджета, невыполнение обязательств, нарушения функционала и т.п. — прим. пер.), а 15% полностью проваливаются. Это лучше, чем в 1994-м, когда последних было 31%.

Хотя большая часть программ создаётся командами, это не есть демократическая деятельность. Обычно всего один человек является ответственным за архитектуру, остальные — лишь кодеры.

Программирование — тяжёлый труд. Это очень напряжённая умственная деятельность. Хорошие программисты думают о работе 24 часа 7 дней в неделю. Они пишут лучший код в душе и в своих снах. Поскольку самая важная работа делается вдали от клавиатуры, разработку программных проектов нельзя ускорить, заставляя людей больше работать в офисе, или добавив новых людей в проект.

http://habrahabr.ru/blogs/arbeit/102620/

суббота, 21 августа 2010 г.

debian lenny xen XENBUS: Waiting for devices to initialise...

В Lenny бажный tap:aio
Лечится так

ln -s /usr/lib/xen-3.2-1/bin/tapdisk /usr/sbin
echo xenblktap >> /etc/modules
modprobe xenblktap
/etc/init.d/xend restart