Jakub Kottnauer's Diary http://blog.chrasty.cz Developer & IT Enthusiasist posterous.com Sun, 25 Dec 2011 12:47:00 -0800 NuSOAP v PHP a sežrání SOAPu C# aplikací http://blog.chrasty.cz/nusoap-v-php-a-sezrani-soapu-c-aplikaci http://blog.chrasty.cz/nusoap-v-php-a-sezrani-soapu-c-aplikaci

(Mimochodem, jak byste v tomto kontextu přeložili "consuming" vy?)

Tak se stalo, že po půl roce zase něco napíšu a opět to bude něco spíše pro vlastní zapamatování, ale snad z toho někdy bude těžit i někdo jiný.

Pracuji na jednom projektu sestávajícího z webu v PHP napojeného na MySQL databázi a klientské aplikace v C# (aplikaci by bylo možné udělat i online, ale protože se v PHP vyznám tak z poloviny dobře jako v C# (a ASP.NET/Silverlight nepřipadá tady v úvahu), tak jsem se rozhodl polovinu ušetřeného času raději věnovat řešení problémům s propojením MySQL se C# přes SOAP:)) )

A že těch problémů bylo (a asi ještě bude). Pro generování WSDL souboru jsem se rozhodl použít PHP knihovnu NuSOAP, což proběhlo ještě relativně v pohodě a dokonce to fungovalo. (Maličké how-to např. zde: http://www.scottnichol.com/nusoapprogwsdl.htm, další pak na Googlu).

Trocha legrace začala při pokusech o vytvoření reference na službu ve Visual Studiu 2010, díky této stránce jsem se dozvěděl, že to nejde přes "Service reference", ale musí se do projektu přidat zastaralá "Web reference".

V této fázi se mi dokonce podařilo vytáhnout ze C# pár dat z databáze přes mou službu, jakou jsem měl radost! O půl hodiny později se bohužel někde něco pokazilo a už mi nešlo vůbec nic (chyby typu "špatně formátované XML", nebo že je poškozená reference).

Po několika hodinách hledání, upravování a vyzkoušení několika dalších postupů (vyzkoušel jsem např. vestavěnou podporu SOAP v PHP5 a samostatný .wsdl soubor a pár dalších) jsem omylem kde hluboko v internetu našel sérii článků, která mě zachránila, díky!! (autor používá způsob, se kterým jsem do toho šel úplně nejdřív) - http://www.hirdweb.com/tag/nusoap/

Poté stačilo jen vyřešit problémy s kódováním (buďto se špatně zobrazovaly znaky v desktop aplikaci nebo se špatně uložily do databáze):

  • Na konci kódu SOAP serveru zavolat encode na odesílaná data: 

$server->service(utf8_encode($HTTP_RAW_POST_DATA));

  • Na řádku 5475 souboru nusoap.php bylo napevno nastavené kódování, asi to tvůrcům uniklo, takže jsem ho musel přepsat na UTF-8

function serialize($debug = 0) { $xml = '<?xml version="1.0" encoding="UTF-8"?>';

To je asi vše. Mám v plánu napsat rozsáhlejší, detailnější článek až vyřeším všechny problémy.

 

 

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1017787/avatar_new.jpg http://posterous.com/users/3sDuVrE3jlwR Jakub Kottnauer jakubk Jakub Kottnauer
Sun, 20 Mar 2011 02:48:00 -0700 UPDATE: Dělal jsem IELTS a mám 7.5 http://blog.chrasty.cz/delal-jsem-ielts-to-je-certifikat-z-anglictin http://blog.chrasty.cz/delal-jsem-ielts-to-je-certifikat-z-anglictin

Jednoho dne jsem se rozhodl, že si zkusím udělat IELTS (akademickou verzi), což je zkratka pro International English Language Testing System, a 19. března 2011 jsem jel do Prahy se předvést.

IELTS má čtyři části - listening, reading, writing a speaking (v tomhle pořadí). Za každou z částí dostanete body od 1 do 9 (9 je nejlepší), z nichž se pak průměrem získá výsledná známka, přičemž platí, že 7.5 až 9 je úroveň C2 a třeba 6.5 je někde mezi B2 a C1.

Listening byl vyloženě jednoduchý, i poslechy co nám pouští ve škole se mi zdají těžší. Poslechy byly celkem tři - o týpkovi, který dohaduje exkurzi do akvária, o veverkách obecných a o afrických kmenech.

Ve čtení byly tři relativně dlouhé články o formaci planet v mezihvězdném prostoru, o elektronických knihách a dinosaurech, taky nic těžkého.

Writing už byl zajímavější - první úloha byla popsat tabulku, ve které byly počty kin a počet návštěvníků v Japonsku, Austrálii a Azerbajdžánu v letech 1995 a 1999, úkolem bylo napsat alespoň 150 slov a informace porovnat. Druhou úlohou byla klasická agree/disagree esej o minimálně 250 slovech na téma "People are becoming more dependant on each other". Doufám, že jsem v té druhé nebyl chvílemi moc off-topic, jinak by to ale mohlo dopadnout dobře...

A speaking, no. Examiner byl super, nejdřív se ptal na taková ta obecná témata kdo jsem, co rád dělám, pak jsme řešili čísla a jak dobře se mi pamatují a pak přišla část, kterou jsem trochu pokazil:) Zeptal se mě na ideální bydlení a měl jsem minutu, abych si připravil minutu až dvě dlouhý proslov na dané téma. Ono se to nezdá, ale není to tak jednoduché, prostě jsem ze sebe vychrlil všechny informace během 40 sekund a pak zásek. Ze speakingu budu mít určitě nejmíň.

Uvidíme 1. dubna, to budou dostupné výsledky. Rád bych získal v průměru 7.0 nebo 7.5 :)

