Obtěžuje Vás spam? Mám tu řešení!

Hodně lidí na internetu kóduje svoje emailové adresy do hexa sekvencí, nebo místo
. píší (dot), namísto @ píší (at)
nebo dokonce %40. Proč proboha? To si opravdu myslíte, že spamboti jsou
tak triviálně naprogramovaní, že nedokáží převést %40 na @?
Nebo (dot) na tečku? Samozřejmě, že dokáží. Navíc, z mé zkušenosti, tyto
skrývané a kódované emailové adresy spamboti zjevně pokládají za důležitější, a
posílají na ně spamu mnohem více.
Emailové adresa, která je v nekódované podobě viditelná na webu firmy, o
té se dá předpokládat, že je proti spamu ošetřena. A že ji čte jeden, k tomu
určený člověk. Tato adresa není zajímavá. Spamboti ji ignorují. Jak ale narazí
na adresu muj(dot)email_NOSPAM_(at)doma(dot)cz, tak ji ihned převedou
na správný tvar, a zařadí do své databáze, dá se totiž předpokládat, že ji
daný člověk čte pozorně.
Kdysi jsem používal takto kódovaná adresy v news (NNTP) konferencích, a přestože můj email byl kódován, tak na něj chodilo mraky spamu, zatímco na nekódovaný a každému volně přístupný email na hulan.info doméně spam prakticky není. Maximálně jeden, dva kousky denně.
Obávám se, že doba primitivního kódování proti spamu je dávno pryč, oficiálně zveřejněný email spamboty netáhne, navíc, pokud nějaký spam přesto dostanete, a zásadně na něj neklikáte, ani se nenecháte nalákat na unsubscribe možnost (čímž jen potvrdíte spambotům, že jste jejich email skutečně četli, a oni jej draze prodají jinam, již jako existující, zaručeně čtený, a potvrzený email), tak nebudete vědět, co je to spam.
XHTML, JavaScript a document.write()

K JavaScriptu je potřeba v XHTML dokumentu přistupovat o hodně odlišně, než v HTML (tedy jakýkoliv dokument, s MIME typem text/html, bez ohledu na jeho DOCTYPE). Protože XHTML již není ona směs znaků, ale well-formed kód, není možné jej v reálném běhu jen tak doplňovat o další, potencionálně neuzavřené, tagy. Jediný možný přístup je přes DOM. V tomto článku bych chtěl ukázat, jak si vytvořit, za pomocí DOM, jednoduchý toolbar pro snadnější vkládání komentářů, tak aby fungoval v XHTML.
Nejdříve příklad definice CSS:
#toolbar {
display:block;
margin:5px 0 5px 0; }
#toolbar a:link,#toolbar a:visited{
display: block;
float: left;
width: 50px;
height: 15px;
background: blue;
color: white;
border: 1px outset;
margin: 3px;
text-align: center;
font-size: small; }
#toolbar a:hover{
background: red;
color: yellow;
border-style:inset }
Cílem našeho DOM skriptu bude vytvořit následující menu které budeme vytvářet pomocí DOM, nikoliv přímým zápisem v XHTML, ale ani pomocí document.write, důvodem je, aby se toto menu nezobrazovalo pro browsery, které JavaScript nepodporují, či jej má uživatel zakázán, a aby bylo použitelné v XHTML:
<div id='toolbar'>
<a href='javascript:ct("[strong] [/strong]");' >bold</a>
<a href='javascript:ct("[em] [/em]");' >italics</a>
... a další značky ...
</div>
<form method='post'><fieldset>
<textarea id='idbody' name='body'></textarea>
<input type='submit' value='Odeslat komentář' />
</fieldset></form>
Dobrý kód je poezie

