Weblog

Textpattern: export do RSS

Tak som polku dňa riešil, prečo mi nefunguje RSS. Okrem špecifickej chybe kvôli špeciálne nastavenému prepisovaniu URL v Apache, som zistil, že vygenerovať pomocou TXP a PHP nejaký validný XML výstup je takmer nemožné.

Problém je v tom, že na generovanie XML sa používa skladanie stringov a potom rôzne machrovanie s utf8 konverznými funkciami… Však načo sú špecializované XML streamy… To by ešte bolo v pohode, pri dobre napísaných funkciách z toho vylezie kód so správnymi tagmi. Čo však spôsobuje problém sú entity. Vôbec pomenované entity v XML predstavujú obrovský problém, pokiaľ XML súbor nemá explicitne prilinkovaný DTD súbor s ich definíciou. Potom XML reader nevie, čo to je za entitu a všetko je v háji. A boh vie, čo ten druhý PHP systém používa na spracovanie XML…

Takže som problém vyriešil systémovo: otvoril starý článok a zmenil znaky, ktoré robili problémy… Však prečo by najrozšírenejšia serverová technológia mala mať normálnu podporu pre niečo, ako je XmlTextWriter a spol. :-(

Kódujeme parametre do URL (sofistikovane)

Niekedy je potrebné zakódovať parametre do URL, ktoré budú odoslané na server (napr. cez HttpWebReques­t.GetResponse()). V .NETe môžeme použiť klasickú metódu z ASP HttpServerUti­lity.UrlEncode() na zakódovanie jednotlivých parametrov. Existuje však oveľa lepší spôsob, ako kódovať parametre. Vďaka objektovému modelu sa nám naskytne veľmi elegantné riešenie.

Triedu UrlParameterWri­ter si rozšírime tak, aby sme mali prístup k jej chránenej (protected) metóde Encode(TextWriter, string, object). Táto do výstupného bufferu vloží zakódovaný názov parametru a jeho hodnotu, pričom sama podľa potreby pridáva oddeľovacie znaky ako = a &.

Naša trieda teda bude dediť

namespace izsaknet.Visu­alStudio.FogBug­z.Tools{    pu­blic class UrlParameterEn­coder : UrlParameterWri­ter    {        ­public UrlParameterEn­coder()            : base ()        { }        public void Encode(TextWriter writer, string name, string value)        {            ­base.Encode(wri­ter, name, value);        }    ­}} 

URL parametre je dobré si uchovávať v NameValueCo­llection, ktorá uchováva páry kľúč/hodnota (typu string). Na celé zloženie URL použijeme objekt UriBuilder.

UriBuilder uri = new UriBuilder(„http://­www.izsak.net/se­arch“);NameVa­lueCollection values = new NameValueCollec­tion(2);values­.Add(„search“, searchTerm);va­lues.Add(„sec­tion“, „all“);StringBu­ilder query = new StringBuilder();Tex­tWriter writer = new StringWriter(qu­ery);UrlParame­terEncoder encoder = new UrlParameterEn­coder();foreach (string key in values){    encoder.Encode(wri­ter, key, values[key]);}u­ri.Query = query.ToString(); 

Kód asi nepotrebuje veľa vysvetľovania, vytvoríme nový objekt so základnou URL adresou na nejaký dokument. Potom si naplníme pole hodnotami. Za zmienku stojí vytvorenie textového bufferu a writeru. Metóda Encode() bude zapisovať parametre do TextWriteru a ten do bufferu textu. Spojené parametre zo StringBuilder-u vložíme do UriBuilder cez jeho Query vlastnosť.

Niektoré veci v .NETe si vyžadujú viacej úsilia, ako len inštancovanie triedy a jej použitie. Treba trošku použiť hlavu a derivovať triedy :-). Toto celé sa dá pekne zaobaliť do triedy ktorá by reprezentovala webový formulár a uchovávala si hodnoty pre GET a POST v dvoch kolekciách a používali by takúto serializáciu parametrov. Pri POST ešte treba výsledný string skonvertovať na pole bajtov (byte[]) napr. pomocou Encoding.ASCI­I.GetBytes(strin­g).

J@J si nedokáže zaplatiť poriadny hosting

Dnes sa „dalo“ hlasovať za nových obyvateľov do vily Vyvolených 2… Totiž J@Jka si nedokáže zaplatiť poriadny hosting, ktorý by zvládol nápor hlasujúcich. počas hodiny sa mi ani raz poriadne nenačítali obrázky súťažiacich, ich čísla, alebo hlasovacie tlačidlá.

Človek by si myslel, že stránky poskytujúce prenos TV vysielania cez internet niečo zvládnu. 

Tiež STV má v posledných dňoch veľké problémy s databázou. Často sa zobrazila len krátka správa o preťaženej databáze.

Práve teraz sa však stalo niečo lepšie… Zobrazila sa časť PHP skriptu… Samozrejme, že autor stránok používa skladané SQL skripty, plne vhodné na SQL injection.

Nie, takto sa stránky nerobia…

Nevyžiadaná pošta od Network.sk

Jedného krásneho štvrtkového podvečera mi došiel SPAM od slovenskej firmy, ktorý propagoval služby hostingu Network.sk.

Nikdy som s touto spoločnosťou nebol v kontakte, nikomu som nedal zvolenie na posielanie reklamných e-mailov do mojej schránky. Z toho dôvodu e-mail, ktorý propagoval ich služby, považujem za nevyžiadanú poštu (SPAM), podľa platných zákonov SR.

Za upozornenie na ich porušenie zákona som sa dočkal ospravedlnenie (s patričnou arogantnosťou?):

> chcel by som Vás upozorniť, že tento reklamný e-mail porušuje zákon
> o reklame.


No nemyslim. Kazdopadne sa ospravedlnujem, ak vam sposobil traumu.

Samozrejme som žiadal o vymazanie z databázy (načo mám podľa zákona právo). Hovorme tomu, ako chceme, hrajkajme sa so slovíčkami, či sa jedná o databázu (DB) v MSSQL, MySQL, v Exceli alebo CSV súbore, či len (nelegálne) zozbierané e-maily a naťukané do poštového klienta. Bol mi nezákonne odoslaný reklamný e-mail, žiadal som o nápravu, na ktorú mám zo zákona nárok. Namiesto slušnej odpovede, že si žiadnu DB nevedú, som dostal takúto odpoveď:

V poriadku. Akurat nemame ziadnu databazu, toto bol jednorazovy mail
na verejne dostupne emailove adresy, ktorym sme chceli upozornit
freelance dizajnerov na nasu sluzbu, ziadna masovka. Dufam, ze mal
aspon nejaky obsahovy vyznam narozdiel od tych 100 dalsich denne co
dostavate na temu viagra, zvacsenie penisu etc.
Takýto prístup má od serióznej firmy ďaleko.

Z dôvodu objektívnosti dávam k dispozícii moju odpoveď na SPAM a nasledujúcu odpoveď z uvedenej firmy.

Zákony, ktoré nás chránia pred nevyžiadanou poštou (nie pred tou na lacné lieky, software alebo cigarety, ktorá je z Činý alebo USA):

Zákon o reklame č. 147/2001 Z.z. v znení neskorších predpisov

§3 ods.4 písm. a
„Reklama nesmie zneužívať dôveru spotrebiteľa, nedostatok jeho skúseností alebo vedomostí.“

§3 ods. 6 a 7
„(6) Reklama sa nesmie  šíriť automatickým telefonickým volacím systémom,  telefaxom a  elektronickou poštou  bez predchádzajúceho súhlasu ich užívateľa, ktorý je príjemcom reklamy.“

„(7) Reklama  sa  nesmie  šíriť  adresne,  ak adresát doručenie reklamy vopred odmieta.“

Zákon o elektronickom obchode č. 160/2005 Z.z. v znení neskorších predpisov

§ 4
„(6) Poskytovateľ služieb nesmie doručovať informácie komerčnej komunikácie elektronickou poštou, ak si ich príjemca služby vopred nevyžiadal.“

Súvisiace:

Najsamhoršia vysoká škola

Pred rokom som si zvolil podľa mňa jednu z najlepších technických vysokých škôl u nás – FEI STU. Hneď v prvom semestri je však vidieť, že toto bola tá najhoršia voľba.

V súčastnosti je FEI zase obalená tým pozlátkom, ktoré ročne na ňu zláka tisícky študentov. Za ním sa však skrýva len škola s nekvalitným systémom vyučovania, ktorá potrebuje nálakáť obrovské počty študentov kvôli normatívom.

Po tom, ako sa na začiatku roka vybavia potrebné formality pre štúdium, sa už o študenta nikto nestará. Samozrejme, nebudú nás vodiť za ručičku. Ale keď študent nemá dostupné žiadne učebné materiály, keď nemá prístup k akýmkoľvek informáciám o fakultách, skúškach, konzultačných hodinách učiteľov alebo výsledkov skúšok len preto, že učiteľ nie je zastihnutý ani v konzultačných hodinách.

Aby sme to nemali ľahké tento rok s matikou, mali sme 4+1 hodín na matike i logických systémoch. Najlepšie je na tom, že jedna, áno jedna!, hodina týždenne s doktorantkou nám vynahradila štyri hodiny s profesorkou! Podobne sa nedá porovnávať vysvetlovanie učiteľky Čípkovej so zmäteným vyučovaním docentky Galanovej.

Skriptá, ktoré sme dostali, sú samozrejme zastaralé. Na matike sa nedá vymyslieť nič nové, ale v súčasnej dobe je pre študenta absolútnym nezmyslom učiť sa tisícky poučiek.

Chyba skrípt je v tom, že sú z doby, kedy sa okrem učenia ešte dala pozerať len televízia. V súčastnosti musia študenti nielen zvládať učenie, ale aj prácu s modernými technológiami. Nový životný štýl potrebuje aj nový prístup k vyučovaniu, ktoré nemôže byť na technickej śkole založené na predvedení nabiflených vedomostí.

Namiesto toho, aby sme sa na ekonómii učili veci, ktoré v živote naozaj využije, napríklad ako je to s daňou, keď je študent zamestnaný ako brigádnik, tak sa učíme, ako vypočítať HDP alebo mieru nezamestnanosti. Vedieť, či si podať daňové priznanie je o dosť dôležitejšie, ako vedieť vyrátať nezamestnanosť - na takéto štatistiky tu máme Štatistický úrad.

Je mi naozaj ľúto, že na technickej škole učia učitelia, ktorý nedávajú študentom vzdelanie. Je to len čisté biflenie sa kvanta informácií. Pritom aktuálny životný štýl vyžaduje naučiť študenta ako nájsť informáciu, ktorú potrebuje. Matikárke určite vyhovuje prísť na hodinu, povedať si svoje poučky, zapísať celú tabuľu vetami a definíciami. Je to pre ňu pohodlné.

Zaujíma niekoho, že napr. limity by vôbec nameli byť vyučované na definovanie spojitosti funkcie? Nie! Je to tak matematicky správne. Ale každý vie, čo je spojitá funkcia, ale takmer nikto nemá správnu predstavu o limitách.

FEI by vo vlastnom záujme mala robiť prieskum o kvalite výučby nie raz za školský rok, ako je to zakotvené v zákone o vysokých školách, ale raz za semester. Malo by sa zmeniť to, že študenti sú tu pre FEI (kvôli normatívom). Je to naopak: FEI je tu pre študentov.

Windows RSS Platform

Spolu s prehliadačom Internet Explorer 7 budú mať aj užívatelia OS Windows XP a 2003 dostupnú Windows RSS Platform. Toto API poskytne jednoduchý prístup k RSS zdrojom. Všetky aplikácie budú zdieľať užívateľov zoznam RSS zdrojov, čiže odpadne synchronizácia cez OPML bez viacerými RSS čítačkami.

API poskytne 3 komponenty: zoznam RSS zdrojov, synchronizáciu a úložisko pre zdroje. Bude podporovať rôzne RSS a Atom formáty, pričom vývojári sa nebudú musieť starať o implementáciu spracovania formátov – Windows RSS Platform poskytne cez Common Feed List rovnaké rozhranie pre prácu s rôznymi formátmi.

Užívatelia Windows Vista budú môcť štandardne pristupovať k RSS zdrojom cez IE7 alebo Sidebar. WRP zaistí, že aplikácie budú synchronizované.

Via: Windows RSS Platform

Štyri veci – Four Things

Po 24 hodinách od začatia Four Things mi bola predaná štafeta Petrom Šlosárom.

Štyri zamestnania:

  • študent,
  • programátor,
  • sieťový administrátor,
  • kreslič (v AutoCAD-e).

Štyri filmy, ktoré môžem stále:

  • Lord of the Rings,
  • Futurama (síce je to seriál, ale čo už),
  • Saw,
  • Ice Age.

Štyri miesta, kde som žil:

  • Bratislava,
  • Brezno,
  • Košice,
  • Nemecko.

Štyri televízne relácie:

  • Top Gear (BBC World),
  • Simpsons,
  • 7dem s.r.o. (Markíza),
  • BBC News.

Štyri dovolenkové destinácie, kde som bol:

  • Černomorec, Bulharsko,
  • Prímorsko, Bulharsko,
  • Nízke Tatry,
  • Vysoké Tatry.

Štyri obľúbené jedlá:

Štyri navštevované weby:

Štyri miesta, kde by som bol radšej, ako som teraz:

  • dovolenka pri mori,
  • Senec,
  • lyžovačka,
  • na biku na hrázdi.

Štyri blogy, ktorým predávam štafetu:

Tuposť niektorých ľudí

Čo si budeme nahovárať, P2P siete slúžia na distribúciu nelegálneho softwaru (k tomu patria aj filmy alebo hudba). Je možné napr. cez Torrent distribuovať Linux legálne, ale toto tvorí len mizivú časť prevádzky na P2P sietiach.

Niektorí ľudia sú dokanca tak vážne socky, že mesačne stiahnu 50GB filmov cez P2P siete, absolútne nelegálne a dovolia si povedať „nejde mi internet tak rýchlo, ako to je v zmluve a provider ma okráda“.

Na diskusii Jak Psát Web sa objavil thread rychlost internetu. Na nej sa pýtajúci vôbec netají tým, že mesačne stiahne 50GB filmov.

stahujem aj 50 GB do mesiaca(DC++)

mam: DC++ (taham hlavne filmy(som velky fanusik najnovsich filmov))

Takýto príživník je však strašne citlivý na svoje vlastné peniaze, ktoré musí „vyhodiť“ za pripojenie na internet.

… ze sa ma len snazi SLOVANET okradnut (tiez keby som chcel pomalsi net ,tak to mam lacnejsie ,a nie ze platim za 60 a mozem surfovat len 15))

Že on mesačne okradne filmové spoločnosti o tisícky korún mu nevadí, ale vadí mu to, že internet ide pomalšie, i keď to tak podľa zmluvy môže byť. Takýto človek totiž nemá na rýchle pripojenie a zaplatí si čo najlacnejšie pripojenie s vysokou agregáciou.