| * * * |
[11 Nov 2011|10:29am] |
|
|
| Как получить текущий уровень звука в PulseAudio |
[11 Jun 2011|05:29pm] |
Мало ли, кому пригодится
#!/bin/sh
MONITOR=`pactl list | egrep -A2 '^(\*\*\* )?Source #' | grep 'Name: .*\.monitor$' | awk '{print $NF}' | tail -n1`
echo "set-source-mute ${MONITOR} false" | pacmd
parec -d "$MONITOR" | ./vu -d5 3>&1 1> /dev/null 2>&3 | awk '{print $(NF-1);}'
Рутовые права не нужны, но нужна замечательная программка vu (http://tobiah.org/pub/vu/) от некого Toby Shepard.
На выходе получается поток цифр типа: 53% 55% 55% 68% 61% 60% 51% 53%
Если вывод vu не фильтровать, то в stderr она посылает красивую картинку с уровнями звука, а в stdin - WAV-ку, которая через него фильтруется. Кстати, эта безумная конструкциям с 2>, 1> и 3> есть ни что иное как обмен между потоками stdout и stderr.
На кой ляд мне это нужно? Да просто индикатор громкости на ардуине делаю :)
|
|
|
[22 Mar 2011|09:57pm] |
$ find qq | wc -l 101001 $ time rm -rf qq real 0m2.507s user 0m0.087s sys 0m2.420s
Когда винда научится так же, ее можно будет называть операционной системой.
|
|
| Про expect |
[19 Jan 2011|06:56pm] |
|
Добрый вечер, милостивые господа.
Во второй пятиминутке я хочу рассказать вам о такой замечательной утилите, как expect. Если вы не знаете, что это такое, то будьте уверены — до этого момента ваша жизнь была бессмысленной и полной страданий — даже если вы этого не замечали.
Для чего она? Все просто — с помощью expect вы можете автоматически выполнять интерактивные программы. Вот, например, прямо в данный момент expect, запущенный на моем компьютере, шарится по более чем 60 серверам, настраивая там zabbix-агента, причем мне не надо самому вводить один пароль, чтобы залогиниться на сервер по ssh и другой пароль, чтобы залогиниться от рута — expect сам запускает ssh с нужными параметрами, вводит все пароли, выполняет небольшой скриптик на sed и перезапускает заббикс.
В общем, незачем тянуть, я лучше сразу покажу вам скрипт для expect, который все это делает:
#!/usr/bin/expect -f
set host [lrange $argv 0 0]
set password [lrange $argv 1 1]
spawn ssh $host
expect ".*\$"
send "su - miga-root\r"
expect "?assword:*"
send -- "$password\r"
send "sed -i 's/10.138.0.2/10.137.0.2/g' /etc/zabbix/zabbix_agentd.conf\r"
send "/etc/init.d/zabbix-agent restart\r"
send "exit\r"
send "exit\r"
expect eof
Как видите, все несложно и достаточно очевидно. Скрипт логинится по ssh к хосту, указанному ему первым параметром (так как на всех этих хостах прописан public-key моей машины, мне не надо вводить пароль здесь), потом заходит от пользователя miga-root с паролем, который он достает из второго параметра — и дальше просто заменяет IP-адрес сервера zabbix в настройках агента и перезапускает его. Роботы победят!
|
|
| Про прогресс |
[17 Jan 2011|09:15pm] |
|
Я тут читал сегодня на лепре, как один человек возмущался, мол, какого черта уже 10 лет как XXI век, а космические корабли до сих пор не бороздят просторы вселенной, а в Египет я лечу 4 часа на самолете, который впервые поднялся в воздух аж в 1969 году, а не телепортируюсь каждый вечер, чтобы поваляться на пляжу. На что ему другой человек ответил, дескать, надо сначала решить все земные проблемы а потом рылом на небо целить.
Я что-то не подумал, что надо бы проучить этого пиздюгана, а сейчас вот готовил ужин и вспомнил.
Так вот, корабли до сих пор не бороздят, а люди до сих пор не телепортируются, в частности, и из-за таких вот мудаков, как этот комментатор. Кому нужны все эти земные проблемы, все эти голодающие ниггеры в африке и глобальное потепление (кстати, я читал что это про него все пиздят и никому нельзя верить, но раз так, то непонятно, кому же действительно надо верить). Земные проблемы решать неинтересно. Надо оставить всех сраных мудаков гнить на сраной земляшке, а всем приличным людям надо сваливать в космос тащемта.
Да, я действительно не знаю, для чего и для кого я это пишу; один хрен прокомментирует этот пост только Аксшаван :)
|
|
| Про интернет |
[15 Dec 2010|01:29pm] |
Билайн - опизденевшие беспомощные бляди астрономического масштаба.
Не используйте Билайн в Новых Черемушках.
|
|
| Про двенадцать пальцев |
[24 Nov 2010|09:58am] |
Сегодня я с утра подумал, что весьма печально, что у человека только десять пальцев, а не двенадцать. Помимо того очевидного факта, что шестипалая рука функциональней пятипалой, весьма вероятно то, что люди (простите, сраные людишки) стали бы пользоваться двенадцатеричной системой счисления.
12 - действительно очень удачное число для использования в качестве основания системы счисления. Конечно, оно еще дальше от e, чем 10, но 12 делится на 2, 3, 4, 6; а 10 - только на 2 и 5. Это значит, что двенадцатичные дроби куда удобнее десятичных.
Выходит, люди из "Когда спящий проснется" знали толк в арифметике - считали все дюжинами, гроссами и мириадами.
Тащемта, боженька опять облажался. Еще и дождь устроил.
|
|
| Свертка служебного мусора в теме письма |
[13 Nov 2010|12:29pm] |
Вы знаете, я тут подумал, что в ходе работы и развлечения я иногда пишу всякие полезные скриптики-пятиминутки, которые используются один раз и потом теряются в хламе моего ~/src. И еще подумал, а почему бы не выкладывать их в интернет, вдруг кому-то понадобится. И первая пятиминутка у нас представляет собой крошечный скриптик на awk, сворачивающий всякий мусор вроде многократных Re: и Fw: в теме письма в компактный вид. Используется оно как-то так $ echo "Re: Re: Re: Fw: Fw: Re: Re: Fw: Re: Re: Re: Тема" | sed 's/ /\n/g' | awk -f mail.awk
Исходный код:
BEGIN {
i = 0;
f = 0;
}
/Re:/ {
if (f == 2) {
if(i == 1) printf("Fw: ");
else printf ("Fw[%i]: ", i);
i = 0;
}
i = i+1;
f = 1;
}
/Fw:/ {
if(f == 1) {
if(i == 1) printf("Re: ");
else printf("Re[%i]: ", i);
i = 0;
}
i = i +1;
f = 2
}
END {
if(f == 1) {
if(i == 1) printf("Re: ");
else printf("Re[%i]: ", i);
}
if (f == 2) {
if(i == 1) printf("Fw: ");
else printf("Fw[%i]: ", i);
}
print;
}
TODO: заменять пробелы переносами строки - это грязный хак (и к тому же разделяет еще и тему письма), так что умники могут придумать, как сделать лучше, а мне и так сгодилось :)
|
|
| * * * |
[08 Oct 2010|11:38pm] |
|
«Я пишу эти строки в «кошачьем ящике» Шрёдингера, который вывели на орбиту вокруг Армагаста, где объявлен карантин. Ящик представляет собой гладкостенный эллипсоид, шесть на три метра в поперечнике, который я при всем желании не покину до самой смерти. Обстановка моего крохотного спартанского мирка такова: система рециркуляции воздуха и воды, койка, синтезатор пищи, узкая стойка, которая служит одновременно обеденным и письменным столом, а также туалет, раковина и душ, почему-то отделённые от всего остального пластиковой перегородкой. Учитывая, что меня никто не навещает, подобная забота о соблюдении приличий кажется насмешкой. Я располагаю палетой и пером; дописав очередную страницу, переношу текст на микровелен, который производит система рециркуляции. Единственное, что меняется с течением времени в моём мирке, — толщина стопки веленевых листов. В корпусе «ящика» спрятана капсула с отравляющим газом. Она вмонтирована в воздушный фильтр, и всякая попытка добраться до неё или проделать дыру в корпусе приведет к тому, что внутрь начнет поступать цианид. Кроме того, в статико-динамическом поле «ящика» находятся счетчик радиации, изотопный элемент и таймер. Мне не суждено узнать, когда именно таймер включит счетчик, когда крохотный изотоп лишится свинцовой оболочки, когда в камеру устремится поток частиц… Но в ту секунду, когда это случится, я пойму, что счетчик заработал, и успею ещё ощутить перед смертью запах горького миндаля. Надеюсь, всё произойдет быстро. С технической точки зрения, если вспомнить древние загадки квантовой механики, я сейчас не жив и не мёртв. Пребываю в подвешенном состоянии, плещусь в волнах вероятности, которые предназначались когда-то для кошки в мысленном эксперименте Шрёдингера.» Дэн Симмонс «Эндимион». Это невыносимо прекрасно, трудно пожелать большего для человека.
|
|
| Новый рассказ |
[28 Sep 2010|05:24pm] |
Привет. Я тут написал один небольшой рассказик, в дополнение к моей книге "Все умерли", но так как у меня дома выключили электричество, и я не могу положить его сразу на свою домашнюю страничку, напишу тут, пожалуй. ( Коллективное надгробие )
|
|
| Инструкция по эксплуатации, ч 1, п. 1-2 |
[27 Sep 2010|10:42pm] |
|
Поздравляем вас с приобретением биокибера Cyberdyne LVX-1! При правильной эксплуатации и своевременном техническом обслуживании он станет вашим незаменимым помощником на много лет.
1. МЕРЫ ПРЕДОСТОРОЖНОСТИ
Внимание! Для вашей собственной безопасности внимательно прочитайте нижеследующие инструкции перед активацией вашего биокибера. Несоблюдение этих инструкций может привести к травме или смерти.
Утилизируйте полиэтиленовый упаковочный материал, в который упакован биокибер. Полиэтиленовые пленки и пакеты могут быть опасны для маленьких детей.
Не роняйте, не разбирайте, не бросайте в огонь и не закорачивайте силовые выводы элемента питания, входящего в комплект поставки LVX-1 — это может привести ко электрической травме, взрыву или распространению радиоактивных материалов.
Используйте только элементы питания, произведенные компанией Cyberdyne — элементы питания других производителей могу повредить LVX-1 и/или стать причиной электрической травмы
Ионизирующее излучение интенсивностью, большей, чем предусмотрено техническими условиями эксплуатации LVX-1, в редких случаях может привести, помимо распада основных функций биокибера, к его неконтролируемому поведению. В этом случае, немедленно вызовите местную службу безопасности и постарайтесь держаться на безопасном расстоянии от биокибера.
2. АКТИВАЦИЯ
a. Перед открытием коробки с биокибером убедитесь, что она не имеет механических
повреждений, следов жидкости, убедитесь в наличии фирменной голограммы Cyberdyne на пломбе, закрывающей крышку коробки. Если на коробке есть вмятины, подтеки или голограмма повреждена, свяжитесь с вашим поставщиком для возврата биокибера.
b. После открытия коробки, убедитесь, что наклеенные к крышке коробки со внутренней стороны датчики удара, жидкости и ионизирующего излучения белового цвета. Розовый цвет любого из датчиков свидетельствует о нарушении условий транспортировки и/или хранения биокибера, свяжитесь с вашим поставщиком для возврата биокибера.
ВНИМАНИЕ! Не пытайтесь активировать биокибера, если любой из датчиков розового цвета. Это может быть опасно для жизни!
c. Достаньте из коробки элемент питания, переведите переключатель «Mode» в состояние «Self-test/On», дождитесь загорания зеленого светодиода «Ready». В случае, если загорелся красный светодиод «Fail», свяжитесь с вашим поставщиком для возврата биокибера.
ВНИМАНИЕ! Не пытайтесь вставить неисправный элемент питания в биокибера. Это может быть опасно для жизни!
d. Установите элемент питания в спину биокибера. Загоревшийся светодиод «Init» около батарейного отсека свидетельствует о том, что процесс инициализации начался. Процесс инициализации занимает около минуты, в течении которых владелец биокибера должен находиться прямо перед ним на расстоянии 3-5 метров лицом к биокиберу.
e. После завершения процесса инициализации, биокибер встает и активирует программу начальной настройки, подробно описанную в гл. 2.
|
|
| Инструкция по эксплуатации, ч 18, п. 34 |
[26 Sep 2010|06:17pm] |
Биокиберы плачут в следующих случаях: 1. Засорились правый или левый лакримальные каналы. 2. Появилось несбалансированное увеличение эманационного потенциала между седьмой и девятой клеммами церебрального коллектора. 3. Потеря электрозаряда на сорок седьмом тразоне левой группы. 4. Увеличение сопротивления в системе базилики. 5. Общая перегрузка блока памяти.
|
|
| Про hardcopy |
[14 Sep 2010|09:46pm] |
Вы знаете, я всегда очень трепетно отношусь ко всяческим распечаткам и вообще, вооплощению какой-то информации из сети и компьютера в твердом виде. Ну вроде как ты сидел за компом, страдал фигней, давил кнопки, а потом раз! - и получилось что-то, что можно пощупать и, судя по всему, это даже имеет какую-то полезную функцию. Ну не охуеть ли?
Так вот, я сегодня перевел для своих китайцев пять строчек ТТХ кофеварки, которые печатаются на боку коробки ее, и подумал - а ведь обосраться можно, они ведь этих кофеварок наделают тысяч двести, и на коробке каждой из них будут эти пять строчек моего текста.
В общем, я очень старательно проверил, то что мой перевод правильный и звучит хорошо :).
|
|
| Делать совершенно нечего |
[28 Aug 2010|06:17pm] |
| [ |
mood |
| |
Роботы победят! |
] |
Написанная на Си программа, ищущая простые числа среди первого миллиона натуральных, на моем компьютере работает на 1 минуту 51.402 секунды, на 2.954 секунды дольше, чем такая же программа, написанная на ассемблере. (на Си программа собиралась с -03).
Что интересно, памяти эти программы используют одинаковое количество - 1620 байт.
Также стоит отметить, что бинарик программы на Си (как с -Оs, так и с -03) занимает 7141 байт, что на 209 байт меньше бинарика программы, написанной на ассемблере (параметры ассемблера gcc по-умолчанию).
Напоследок скажу, что программу на ассемблере я писал и отлаживал примерно час, что на 55 минут дольше, чем программу на Си.
|
|
|
[28 Aug 2010|01:18am] |
Я иногда очень жалею, что не умею связно писать слова. То ли дело твиттер.
|
|
| * * * |
[20 Aug 2010|08:21pm] |
Телевизор Изумруд. Потому что все умрут. Потому что все умрут. Потому что все умрут.
|
|
| бидон |
[08 Jun 2010|08:32pm] |
Эй, кто тут умный? Объясните, зачем сделали вот так вот:
$ python Python 2.6.5 (r265:79063, Apr 16 2010, 13:09:56) [GCC 4.4.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> a = [1, 2, 3] >>> print a.extend([4, 5, 6]) None >>>
|
|
|
[18 Mar 2010|04:57pm] |
Справа я, слева мой двоюродный брат, по центру наш друг C3-470/a
|
|
|
[01 Feb 2010|09:15pm] |
Здраствуйте, меня зовут Данил и я все проебал, Спасибо. Зато у меня осталось четкое осознание того, что и в газоотводной трубке под стволом Тоже проживает Будда.
|
|
| navigation |
| [ |
viewing |
| |
most recent entries |
] |
| [ |
go |
| |
earlier |
] |
|
|
|
|