10000 diskusních příspěvků na tomto blogu

Školení, která pořádám

Čtenáři tohoto blogu už napsali téměř deset tisíc diskusních příspěvků. Nechce se mi tomu ani uvěřit a přemýšlím, jestli tady někde neskladuji hromady spamu. Téměř čtvrtinu těch příspěvků jsem napsal sám, zbytek jsem přečetl. Jak si sami můžete spočítat, tak příspěvků přesně deset tisíc ještě není. Proto vyhlašuji soutěž o ten desititisící příspěvek. Vyhrává ten, kdo ho napíše k tomuto článku. Ze soutěže ale bude vyřazen ten, kdo sem napíše příspěvek, který bude menší než desetitisící. Nikdo také nevyhraje, pokud kulatý příspěvek někdo napíše k jinému článku.

Výhra bude symbolická – zveřejnění jména autora kulatého příspěvku na tomto blogu a stručný rozhovor s ním o tom, jak se mu výhry podařilo dosáhnout. 10000. příspěvek napsal a vítězem se stal Roman Jakubec.

Diskusní příspěvky můžete i průběžně sledovat.

Jakub Vrána, Ze zákulisí, 31.12.2010, diskuse: 45 (nové: 0)

Diskuse

stano:

Nuz, ja sa tomu mnozstvu diskusnych prispevkov ani nedovim - toto je jedna z mala kvalitnych stranok o php v cz/sk. Za to patri p. Jakubovi velke diky. (Inak prave v robote nemam co na praci tak skusam v mobile operu mini - stranky sa zobrazuju korektne.)

Daniel Máslo:

To zaslouží gratulaci, pěkné číslo. Jen tak dál.

Martin R.:

A na dalších 10k příspěvků hodně trpělivosti. Díky za tvou práci.

Lukas:

To je slušné číslo, gratuluji.

Oldřich Šálek:

Vzhledem k tomu, že jsme na PHP blogu, tak bych výherce tipoval tak, že to bude PHP programátor, který si napíše skript pro kontrolování aktuálního počtu komentářů a ve správné chvíli odešle svůj komentář…

srigi:

Velmi podobne ako sutazenie na Twittri o "miliardovy" tweet.

martin:

nejsem to já?

ady:

ze by ja

Honza Marek:

k čemu rozhovor?

Lukas:

A proc ne? Se mnou napriklad jeste nikdy nikdo rozhovor nedelal a tak mam konecne jednou sanci uzit si svych par minut slavy? :-)

ikona Jakub Vrána OpenID:

Je to uvedené v článku. Také připomínám své právo mazat nesmyslné nebo nesouvisející příspěvky.

Honza Marek:

Čím byly moje příspěvky nesmyslnější než "že by já"?

ikona Jakub Vrána OpenID:

V článku je jasně uvedeno, že nevyhraje ten, kdo k tomuto článku napíše komentář dřív. Takže dokola psát „že by já“ znamená pouze kazit soutěž ostatním, což považuji za nesmyslné.

Honza Marek:

Pochopil jsem tu soutěž jako počítací a ne jako čekací, tak jsem považoval za férové napsat si svých 8 příspěvků.

Honza Marek:

Měl jsem si přečíst zadání :)

Lawondyss:

Je zkrátka vidět, že tenhle blog prostě jede.

Radek:

Velmi pěkný blog, přeji mnoho nových čtenářů...

Roman Jakubec:

Že jsem teď naspal příspěvek číslo 10 000? :)

ikona Jakub Vrána OpenID:

Gratuluji, jde skutečně o 10000. příspěvek! Jak se ti podařilo výhry dosáhnout?

Roman Jakubec:

Programátorům se omlouvám za tento paskvil, ale:

<?php
if ($_SERVER["REMOTE_ADDR"] != "86.49.96.103"){
  echo "nechci podvadet, jen poukazuji na to, ze to jde ;)";
  exit;
}else{
  $ch = file_get_contents("http://php.vrana.cz/archiv.php");
  $ch2 = ereg_replace("^.*<table cellspacing=\'0\' cellpadding=\'3\'>", " ", $ch);
  $ch3 = ereg_replace("</table>.*$", " ", $ch2);
  $ch4 = ereg_replace("</tr>", "¤", $ch3);
  $pole=explode("¤",$ch4);
  foreach ($pole as $radek) {
    $radek = ereg_replace("^.*diskuse</a>: ", "", $radek);
    $radek = ereg_replace("</td><td.*$", "", $radek);
    $cislo = $cislo + $radek;
  }
}

