0
<< предыдущая заметкаследующая заметка >>
30 ноября 2021
Вторая жизнь ваших комментариев

Добрый человек Kalan подарил мне чековый принтер чтобы я реализовал давно задуманный арт-концепт: появление комментариев в туалете онлайн. Такая почти что Стена Плача, только записочки передаются по интернету. Так что пишите комментарии, я вас внимательно читаю.

Принтер удобнее всего оказалось расположить под потолком. Чисто технически настроить это было не слишком сложно, но граблей оказалось много. Xprinter XP-A160M печатает на чековой ленте 80мм (576 точек), понимая команды ESC/POS. На самом деле он их не очень-то понимает - например категорически отказывается переключать раскладку на какую-то, кроме китайской. Но это не очень важно, потому что можно печатать в графике. Скорость у принтера настолько бешеная, что скрипт PHP не успевает потрошить картинку и передавать ему биты: на листе появляются пустые линии от ему одному заметных пауз. Чтобы их не было, я сперва накапливаю данные, потом передаю.

Сперва я беру комментарий или текст и делаю HTML. А HTML перегоняю в картинку при помощи утилиты cutycapt (и xvfb, если сервер без дисплея):

/usr/bin/xvfb-run --server-args="-screen 0,576x600x8" /usr/bin/cutycapt --min-width=576 --min-height=1 --url=file://file.html --out=file.png

Далее надо сделать картинку монохромной. И, желательно, толково. Делается это при помощи утилиты convert/imagemagick:

/usr/bin/convert file.png -resize 576x -colors 2 -normalize -colorspace Gray -dither FloydSteinberg -alpha off -background white -alpha Background filemono.png

И вот это - территория адских глюков. Во-первых, потому что разные сборки imagemagic на разных машинах внезапно дают совершенно разные результаты - как по качеству, так и по сбоям. Например, опция -monochrome на десктопной Убунте работает, а на сервере armf выдает черную картинку. Если собрать самому imagemagic из исходников, то глюка нет, но качество преобразования скверное. Впрочем, даже после игр с опциями, сборка на сервере редкие файлы все равно транслирует со сбоем (слева file.png, справа filemono.png):

Далее остается картинку побитово загнать в принтер в нужном формате, но тут уже я написал свой скриптик на PHP. Любопытно, что хоть глубина цвета у filemono.png равна 2, но палитра файла непредсказуема. Белая точка может обозначаться цветом 0x000000, черная 0x000001, но в следующем файле белая точка вполне может оказаться 0x000003, а черная 0x0000FE, поэтому предварительно скрипт ищет, какой цвет у белой точки сегодня.

Но в целом все работает прекрасно. Особенно мило, что принтер с автоотрезчиком, удобно рвать ленту. Так что пишите комментарии! А там уж, как знать, может, когда-нибудь мне удастся реализовать полный концепт: печать прямо на настоящей туалетной бумаге.

Также можно прямо напрямую отправить на сортирный принтер текстовое послание или картинку:

напечатать текст

или напечатать картинку

Для интересующихся скриптами:
показать код
<?php<?php

header('Access-Control-Allow-Origin: *');header('Content-Type: text/plain');ini_set('error_reporting',E_ALL);ini_set('display_errors',1);ini_set('display_startup_errors',1);$DIR='/tmp/xprint_'.time();$file_in=$DIR.".array";$file_html=$DIR.".html";$file_img=$DIR.".png";$file_mono=$DIR."_mono.png";$file_out=$DIR.".lp0";// если прислали готовую картинку для принтераif(count($_FILES)>0) {
    foreach($_FILESas$n=>$FILE) if(is_uploaded_file($FILE["tmp_name"])) {// сделать из загруженной картинки монохромную.pngimage2mono($FILE["tmp_name"],$file_mono);// отправить на принтерxprint_png($file_mono,$file_out);

    die("salert('Done',2000);");// только одна картинка}
}// если прислали текст для принтераelseif(isset($_REQUEST['text'])) {$s=uw($_REQUEST['text']);
    if(strlen($s) >2000||substr_count($s,"\n") >80) die("\nError: text too long: ".strlen($s)." > 2000, \\n = ".substr_count($s,"\n"));// сделать из текста файл HTMLfile_put_contents($file_html,"<html>
