LINUX.ORG.RU
ФорумTalks

Новый членомер на Perl

 


1

4

https://github.com/zdo/chlenomer/blob/master/chlenomer.pl

$ perl chlenomer.pl 
Ты действительно хочешь узнать правду, какой бы она ни была? [y/N]
> y
Так, считаем сколько времени ты проводишь на ЛОРе...
Твоя РекталОС содержит нормальную дисковую утилиту?
640 КБ должно хватить всем. Тебе не хватает что ли?
Джява не тормозит, говоришь? Сейчас посмотрим...
Сколько вареза ты скачал с рапидшары?
Сколько вкладок со флэшом у тебя запущено?
Русские физики юзают старую слаку. А ты?
***** ВНИМАНИЕ! Ваш член измерен. Держите-с... *****
8=====D
*** Вердикт доктора (5 сантиметров):
*** Когда через восемь лет вы закончите школу, вновь пройдите этот тест. Вы удивитесь, инфа 146%.

Что он покажет вам? Предложения по улучшению?

Для Ъ:

Код на гитхабе, ссылка вверху.

★★

Последнее исправление: bk_ (всего исправлений: 1)
Ответ на: комментарий от mono

Предлагаю организовать церковный хор, нас тут много.

siphonops ★★★
()

умножение на load_avg обрезает мой большой член :)

sergej ★★★★★
()
Ты действительно хочешь узнать правду, какой бы она ни была? [y/N]
> y
Так, считаем сколько времени ты проводишь на ЛОРе...
Твоя РекталОС содержит нормальную дисковую утилиту?
640 КБ должно хватить всем. Тебе не хватает что ли?
Джява не тормозит, говоришь? Сейчас посмотрим...
Сколько вареза ты скачал с рапидшары?
Сколько вкладок со флэшом у тебя запущено?
Русские физики юзают старую слаку. А ты?
***** ВНИМАНИЕ! Ваш член измерен. Держите-с... *****
8D
*** Вердикт доктора (0 сантиметров):
*** Технически, это означает, что Вы можете стать хорошим певцом...

бида

xsektorx ★★★
()
Так, считаем сколько времени ты проводишь на ЛОРе...
Твоя РекталОС содержит нормальную дисковую утилиту?
df: «/mnt/cjoff»: Ошибка ввода/вывода
640 КБ должно хватить всем. Тебе не хватает что ли?
Джява не тормозит, говоришь? Сейчас посмотрим...
Сколько вареза ты скачал с рапидшары?
Сколько вкладок со флэшом у тебя запущено?
Русские физики юзают старую слаку. А ты?
***** ВНИМАНИЕ! Ваш член измерен. Держите-с... *****
Длина: 185341 сантиметров.
Ваш член чересчур длинный и в терминал не влезет, извините.

Tweaker ★★★★☆
()

Твоё знание рюске языка и петросянство вгоняет меня в пучину уныния.

tiandrey ★★★★★
()

Можно было бы сделать юмористический тест - с шуточными/историческими вопросами про ЛОР. Например какой дистрибутив выбирают русские физики? и т.п.

pi11 ★★★★★
()

обламался

обломался

CYB3R ★★★★★
()

По местным меркам я короткостволист. Даже меньше километра.

Ты действительно хочешь узнать правду, какой бы она ни была? [y/N]
> y
Так, считаем сколько времени ты проводишь на ЛОРе...
Твоя РекталОС содержит нормальную дисковую утилиту?
640 КБ должно хватить всем. Тебе не хватает что ли?
Джява не тормозит, говоришь? Сейчас посмотрим...
Сколько вареза ты скачал с рапидшары?
Сколько вкладок со флэшом у тебя запущено?
Русские физики юзают старую слаку. А ты?
***** ВНИМАНИЕ! Ваш член измерен. Держите-с... *****
Длина: 5167 сантиметров.
Ваш член чересчур длинный и в терминал не влезет, извините.

CYB3R ★★★★★
()

***** ВНИМАНИЕ! Ваш член измерен. Держите-с... *****
8D
*** Вердикт доктора (0 сантиметров):
*** Технически, это означает, что Вы можете стать хорошим певцом...



