Archiv pro rubriku: Uncategorized

Zkušenost s nákupem na APPLE STORU

Měl jsem o jejich webu dobré mínění. Všechno vypadá tak čistě a pěkně a dokonce i funkčně. Přešel jsem do jejich e-shopu, kde se na první pohled taky všechno tváří čistě, jasně a přímočaře. Ale jak začnu vyplňovat jednotlivé položky, tak najednou není všechno tak krásné a funkční, jak by se mohlo zdát…

  • u PSČ při ověření možností dopravy zadané jako 70900 to hlásí neplatný formát. Nikde ani slovo, že to čeká formát 709 00 a tak chvilku jsem váhal, zda to třeba není jen pro nějaké americké PSČ. Ale jelikož to nebylo v rámci zlatého scénáře, tak jsem to odklikl a pokračoval dále
  • u telefonu je třeba vyplnit předvolbu, samozřejmě to nebere +420, ale je nutné vyplnit 00420
  • opět to PSČ… zde mi již došlo, že prostě musím zadat ve formátu 709 00
  • v rámci zadávání doručovací adresy mohu zatrhnout, že se jedná o pracovní adresu. Tak nějak tuším, proč to chtějí a říkám si, super nápad… …ale vysvětlivka mě vrátila zpátky na zem: Firemní zásilky
    Tato služba nám pomůže zvolit způsob doručení, který vám bude nejlépe vyhovovat. Firemní zásilky jsou obvykle doručovány v pracovní dny do 18:00 místního času. Soukromé zásilky jsou obvykle doručovány od pondělí do pátku do 18:00 místního času.
    …aneb jak jeden údaj napsat dvakrát jinak.
  • dále si mohu nechat posílat SMS o změně stavu zásilky. Je tam možnost automaticky přenést dříve uvedené číslo. Po kliku se automaticky vyplní 00420734??????. Škoda že při validaci finálního formuláře dostanu chybovou hlášku: Mobilní číslo musí mít délku 9 číslic. Nemělo by obsahovat žádné speciální znaky.
  • Při vyplňování fakturačních údajů se mi předvyplní údaje z APPLE ID. Pole předvolba zůstává prázdné a v poli telefon na mě čeká (0) 734??????. Samozřejmě nulu musím odmazat, jinak dostanu chybovou hlášku: Toto není platné zadání. Zkontrolujte, zda jsou informace správné.
  • taky v polích pro adresu dokáže překvapit pole s popisem: vstupní kód, Číslo bytu, pokoje, budovy (nepovinné), ale třeba se to někomu hodí

Platba a potvrzení objednávky jinak dále již bez problémů. Stejně tak i přechody mezi jednotlivými kroky jsou očekávatelné a celkem logické.

Nyní objednávka čeká na vyřízení, takže nedokážu odhadnout co ještě všechno mě bude čekat než zásilka bude doručena.

Zabezpečení WordPress administrace pomocí .htaccess

Jednou mi tak volá hoster, že probíhá cílený útok na tento blog (nechci se nyní zabývat detaily). Nebojím se o sílu svého hesla, ale nadměrně to zatěžuje server.

Řešení je jednoduché!
Do souboru .htacces jsem přidal následující blok:

<IfModule mod_rewrite.c>
	RewriteEngine on
	RewriteCond %{REQUEST_URI} ^(.*)?wp-login\.php(.*)$ [OR]
	RewriteCond %{REQUEST_URI} ^(.*)?wp-admin$
	RewriteCond %{REMOTE_ADDR} !^1\.2\.3\.4$
	RewriteCond %{REMOTE_ADDR} !^4\.3\.2\.1$
	RewriteRule ^(.*)$ - [R=403,L]
</IfModule>

Toto pro IP 1.2.3.4 a 4.3.2.1.

Hotovo!

Jistě jsou i jiná řešení. Například pomocí nějakých pluginů, ale pro mě jako člověka programování znalého toto přijde nejrychlejší… A hlavně! Plugin znamená, že to bude veřejná metoda a bude jen otázka času, než se někomu vyplatí na takový prvek napsat robota, který s ním bude počítat…

Zapomenuté přihlašovací heslo k Windows 7

Tato peripetie mi sebrala 3 hodiny života a kdyby mi to někdo vyprávěl asi bych mu nevěřil.

Prolog – výchozí stav:
Windows mám nastaven tak, aby se mi automaticky přihlašoval bez nutnosti zadat heslo. Pokud vím, tak tam žádné heslo zadané nemám, ale to nakonec nehraje roli…