<head>
 <meta charset='windows-1251'/>
 <meta http-equiv='Content-Type' content='text/html; charset=windows-1251'>
</head><body>
</body><div style='font-size:25px'>".nl2br($s)."</div></body>
</html>");// сделать из HTML картинкуhtml2png($file_html,$file_img);// сделать картинку монохромной.pngimage2mono($file_img,$file_mono);// отправить на принтерxprint_png($file_mono,$file_out);

    die("ajaxoff();salert('Printed',2000);ajaxoff();");// только одна картинка}// иначе пришли данные комментария из дневникаelse {
    if(function_exists("fastcgi_finish_request"))fastcgi_finish_request();// закрыть соединение$p=file_get_contents('php://input');
    if(!empty($p)) {file_put_contents($file_in,$p);$p=unserialize($p); }
    else {$f="xprinter.array"; if(!is_file($f) || empty($p=@unserialize(file_get_contents($f) )) ) die("Nothing to do");
    }// сделать из данных HTML-комментарийmake_comment_html($p,$file_html);// сделать из HTML картинкуhtml2png($file_html,$file_img);// сделать картинку монохромной.pngimage2mono($file_img,$file_mono);// отправить картинку на принтерxprint_png($file_mono,$file_out);
}// удалить временные файлы
// $g=glob($DIR.'*'); foreach($g as $l) { if(is_file($l)) unlink($l); }exit;####################################################

