Veselé Vánoce

Mňo, máme tady 24. prosince a tak se sluší a patří popřát všem hezké svátky, spoustu bramborového salátku a tak všelijak podobně. Ačkoliv je šance minimální, přesto se může stát, že se vám vyhnou debilní vánoční SMSky od vašich milovaných. Proto vám jednu do nového roku posílám:

(|)(|)(|)(|)(|)(|)(|)(|) - Toto je osm vanocnich buchet. Posli je dal svym osmi kamosum, jinak uz zadnou neuvidis...

Debilní, nicméně to k Vánocům patří stejně, jako Lucie na Bílo... :)

Hezký svátky!

Zdeněk Pohlreich na Radiožurnálu

Dneska jsem si vychutnal velmi vtipný rozhovor se Zdeňkem Pohlreichem na Radiožurnálu. Tentokrát to moc "voe kruciprdel" nebylo, ale i tak se zaručeně pobavíte.

O Michelinu: Jsou to francouzi, koneckonců, jo... takže myslím, že je to zkorumpovaná parta, jako je spousta jiných.

Výborný! Poslechnout si ho lze přímo na stránkách Radiožurnálu.

Lepší fotky se ShutterCal.com

Docela se mi zalíbila služba ShutterCal. Jedná se o jednoduchý webový kalendář, do kterého uploadnete každý den jednu fotku za libovolným účelem. Někdo si fotí každý den své hlavní jídlo, někdo dítě, někdo fotí jen to, co mu ten den připadne zajímavé. Hlavní je fotit pravidelně a každý den udělat alespoň jednu fotku.

Ještě jsem se úplně nerozhodl kdy začnu, ale určitě to vyzkouším. Nejde mi ani o to zdokumentovat svůj život, spíš bych chtěl dostat focení více do ruky a trochu se v něm "naskillovat", což bezesporu potřebuji. Cvik dělá mistra!

Můj profil, zatím prázdný, najdete na adrese http://www.shuttercal.com/calendar/dzoukr/. Než tam něco přidám, můžete náhodně surfovat po kalendářích ostatních uživatelů.

Viditelnost formulářových prvků v ASCX control v Sharepointu

Pokud jste se někdy pokoušeli vyvinout složitější webpartu s velkým množstvím vstupních prvků a spoustou grafiky, zcela jistě jste došli do situace, kdy tradiční přetížení metody CreateChildControls prostě nestačí, nebo je přinejmenším velmi nepraktické. Rozumnou alternativou se zdá být použití klasické ASP.NET ascx controly, která nabízí kromě oddělení definiční a prezentační části také větší komfort pro designery (minimálně v tom, že se vám nebudou "hrabat v kódu").

Nejprve si vytvoříme soubor MyWebControl.ascx, což je klasická template. Do ní umístíme hlavičku a první prvek.

<%@ Control EnableViewState="true" Language="C#" AutoEventWireup="true" CodeBehind="MyWebControl.ascx.cs" Inherits="MyWebControlNamespace.MyWebControl, MyWebControlNamespace, Version=1.0.0.0, Culture=neutral, PublicKeyToken=......." %><asp:PlaceHolder runat="server" id="PhMyFirstPlaceHolder" />

Dále si vytvoříme code-behind soubor MyWebControl.ascx.cs, jehož počáteční definice bude:

namespace MyWebControlNamespace{    public partial class MyWebControl : System.Web.UI.UserControl    {      protected void Page_Load(object sender, EventArgs e)        {            //vas kod        }            //metody    }}

No a do třetice vytvoříme soubor MyWebControl.ascx.designer.cs:

namespace MyWebControlNamespace{    public partial class MyWebControl    {        protected global::System.Web.UI.WebControls.PlaceHolder PhMyFirstPlaceHolder;    }}

Tím máme základní strukturu ASCX controly hotovou. Ještě donutíme Visual Studio zobrazovat zanoření souborů tak, jak máme rádi u ASP.NET aplikací.

Otevřeme si třeba v Notepadu projektový soubor jmenoprojektu.csproj a upravíme (nebo přidáme - pokud jste soubory nevytvářeli přes Visual Studio a tím pádem v projektu chybí) tagy Compile:

<Compile Include="MyWebControl.ascx.cs">    <DependentUpon>MyWebControl.ascx</DependentUpon>    <SubType>ASPXCodeBehind</SubType></Compile>    <Compile Include="MyWebControl.ascx.designer.cs">    <DependentUpon>MyWebControl.ascx</DependentUpon></Compile>

Nyní už stačí otevřít projektový soubor ve Visual Studiu (popř. pouze udělat Reload) a ASCX control vypadá přesně jako v ASP.NET aplikaci.

Horste, to ale stále není všechno!

Nebyl by to Sharepoint, aby neměl nějaké "ale". V tomto případě se "ale" skrývá v tom, že každé přidání prvku do ASCX controly vyžaduje ruční přidání řádku do MyWebControl.ascx.designer.cs a jeho správné natypování. Čili pokud přidáte Label, budete muset ještě přidat:

protected global::System.Web.UI.WebControls.Label LbMujKrasnyLabel;

Bez toho svůj nový prvek v code-behind neuvidíte. Na druhou stranu, je to úkon primitivní a v porovnání s předchozím způsobem minimálně obtěžující.

Poslední nutný úkon je načtení vaší nové ASCX control do webparty:

protected override void CreateChildControls(){    base.CreateChildControls();    Control ctrl = Page.LoadControl("~/_controltemplates/MyWebUserControl.ascx");    this.Controls.Add(ctrl);}

Ještě jednou díky Mirovi za uvedený postup - slibovaná dvojitá vodka s rybízovým džusem ho určitě nemine.

James Cole je Kapitán Láska

S obvyklou prodlevou se ke mně dostala nová deska s názvem "Kapitán Láska", pod kterou je podepsána trojice James Cole, Risto a ex-člen kapely Support Lesbiens Yarda Helešic. Je to druhá plnohodnotná sólová deska Jamese Cola od Frekvence P.H.A.T., ovšem podobnost je čistě náhodná. James Cole se tentokrát obešel jak bez hostů, tak bez výraznějších rapových pasáží a po albu OriKoule poskočil další kus ke střednímu proudu. Tam, kde dříve rapoval a občas si zkusil "zazpívat", teď převážně zpívá a občas si k tomu střihne nějaký ten rap. Pamětníci KO-Kru mu asi nepřijdou na jméno, ale mně se ta suverénnost líbí a to i přesto, že některé tracky zní už skoro jako duo Hložek-Kotvald.

K singlu "Co tak najednou?" vzniklo oficiální video, které najdete na YouTube. I z něj je evidentní, že to celé James Cole nemyslí úplně vážně.

Další tracky Kapitána Lásky na YouTube:

Vánoční Friday Night Live

Uteklo to jako voda, rok se s rokem sešel a před námi je poslední letošní Friday Night Live na Rádiu4U. Téma bude stejně jako každý rok vánoční. Pokud na vás ještě adventní čas nedolehl v té správné podobě, je nejvyšší čas se vánočně naladit, protože startujeme tento pátek od 20:00.

Do té doby si alespoň stáhněte aktuální anonci - FRNDL - Vánoce.mp3

(download)

Pod stromeček HTC

Každým rokem před Vánoci přemýšlím, co si přát pod stromek. Zpravidla si vymýšlím blbosti, protože si většinu toho, co opravdu potřebuji, koupím už v průběhu roku. Ovšem letos se můj problém vyřešil sám. Umírá mi moje letitá Nokia N73 a tak je nejvyšší čas sehnat si náhradu. A proč nejít hned o level výš?

Z aktuální nabídky dotovaných telefonů od Vodafonu jsem si vybral HTC Touch 2 a to z několika důvodů. Jednak má nejlepší poměr cena/výkon, druhak se mi nechce dávat za telefon přes deset tisíc korun, když se jedná o můj startovací telefon kategorie "PDA & smartphone". Jsem v podstatě "PDA virgin" a tudíž jsou mé nároky na PDAčko velmi malé - nemám s čím srovnávat. Googlil jsem recenze a až na kvalitu fotoaparátu (3MPx stejně jako u mé Nokie) a QVGA display má shodné hardwarové vybavení jako dražší modely.

Htctouch2

A proč ne iPhone? Protože je to pro mě předražená hype srandička s minimální možností instalací vlastních rozšíření a navíc trpím odporem k iTunes od té doby, co jsem ženě koupil iPod. Měl jsem možnost ho vyzkoušet - je to perfektní BFU telefon se skvěle vyřešeným ovládáním (i moje máma s ním umí, čili ovládání musí být geniálně prosté ;)) a veškeré vyjmenované vlastnosti jsou v podstatě jeho přednosti, ovšem pro uživatele z jiné kategorie, než jsem já. Nejsem Apple hater, naopak iPod je super věc (až na ty zatracený iTunes), ale prostě mě nikdy iPhone u srdce nechytl.

Pod stromkem tedy rozbalím HTC Touch 2 a podělím se o zkušenosti a zážitky. A kdybyste mě náhodu někde viděli běhat po lese a neustále sledovat telefon, pak jsem propadl bizarní hře s názvem Geocacheing, i když o tom upřímně pochybuji.

A už jsem vám vyprávěl, jak jsme jednou cestou na Moravu hledali s Pepou hodinu "kešku" v cikánským ghettu? Ale o tom zase jindy...

Materiály z Developer Days 2009

Minulý týden ve středu se v divadle Hybernia uskutečnila konference vývojářů na Microsoftích technologiích - Developer Days 2009. Vzhledem k výjimečnosti letošního roku (uvedení Windows 7, VS 2010 beta, .NET 4.0 beta) byl zájem značně větší než minulý rok a tak se mohlo klidně stát, že jste se vůbec nedostali dovnitř. Měl-li někdo tu smůlu, může si alespoň stáhnout podcasty přednášek na MSDN. Já se naštěstí zástupem zarostlých bagetářů prorval, ale bylo to tak tak.

Program byl rozdělen na několik částí:

Demománie - Informačně rozhodně nejvydatnější část. Způsob prezentace (rádoby boxové utkání mezi M. Valáškem a Š. Bechynským) mi nesedl, ale to je čistě věc vkusu. Mezi nejzajímavější momenty patřil například web.config ASP.NET 4.0 aplikací, který má nově pouhých 16 řádků. Dále se mi líbily možnosti URL routingu (přebrané z ASP.NET MVC), deklarativní vypínání ViewState a v neposlední řadě velmi příjemná rozšiřitelnost Request validation. Novinek v ASP.NET 4.0 bylo dost a minimálně 90% stálo za to poslouchat. Mimochodem utkání mezi Valáškem a Bechynským skončilo oficiálně nerozhodně, pro mě jednoznačně zvítězil M. Valášek (byl vtipnější, živější a měl kožené kalhoty :))

Týmový vývoj v roce 2010 - Též velmi zajímavá přednáška, především pro programátory pracující ve větších týmech. M. Juřek je profík a zde předvedl nové možnosti TFS v celé kráse, včetně parádního bug reportingu. Při dlouhém načítání některých částí (zejména virtuálních strojů pro bug reporting) prokládal přednášku IT vtipy, čímž elegantně eliminoval trapné ticho "než se to načte".

Vývoj SharePoint aplikací ve Visual Studiu 2010 - Vzhledem k tomu, že se posledních pár měsíců neustále přehrabuji ve Windows Sharepoint Services 3.0, byl jsem velmi zvědavý, s čím přijde Microsoft letos. Novinek nebylo zase tak moc, ale byly veskrze příjemné. V novém Visual Studiu se dá již velmi pěkně pracovat s webparts, v code behindu se dá bez problémů odkazovat na controls ležící v ascx souboru a celkově je nové Visual Studio více propojeno se Sharepointem. Co se týče nového Sharepointu 2010, bylo zcela překopáno UI rozhraní pro administraci i pro samotnou správu jednotlivých webů - milovníci Ribbonu si přijdou na své.

Windows 7 – co přináší vývojáři? - Jediná cizojazyčná přednáška (ve slovenštině) za celý den. Přednášel Miroslav Kubovčík a představil především nové API pro práci s prvky Windows 7. Kromě efektního příkladu na světlocitlivém čidle, kdy podle intenzity osvětlení měnil pozadí WPF aplikace, mě zaujal především ukázkou "spících" services, které se "budily" na základě systémových událostí, jako je připojení USB disku. Myslím, že WPF a Windows Forms vývojáře pěkně namlsal. ;)