UPDATE: Mám výsledky! Z poslechu mám 8.5, ze čtení 8.0 a z mluvení a psaní 6.5, v průměru tedy 7.5, maximální spokojenost :)

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1017787/avatar_new.jpg http://posterous.com/users/3sDuVrE3jlwR Jakub Kottnauer jakubk Jakub Kottnauer
Thu, 20 Jan 2011 06:36:00 -0800 Pouzdro na Kindle za 170,- z DealExtreme http://blog.chrasty.cz/pouzdro-na-kindle-za-170-z-dealextreme http://blog.chrasty.cz/pouzdro-na-kindle-za-170-z-dealextreme

Před měsícem jsem si z DealExtreme objednal koženkové pouzdro na Kindle 3 za 9,3 USD, v přepočtu cca 170 Kč. Je super, vypadá jako kvalitně zpracované (čti: zatím drží:)), určitě ochrání Kindle lépe než moje původní neoprenové pouzdro a co je nejdůležitější, Kindle se s ním díky tloušťce drží mnohem lépe. Na diskuzi k produktu na DX se objevil i názor, že je toto pouzdro lepší než originální, zejména kvůli způsobu uchycení přístroje uvnitř pouzdra.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1017787/avatar_new.jpg http://posterous.com/users/3sDuVrE3jlwR Jakub Kottnauer jakubk Jakub Kottnauer
Tue, 18 Jan 2011 13:49:00 -0800 Velký výprodej knih - velké slevy - beletrie/IT | CZ/EN http://blog.chrasty.cz/velky-vyprodej-knih-velke-slevy-beletrieit-cz http://blog.chrasty.cz/velky-vyprodej-knih-velke-slevy-beletrieit-cz

Za ta léta se mi doma nashromáždilo množství knih, z nichž bych se některých rád zbavil, zabírají mi doma místo (a po nákupu Kindle je jich takových ještě víc) a jsem ochotný je prodat s velkou slevou. Jedná se o českou i anglickou beletrii a IT literaturu.

Udělal jsem si pro tento účel i skromný web, pokud máte zájem, mrkněte se - http://books.chrasty.cz/ (sem tam přihodím i nějakou tu další knížku)

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1017787/avatar_new.jpg http://posterous.com/users/3sDuVrE3jlwR Jakub Kottnauer jakubk Jakub Kottnauer
Tue, 18 Jan 2011 08:26:00 -0800 Kindle Sender 1.3 - Convert Word documents and send them to Kindle, automatically! http://blog.chrasty.cz/kindle-sender-convert-your-word-documents-and http://blog.chrasty.cz/kindle-sender-convert-your-word-documents-and

In my previous post (Czech only) I showed a way to manually optimize a Word document and export it to PDF so it would fit your Kindle 3 properly. After a few days of coding and testing I am ready to release a Word 2007/2010 add-in, which does the adjustments automatically and just by clicking a few buttons sends the document to the entered Kindle e-mail address. Yup, simple as that!

Screen

The add-in sets width to 9 cm and height to 12 cm, adjusts any overlapping images and tables, changes font size and font type in the whole document to values set up in the settings and a few more tweaks. After the file is sent, the add-in creates a back-up in the Documents\Kindle Sent Files folder. New version will inform you of new updates and allows you to export the customized PDF only, without having to enter your account credentials.

This add-in is meant for people with needs similar to mine, which means reading technical documents on the small Kindle screen. And I can tell you it does its work perfectly, just look at the screenshot below.

Sender

Finally, I would like to thank Tomáš Kápl for help with testing of this little piece of software.

DOWNLOAD

Now for the most interesting part - HERE's the link!

For those interested about changes made between versions, here's the changelog.

 

INSTALLATION ERROR?