// сделать из HTML картинку (apt install cutycapt xvfb)functionhtml2png($file_html,$file_img,$width=576) {exec("/usr/bin/xvfb-run --server-args=\"-screen 0, ".$width."x600x8\" "."/usr/bin/cutycapt --min-width=".$width." --min-height=1 --url=file://".$file_html." --out=".$file_img);
}// сделать картинку монохромной.png (apt install imagemagick)functionimage2mono($file_img,$file_mono,$width=576) {exec("/usr/bin/convert ".$file_img." -resize ".$width."x -colors 2 "."-normalize -colorspace Gray -dither FloydSteinberg -alpha off -background white -alpha Background ".$file_mono);
}// напечатать картинку.png на принтереfunctionxprint_png($file,$file_lp='') { if(empty($file_lp))$file_lp=$file.".lp0";$DEV=@exec("/bin/ls /dev/usb/lp*"); if(empty($DEV)) die("\nError: lp* not found");// нашли принтер$ESC="\x1b";$GS="\x1d";$out="";
    list($w,$h,$type) = @getimagesize($file);

    if($h>3000) die("\nError: height too big");

    if( empty($w) || empty($h) ||false===($im=imagecreatefrompng($file)) ) die("\nError: Empty file ".$file);$w0=floor(($w+7)/8);// байт в 8 раз меньше точек$min=0xFFFFFF;
    for($y=0;$y<$h;$y++) {// найти сегодняшний код белых точекfor($x=0;$x<$w;$x++) {$c=imagecolorat($im,$x,$y);
        if($c>$min) break;$min=min($c,$min);
        }
        if($c>$min) break;
    }$out.=$ESC."@";// Сброс настроек$out.=$GS."v0".chr(0)// печать картинки.chr($w0&0xFF).chr(($w0>>8) &0xFF)// width (bytes!).chr($h&0xFF).chr(($h>>8) &0xFF);// height$bit=7;$acc=0;
    for($y=$h-1;$y>=0;$y--) {//for($y=0;$y<$h;$y++) // прямое/перевернутоеfor($x=$w-1;$x>=0;$x--) {// for($x=0;$x<$w;$x++) // прямое/перевернутое$z=(imagecolorat($im,$x,$y) ==$min?1:0);$acc=$acc| ($z<<$bit);
        if((--$bit) <0) {$out.=chr($acc);$acc=0;$bit=7; }
    }
    if($bit!=7)$out.=chr($acc);// добавить если не кратно}$out="\n".$out."\n"// добавим переводы строки.$GS."V\x41".chr(3);// и команду обрезки листа
    // file_put_contents($DEV,$out); // напрямую настройки безопасности запрещаютfile_put_contents($file_lp,$out);exec("cat \"".$file_lp."\" >$DEV");unlink($file_lp);
}// сделать из данных $p комментарий в файле HTMLfunctionmake_comment_html($p,$file_html) {$is=300;// размер юзерпикаinclude_once"include_sys/_obracom.php";
    functionexplode_last($c,$s){ returnsubstr(strrchr($s,$c),strlen($c)); }
    functionh($s) { returnstr_replace(array('&','<','>',"'",'"'),array('&','<','>','&#39;','&#34;'),$s); }$s=h($p["Text"]);
    if(stristr($s,'{screen:') orstristr($s,'{scr:')) {$s=preg_replace("/\{screen:\s*(.+?)\s*\}/si","<div style='border: 1px dotted red; background: #eeeeee'>$1</div>",$s);$s=preg_replace("/\{scr:\s*(.+?)\s*\}/si","<div style='border: 1px dotted blue; background: #eeeeee'>$1</div>",$s);
    }$s=str_replace("\n","\n<br>\n",$s);$s=AddBB($s);$s=hyperlink("\n$s\n");$s=trim($s,"\r\n ");$s=preg_replace("/&(#[\d]+;)/si","&$1",$s);// отображать спецсимволы и национальыне кодировки$s=preg_replace("/<div alt='play'>[^<>\s]+ <div/s","<div alt='play'><div",$s);
    if(empty($s)) die("\nError: empty text");$p['Text']=$s;file_put_contents($file_html,"<html>
<head>
 <meta charset='windows-1251'/>
 <meta http-equiv='Content-Type' content='text/html; charset=windows-1251'>
<style>
img {max-width: 100% !important; height: auto !important;}
.header { font-size:12px; }
.name { display:inline; font-size:40px; font-weight:bold; }
.answer { font-size:10px; }
.text { margin-top:10px; font-size:25px; }
</style>
</head>
<body>
<img src='http://lleo.me/dnevnik/user/".$p['unic']."/userpick.jpg' style='float:right;margin: 0 0 1ex 1em;max-width:".$is."px;max-height:".$is."px;height:".$is."px;width:".$is."px;object-fit:cover;border-radius:7px;' onerror=\"this.style.display='none'\">
<base href='http://canada.lleo.me/dnevnik/".$p['Date']."'>
<div class='header'>".$p['Date']." ".$p['Header']."</div>
<div class='name'>".$p['Name']."</div>
<div class='answer'>".($p['Parent']?" отвечает ".$p['parent_Name']." ":'').date("Y-m-d H:i",$p['Time'])."</div>
<div class='text'>".$p['Text']."</div>
</body>
</html>");

}

functionuw($txt) { return(iconv("utf-8","cp1251//IGNORE",$txt)); }?>
<< предыдущая заметка следующая заметка >>
пожаловаться на эту публикацию администрации портала
архив понравившихся мне ссылок

Комментарии к этой заметке скрываются - они будут видны только вам и мне.

Оставить комментарий
Linux Safari Chrome
 Украина
5
0
Соziдатель
На бумаге будет хорошо, чтобы подтираться некоторыми мнениями.

Но каменты ж ещё те высеры… Можно под принтер маленький унитаз и вполне себе экспонат для музея современного искуства.
Windows Safari Chrome
 Казахстан