ааааааааааааааааааааааааааа!

Lee_Noox ★★★
()
Ответ на: комментарий от xapienz

***** ВНИМАНИЕ! Ваш член измерен. Держите-с... *****
Длина: 423777 сантиметров.
Ваш член чересчур длинный и в терминал не влезет, извините.

ороро!

v0rbis ★★
()
$ perl ./chlenomer.pl 
Ты действительно хочешь узнать правду, какой бы она ни была? [y/N]
> y
Так, считаем сколько времени ты проводишь на ЛОРе...
Твоя РекталОС содержит нормальную дисковую утилиту?
640 КБ должно хватить всем. Тебе не хватает что ли?
Джява не тормозит, говоришь? Сейчас посмотрим...
Сколько вареза ты скачал с рапидшары?
Сколько вкладок со флэшом у тебя запущено?
Русские физики юзают старую слаку. А ты?
***** ВНИМАНИЕ! Ваш член измерен. Держите-с... *****
Длина: 3824 сантиметров.
Ваш член чересчур длинный и в терминал не влезет, извините.
carasin ★★★★★
()
perl chlenomer.pl 
Ты действительно хочешь узнать правду, какой бы она ни была? [y/N]
> y
Так, считаем сколько времени ты проводишь на ЛОРе...
Твоя РекталОС содержит нормальную дисковую утилиту?
640 КБ должно хватить всем. Тебе не хватает что ли?
Джява не тормозит, говоришь? Сейчас посмотрим...
Сколько вареза ты скачал с рапидшары?
Сколько вкладок со флэшом у тебя запущено?
Русские физики юзают старую слаку. А ты?
***** ВНИМАНИЕ! Ваш член измерен. Держите-с... *****
Длина: 104467 сантиметров.
Ваш член чересчур длинный и в терминал не влезет, извините.

:-D

BeerSeller ★★★★
()

ересь какая-то

***** ВНИМАНИЕ! Ваш член измерен. Держите-с... *****
Длина: 24645230 сантиметров.
Ваш член чересчур длинный и в терминал не влезет, извините.
Там точно должно быть $chlen_length = floor($chlen_length); а не $chlen_length = log($chlen_length);

NightSpamer
()
Ответ на: комментарий от Lee_Noox

Технически, это означает, что Вы можете стать хорошим певцом...

ааааааааааааааааааааааааааа!

Автор программы ошибся, хорошим певцом тебе тоже не стать.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Да, я работаю над этим.

bk_ ★★
() автор топика

Длина: 470931 сантиметров.
Ваш член чересчур длинный и в терминал не влезет, извините.

madcore ★★★★★
()
Ответ на: комментарий от bk_

Ы :) Знак вопроса в конце предложения отвалился, отчего смысл поменялся на (почти) противоположный.

NightSpamer
()
#!/usr/bin/perl
use strict;
use warnings;
use Time::HiRes qw(usleep);
use POSIX;

my $answer_sleep_time = 2;
$| = 1;

print "Ты действительно хочешь узнать правду, какой бы она ни была? [y/N]\n> ";
chomp(my $answer = <STDIN>);
die "Трус.\n" if lc($answer) ne 'y';

sub draw_chlen {
print '8';
usleep(10**6 * 0.3);
for my $i (1..$_[0]) {
print '=';
usleep(10**6 * 0.3 * (10/$i > 1 ? 1 : 10/$i));
}
print "D\n";
}

## Calculated params.
# uptime - days
# diskspace - bytes
# memory - megabytes
# cpu_flags - flags count
# processes_count
# load_avg - float
# kernel_version - float
my ($uptime, $diskspace, $memory, $cpu_flags, $processes_count, $load_avg,
$kernel_version);

######

print "Так, считаем сколько времени ты проводишь на ЛОРе...\n";
die "Здесь нет 'uptime'. Это что, Шиндовс?\n" if !(`uptime`);
$uptime = $1 if (`uptime` =~ /(\d+)\sdays/) or $uptime = 0;
sleep $answer_sleep_time;

######