If you encounter an error while installation of this add-in (setup.exe), try installing the following little app first: http://go.microsoft.com/fwlink/?LinkId=158917

The add-in needs certain files for its functionality and those files are simply missing on some configurations with Office 2007.

 

And by the way, I would really appreciate if you included a link to this blogpost when you share this add-in with the rest of the world, cheers!

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1017787/avatar_new.jpg http://posterous.com/users/3sDuVrE3jlwR Jakub Kottnauer jakubk Jakub Kottnauer
Tue, 18 Jan 2011 08:25:00 -0800 Kindle Sender 1.3 - Zkonvertujte a pošlete svoje dokumenty z Wordu do Kindlu, automaticky! http://blog.chrasty.cz/add-in-pro-naformatovani-dokumentu-a-odeslani http://blog.chrasty.cz/add-in-pro-naformatovani-dokumentu-a-odeslani

For English version of this article click here.

Ve svém předchozím postu jsem ukázal způsob, jak ručně naformátovat libovolný wordový dokument a vyexportovat jej do PDF tak, aby skvěle seděl na relativně malý displej Kindle 3. Nyní přicházím s vylepšením - s add-inem pro Word 2007 a Word 2010, který naformátování plně zautomatizuje a navíc stiskem dalšího tlačítka soubor vyexportuje a odešle na zvolenou Kindle adresu.

Screen
Add-in automaticky nastaví rozměry stránky na 9x12 cm, patřičně upraví všechny přesahující obrázky a tabulky, změní font a velikost písma na hodnoty vybrané v nastavení add-inu a další potřebné úpravy. Při poslání také ono PDF zazálohuje do dokumentů do složky Kindle Sent Files. Nová verze add-inu umožňuje vyexportovat PDF i bez nutnosti odeslání, takže není nutné zadávat údaje k účtu a dokument si do Kindlu můžete přenést sami. Od verze 1.2 vás navíc add-in upozorní na novou verzi.

Pro lepší představu, jak vypadá naformátovaný dokument stiskem jediného tlačítka se podívejte na screenshot níže.

Sender

Děkuji Tomášovi Káplovi za pomoc při testování add-inu a za několik nápadů na zlepšení.

STAŽENÍ
To nejzajímavější - odkaz ke stažení - ZDE

Kdo by měl zájem o changelog, zde je.

PROBLÉMY PŘI INSTALACI?
Pokud se při instalaci (setup.exe) objeví chyba, zkuste si stáhnout následující prográmek (na některých konfiguracích zřejmě chybí soubory pro podporu běhu addinu): http://go.microsoft.com/fwlink/?LinkId=158917

Na závěr bych ocenil, abyste při případném sdílení add-inu poslali i odkaz na tento blogpost, díky!

 

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1017787/avatar_new.jpg http://posterous.com/users/3sDuVrE3jlwR Jakub Kottnauer jakubk Jakub Kottnauer
Tue, 23 Nov 2010 09:25:00 -0800 Převod .docx do dokonalého PDF přímo pro Kindle 3 http://blog.chrasty.cz/prevod-docx-do-dokonaleho-pdf-primo-pro-kindl http://blog.chrasty.cz/prevod-docx-do-dokonaleho-pdf-primo-pro-kindl

Vytvořil jsem add-in pro Word 2007/2010, který tento postup zautomatizoval a přidal pár věcí navíc, mnohem pohodlnější řešení, než to dělat ručně, zkuste!

Představte si situaci - máte Wordovský dokument a rádi byste si ho četli i na svém Kindlu. Při převodu do jiných formátů se vám ale zpravidla rozhodí formátování, rovnice se převedou na obrázky s pochybnou kvalitou. Na druhou stranu, export do PDF dokonale zanechá formátování i rovnice, tak jak byly ve Wordu. Dostaneme se ale do problému se zvětšováním písma - pokud byl A4 dokument ve Wordu psaný například v Calibri ve velikosti 11, je pak na Kindlu text příliš miniaturní na pohodlné čtení a jediné co nám zbývá, je zoomovat v Kindlu celý dokument (+ číst na šířku) a dělat s tím všemožná kouzla, a pohodlí elektronické čtečky je rázem pryč. Existuje ale způsob, jak poměrně snadno .docx dokumenty upravit tak, aby byl na Kindle krásně čitelný, a pak jej jen vyexportovat do PDF vestavěným nástrojem ve Wordu.

Nejprve si otevřete dokument, který chcete převést do PDF, já tu používám nějakou starší fyziku, co jsem si kdysi zesumarizoval.

01

