Archiv pro měsíc: Únor 2010

Vykreslování formulářů pomocí Nette

Pro lepší představu, jak je možné upravovat formuláře generované frameworkem Nette jsem si při programování jednoho konkrétního dumpoval obsah formuláře. Níže přikládám výsledek dumpu.

object(ConventionalRenderer) (4) {

„wrappers“ => array(8) {

„form“ => array(2) {

„container“ => NULL

„errors“ => bool(TRUE)

}

„error“ => array(2) {

„container“ => string(14) „ul“

„item“ => string(2) „li“

}

„group“ => array(3) {

„container“ => string(8) „fieldset“

„label“ => string(6) „legend“

„description“ => string(1) „p“

}

„controls“ => array(1) {

„container“ => string(5) „table“

}

„pair“ => array(4) {

„container“ => string(2) „tr“

„.required“ => string(8) „required“

„.optional“ => NULL

„.odd“ => NULL

}

„control“ => array(12) {

„container“ => string(2) „td“

„.odd“ => NULL

„errors“ => bool(FALSE)

„description“ => string(5) „small“

„requiredsuffix“ => string(0) „“

„.required“ => string(8) „required“

„.text“ => string(4) „text“

„.password“ => string(4) „text“

„.file“ => string(4) „text“

„.submit“ => string(6) „button“

„.image“ => string(11) „imagebutton“

„.button“ => string(6) „button“

}

„label“ => array(3) {

„container“ => string(2) „th“

„suffix“ => NULL

„requiredsuffix“ => string(0) „“

}

„hidden“ => array(1) {

„container“ => string(3) „div“

}

}

„form“ protected => NULL

„clientScript“ protected => bool(TRUE)

„counter“ protected => NULL

}
A například takové může být použití:

$renderer = $form->getRenderer();
$renderer->wrappers['controls']['container'] = NULL;
$renderer->wrappers['pair']['container'] = 'p';
$renderer->wrappers['control']['container'] = NULL;
$renderer->wrappers['label']['container'] = NULL;
$renderer->wrappers['control']['.text'] = 'text-long';

Výběr 802.11n bezdrátového routeru

Poslední dobou jsem se díval po bezdrátových routerech normy 802.11n. Přece jen géčková síť je pro propojení mezi počítači velice pomalá. Jediné smysluplné použití pro tuto technologii je sdílení internetu :). Kopírování třeba filmu je nemyslitelné, toto si velice brzy rozmyslíte a sáhnete po rychlé flashce. To byla sice trochu nadsázka, ale nebyla daleko od pravdy.

Kabelová síť také moc nepřipadala v úvahu, rychlost 100Mbps je docela dobře použitelná. Protože ale nechci propojovat počítače kabelem moje volba padla právě na WiFi 802.11n router. Nabídka routerů podporujících tuto technologii je již poměrně široká.  Cenové rozpětí je také poměrně široké, nejlevnější routery se dají pořídit za 600 Kč. Mezi routery existují samozřejmě rozdíly.

Tento WiFi standard podporuje maximální rychlosti 600Mbps. Nyní podporované routery umí rychlosti 150 až 300 Mbps, podle počtu antén. Zjednodušeně řečeno, routery s jednou anténou mají maximální rychlost 150 Mbps, routery se dvěma anténami mají rychlosti 300 Mbps, ale při obousměrné komunikaci se rychlost snižuje na polovinu. A konečně routery se třemi anténami nabízí rychlost 300 Mbps. Vyšší rychlosti jsem zatím u žádného prodávaného routeru neviděl.

Dalším parametrem je přítomnost 1Gbps LAN portů místo 100Mbps. Přínos je zde opět v rychlosti. V mém případě to nehrálo až takovou roli, protože všechny počítače se připojují k routeru bezdrátově, ale proč kupovat pomalejší variantu, když rozdíl v ceně je zanedbatelný.

Co se dalších parametrů týče, určitě by router měl umět následující: zabezpečení bezdrátové sítě pomocí WPA2-PSK, DHCP, filtrovaní MAC adres, přidělování IP adresy pro určitou MAC adresu, DDNS, přesměrování portů a virtuální server. Toto vidím jako nezbytný základ, myslím, že toto vše umí snad všechny routery na trhu.