Akt 1 – pád Windows a nastartování
Trochu jsem koulel očima, když jsem viděl nastartovanou obrazovku a na ní přihlašovací dialog. Samozřejmě žádné z možných (mnou požívaných) hesel nefungovalo. Restart také nepomohl. Koukal tam na mě odkaz „Reset password“ ale po kliknutí to chtělo removable medium, které po připojení zjistilo, že tam není nainstalován nějaký SW a tím jsem tady skončil a dále nepokračoval.

Akt 2 – našel jsem si návod jak „hacknout“ přihlašovací obrazovku
Jedná se o způsob, kdy si na počítači spustím live CD s linuxem a vyměním program „Utilman“ za „cmd“ a pak z přihlašovací obrazovky si změním heslo. Ale jak to udělat, když zrovna nemám po ruce druhý počítač, kde bych si vytvořil live CD/USB. Ale…

Akt 3 – …ale provozuji Windows na MAC mini přes BOOTCAMP, takže se připojím na MAC OSx a bude to…
Než jsem si vzpomněl jak přebootovat což šlo až po výměně klávesnice DELL za Apple a následně jsem se v MAC OSx zorientoval, tak uplynulo pár desítek minut času. Následně jsem si stáhl ISO soubor Ubuntu a dle návodu na stránkách (ubuntu.com) jsem si vytvořil boot USB disk. Samozřejmě, aby to nebylo tak jednoduché, jsem i zde vlastní vinou ztratil pár minut (špatně jsem si přečetl hlášku).

Akt 4 – nabootování Ubuntu
Boot proběhl v pořádku, přejmenování souborů taky (až jsem se divil, že v tomto kroku žádný zádrhel).

Akt 5
Tak nabootuji do Windows a spadne mi úsměv ve chvíli, kdy se přihlašovací dialog nezobrazí a Windows nastartují jako by se celý incident nestal. Ach jo :(

Epilog
NEvím co napsat… …udělejte si obrázek sami.

Jak se nepíše webová služba

Dostal jsem nabídku na udělání portálu pro zjišťování insolvence jak osob tak firem.
Úloha by se to zdála celkem snadná po tom co jsem zjistil, že existuje webová služba ISIR.
Aniž by člověk musel být analyticky zdatný, tak hned čeká, že pod touto webovou službou budou existovat například metody getPerson(rodne_cislo) a getCompany(IC) a jejich návratová hodnota bude TRUE/FALSE podle toho zda daný subjekt v insolvenci je nebo není.
Po seznámení se se službou končí logika na tom, že webová služba má dvě metody. Ale nejmenují se getPerson(rodne_cislo) a getCompany(IC), ale neočekávaně getIsirPub0012(long_1) a getIsirPub001(Calendar_1). Tady je otázka, zda daná firma, která tuto službu ministerstvu dodala měla tak nízký rozpočet, že si nemohla dovolit tyto metody ani smysluplně pojmenovat o argumentech raději nemluvě.
Ale tady absurdita teprve začíná…
Dále je třeba se zabývat co vlastně tyto metody poskytují. První zmiňovaná (getIsirPub0012(long_1)) vrátí maximálně 1000 záznamů (co je v tomto případě záznam napíšu později) s ID větším nebo rovno než je parametr long_1. Než začnete přemýšlet k čemu to může sloužit, tak si počkejte na vysvětlení co je vlastně obsahem záznamu. Ale než toto objasním tak ještě vysvětlím druhou metodu. Druhá metoda (getIsirPub001(Calendar_1)) očekává parametr datum ve formátu 2011-11-24T00:00:00.000Z a vrací maximálně 1000 záznamů vzniklých po tomto čase. Hmm…

A teď velké objasnění co je vlastně obsahem záznamu. Záznam je jen „doklad“ o změně stavu. Takže pokud se těchto záznamů během celého soudního řízení vytvoří 100, tak musím zpracovávat 100 nedůležitých záznamů abych čekal na ten poslední a věděl jestli daný subjekt je v insolvenci a nebo není.

Pokud to zatím z textu nevyplývá, tak je třeba zmínit, že není možné jednoduše zjistit zda subjekt XY v insolvenci je a nebo není. Jediný způsob je si stáhnout kompletní databázi a následně to vyhledat až v ní. V databázi je ke dnešku přes 3.000.000 záznamů.

A jen perličkou na konec uzavřu toto povídání zmínkou o dokumentaci. Poslední aktualizace (k mému údivu) byla zrovna dneska, kde přibyl graf přechodů mezi stavy a informace o připojení. Graf je dost nepřehledný, ale ten vychází z procesu a lepší něco než nic. Informace o připojení mi přijde jako věc, která tu snad musela být od začátku (?!?), tak proč se v dokumentu objevila až po čtyřech letech a ještě s jednou zásadní chybou (viz obrázek).
ISIR připojení k webové službě

To jako fakt někdo myslí vážně, že takto má fungovat nějaká webová služba?