?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>už jen pár</title>
<script type="text/javascript">
setTimeout(function(){
  location.href = "http://divx.4fan.cz/hihi.php";
}, 1000);
</script>
</head>
<body <?php if ($cislo > 9997) echo "style=\"background-color:red;\"";?>>
<b style="font-size: 4000%;"><?php
echo $cislo;

if (
$cislo > 9997) echo "<embed src=\"do_not_go.wav\" autostart=\"true\" width=\"128\" height=\"32\">";
?> </b>
</body>
</html>

ikona Jakub Vrána OpenID:

Kód vskutku zrovna pohledný není, ale i tak gratuluji! Hlavně oceňuji manuální práci s odesláním příspěvku – kdybych to psal já, tak robot příspěvek rovnou i odešle.

Tímto taky všechny prosím, aby si vypli své roboty, ať se zbytečně neplýtvá trafficem :-).

Roman Jakubec:

Curl měl server vypnuté. Napadlo mě napsat automatické odeslání ajaxem, ale na to jsem byl moc línej a možná by mně mj41 předběhl.

ikona Jakub Vrána OpenID:

Ono to jde i bez CURL a dokonce bych řekl, že i snadněji: http://php.vrana.cz/eurotel-sms.php.

Roman Jakubec:

Děkuji, aspoň se přiučím, a do dalších 10k se zlepším :)

mj41:

Na http://mj41.cz/wiki/10000 je můj kód. I s chybou co jsem tam zanesl dneska. Asi to bude tím, že mám chřipku :-).

mj41:

Pokus o příspěvěk číslo 10000 na tomto blogu. perl++

Roman Jakubec:

Zdá se že má ruka a počitadlo php je rychlejší nž perl++ :D

Hever:

Reakční doba vteřina ... přísné :)

<?php
preg_match_all
('~.*diskuse\<\/a\>\: (\d+).*~',file_get_contents('http://php.vrana.cz/archiv.php'), $matches);
echo
array_sum($matches[1]);

Roman Jakubec:

Já tedy použil mnohem ošklivější kód. Nejsem zkušený programátor, spíše se učím, a webhostitg měl zakázanou curl, proto jsem vkládal příspěvěk ručně. :)

mj41:

Gratuluji. Já to moc nehrotil. Včera jsem prodloužil časy a už jsem je nestihl vrátit zpět :-).

Ivan:

Preji dalsich 10000 prispevku drive nez za, uz skoro, sest let existence tohoto blogu, proste at to tu vic zije. A jako predsevzeti do noveho roku si davam to, ze sem nejake prispevky napisu i ja.

Zdenek:

Ja nechci aby byl muj prispevek desetitisici, protoze Jakub ma urcite v zaloze nejake prispevky k promazani, takze minimalne si preji at je muj prispevek 10 001. No a uz predem slibuji, ze se urcite zucastnim souteze k 20 000 prispevku. :-)

Jiří:

Šance, že tenhle příspěvek bude desetitisící je malá, ale aspoň mě něco přinutilo poděkovat za tento blog. Takže díky a přeji ať se tu brzo dosáhne dalších deseti tisíc (samozřejmě kvalitních) diskusních příspěvků.

Hever:

Tak to bylo rychlé ... ;(

ikona tiso:

Tak som to tu prešvihol (ešte je šanca, že mazať nesúvisiace príspevky), tak prajm veľa nervov na čítanie tej ďalšej 10000-ky.

Tento článok si vyslovene pýta podrobnejšiu štatistiku:
- počty príspevkov/komentujúcich za jednotlivé roky
- najdiskutovanejšie články
- najaktívnejšich komentátorov
- priemerná dĺžka príspevkov
- ...

Pridám skript na počítanie príspevkov:
<?php
$content
=strip_tags(file_get_contents('http://php.vrana.cz/archiv.php'));
if(
false !== preg_match_all('/diskuse:\s(\d+)/', $content, $matches)){
    echo array_sum($matches[1]);
}
?>

ikona Jakub Vrána OpenID:

Dobrý nápad. Pokud by to zajímalo ještě někoho dalšího: http://php.vrana.cz/statistiky-diskusnich-prispevku.php

Používejte diakritiku. Vstup se chápe jako čistý text, ale URL budou převedeny na odkazy a PHP kód uzavřený do <?php ?> bude zvýrazněn. Pokud máte dotaz, který nesouvisí s článkem, zkuste raději diskusi o PHP, zde se odpovědi pravděpodobně nedočkáte.

Jméno: URL: Reakce na: Jakub Vrána

Matej:

10000 :)