Záměrně jsem z programu vynechal část o licencování nových produktů, protože byla strašná. Původní přednášející prý onemocněl a narychlo sehnaný náhradník neuměl ani mluvit, ani pořádně číst ze slidů. Vlastně jediná zásadní informace z této "přednášky" je datum vydání nového Visual Studia 2010 a to 22. března 2010.

Zbytek programu tvořili krátké přednášky českých MVP, z nichž za zmínku stojí velmi hezká ukázka jazyka F# od T. Petříčka.

Celkově byly letošní Developer Days o třídu lepší než ty minulé - byly zajímavější, informačně bohatší a organizačně na lepší úrovni. Už se těším na ty další.

Jak změnit URL listu na Sharepointu

Jednou z mnoha záludností Sharepointu, se kterou je lépe počítat, je jeho mechanismus generování URL adres při vytváření listů. Při vytvoření nové instance totiž dojde k tomu, že se název listu převede na kanonickou URL a tu si uloží do své databáze. Sice je stále k dispozici možnost daný list přejmenovat, nicméně URL se již nemění a zůstává stále odvozena od zadaného názvu při vytváření.

Při zachování rozumných názvů to až tak nevadí, ovšem typický průběh je takový, že si zákazníka v záchvatu marketingové berserku vyhalucinuje dokumentovou knihovnu s pekelně dlouhým názvem např:

http://wss-site/Velmi%20velmi%20velmi%20dlouhy%20nazev%20nejake%20knihovny/

a až po několika měsících používání a poradách na téma "Jak se to bude nově jmenovat" zjistí, že by se mu líbila adresa:

http://wss-site/knihovna/

protože si to Magda z účetního lépe pamatuje. A jelikož je zákazník (jak trefně poznamenal Michal Valášek na letošních Developers Days) nejjednodušší forma života na nejnižším stupínku potravinového řetězce, začne to vyžadovat až ve chvíli, kdy už vaše dokumentová knihovna obsahuje desítky zanořených adresářů a stovky souborů s historií verzování.

Řešení je celá řada. Osobně mám nejradši nad Sharepointem ta nejjednodušší řešení, protože se v praxi ukazují jako nejméně problémová. Jedním z takových řešení je elegantní použití WebDAVu, které si nyní ukážeme:

  1. Tento počítač > Místa v síti > Přidat místo v síti.

    Wss_rename_01

  2. Do adresy vyplníme URL Sharepointího webu a dáme pokračovat.

    Wss_rename_02

  3. V případě HTTPS site potvrdíme certifikát.

    Wss_rename_03

  4. Nejedná-li se o web s povoleným anonymním přístupem, vyplníme přístupové údaje administrátora.

    Wss_rename_04

  5. Pojmenujeme nově vytvořené místo v síti.

    Wss_rename_05

  6. V seznamu se nám objevilo nové místo v síti.

    Wss_rename_06

  7. Po rozbalení se nám zobrazí veškerý obsah Sharepointího webu, včetně knihoven.

    Wss_rename_07

  8. Kliknutím na název máme možnost knihovnu přejmenovat.

    Wss_rename_08

  9. Jak je vidět z obrázku, po přejmenování se nám změnil nejen název složky, ale také její popis v Sharepointu. Hlavně se nám ale znovu přegenerovala URL adresa.
  10. Nyní můžeme opět knihovnu přejmenovat na předchozí název přes volbu "Document library settings", ovšem zkrácená URL adresa se nezmění.

    Wss_rename_09

Jednoduché, elegantní, bezbolestné. Výše popsaný postup lze rovněž aplikovat na veškeré listy v adresáři "Lists".