Teď přejděte na kartu Rozložení stránky, kde zvolte položku Velikost. Vyjedete nabídka na jejímž konci se nachází možnost "Další velikosti papíru...", kterou zvolte. Objeví se okénko, které můžete vidět na obrázku níže. V něm na záložce podle obrázku nastavte velikost papíru na 9x12 cm a poté přejděte na záložku Okraje, kde zmenšete okraje z původních 2,5 cm na něco menšího (já jsem si oblíbil 0,1 cm). Po potvrzení voleb na vás vyskočí okénko s upozorněním, že okraje jsou nastaveny mimo rozsah použitelný pro tisk, to nám ale nevadí, my nic tisknout nebudeme, proto klikněte na Přeskočit.

Dokument by nyní měl vypadat podobně jako ten na obrázku níže. Teď stačí dokument jen letmo projet, možná upravit odsazení seznamů a velikosti obrázků tak, aby vše vypadalo hezky (tak jak to uvidíte ve Wordu, tak se vám to zobrazí na Kindlu).

04

Máme hotovo! Teď můžete pomocí "Uložit jako..." soubor uložit jako PDF a přetáhnout ho do svého Kindlu, výsledek vidíte na screenshotu přímo ze čtečky, písmo je na čtení dostatečně velké.

05

Doufám, že návod někomu pomůže a že sníží počet zoufalých duší, které by rády snadno vytvářely PDF pohodlně čitelná na Kindle.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1017787/avatar_new.jpg http://posterous.com/users/3sDuVrE3jlwR Jakub Kottnauer jakubk Jakub Kottnauer
Mon, 18 Oct 2010 07:39:04 -0700 Amazon Kindle, peklo a radost http://blog.chrasty.cz/amazon-kindle-peklo-a-radost http://blog.chrasty.cz/amazon-kindle-peklo-a-radost
Kindle

Namlsaný všemi možnými recenzemi plnými nadšení z nového Kindle 3 za extra příznivou cenu $139 (mluvím-li o wi-fi verzi), jsem se jal ho 26. září objednat. Vše proběhlo hladce a Kindle mi už ve středu 29. září ležel na stole. Naskytlo se ovšem jedno malé "ale".

Přišel v lehce přišlápnuté krabici a Kindlu po zapnutí zamrzla polovina obrazovky a její obsah se odmítal refreshovat (viz přiložený obrázek). Hned jsem začal googlovat všemožné návody a rady, jak se s podobnou situací vypořádat, ale na svůj problém jsem narazil jen v kategorii "neřešitelných problémů -> reklamace". Zavítal jsem tedy na web Amazonu, kde jsem vyplnil žádost o reklamaci (popis problémů a tak dále), vytisknul jsem si lísteček, kterým jsem přelepil původní nálepky na krabici a ten samý den šel s Kindlem na poštu. Poštovné v hodnotě 263 Kč by mi prý měli vrátit. Je důležité upozornit na to, že Amazon se honosí tím, že nový Kindle pošlou "right away" při podání požadavku na reklamaci. Naivně jsem tedy doufal, že mi nový Kindle přijde o dva dny později, tedy v pátek 1. října, při nejhorším v pondělí následující týden.

Amazon mi ale ve středu, kdy jsem Kindle odeslal, už nenapsal a tak jsem jim ze zvědavosti napsal e-mail, ve kterém jsem zopakoval svůj problém a optal jsem se, kdy asi můžu očekávat odeslání nového Kindlu. Za pár hodin mi přišla odpověď, ve kterém se moc omlouvali a řekli mi, že jsem měl zavolat, než jsem Kindle poslal zpět (o tom při reklamaci na webu nepadla ani zmínka) a že mám zavolat na Kindle Support. Sebral jsem tedy telefon a zavolal jim. Telefon sebral chlapík jménem Will, který po mně nejdřív chtěl vyspellovat jméno, e-mail a celou adresu z bezpečnostních důvodů a poté jsem mu zase popsal svůj problém. Dozvěděl jsem se, že kvůli jejich policy můžou nový Kindle poslat až 6. října, ale že se může pokusit to zařídit dřív a ať chvilku čekám. Po deseti minutovém čekání jsem telefon položil, já blbec jsem si měl koupit kredit na Skype, to bych mohl levně čekat do aleluja. Řekl jsem si, že mi to holt nevyřídí dřív a pošlou ho až 6. října, stejně jsem jel na celý týden pryč.

8. října jsem se vrátil domů po týdnu v Holandsku a Kindle pořád nikde, ani na e-mailu žádný update o reklamaci. Podruhé jsem jim tedy napsal a čekala mě stejná odpověď jako minule - zavolejte nám. Vyzbrojen Skype kreditem jsem tedy vytočil číslo a zvedl mi to někdo, kdo se tentokrát nepředstavil a opět mě čekalo úmorné spellování všech mých údajů (tentokrát spellování e-mailu ve stylu "A like apple"). Po třetím popsání své situaci jsem se dozvěděl, že mi nový Kindle nemůžou poslat, ale musím udělat novou objednávku a že mi vrátí peníze, až jim přijde ten Kindle, který jsem jim zpět poslal. Lehce rozladěný jsem se rozhodl čekat, než dorazí zpět do Kentucky, nechtělo se mi riskovat to, že se rozbitý Kindle ještě někde ztratí a já bych pak musel řešit dva problémy naráz.

