Nejrychlejší počítače světa
Díval jsem se dnes na statistiku top-500 nejrychlejších počítačů světa. Na prvním místě je počítač s 5.120 CPU, od NECu. Dělá na "earth-simulation". Docela náročný úkol :)
Zajímavá na top-500 je pozice Intelu, konkrétně jeho špičkových procesorů Itanium2, běžících na 1.4GHz, a potom Opteron2. Druhý nejrychlejší stroj je složen právě z těchto inteláckých CPU, konkrétně jich tam je (pouze) 4.096. Intel CPU najdeme i na místě 5, 9, 10, 12, 15, 16, 17, a mnoha dalších. Intel je úžasná společnost.
Pár strojů běží i na PowerPC 440, od IBM, nicméně, vzhledem k jejich nízké frekvenci (stovky MHz) jich je potřeba mnohem více. Na specializované úkoly a specializované clusterové operační systémy to nicméně až tak nevadí. Na desktopu již ano, tam PowerPC hrubě nestíhá...
Co je nového v PHP 5 (díl 3/5)
Se slušnou podporou objektů v PHP 5 souvisí i podpora pro lepší typovou kontrolu tříd. Konečně! Nicméně, není to podpora ve fázi kompilace, ale pochopitelně ve fázi runtime, tedy běhu programu. Tento příklad nám ilustruje "class hints":
interface _prvni { function a(_prvni $_prvni); }
interface _druhy { function b(_druhy $_druhy); }
class _treti implements _prvni, _druhy {
function a(_prvni $_prvni) { // ... }
function b(_druhy $_druhy) { // ... }
}
$a = new _treti;
$b = new _treti;
$a->a($b);
$a->b($b);
Microsoft a prohraná API válka

Joel píše moc zajímavý (a rozsáhlý) článek nazvaný "Jak Microsoft prohrál API válku". Přečtěte si to! Pokud tedy umíte dobře anglicky. Joel zde píše o tom, že Microsoft od verze Windows 95 až po Windows XP udělal obrovské množství práce na tom, že zajistil, aby aplikace, které fungovaly ve Windows 98, byly plně funkční i ve Windows XP. Zní to zcela normálně? Přirozeně? No, ne až tak docela.
Některé aplikace fungovaly ve Windows 98 jen proto, že v nich byla chyba, v těch aplikacích, ne Windows. Ve Windows XP byla funkčnost změněna, a daná aplikace (SimCity, v tomto případě), nefunguje. Nicméně, OUW (obyčejný uživatel Windows) připisuje veškeré problémy Windows. OUW měl Windows 98. SimCity fungovalo. Má Windows XP. SimCity nefunguje. Zkuste OUW vysvětlit, že problém není ve Windows XP!
Raymond Chen je člověk, který stojí za týmem "zajištění kompatibility Windows". Jeho team jde tak daleko, že zkouší veškeré jen mírně populárnější aplikace pro Windows, a pokud nefungují, debaguje je, a pro danou aplikaci navrhuje speciální režim kompatibility, který emuluje starší chování Windows, specifické pro každou chybnou aplikaci, aby tato chybně napsaná aplikace fungovala očekávatelně i v nových systémech. Obrovská spousta práce! Nepředstavitelně obrovská.
A kde je tedy ten problém, že Microsoft prohrál válku?
Co je nového v PHP 5 (díl 2/5)
Ve druhém díle se podíváme na další rozšíření objektové koncepce PHP 5. Jedním z dalších podstatných rozšíření jsou abstraktní metody třídy (abstract), s tím, že třída, která obsahuje abstraktní metody (není definována jejich implemetace), musí být také typu abstract.
Je pochopitelné, že není možné vytvořit instanci abstract třídy, je nutné vytvořit návaznou třídu, která danou metodu již implemetuje, a zde vytvoříme instanci. Příklad?
abstract class AbstractClass {
abstract public function test();
}
class ImplementedClass extends AbstractClass {
public function test() {
echo "ImplementedClass::test() called\n";
}
}
$o = new ImplementedClass;
$o->test();
Radek Hulán :: dvakrát v top-20!

Někteří mají radost, pokud jsou v top-100. Někteří mají radost z top-50. No, a já mám radost, že jsem 2x v top-20 :)
Co je nového v PHP 5 (díl 1/5)
PHP 5 přináší spoustu výborných změn. Jedná se hlavně o změnu jeho objektové koncepce. Většině "taky-programátorů" to bude jedno, nevyužívají ani potenciálu PHP 4, nicméně, lidem jako já, co znají výborně C++, sedne PHP 5 mnohem lépe. Jeho implementace objektů se totiž zjevně nechala inspirovat C++ a Javou.
Třída bude mít konsktruktory (což má nakonec částečně již teď) a desktruktory:
class _metodaA {
var $x;
function __construct($x) {
$this->x = $x;
}
function display() {
print($this->x);
}
function __destruct() {
print("bye bye");
}
}
$o1 = new _metodaA(4);
$o1->display();
Třída bude mít protected (je k nim umožněn přístup i přímým potomkům) a private (přístup k nim mají jen třídy samotné, v nichž jsou definovány) proměnné a rovněž metody. Dosavadní kód (PHP 4) je považován, jako by všechny metody byly typu public.
class Foo {
private function aPrivateMethod() {
echo "Foo::aPrivateMethod() called\n";
}
protected function aProtectedMethod() {
echo "Foo::aProtectedMethod() called\n";
$this->aPrivateMethod();
}
}
class Bar extends Foo {
public function aPublicMethod() {
echo "Bar::aPublicMethod() called\n";
$this->aProtectedMethod();
}
}
$o = new Bar;
$o->aPublicMethod();
Spam s AdSense
Před pár dny jsem psal o výběru loga pro systém BLOG:CMS. Za včerejšek mi přišlo poněkud více spamů než obvykle, ale kromě umírajících nigérijců, tam bylo i hodně nabídek na zaručeně kvalitní logo v té nejlepší kvalitě za výborné ceny.
Jinak řečeno, spammeři sledují co děláte, skenují Vaše stránky, a podle toho, co píšete, Vám zasílají obtěžující nabídky. Ještě, že češtinu neumí (zatím) moc analyzovat. Tedy, nevyplatí se jim to.
Mimochodem, moje Opera 7.51 s M2 email klientem a učícím se algoritmem pro rozpoznávání spamu má účinnost kolem 99.9% :) Pokud bych Vám náhodou neodpovídal dlouho na nějaký email, bohužel, jste to 0.1%. Omlouvám se ;)
Jak na CVS na sourceforge.net?
CVS (The Concurrent Versioning System) je jedinečný nástroj pro správu verzí pro Vaše projekty. A pokud je Váš projekt Open Source, v licenci (například) GNU GPL, máte jedinečnou možnost jej hostovat na sourceforge.net, včetně podpory pro CVS, webhosting, file releases, mirroring na řadě serverů po celém světě, a řadu dalších věcí.
Do CVS repository se můžete napojit i Vy, anonymně, pochopitelně pouze pro čtení.
Jak tedy na nejaktuálnější kódy BLOG:CMS?
Nejdříve si stáhněte aplikaci WinCVS ze sourceforge.net. Hodit se Vám bude i Python, jako shell pro CVS. Pokud by jste chtěli do CVS i zapisovat, budete potřebovat pochopitelně i PuTTY (Telnet / SSH klient), ve spolupráci s Pagent pro pohodlnější (automatickou) autorizaci.
Ve WinCVS následně nastavte v sekci Remote / Checkout Module:
CVSROOT data:
Authetication: pserver
path: /cvsroot/blogcms
host address: cvs.sourceforge.net
username: anonymous
CVSROOT: anonymous@cvs.sourceforge.net:/cvsroot/blogcms
Checkout settings:
Module name: blogcms4
Local folder: (třeba) C:\www\blogcms4
Poté, co si poprvé stáhnete kopii BLOG:CMS, můžete Checkout pochopitelně používat již jen pro download změněných souborů.
Validní vložení Flashe do XHTML 1.0 STRICT
<object type="application/x-shockwave-flash" data="animace.swf" width="600" height="200" > <param name="movie" value="animace.swf" /> <param name="quality" value="high" /> <param name="swliveconnect" value="true" /> </object>
Není ani problém zobrazit pro lidi co nemají Flash třeba zástupnou grafiku (nutno dát před uzavítající </object> tag):
<img src='flash.jpg' alt='nemas flash' />
BLOG:CMS registrován na sourceforge.net
Včera večer jsem podal žádost o registraci a hostování projektu BLOG:CMS na sourceforge.net, a dnes byla schválena. Znamená to skvělou dostupnost, integrované CVS, možnost práce více vývojářů, i lepší propagaci projektu. Pokud se někdo chce přidat jako vývojář BLOG:CMS, budu moc rád. Projekt bude od zítřka členěn do třech sekcí, BLOG:CMS CORE, BLOG:CMS PLUGINS, a BLOG:CMS SKINS.