1
0
Denis Dyakov
Зашел написать этот комментарий, но меня опередили: в идеальном мире этот принтер должен заправляться туалетной бумагой.
Linux Ubuntu Firefox
 Москва
0
0
Леонит Каганофф
Вы знаете хоть один современный принтер или печатающую головку или матрицу кассовую, способную много печатать на туалетной бумаге?
Windows Safari Chrome
 Москва
0
0
2:5020/321
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Ищите LX800 матричный. Оптрончик чтобы ловил перфорацию...
Windows Safari Chrome
 Германия
0
0
patimo
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Надо туалетную бумагу молоком пропитать. Так ещё Ленин делать догадался.
Windows Firefox
 Израиль
1
0
Павел бывший Пашка
Я знаю. Есть бесконтактные струйные принтеры, печатают на любых предметах, в том числе довольно корявых и гнутых,
На любом пакете с молоком или коробочке с йогуртом посмотрите, дату чаще всего печатают они.
Им все равно, на чем.
Windows Safari Chrome
 Смоленск
0
0
Иван____
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Позднесоветский или ранненезависимороссийский струйный принтер. Он был характерен маленькими размерами и тем что ему было плевать на чем печатать. Единственное на туалетной бумаге чернила могут расплываться.
Я годах в 91-93 приручал его к компьютеру "Поиск". Ничего жило это...
Linux Safari Chrome
 Израиль
2
1
lookkil
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Принтер использует термобумагу, которая, по последним данным, является страшным канцерогеном. Подтираться нельзя, а лучше и в руки не брать!
Windows Firefox
 Marietta
0
7
Jason
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Леонид фанат игр с неизученной вакциной. Канцерогены ему норм.
Windows Firefox
 Нижний Новгород
0
0
Белый Крысс
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Но-но! Наш чудесный российский натурпродукт супротив вашей буржуйской бумаги это как Тесла супротив Ё-мобиля! Аналоговнет!
Linux Firefox
 Азербайджан
0
0
морра
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Так он китайской привился
Windows Firefox
 Нижний Новгород
0
0
Белый Крысс
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Вы всё напутали:
> .. категорически отказывается переключать раскладку на какую-то, кроме китайской.
Это же о принтере речь шла.
Windows Firefox
 Уфа
0
0
Роксана Бабаян
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
В 2015 году у одного казанца на чеке в кармане проявился чей-то лик. Об этом местное ТВ даже передачу выпустило, не подумав, что это могло быть банальное термовоздействие (возможно даже умышленное, ради хайпа).
А насчет канцерогенов, мне ещё тётя говорила, что не понимает тех кто подтирается газетой, там же сплошной свинец и прочая гадость.
Linux Ubuntu Firefox
 Израиль
8
0
200-1.95M
стишку движенье в самый раз
на принтер ну и в унитаз
Windows Firefox
 Россия
3
0
romul0
я бы своей жопе не каждый комментарий доверил...
Windows Firefox
 Нижний Новгород
9
0
Белый Крысс
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Прочитать или написать?
Windows Safari Chrome
 Москва
0
0
2:5020/321
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Осознать.
Windows Firefox
 Россия
0
0
romul0
и то, и другое
Windows Safari Chrome
 Кременчуг
13
0
ЖК
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Мысль изреченная банальна, изрекаю:
это почти как Стена Плача, только Стена Срача.
Windows Firefox
 Калуга
1
0
DrGluck
Киберпанк, который мы заслужили
Windows Safari Chrome
 Москва
0
0
2:5020/321
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Еще можно успеть на конкурс почты россии!
Linux Safari Chrome
 Харьков
0
2
фдуч2000
Как арт-концепт - супер. Но только не стоит этим пользоваться полноценно, т.к. чековая бумага токсична для человека (даже без комментариев)
Mac Safari Chrome
 Amsterdam
2
0
Igor Pellinen
То есть, не надо кушать бумагу?
Windows Safari Chrome
 Москва