12. října v pět ráno mi ale konečně přišel onen e-mail, na který jsem netrpělivě čekal. Psalo se v něm, že jim Kindle dorazil zpět a brzy mi vrátí peníze, stalo se tak o tři hodiny později, kdy mi přišel další e-mail, potvrzující odeslání peněz. Hned jsem objednal nový Kindle a pak jen čekal... jejich původní odhad byl, že Kindle odešlou 20. října (asi prázdný sklad), o den později to ale změnili na 15. října. Tak se i stalo, bohužel do toho vlezl víkend, takže mi nový Kindle přišel až v pondělí 18. října, tentokrát už v nepoškozené krabici a plně funkční. Konečně:)

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1017787/avatar_new.jpg http://posterous.com/users/3sDuVrE3jlwR Jakub Kottnauer jakubk Jakub Kottnauer
Mon, 20 Sep 2010 14:22:00 -0700 Jedu na WebExpo 2010. A vy? http://blog.chrasty.cz/jedu-na-webexpo-2010-a-vy http://blog.chrasty.cz/jedu-na-webexpo-2010-a-vy

Zbývají pouhé tři, čtyři dny do začátku konference o webu WebExpo 2010. Účastní se přes 900 lidí, navzdory původním skeptickým názorům :) Pokud byste se chtěli setkat s vaším oblíbeným bloggerem, který téměř nebloguje, je tohle ideální příležitost!

 Můj program: http://webexpo.cz/program/352/70c8d/

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1017787/avatar_new.jpg http://posterous.com/users/3sDuVrE3jlwR Jakub Kottnauer jakubk Jakub Kottnauer
Mon, 31 May 2010 07:54:00 -0700 Objevte Auroru i vy! http://blog.chrasty.cz/objevte-aurory-i-vy http://blog.chrasty.cz/objevte-aurory-i-vy

Znáte server Programujte.com? No jasně, určitě jste o něm alespoň slyšeli. A víte, že se chystá jeho nová verze s označením Aurora? Ne? Její tvůrce, Lukáš Churý, vymyslel navíc zajímavou a zábavnou hru, pomocí které můžete zjistit něco z pozadí nové verze. Hra spočívá v odkryvání různých vodítek skrytých ve zdrojovém kódu stránky, připojených souborech a podobně. Čeká na vás 15 zapeklitých levelů, měli byste to zkusit!

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1017787/avatar_new.jpg http://posterous.com/users/3sDuVrE3jlwR Jakub Kottnauer jakubk Jakub Kottnauer
Tue, 27 Apr 2010 11:28:32 -0700 Z Meshe na Dropbox http://blog.chrasty.cz/z-meshe-na-dropbox http://blog.chrasty.cz/z-meshe-na-dropbox
Fold

Několik dní patřím k další skupině lidí. K těm, kteří se rozhodli přejít od Microsoftí služby Live Mesh ke službě Dropbox. Význam obou služeb je podobný - obě umožňují synchronizaci souborů mezi serverem a několika počítači. Obě služby mají výhody i nevýhody (u Meshe máte k dispozici 5 GB prostoru, u Dropboxu "jen" 2 GB, ale s možností zvýšení až na 8 GB, viz níže; u Dropboxu si nemůžete vybrat libovolnou složku na disku pro synchronizace, ale máte jednu danou a do ní všechny další složky a soubory musíte dát).

Ve využitelnosti jsou na tom obě služby velmi podobně, ale jsou dva důvody, které mě přiměly k přechodu. Tím nejzávažnějším je, že u Live Meshe nebyly už několik měsíců žádné známky vývoje, a co se nevyvíjí, to obecně nerad používám. Chci prostě vidět, že se na produktu pracuje a můžu se těšit na nějaká vylepšení. Druhým důvodem pro přechod bylo to, že mi klient Meshe připadá jako takový neohrabaný, ani ne moc hezký moloch, zatímco Dropbox je maličký klient, jehož přítomnost poznáte jen podle malé ikonky u synchronizovaných souborů. Jako dalších pár plusíků k Dropboxu počítám to, že ukládá na webu i starší kopie dokumentů, takže v případě nějaký nevratné změny není problém stáhnout si starší verzi souboru.