I když moje oficiální práce není programátor, programování mě baví. I proto pracuji stovky a stovky hodin na BLOG:CMS. Psát dobrý kód, je něco jako psát kvalitní poezii. Správná báseň má být well-formed. Stejně tak jako XML kód. Většina redakčních systémů generuje kód, který poezii nepřipomíná ani vzdáleně. Mrzí mě to. A taky jsem s tím něco udělal. Podívejte se třeba do kódu tohoto článku. Je to generovaný kód. Včetně komentářů. Ne, není to ještě dokonalý kód, je to teprve mladá báseň, je nutné ji ještě pilovat, ale již je to docela podobné (modernímu) umění :-)
V kódu, který vypadá jako báseň, se dá mnohem lépe vyznat. Špičkový programátor musí být zároveň i umělec. Nevytváří jen věci funkční, ale i hezké. Krásno je možno spatřovat v tolika věcech, ne? :-)
A zde je hlavní rozdíl mezi text/html, a application/xhtml+xml.
HTML postrádá jakýkoliv, byť jen náznak, poezie. HTML je "tag soup", písmenková polévka, bez smyslu a výrazu. XML je mnohem více. Nejedná se o neuspořádanou, náhodně zamíchanou směs písmenek, směs bez pravidel, jedná se o strukturu, která je v podstatě samo-popisná. XML je poezie, HTML nikoliv. Někteří lidé nechápou, jaký je mezi XML a HTML rozdíl. Někteří lidé prostě nerozumí poezii.
SonyEricsson K700i - nový telefon
Mám moc rád SonyEricsson telefony. Měl jsem T39i, T68i, T610, T630. Na rozdíl od primitivních a kazových Nokií pro teenagery (až na vyjímky jako Nokia 7610), či předražených Samsungů bez základních funkcí, je SonyEricsson zaměřen na profesionální uživatele. Každý SonyEricsson telefon má mimo jiné i Bluetooth, až vyzkoušíte BT spojení s počítačem a BT handsfree (HBH-65), nebudete chtít jinak. Bluetooth několikanásobně zvyšuje hodnotu mobilu.
K700i je špičkové zlepšení již tak velice dobré a populární T610/630, je tu nádherný aktivní displej, 40MB paměti, samozřejmě Bluetooth, ne bez zajímavosti je FM rádio, a mraky dalších věcí. Jedná se bezesporu o nejlepší telefon současnosti. Na rozdíl on Nokie, se SonyEricsson nesoustředí tolik na marketing, jako na kvalitu telefonů. Vřele doporučuji!
SEO (optimalizace pro vyhledávače) v praxi
F-ART AGENCY před 2 týdny dokončil nový web www.avicenna.cz. Samozřejmou součástí nového webu je, kromě špičkového redakčního systému, i optimalizace pro vyhledávače. Jedná se přitom o optimalizaci na stovky slov a spojení, s cílem podpořit nárůst prodeje a ziskovost firmy. Jak se tato optimalizace povedla? Během 2 týdnů je www.avicenna.cz na řadu sledovaných výrazů v první desítce z několika tisíc, a to jak na seznam.cz (nejpodstatnějším pro český trh), tak na google.com. Stejné nebo lepší pozice jsou realizovány i na atlas.cz, centrum.cz a quick.cz.
Jak tedy vypadají konkrétní klíčová slova?
| Vyhledávač | Slovo | Pozice | Celkem nalezeno |
|---|---|---|---|
| seznam.cz | slinivka | 3 | 5.863 |
| seznam.cz | menstruace | 6 | 25.988 |
| seznam.cz | vláknina | 2 | 10.317 |
| seznam.cz | cukrovka | 24 | 68 |
| seznam.cz | celulitida | 6 | 23.496 |
| seznam.cz | dýchací cesty | 2 | 24.364 |
| seznam.cz | močový měchýř | 6 | 9.730 |
| seznam.cz | revmatoidní artritis | 2 | 42 |
| seznam.cz | nadýmání | 3 | 9.253 |
| seznam.cz | withania | 2 | 182 |
| jyxo.cz | hemeroidy | 2 | 9.914 |
| google.com | krevní tlak | 6 | 20.200 |
| google.com | elastitica žil | 1 | 10 |
| google.com | svaly | 3 | 38.800 |
| google.com | poruchy trávení | 1 | 8.440 |
| google.com | peristaltika | 1 | 734 |
| google.com | menopauza | 3 | 14.400 |
| zoohoo.cz | relaxace | 10 | 6.000 |
O tom, jaké technologie jsou na webu použity, jsem psal již dříve v článku "Jak kvalitní je Vaše SEO?", zajišťuje je přitom zcela automaticky redakční systém F-ART COMPANY.
PuTTY - nutný bezpečnostní upgrade
Pokud používáte PuTTY (telnet/ssh klient), je nutné provést upgrade na verzi 0.55, protože verze 0.54 obsahuje zásadní bezpečnostní problém.
PuTTY 0.55, released today, fixes a serious security hole which may allow a server to execute code of its choice on a PuTTY client connecting to it. In SSH2, the attack can be performed before host key verification, meaning that even if you trust the server you think you are connecting to, a different machine could be impersonating it and could launch the attack before you could tell the difference. We recommend everybody upgrade to 0.55 as soon as possible.
DOCTYPE neříká nic, podstatný je MIME type
Spousta lidí kolem webdesignu se zjevně pyšní tím, že jejich web je občas XHTML 1.0 STRICT validní. Někam si dají ikonku XHTML 1.0 valid a jsou tak moc moderní... Fakt je ale ten, že prakticky žádný český web skutečně v XHTML nejede. Podstatný je totiž MIME type, který posílá server, nikoliv DOCTYPE v (X)HTML kódu. Pokud je hlavička typu text/html, jako tomu je u naprosté většiny českých blogů, a nikoliv application/xhtml+xml, tak si na XHTML jen hrají, ale každý prohlížeč jejich blog zpracovává jako obyčejné 15 roků staré HTML.
Pojďme se podívat na pár nejnavštěvovanějších blogů dle toplist.cz/weblogy.
| Web | DOCTYPE | MIME type | Komentář |
|---|---|---|---|
| 5. Pixylophone | XHTML 1.0 Strict | text/html | web je zpracováván jako 15 roků staré HTML, nicméně přesto má ikonky na XHTML validaci, zcela nesmyslnou, nejedná se application/xhtml+xml, která je pro XHTML požadavkem |
| 8. WELL.DONE Radka Hulána | XHTML 1.0 Strict | applicationxhtml+xml |
web je jako jediný zpracováván jako moderní XHTML, není problém z něj XSL transformací generovat třeba WML, či verzi pro PDA, při jediné chybě je zpracování zastaveno (není tedy nutné ani ukazovat validační ikonky), klade to ovšem mimořádný důraz na kvalitu redakčního systému |
| 13. Blog počítačového nadšence | XHTML 1.0 Transitional | text/html | přestože tento web používá velice benevolentní normu Transitional a je zpracováván jako 15 roků staré HTML, není ani podle ní validní... nicméně, alespoň se nepyšní (ani nemůže) odkazy na w3c.org validátor |
| 16. About newslog a weblog | XHTML 1.0 Strict | text/html | web je zpracováván jako 15 roků staré HTML, mírné plus ovšem je, že Petr se nepyšní nesmyslnými ikonkami XHTML valid, chápe, že používá obyčejné HTML |
| 23. Internetový Oříšek | XHTML 1.0 Strict | text/html | web je zpracováván jako 15 roků staré HTML, mírné plus ovšem je, že Tomáš se nepyšní nesmyslnými ikonkami XHTML valid, chápe, že používá obyčejné HTML |
| 36. Přístupnost | XHTML 1.0 Strict | text/html | web je zpracováván jako 15 roků staré HTML, mírné plus ovšem je, že David se nepyšní nesmyslnými ikonkami XHTML valid, chápe, že používá obyčejné HTML |
Samozřejmě, Microsoft Internet Explorer application/xhtml+xml nezpracuje, je nutné mu servírovat jen text/html. Jak toto zařídit jsem popisoval v jednom z předchozích článků. Na svém WELL.DONE chystám, pomocí XSLT, rovněž WML verzi a PDA verzi. Je to samozřejmě rovněž možné toto dělat jako skin redakčního systému, a bylo by to i rychlejší, nicméně, pomocí XSLT je to zábavnější :-)
VoIP, telefonování zdarma a CDMA (EV-DV)
Pokud mi chcete zdarma zavolat, stáhněte si Skype! Skype je program, který používá cca 18 miliónů uživatelů (Patricku, díky za tip!), a umožňuje v reálném čase nejenom hlasovou komunikaci, ale i konference a instant messaging (cosi jako ICQ). Celá aplikace vypadá velice podobně jako Yahoo! Messanger, či MSN Messanger, a jak jsem se již zmínil, kromě hlasové komunikace podporuje i zasílání zpráv. Pokud se registrujete a uvedete své číslo kreditní karty, můžete volat i na normální telefonní linky, nicméně, na to mám přece jenom raději klasický mobil a Bluetooth headset. Mimochodem, ten Bluetooth headset mi funguje i pro Skype, Bluetooth mikrofon a sluchátko (Sony Ericsson Bluetooth HBH-65, handsfree) tak najednou získává daleko větší použitelnost! Doporučuji!
Pokud mi tedy chcete zavolat, můžete mě kontaktovat nově i přes Skype, a to na id radekhulan. S CDMA, které doma používám vše běží naprosto plynule a bez nějakých znatelných zpoždění, dokážu si představit, že pro komunikaci s klientem, support-line a další je to mnohem efektivnější forma komunikace, než psát stovky a stovky slov na ICQ / Mirandě.
Eurotel CDMA - praktické zkušenosti a srovnání s GPRS