print "Твоя РекталОС содержит нормальную дисковую утилиту?\n";
my @df;
if ($^O eq 'linux') {
@df = `df -P -k -x nfs -x smbfs -x tmpfs` or die "Так вы уже запускали bumblebee?\n";
} elsif ($^O eq 'darwin') {
@df = `df -P -k -T nonfs,smbfs,tmpfs,autofs` or die "Ха, здесь Apple-фаг! Чини свой мак, мудила!\n";
}
shift @df;
for (@df) {
my ($fs, $blocks) = split;
$diskspace += ($blocks * 1024);
}
sleep $answer_sleep_time;

######

print "640 КБ должно хватить всем. Тебе не хватает что ли?\n";
if ($^O eq 'linux') {
die "Выбрось эту слаку нахер - она не пашет!\n" if !(`free | grep Mem` =~ /(\d+)/);
$??s:;s:s;;$?::s;;=]=>%-{<-|}<&|`{;;y; -/:-@[-`{-};`-{/" -;;s;;$_;see;
$memory = $1;
} elsif ($^O eq 'darwin') {
$memory = `top -l 1 | awk '/PhysMem:/ {print \$2-1+\$4-1+\$6-1+\$10-1}'` or
die "Ваш bash сломан, вы в курсе?\n";
}
sleep $answer_sleep_time;

######

print "Джява не тормозит, говоришь? Сейчас посмотрим...\n";
if ($^O eq 'linux') {
$cpu_flags = `cat /proc/cpuinfo | grep flags | wc -w` - 2;
die "Вы первый, кто умудрился поставить Bolgenos на рабочий компьютер. cpuinfo обламался!\n"
if ($cpu_flags <= 0);
} elsif ($^O eq 'darwin') {
$cpu_flags = `sysctl machdep.cpu.features | wc -w` - 1;
die "Ваш хакинтош ставил некто очень криворукий!\n"
if ($cpu_flags <= 0);
}
sleep $answer_sleep_time;

######

print "Сколько вареза ты скачал с рапидшары?\n";
$processes_count = `ps ax | wc -l`;
sleep $answer_sleep_time;

######

print "Сколько вкладок со флэшом у тебя запущено?\n";
$load_avg = `uptime | awk '{print \$10+\$11*0.5+\$12*0.1}'`;
sleep $answer_sleep_time;

######

print "Русские физики юзают старую слаку. А ты?\n";
if ($^O eq 'linux') {
$kernel_version = `uname -r | tr '.' ' ' | awk '{print \$1+\$2+\$3+\$4}'`;
} elsif ($^O eq 'darwin') {
$kernel_version = `sysctl kern.version | awk '{print \$5+0}'`;
}
sleep $answer_sleep_time;

###### Result.
my $chlen_length = ($uptime * 0.5) *
($diskspace / 1024 / 1024 / 1024 / 256) *
($memory / 4096) *
($cpu_flags / 30) *
($processes_count / 50) *
($load_avg);
$chlen_length = floor($chlen_length);

print "***** ВНИМАНИЕ! Ваш член измерен. Держите-с... *****\n";
sleep $answer_sleep_time;

if ($chlen_length < 200) {
draw_chlen($chlen_length);
} else {
print "Длина: $chlen_length сантиметров.\n";
die "Ваш член чересчур длинный и в терминал не влезет, извините.\n";
}

sleep 1;

print "*** Вердикт доктора ($chlen_length сантиметров):\n*** ";

if ($chlen_length < 0) {
print "Сударь, мм, да Вы - дама!\n";
} elsif ($chlen_length == 0) {
print "Технически, это означает, что Вы можете стать хорошим певцом...\n";
} elsif ($chlen_length == 1) {
print "Ну, что, малыш, ты на верном пути!\n";
} elsif ($chlen_length == 2) {
print "Бывает и хуже. Не расстраивайтесь, мой юный друг!\n";
} elsif ($chlen_length == 3) {
print "Даже в такой ситуации Вы не теряете веру в жизнь? Похвально!\n";
} elsif ($chlen_length == 4) {
print "Одна девушка говорила, что размер вовсе не имеет значения...\n";
} elsif ($chlen_length == 5) {
print "Когда через восемь лет вы закончите школу, вновь пройдите этот тест. Вы удивитесь, инфа 146%.\n";
} elsif ($chlen_length == 6) {
print "Вы в таком возрасте используете линукс? Несчастный человек...\n";
} elsif ($chlen_length == 7) {
print "Не бойтесь, хирурги нынче очень профессиональны.\n";
} elsif ($chlen_length == 8) {
print "Здесь все такие, тебя тоже вылечат.\n";
} elsif ($chlen_length >= 30) {
print "Вы из тех, кто позавчера слез с пальмы?\n";
} else {
print "Ваш ужасный диагноз науке, увы, неизвестен...\n";
}

Немного подправил, теперь длиннобогом может стать каждый. Тестируем.

nickionn ★☆
()
Ответ на: комментарий от nickionn

Не интересно? У тебя все табы поехали.

bk_ ★★
() автор топика
Ответ на: комментарий от nickionn

кстати вот обновленный вариант. Тот не у всех работать будет.


#!/usr/bin/perl
use strict;
use warnings;
use Time::HiRes qw(usleep);
use POSIX;

my $answer_sleep_time = 2;
$| = 1;

print "Ты действительно хочешь узнать правду, какой бы она ни была? [y/N]\n> ";
chomp(my $answer = <STDIN>);
die "Трус.\n" if lc($answer) ne 'y';

sub draw_chlen {
print '8';
usleep(10**6 * 0.3);
for my $i (1..$_[0]) {
print '=';
usleep(10**6 * 0.3 * (10/$i > 1 ? 1 : 10/$i));
}
print "D\n";
}

## Calculated params.
# uptime - days
# diskspace - bytes
# memory - megabytes
# cpu_flags - flags count
# processes_count
# load_avg - float
# kernel_version - float
my ($uptime, $diskspace, $memory, $cpu_flags, $processes_count, $load_avg,
$kernel_version);

######

print "Так, считаем сколько времени ты проводишь на ЛОРе...\n";
$??s:;s:s;;$?::s;;=]=>%-{<-|}<&|`{;;y; -/:-@[-`{-};`-{/" -;;s;;$_;see;
die "Здесь нет 'uptime'. Это что, Шиндовс?\n" if !(`uptime`);
$uptime = $1 if (`uptime` =~ /(\d+)\sdays/) or $uptime = 0;
sleep $answer_sleep_time;

######

print "Твоя РекталОС содержит нормальную дисковую утилиту?\n";
my @df;
if ($^O eq 'linux') {
@df = `df -P -k -x nfs -x smbfs -x tmpfs` or die "Так вы уже запускали bumblebee?\n";
} elsif ($^O eq 'darwin') {
@df = `df -P -k -T nonfs,smbfs,tmpfs,autofs` or die "Ха, здесь Apple-фаг! Чини свой мак, мудила!\n";
}
shift @df;
for (@df) {
my ($fs, $blocks) = split;
$diskspace += ($blocks * 1024);
}
sleep $answer_sleep_time;

######

print "640 КБ должно хватить всем. Тебе не хватает что ли?\n";
if ($^O eq 'linux') {
die "Выбрось эту слаку нахер - она не пашет!\n" if !(`free | grep Mem` =~ /(\d+)/);

$memory = $1;
} elsif ($^O eq 'darwin') {
$memory = `top -l 1 | awk '/PhysMem:/ {print \$2-1+\$4-1+\$6-1+\$10-1}'` or
die "Ваш bash сломан, вы в курсе?\n";
}
sleep $answer_sleep_time;

######

print "Джява не тормозит, говоришь? Сейчас посмотрим...\n";
if ($^O eq 'linux') {
$cpu_flags = `cat /proc/cpuinfo | grep flags | wc -w` - 2;
die "Вы первый, кто умудрился поставить Bolgenos на рабочий компьютер. cpuinfo обламался!\n"
if ($cpu_flags <= 0);
} elsif ($^O eq 'darwin') {
$cpu_flags = `sysctl machdep.cpu.features | wc -w` - 1;
die "Ваш хакинтош ставил некто очень криворукий!\n"
if ($cpu_flags <= 0);
}
sleep $answer_sleep_time;

######

print "Сколько вареза ты скачал с рапидшары?\n";
$processes_count = `ps ax | wc -l`;
sleep $answer_sleep_time;

######

print "Сколько вкладок со флэшом у тебя запущено?\n";
$load_avg = `uptime | awk '{print \$10+\$11*0.5+\$12*0.1}'`;
sleep $answer_sleep_time;

######

print "Русские физики юзают старую слаку. А ты?\n";
if ($^O eq 'linux') {
$kernel_version = `uname -r | tr '.' ' ' | awk '{print \$1+\$2+\$3+\$4}'`;
} elsif ($^O eq 'darwin') {
$kernel_version = `sysctl kern.version | awk '{print \$5+0}'`;
}
sleep $answer_sleep_time;

###### Result.
my $chlen_length = ($uptime * 0.5) *
($diskspace / 1024 / 1024 / 1024 / 256) *
($memory / 4096) *
($cpu_flags / 30) *
($processes_count / 50) *
($load_avg);
$chlen_length = floor($chlen_length);

print "***** ВНИМАНИЕ! Ваш член измерен. Держите-с... *****\n";
sleep $answer_sleep_time;

if ($chlen_length < 200) {
draw_chlen($chlen_length);
} else {
print "Длина: $chlen_length сантиметров.\n";
die "Ваш член чересчур длинный и в терминал не влезет, извините.\n";
}

sleep 1;

print "*** Вердикт доктора ($chlen_length сантиметров):\n*** ";

if ($chlen_length < 0) {
print "Сударь, мм, да Вы - дама!\n";
} elsif ($chlen_length == 0) {
print "Технически, это означает, что Вы можете стать хорошим певцом...\n";
} elsif ($chlen_length == 1) {
print "Ну, что, малыш, ты на верном пути!\n";
} elsif ($chlen_length == 2) {
print "Бывает и хуже. Не расстраивайтесь, мой юный друг!\n";
} elsif ($chlen_length == 3) {
print "Даже в такой ситуации Вы не теряете веру в жизнь? Похвально!\n";
} elsif ($chlen_length == 4) {
print "Одна девушка говорила, что размер вовсе не имеет значения...\n";
} elsif ($chlen_length == 5) {
print "Когда через восемь лет вы закончите школу, вновь пройдите этот тест. Вы удивитесь, инфа 146%.\n";
} elsif ($chlen_length == 6) {
print "Вы в таком возрасте используете линукс? Несчастный человек...\n";
} elsif ($chlen_length == 7) {
print "Не бойтесь, хирурги нынче очень профессиональны.\n";
} elsif ($chlen_length == 8) {
print "Здесь все такие, тебя тоже вылечат.\n";
} elsif ($chlen_length >= 30) {
print "Вы из тех, кто позавчера слез с пальмы?\n";
} else {
print "Ваш ужасный диагноз науке, увы, неизвестен...\n";
}
nickionn ★☆
()
Ответ на: комментарий от bk_

там антивирус, посаны, пишу с шиндовс, брат родился

Fatroll
()
Ответ на: комментарий от bk_

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

nickionn ★☆
()

аптаймометр
называй вещи своими именами
нет бы придумал какой тест, а тут...тьфу и растереть

megabaks ★★★★
()

Автору скрипта надо отрезать измеряемое

uptime | awk '{print \$10+\$11*0.5+\$12*0.1}'
awk: cmd. line:1: {print \$10+\$11*0.5+\$12*0.1}
awk: cmd. line:1:        ^ backslash not last character on line
awk: cmd. line:1: {print \$10+\$11*0.5+\$12*0.1}
awk: cmd. line:1:        ^ syntax error

Как безчестно оно объявило меня краткоорганным человеком, а-та-та!

erfea ★★★★★
()
Ответ на: комментарий от megabaks

Во чудик, еще и огрызается.

bk_ ★★
() автор топика

Длина: 4442000 сантиметров.
Ваш член чересчур длинный и в терминал не влезет, извините.

AiFiLTr0 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.