Matej:

:) skoda, siel som na obed a pc som uspal tak moj robot nemohol poslat skorej, no ale cakal som ze to bude az tak za tyzden....

ikona Jakub Bouček:

Pokud by někoho zajímal můj robot:
http://x0.cz/6yhh (vím, nic moc, ale napsáno za 20 minut)

Je potřeba knihovna Snoopy.
http://sourceforge.net/projects/snoopy/

Bohužel jsem to pouštěl Cronem jednou za minutu a to zjevně nestačilo.

ikona pa3k:

Ja som sa spoliehal na to, že nikto spam nepošle :) Toto som práve chcel nechať volať cron-om každých 5 minút... Žiaľ nejak sa s komentármi roztrhlo vrece.

<?php
set_time_limit
(300);
$content = "";
do {
    $content = file_get_contents("http://php.vrana.cz/atom.php?diskuse");
    if (false===strpos($content, "#d-11291")) {
        sleep(60);
    } else {
        sleep(1);
    }

} while(
false===strpos($content, "#d-11292"));

do {
    $fp = @fsockopen("php.vrana.cz", 80, $errno, $errstr, 30);
} while (
false===$fp);

$post_content = "re=&jmeno=pa3k&url=www.kvalitne.sk&zprava=Gratulujem+k+10000.+koment%C3%A1ru%21+&robots=spamno";
$header  =
    "POST http://php.vrana.cz/diskuse.php?clanek=10000-…-tomto-blogu#new HTTP/1.0".
    "\r\n".
    "User-Agent: Nazdar Jakub!".
    "\r\n".
    "Content-Type: application/x-www-form-urlencoded".
    "\r\n".
    "Referer: http://php.vrana.cz/10000-diskusnich-prispevku-….php#diskuse".
    "\r\n".
    "Content-Length: ".strlen($post_content).
    "\r\n".
    "Connection: close".
    "\r\n".
    "\r\n".
    $post_content
;
fwrite($fp, $header);
stream_set_blocking($fp, TRUE);
stream_set_timeout($fp, 30);
$response .= fread($fp, 10000);
fclose($fp);
echo
$response;

?>

ikona The Zero:

Mně se to vešlo to 128 znaků :)
wget -O - http://goo.gl/0uCfx|grep 'e</a>:'|sed s/'^.*e<\/a>: \([0-9]*\).*$'/\\1/g|php -r 'echo array_sum(file("php://stdin"));'

Peter Lištiak:

To je pekné. Mne php nenapadlo použiť a tak to mám dlhšie.

#!/bin/bash
pocet=0
for i in `wget -O - http://php.vrana.cz/archiv.php | grep ">diskuse</a>"  | sed "s#^.*>diskuse</a>: \([0-9]*\).*#\\1#"`; do
        let "pocet+=$i"
done
echo $pocet

ikona tiso:

To je na stránke s článkami o PHP zaujímavé tvrdenie. Ako si sa tu ocitol?

Samanta:

To je celkem úspěch, měj se hezky a ať ti to jde dál takhle dobře.

kozotoč:


Ve tvém úplně prvním článku se pár sebevědomých jedinců chlubilo svými projekty o PHP, z toho jeden, který ho začal o 14 dní před tebou.
Kde je jim konec....
avatar © 2005-2018 Jakub Vrána. Publikované texty můžete přetiskovat pouze se svolením autora. Ukázky kódu smíte používat s uvedením autora a URL tohoto webu bez dalších omezení Creative Commons. Můžeme si tykat. Skripty předpokládají nastavení: magic_quotes_gpc=Off, magic_quotes_runtime=Off, error_reporting=E_ALL & ~E_NOTICE a očekávají předchozí zavolání mysql_set_charset. Skripty by měly být funkční v PHP >= 4.3 a PHP >= 5.0.