4
0
Анатолий-1
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Не только, молекулы бумажного рака превосходно впитываются через кожу, тем более через жопу.
Windows Safari Chrome
 Москва
0
0
2:5020/321
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Да и вдыхать не полезно...
Windows Firefox
 Калуга
1
0
DrGluck
Я попытался отправить на принтер 18 главу Улисса, но оно зависло навсегда. Может быть стоит ограничивать длину сообщения для принтера?
Linux Safari Chrome
 Москва
0
0
Леонит Каганофф
Не волнуйтесь, там ограничено все.
Windows Firefox
 Калуга
0
0
DrGluck
Тогда чего оно повисло на этом запросе?
Linux Safari Chrome
 Москва
0
0
Леонит Каганофф
Ну во-первых, что значит, повисло? Принтер в моем туалете повесить браузер на вашем столе уж точно не сможет... ;)
Windows Firefox
 Калуга
0
0
DrGluck
Я нажал XPrint и не увидел сообщения "Printed". Просто висел курсор ожидания до перезагрузки страницы.
Linux Safari Chrome
 Москва
1
0
Леонит Каганофф
Такое у меня постоянно на сайте Сбербанка, АлиЭкспресса и РЖД :)
Windows Safari Chrome
 Москва
4
0
2:5020/321
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Думаете и у них в туалетах такое висит?
Windows Firefox
 Калуга
0
0
DrGluck
Хоть что-нибудь распечатолось из Улисса или совсем ничего?
Linux Safari Chrome
 Москва
3
0
Леонит Каганофф
Мне кажется, там всё из Улисса.
Windows Safari Chrome
 Россия
1
0
Василий Алибабаевич Пупкин
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
И если дан тебе талант писать на стенах в сортире,
В Питере ты художник в андеграундном стиле
Windows Safari Chrome
 Россия
3
0
Василий Алибабаевич Пупкин
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Пусть стены нашего сортира
Украсят юмор и сатира!
Windows Safari Chrome
 Россия
1
0
Василий Алибабаевич Пупкин
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Писать на стенах туалета,
Увы, друзья, не мудрено.
Среди говна вы все поэты,
Среди поэтов — вы говно.
Windows Safari Chrome
 Россия
0
0
Василий Алибабаевич Пупкин
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Туалетные писаки!
Вы не славитесь умом,
Ваши головы, как сраки,
Переполнены говном!
Linux Safari Chrome
 Киев
0
0
трович
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Не, Леонид, так нещитово. В настоящей, концептуальной инсталляции принтер должен быть 3D. Чтобы читатель мог послать тебе, например, картинку с кактусом. Вот тогда у тебя с аудиторией был бы этот... как его... паритет и обратная связь. А когда у одних каменты, а у других бумага - это сплошное издевательство и волюнтаризм.
Windows Safari Chrome
 Израиль
1
0
б
Сначала я подумал, что у тебя камера в потолке туалета. Охренел.

Потом понял, что у тебя там не камера, а зеркальный потолок. Охренел конкретно.

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

Но зачем зеркальный потолок в туалете? Расскажешь?

UPD. Если решишь ответить, то может быть заодно расскажешь, как случилось, что потолочное зеркало треснуло?
Linux Ubuntu Firefox
 Москва
1
0
Леонит Каганофф
Собирался сделать весь туалет зеркальным, как видел в клубах в Сеуле и Берлине. Но зеркал не хватило.

Потолочное зеркало треснуло из-за подвижек плит по сезонам. Да, в громадных панельных домах тоже ежегодно происходят микроскопические сдвиги.
Windows Safari Chrome
 Израиль
0
0
б
Хорошо что не хватило.
А еще хорошо, что ты не захотел скопировать решение как в том клубе в Тель Авиве, где у нас однажды рабочая вечеринка проходила. Там туалеты зачем-то со стекляными стенками сделали. Причем полупроницаемыми. Изнутри не видно, что ты у зала как на ладони. Видимо, чтобы не смущать справляющего нужду.