Ke svému nonstop tarifu GPRS od Eurotelu a nonstop tarifu GPRS od T-Mobile jsem si pořídil, dlouho očekávané, a Žlutým Molochem zdržované, CDMA od Eurotelu. CDMA nabízí teoreticky rychlost až 2.400kbs, v případě Eurotelu je to zatím omezeno pro 800Kbs pro download, a 153kbs pro upload (via mobilmania.cz), což je v praxi cca 10x lépe než GPRS, a přitom za cenu jen o 20% vyšší!
Volba je tedy jasná, ADSL s F.U.P. Molocha (fuck-users policy), a agregací 1:50 až 1:200 a omezeným přenosem dat získalo konkurenci za pouhých 899 Kč (+DPH) měsíčně, kde přenos dat není omezen, rychlost je oproti GPRS neuvěřitelná, a dostupnost pro většinu obyvatelstva perfektní.
Modem GPC-6420, co Vám Eurotel nabídne, je velký zhruba jako SonyEricsson T630 a připojuje se k počítači přes USB 1.1 nebo 2.0 (doporučeno) rozhraní. Je k němu přiložena i slušná externí anténa, USB kabel, USB prodlužovací kabel, baterka a AC/DC nabíječka.
První problém na mě čekal při instalaci modemu. Instaloval jsem software z přiloženého CD, na Windows XP, spustil jej a ... žádný signál. Bylo nutné cca 2 hodiny počkat pro zprovoznění, Eurotel totiž CDMA registrace zatím posílá postaru, jako v roce 1996, tedy faxem na centrálu, softwarové pokrytí této úřednické operace zatím připravují. Alespoň tak mi to sdělila velice sympatická blonďatá Renata na místní prodejně Eurotelu :)
Užitečné funkce pro PHP - díl 2.
V tomto díle seriálu publikuji skript na základní a automatizovanou kontrolu formulářů na straně serveru, a jejich před-vyplňování, v případě, že formulář nebyl vyplněn korektně, a je nutné je opravit.
function check($field,$type,$chars=''){
$field=htmlspecialchars(trim($_POST[$field]));
$error='';
switch ($type){
case 'email':
if (preg_match(
'/^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+.[A-Za-z]{2,5}$/',
$field)) return;
$error='Emailová adresa není platná.';
break;
case 'string':
if (!isset($chars)) $chars=2;
if (strlen($field)>=$chars) return;
$error="Tato položka musí mít minimálně $chars znaků.";
break;
case 'number':
if (!isset($chars)) $chars=0;
if ($chars==0 && !is_numeric($field))
$error="Položka nebyla zadána správně.";
if ($chars==0 && is_numeric($field) && intval($field)<0)
$error="Položka nebyla zadána správně.";
if ($chars>0)
if (!preg_match("/d{".strval($chars)."}/",$field))
$error="Toto číslo musí mít právě $chars znaků.";
break;
case 'ico':
if (!is_numeric($field))
$error='IČ nemá správný formát.';
break;
case 'equal':
if (!isset($field) || !isset($_POST[$chars]))
$error='Položka není shodná s předchozí';
if (strcmp($field,$_POST[$chars])!=0)
$error='Tato položka ('.
$field.
') není shodná s předchozí ('.
$_POST[$chars].')';
break;
default:
die('Chybná konfigurace systému');
break;
}
if (!empty($error)) {
echo "<p style='color:red'>Chyba: <em>$error</em></p>n";
$this->isok=false;
}
} /* end check */
Uvedenou funkci poté můžeme používat pro kontrolu stringových, numerických položek, emailů, IČ organizace (musí být modulo 11), případně rovnosti 2 vložených položek (například 2x vkládaného emailu či hesla).