Zpět k možnosti zvýšení dostupné kapacity pro Dropbox. Pokud se totiž zaregistrujete přes ref link jiného uživatele, dostanete jak vy, tak on, dalších 250 MB k využití, což je hezká motivace, proč se neregistrovat jen tak. Přiznávám, že účel tohoto článku je asi hodně průhledné, ale pokud by se přeci jen někdo rozhodl k registrace, byl bych rád, kdyby použil tento odkaz.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1017787/avatar_new.jpg http://posterous.com/users/3sDuVrE3jlwR Jakub Kottnauer jakubk Jakub Kottnauer
Fri, 02 Apr 2010 00:54:36 -0700 V březnu mě zaujalo... http://blog.chrasty.cz/v-breznu-me-zaujalo http://blog.chrasty.cz/v-breznu-me-zaujalo Tento měsíc to bude více zaměřené na užitečné online aplikace, než na konkrétní články.

SmushIt - online zmenšení velikosti obrázků pro použití na webu
Code Beautifier - online zkrášlovač CSS kódu
CSS Menu Builder - online vytváření CSS menu, může ušetřit trochu práce
IconsPedia - free databáze krásných ikonek

Nesmím zapomenout zmínit se, že 12. dubna vychází finální verze Visual Studia 2010, .NET 4.0 a Silverlightu 4!

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1017787/avatar_new.jpg http://posterous.com/users/3sDuVrE3jlwR Jakub Kottnauer jakubk Jakub Kottnauer
Sun, 14 Mar 2010 11:04:00 -0700 Čtení XML pomocí třídy XDocument a ignorování vložených HTML tagů http://blog.chrasty.cz/Cteni-xml-pomoci-tridy-xdocument-a-ignorovani http://blog.chrasty.cz/Cteni-xml-pomoci-tridy-xdocument-a-ignorovani

Dnes jsem zapracoval na jednoduchém vylepšení své homepage - popisy, odkazy na obrázky, atd. jednotlivých projektů a jejich anglické a české verze jsou načítány z XML souboru. Během práce na této změně jsem opět narazil na jednu maličkou nepříjemnost, která souvisí s třídou XDocument - pokud mám nějaký text například uvnitř elementu "Text" a tento text obsahuje nějaké HTML značky, ať už je to a, b nebo div, tak se tyto značky nezobrazí/neaplikují.

Pro upřesnění malá ukázka:
  <project>     <Image>css/projects/pdf.png</Image>     <Url>http://chrasty.cz/down/C_threading.pdf</Url>     <Czech>       <Header>Překlad Threading in C# (J. Albahari)</Header>       <Text>         <p>           V roce jsem 2008 jsem přeložil do českého jazyka e-book od           Josepha Albahariho           o vláknech v C#.         </p>         <p>           Překlad jsem vydal jak ve formě           14-ti článků na Programujte.com,           tak i jako samostatné přibližně 80-ti stránkové PDF, které najdete ke stažení           na mém webu, i           na webu Josepha Albahariho.         </p>       </Text>     </Czech> ...

Tříd pro práci s XML existuje celá řada a určitě existuje nějaká, ve které se dá přečtení vnitřních tagů nastavit, ale v případě třídy XDocument tomu tak není. Co tedy s tím? Můžeme použít jednu z vlastností .NET frameworku 3.5, a to konkrétně extension methods. Taková jednoduchá rozšiřující metoda, která se aplikuje na instanci třídy XElementy a umožňuje přesně to, o čem zde mluvím, může vypadat například takto:

public static string InnerXml(this XElement element) {     StringBuilder innerXml = new StringBuilder();     foreach (XNode node in element.Nodes())     {         innerXml.Append(node.ToString());     }     return innerXml.ToString(); }

Již nám nic nebrání přečíst vnitřek například elementu Text rodiče Czech nějakým podobným kódem:
// proměnná "x" zde zastupuje úroveň elementu "project", viz XML kód výše p.Text = x.Element("Czech").Element("Text").InnerXml();

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1017787/avatar_new.jpg http://posterous.com/users/3sDuVrE3jlwR Jakub Kottnauer jakubk Jakub Kottnauer
Sat, 27 Feb 2010 11:53:17 -0800 V únoru mě zaujalo... http://blog.chrasty.cz/v-unoru-me-zaujalo http://blog.chrasty.cz/v-unoru-me-zaujalo Tento článek je jakýmsi úvodním článkem každo-měsíčně-se-opakující sérii článků, která shromažďuje odkazy, které mě na internetu něčím zaujala. Většinou to ale bude sběrnice odkazů, které mě zaujaly svým názvem, ale nestihl jsem si je přečíst. Články nejsou nijak řazeny, jen tak, jak mi přišly pod ruku. Za měsíc únor mě tedy zaujalo:

Reading MP3 metadata with Silverlight and drag-drop
Silverlight Splash Page
WCF RIA Services Validation
Pub/sub sample with WCF net.tcp protocol in Silverlight 4
Localizing ASP.NET MVC Validation
Scott Hanselman's 2009 Ultimate Developer and Power Users Tool List for Windows

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1017787/avatar_new.jpg http://posterous.com/users/3sDuVrE3jlwR Jakub Kottnauer jakubk Jakub Kottnauer
Sat, 13 Feb 2010 10:42:56 -0800 Kde byla má myš? http://blog.chrasty.cz/kde-byla-ma-mys http://blog.chrasty.cz/kde-byla-ma-mys Dustin Curtis dnes ukázal na svém blogu hezkou věc, Javovou aplikaci, která snímá dráhu ujetou vaší myší. Tu (dráhu, ne myš) pak můžete exportovat jako zajímavě vypadající obrázek. Tohle najezdila moje myš za posledních 10 hodin, černé tečky ukazují dobu, kterou myš stála na jednom místě (největší černé kolo vzniklo po cca hodině neaktivity):
Mousepath-19_35_08

Zmíněný javový prográmek stáhnete zde:

mousepath.jar Download this file

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1017787/avatar_new.jpg http://posterous.com/users/3sDuVrE3jlwR Jakub Kottnauer jakubk Jakub Kottnauer
Fri, 29 Jan 2010 11:51:00 -0800 Už se to blíží http://blog.chrasty.cz/uz-se-to-blizi http://blog.chrasty.cz/uz-se-to-blizi

Photolum_logo

Již brzy ve vašich prohlížečích.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1017787/avatar_new.jpg http://posterous.com/users/3sDuVrE3jlwR Jakub Kottnauer jakubk Jakub Kottnauer
Sun, 17 Jan 2010 07:18:00 -0800 Client-side validace a LINQ to SQL/Entities v ASP.NET MVC 2 http://blog.chrasty.cz/client-side-validace-a-linq-to-sqlentities-v http://blog.chrasty.cz/client-side-validace-a-linq-to-sqlentities-v

ASP.NET MVC 2.0 přijde s jednou velmi hezkou novinkou, a to vestavěnou podporou pro validace na straně klienta pomocí jQuery. Snadněji by to už udělat nešlo: pokud máme například formulář na vytvoření nového komentáře, stačí si vytvořit třídu Comment s vlastnostmi reprezentujícími jednotlivá pole formuláře a odekorovat je patřičnými atributy. Komplikace nastává v případě, kdy máme tuto třídu už automaticky vytvořenou, například vygenerovanou pomocí LINQ to SQL podle databáze. Řešením by bylo něco jako "partial properties", nic takového ale v .NET frameworku nenajdeme. Takže co s tím?Budeme potřebovat dvě třídy:

  • partial class Comment - bude rozšiřovat třídu Comment vygenerovanou LINQ to SQL
  • class CommentMetaData - zde vypíšeme a odekorujeme vlastnosti, které chceme validovat

Jediný rozdíl je tedy v tom, že místo toho, abychom samotné vlastnosti nadefinovali jako "partial" (což nejde), uvedeme je v jiné třídy a na ni odkážeme ze třídy Comment pomocí atributu MetadataType. Zdrojáček:

[MetadataType(typeof(CommentMetaData))] public partial class Comment { } public class CommentMetaData {     [Required(ErrorMessage = "Jméno je povinné")]     public string Author { get; set; }     [Required(ErrorMessage = "Text příspěvku je povinný")]     public string Text { get; set; }     [Required(ErrorMessage = "E-mail je povinný")]     [RegularExpression(@"[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}", ErrorMessage = "E-mail je v nesprávném tvaru!")]     public string Email { get; set; } }

Teď už stačí ve View obsahující formulář pro přidání komentářů povolit validace na straně klienta pomocí jedné helper metody (pozor, je nutné tuto metodu zavolat před form tagem (nebo zavoláním Html.BeginForm()), poprvé jsem to přehlídl a pak hodinu přemýšlel nad tím, proč validace nefungují :-)). Kromě toho ještě musíme přidat reference na tři .js soubory, které defaultně nalezneme ve složce Scripts uvnitř MVC projektu.

Ukázkový kód View šablony s podporou jQuery validací:

<script src="../../Scripts/jquery-1.3.2.min.js" type="text/javascript"></script> <script src="../../Scripts/jquery.validate.min.js" type="text/javascript"></script> <script src="../../Scripts/MicrosoftMvcJQueryValidation.js" type="text/javascript"></script>    <% Html.EnableClientValidation(); %> <% using (Html.BeginForm()) {%>     <fieldset>         <legend>Přidat komentář</legend>         <p>             <label for="Author">Jméno:</label>             <%= Html.EditorFor(author=>author.Author)%>             <%= Html.ValidationMessage("Author", "*") %>               </p>         <p>             <label for="Email">E-mail:</label>             <%= Html.TextBox("Email") %>             <%= Html.ValidationMessage("Email", "*") %>         </p>         <p>             <label for="Web">Web:</label>             <%= Html.TextBox("Web") %>             <%= Html.ValidationMessage("Web", "*") %>         </p>                 <p>             <label for="Text">Text:</label>             <%= Html.TextArea("Text", null, 10, 40, null)%>             <%= Html.ValidationMessage("Text", "*") %>         </p>                 <p>             <input type="submit" value="Odeslat komentář" />         </p>     </fieldset> <% } %>

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1017787/avatar_new.jpg http://posterous.com/users/3sDuVrE3jlwR Jakub Kottnauer jakubk Jakub Kottnauer
Sun, 10 Jan 2010 21:47:00 -0800 Silverlight a práce s databází http://blog.chrasty.cz/silverlight-a-prace-s-databazi http://blog.chrasty.cz/silverlight-a-prace-s-databazi

Tento článek měl být původně jen krátkým příspěvkem na blog, i proto to odlehčené pojetí a epická šíře zezačátku, ale rozrostl se v téměř sedmistránkový útvar, a proto jsem se rozhodl ho publikovat na Programujte.com. Zde tedy jen perex a odkaz na celý článek:

V centru dnešního softwarového světa stojí databáze, snad by ani nebylo troufalé říci, že většina větších aplikací nějakou tu databázi využívá. Vytvořit takovou „database-driven“ aplikaci v Silverlightu se může, zejména v porovnání s technologiemi jako ASP.NET, zdát zbytečně komplikované. Účelem tohoto článku je dokázat opak – ukázat čtenářům, že je to ve skutečnosti velmi snadné.

Celý článek je zde.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1017787/avatar_new.jpg http://posterous.com/users/3sDuVrE3jlwR Jakub Kottnauer jakubk Jakub Kottnauer
Sun, 27 Dec 2009 10:56:00 -0800 Zvýraznění zdrojáků v Posterous http://blog.chrasty.cz/zvyrazneni-zdrojaku-v-posterous http://blog.chrasty.cz/zvyrazneni-zdrojaku-v-posterous

E-mailový redakční systém Posterous, který používám na tomto blogu, má takové omezení. Tím je nepodpora plug-inů, vše, co Posterous umí, musí být implementováno přímo jeho vývojáři. Ač to tak na první pohled vypadat nemusí, Posterous zvýrazňování zdrojového kódu umí.

Je to  velmi snadné, stačí jen obalit kód do tagů code (v hranatých závorkách). Navíc můžete, pomocí atributu lang, specifikovat i jazyk pro zvýraznění syntaxe. Na výběr máte z hodnot 'cpp', 'c', 'c++', 'c#', 'c-sharp', 'csharp', 'css', 'delphi', 'pascal', 'java', 'js', 'jscript', 'javascript', 'php', 'py', 'python', 'ruby', 'rails', 'ror', 'sql', 'vb', 'vb.net', 'xml', 'xhtml', 'xslt', 'html', 'xhtml'.

Výsledku jste si už mohli všimnout v několika článcích na tomto blogu, ale ještě na ukázku:

// Volání jedné metody MessageBox.Show("Hello World");

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1017787/avatar_new.jpg http://posterous.com/users/3sDuVrE3jlwR Jakub Kottnauer jakubk Jakub Kottnauer
Fri, 25 Dec 2009 05:12:00 -0800 Hitachi 160 GB 5400 rpm 2,5" vs. Intel X-25M 80 GB (34 nm) http://blog.chrasty.cz/hitachi-160-gb-5400-rpm-25-vs-intel-x-25m-80 http://blog.chrasty.cz/hitachi-160-gb-5400-rpm-25-vs-intel-x-25m-80

Je to tady, SSD disk Intel X-25M si konečně užívá života uvnitř mého notebooku Lenovo R61. Samozřejmě, že jsem udělal pár měření, tady tedy jsou:

Windows 7 se na starém disku zapínaly přibližně 56 sekund (měřeno od stisknutí tlačítka až po zobrazení uvítací obrazovky), na SSD to trvá okolo 25 sekund. Pomohl jsem si taky co se hmotnosti týče, i když je to naprosto zanedbatelný rozdíl - starý disk vážil 98 gramů, nové SSD váží 78 gramů.

Největší rozdíl je ale vidět v rychlosti při samotném používání počítače. Takový Firefox nebo Word startují instantně, Visual Studio cca 3 až 4 vteřiny, oproti původním třiceti. Úžasné je taky to ticho. Pustíte notebook a nic neslyšíte. Nic. Pokud se vám tedy zrovna netočí větráček :-)

Na závěr "článku" zase pár obrázků - benchmark starého disku i SSD a jejich fotky:

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1017787/avatar_new.jpg http://posterous.com/users/3sDuVrE3jlwR Jakub Kottnauer jakubk Jakub Kottnauer