Někdy může být důležitá přítomnost USB portů. Různé recenze a moje zkušenosti s routerem Asus WL-500g Premium mně nepřesvědčily v tom, že by se tato funkce dala prakticky využívat.

Rovnou jsem přeskočil jedno a dvou anténové routery z důvodu nižší rychlosti. Jejich test nedávno vyšel v časopisu Chip.

Mými adepty se staly tyto routery:

TENDA W300A (1 721 Kč)

  • + cena
  • + 1Gbps WAN port
  • – neznámá značka
  • – chybí LAN porty
  • – chybí USB port

Edimax nMAX BR-6574N  (1 667 Kč)

  • + 1Gbps LAN/WAN porty
  • + SPI firewall
  • + QoS
  • + papírově nejvyšší výkon
  • – chybí USB port

ASUS RT-N13U (2 036 Kč)

  • – 100Mbps LAN/WAN porty
  • + SPI firewall, paketový filtr
  • – 2x interní 3dBi anténa
  • + 1x USB 2.0

ASUS WL-500w Premium (2 723 Kč)

  • – 100Mbps LAN/WAN porty
  • + SPI firewall, paketový filtr
  • + 2x USB 2.0

Rozdíly mezi jednotlivými routery jsou minimální. Pokud by rychlost přenosu dat na disky připojené k USB portům obou Asusů byly rychlejší, nejspíš by mně přesvědčily i přes svoji vyšší cenu. Ale protože mým cílem bylo najít router, který bude za rozumnou cenu nabízet co největší pokrytí i vysokou rychlost, moje volba padla na Edimax.

Odkazy na některé zajímavé recenze a srovnání, které mi posloužily při rozhodování.

Recenze Asus WL-500W Premium

Recenze Asus RT-N13U

Recenze Edimax nMAX BR-6574N

Nakonec jsem si vybral router Edimax. Instalace routeru byla bezproblémová, webové administrační rozhraní není zrovna ideální, ale dá se v něm nastavit vše potřebné. Drobný problém byl při připojování počítače s Edimax 802.11n síťovou kartou, bylo nutné nainstalovat novější ovladače, jinak spojení každých pár sekund spadlo. Jakmile budu mít otestováno, napíšu něco o reálných rychlostech tohoto routeru.

On-line nástroje

Color Scheme Designer 3 – generátor barevných schémat (nástupce svého předchůdce, který je nástupcem svého předchůdce)

Instant Color Schemes – něco podobného jako výše, ale nevypadá to tak schopně

Free Password Generator – generátor náhodných hesel

MD5 generátor

favicon.ico Generator – jednoduchý editor pro vytvoření favicony webu

Htaccess Tool – nástroje pro vytvoření htaccess a htpasswd souborů

Total Commander – chybné české znaky u FTP připojení

U starší verze Total Commanderu jsem se setkal s problém, kdy soubory s českými znaky (v UTF-8) byly chybně zobrazeny (rozsypaný čaj a podobné paznaky). Řešením je přidat následující příkaz po připojení u FTP připojení:

OPTS UTF8 OFF

U novějších verzí Total Commanderu (určitě 7.50+) jsem se s tímto problém nesetkal. Naopak soubory s českými znaky uložené pomocí TC s výše uvedeným nastavením byly chybně zobrazeny. Řešením je opět přidat daný příkaz a soubory je možné stáhnout.

Zajímavé je, že pokud se spustí přenos těchto souborů na pozadí, neprovede se příkaz po připojení – usuzuji z toho, že soubory nebylo možné stáhnout. Je nutné soubory nestahovat na pozadí.

Formátování data

Při výběru z databáze pomocí SQL

Formátování sloupce obsahujícího datumu při výběru z databáze:

DATE_FORMAT(Datum,’%d.%c.%Y %H:%i:%S‘) AS Datum

Podrobnější možností formátování jsou na http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_date-format

Pomocí PHP

// 12.5.2009
date(‚j.n.Y‘);
// 12.5.2009 15:17
date(“);
// 12.5.2009 15:17:20
date(“);
// 12-5-2009
date(‚j-n-Y‘);
// 12-5-2009 15:17
date(‚j-n-Y G:i‘);
// 12-5-2009 15:17:20
date(‚j-n-Y G:i:s‘);