UPD: Ну и чтобы два раза не вставать. Интересно, как ты закрепил зеркало. Я даже не знаю, чего бы я больше боялся с таким туалетом. Что зеркало с потолка упадет на меня, или на гостя.
Linux Ubuntu Firefox
 Москва
0
0
Леонит Каганофф
Хороший клей и плинтуса по краю.
Windows Safari Chrome
 Домодедово
6
0
id
"Микроскопические" )))) при сезонной температурной деформации бетона от 0.5 до 0.8 мм на метр и типовой высоте 12-этажного дома 38 метров это от 2 до 3 см на верхнем этаже.

Если дом построен по "секционному" принципу, как сейчас модно - с двумя несущими "кольцами", внутренним (вокруг шахты лифта) и внешним, то на 17 этаже имеем сезонную "пляску" до 4 сантиметров стен внешнего кольца при околонулевой внутреннего. В получающиеся щели пролазит рука.
Windows Safari Chrome
 Москва
0
0
2:5020/321
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Монолит не такой уж и монолит, швы там есть конечно...
Windows Safari Chrome
 Москва
0
0
2:5020/321
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Ну подвижка плит это еще не излитие трампов!
Mac Safari Chrome
 Москва
0
0
Sol
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Везде-то вам Трампы мерещаться... трапПы имелось в виду?

Те которые были в Сибири и вызвали самое глобальное "великое пермское вымирание" (до 90% всех видов).
Linux Safari Chrome
 Москва
0
0
никто не я
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
когда-то в Икее продавались комплекты зеркальной плитки.
Вполне можно выложить сортир целиком.
Заодно будет видно куда брызги летят...
Windows Safari Chrome
 Екатеринбург
0
0
Негаб
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
>Можно его своровать на улице на выезде с ограниченной видимостью.

Никогда бы не заподозрил наличие у вас мелкоуголовных наклонностей )
Linux Safari Chrome
 Днепропетровск
5
0
Дмитрий
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Я сегодня вакцинировался, ожидал, конечно, что стану к вайфаю подключаться, или по блютусу слушать музыку без наушников. А вместо этого открылась возможность удалённой печати.
Windows Firefox
 Москва
0
0
vctor
У вас Файзер небось. С чужими чипами, их перешивать надо, совсем как в рассказе Леонида про студента.
Linux Safari Chrome
 Москва
5
0
Леонит Каганофф




Кто это сделал, признавайтесь!
Windows Safari Chrome
 Израиль
11
0
б
Не я. Но ты на всякий случай прямо там, в сортире, его и замочи. От греха подальше.
Windows Firefox
 Латвия
0
0
Heisenberg2
...а то на "трон" заберется - не выведешь потом ничем.
Linux Ubuntu Firefox
 Владимир
0
0
Adamos
Надо вывести в двух экземплярах и приложить к счетчикам.
Глядишь, обнулит...
Windows Safari Chrome
 Москва
0
0
2:5020/321
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Он сам
Windows Firefox
 Латвия
0
0
Heisenberg2
Терешкова
Windows Safari Chrome
 Москва
1
0
Михаил
Как же ты теперь в одном поле вместе с ним сядешь?
Windows Firefox
 Россия
0
0
Galvorn
Первый нах!
Windows Safari Chrome
 Германия
0
0
hoch3
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Сука, я сделал это!

Ку-ку! Десять часов!
Windows Safari Chrome
 Redmond
0
0
Андрей№189
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Ох, 10 лет назад использовал ImageMagick для поточной обработки картинок, тогда напрыгался с тем, что надо было использовать очень определенные его версии, чтобы получать воспроизводимые результаты.
За 10 лет, я смотрю, ничего не изменилось.
Linux Safari Chrome
 Россия
0
0
Онанимус
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Netpbm рулит.

всего комментариев: 62

<< предыдущая заметка следующая заметка >>