Author Archives: Robert Haken

avatar Neznámé

About Robert Haken

Software Architect, Founder at HAVIT, Microsoft MVP - ASP.NET/IIS

Řízení SW projektů a vztahů se zákazníky – slides [MS Fest Brno 2013]

Slides z mé dnešní přednášky pro MS

Jakmile dostanu záznam z přednášky, bude vystaven na našem YouTube Channelu.

Optimalizace webových aplikací ASP.NET – záznam, slide a dema [MS Fest 2013]

Slide (jeden) a dema z mé dnešní přednášky pro MS Fest 2013 v Brně:

Z přednášky se pořizoval záznam, který najdete na našem HAVIT YouTube Channel:

Windows Update Cleanup – nová volba Disk Cleanup utility

V jedné z posledních aktualizací Windows přibyla do Disk Cleanupu volba Windows Update Cleanup, která vyčistí z disku instalační soubory aktualizací Windows.

image

Konečně, v mém případě to byly 3GB. Když jsem se je kdysi pokoušel „vyčistit“ ručně, dost mi pak haprovaly instalace/odinstalace. Nová cesta by měla být bezpečná.

Databáze zůstane viset ve stavu „Restoring“

Pokud Vám zůstane databáze z jakéhokoliv důvodu viset ve stavu Restoring, znamená to, že sled předcházejících událostí SQL server interpretoval jako nedokončenou snahu o obnovení databáze. Legitimně se v tomto stavu databáze nachází, pokud chcete např. přehrát nad obnovenou zálohou ještě transaction-logy, atp.

Pokud tento stav pro Vás není žádoucí, nic dalšího už nechcete udělat a potřebujete databázi oživit, potom pomůže

RESTORE DATABASE MyDatabase WITH RECOVERY

…kde MyDatabase pochopitelně nahradíte názvem své DB.

Lenovo ThinkPad X230 – zkušenosti po roce používání

Již zhruba rok používám jako svůj vedlejší počítač notebook Lenovo ThinkPad X230, který jsem si pořídal jako nástupce předchozího Lenovo ThinkPad X201, který jsem již zmiňoval. Protože nyní hledám nástupce, pokusím se shrnout své zkušenosti s X230, dokud ho ještě mám.

Konkrétně jsem si vybral model 2320-2LG (i7 3520M, 8 GB RAM, SSD 180GB) a dokoupil jsem si do něj 3G modul Ericsson H5321gw, což mě dohromady svého času stálo cca 40 000 Kč + DPH.

Celkový dojem

Musím říct, že až na ClickPad (viz níže) se jedná o na svou dobu špičkový notebook s plnou výbavou pro pracovní použití a důstojný nástupce mého předchozího X201. S váhou kolem 1.5kg ho sebou nosím neustále a používám denně. Baterie i po roce vydrží kolem 5 hodin běžné práce a tak doma většinou nechávám i adaptér (který je mimochodem zoufalost, ale to pořád ještě skoro každý).

ClickPad – zoufalost

ClickPad, jak tomuto typu touch-padu Lenovo říká, je naprosto zdrcující zoufalost, která mě dohnala po mnoha noteboocích používaných bez myši až k neustálému vláčení myši sebou. Nikdy mě nenapadlo, že bych měl něco takového u notebooku řešit a u takové základní věci čekám, že prostě funguje. Moje předchozí X201 měla sice touch-pad malý, ale plně funkční. Tahle zrůda je prostě nepoužitelná, a kdybych to byl býval věděl, ten notebook bych si i přes jeho jiné nesporné výhody nikdy nekoupil.

Šoku jsem se dočkal už po prvním spuštění s předinstalovaným OS. Při přejíždění prstem po touch-padu kurzor po obrazovce poskakoval, jako kdyby bylo zapnuté jakési snap-to-grid 5x5px. Další šoky jsem zažíval při pokusech o „tapping“ (kliknutí krátkým dotekem), při kterém kurzor obvykle odskočí kamsi o 10-20px mimo.

I přes mnoho updatů driverů UltraNav a tuny pokusů s nastavením, se mi nepodařilo tento díl zprovoznit do použitelné podoby. Je to sice nyní mnohem lepší, ale přesto nepoužitelné. Bohužel to dělá úplně všem a jedná se „vlastnost“, viz například tato diskuze:

Plus/minus

+ váha 1.5kg
+ výkon
+ vestavěný 3G modul (i když zvažuji, že pro příští notebook 3G vyškrtnu z must-have, protože stejně dobře funguje tethering z iPhone)
+ provedení ThinkPad (sice už to není, co bývalo, ale stále se jedná o velmi bytelný a kvalitní kousek)
+ IPS display (na rozdíl od předchozího zoufalého TN na X201)
+ klávesnice (chicklet jsem se bál, ale je naprosto v pohodě, navíc oproti X201 má lepší rozložení v oblasti Esc, F1, …)
+ podsvícení klávesnice (již nikdy notebook bez něj)
+ výbava (dockovací stanice součástí dodávky, RJ-45, VGA, USB 3.0, mini-DisplayPort, …)

– !!! ClickPad (viz výše) – Kdybych to byl býval vědět, notebook bych nekupoval.
– oštípané rohy – Ač si nejsem vědom žádných pádů, na víku i na šasi mám oštípané rohy plastů. Objevilo se mi to hned v začátcích používání notebooku, což je podezřelé, protože žádný z mých předchozích notebooků nikdy nijak orubaný nebyl.
– humpolácký napájecí adaptér (je to klasika, ale v dnešní době už bych čekal nějaký pokrok. Napájecí kabel je poměrně tlustý, klasicky se to omotává suchým zipem, ve srovnání s MBA-adaptéry bída.)

Po čem pokukuji

Notebook chystám vyměnit, jakmile mi ten správný model padne do oka. Tentokrát chci jít do trochu většího, protože na 12.5″ už při použití na klíně hůř vidím. Problém samozřejmě je, že to není ani tak o velikosti displaye, jako o jeho rozlišení, resp. DPI/nits/… a také o (ne)schopnosti OS přizpůsobit velikost prostředí displayi (nechápu dnešní 12″ FullHD, ale asi jsem holt slepej). Nejspíš to tedy bude 14″ (asi HD+), protože do 12.5″ jsem šel hlavně kvůli váze kolem 1.5kg, což už dnes není problém dostat i ve 14″. Určitě chci nový Haswell, kvůli výdrži baterií. Dilema je, jestli dát přednost „air“ provedení (např. Lenovo X1 Haswell, nebo MacBook Air), na které se nevejde VGA ani RJ-45, nebo jestli přežít trochu tlustší formát s plnou výbavou (např. Lenovo T440s). Každopádně už se neodvážím koupit notebook bez fyzického vyzkoušení (hlavně touch-padu). Zahlédl jsem i upoutávku na nové Lenovo Yoga Pro 2, nebo co to bylo, ale budu to muset podrobněji prozkoumat (když to není řada ThinkPad, bojím se o kvalitu provedení).

Zvažuji i možnost, že bych zrušil svůj hlavní desktop a pracoval i v práci na notebooku (samozřejmě přes dock). Trochu se toho ale ještě bojím.

Taky přemýšlím, jestli jít do Touch. Není mi blízká myšlenka, že bych měl display zamatlaný, na druhou stranu na takový iPhone šmatlám furt a není problém ho udržet čistý. Když jsem viděl některá videa, co dneska touch umí, moc mě to neoslovilo. Rozhodně to nevypadalo jako ovládání iPadu (třeba browser, scrollování, zoomování), ale spíš jako marná snaha přemluvit i386 k nějaké akci.

Pozvánka na MS Fest: Řízení SW projektů a vztahů se zákazníky

I letos jsem kývnul na pozvánku k účasti na MS Festu, který se tentokrát koná v Brně (12.+13.10.2013), Praze (2.+3.11.2013) a Ostravě (30.11+1.12.2013). V Praze to vypadá na tři přednášky, nejbližší je nicméně Brno, kde budu mít nejspíš přednášku jedinou – na téma „Řízení SW projektů a vztahů se zákazníky“.

Poprvé se pouštím do netechnických témat a rozhodně nečekejte, že bych Vás hodlal obšťastnit nějakým teoretickým výkladem o manažerských metodikách, nebo přesvědčovat o dokonalosti nějakého CRM.

Naopak počítám, že se podělím s ryze empirickými poznatky a praktickými zkušenostmi, které jsem za těch cca 16 let v oboru získal. Čím se dá zákazník získat a čím ztratit? Co umožňuje dostrkat projekt vývoje software k cíli a co je naopak byrokratická drbačka bez efektu?

S mým pohledem na věc můžete seznámit v Brně v neděli 13.10. od 14:00, v Praze v neděli 3.11. od 10:00, nebo v Ostravě 1.12. od 15:15.

Podrobnosti k ostatním dvěma pražským přednáškám později.

Mac: Uložení více listů Excelu do jednoho PDF souboru

  1. Vybrat listy, které chcete mít součástí PDF pomocí Cmd + Click.
  2. Tisk (Cmd + P).
  3. PDF / Save PDF… (ponechat vybráno Active Sheets)

Na rozdíl od volby „Entire Workbook“, která uloží každý list jako samostatné PDF, tímto postupem získáme jedno PDF se všemi listy.

SQL: Jsou dvě data (small)datetime ze stejného dne?

Potíž je v tom, že typ (small)datetime obsahuje mimo údaje data i čas. Můžeme samozřejmě zařídit, aby naše záznamy měly tento čas 00:00, ale stejně občas na tento problém narazíme.

Měli bychom rozlišit dvě situace, porovnávání s pevným dnem, nebo hledání shod ve variabilních datech.

Hledání shod ve variabilních datech

Jsme zde v situaci, kdy obě porovnávané složky jsou variabilní, u obou se musíme vypořádat s ignorováním složky dne.

SQL Server 2008 a novější verze mají datový typ date. Pokud tedy nejsme zrovna na nějaké pravěké verzi SQL, ukazuje se jako nejrychlejší (ač možná překvapivě) tato konverze:

SELECT MyColumn FROM MyTable
	WHERE CONVERT(date, DateColumn1) = CONVERT(date, DateColumn2)

Pro starší verze SQL serveru je použitelných několik o dost méně výhodných (pomalejších) podob. Protože SQL 2005 a starší již dnes považuji za pravěk, nebudu již rozebírat jejich výhody/nevýhody a rychlost:

...
WHERE
   (YEAR(Datum1) = YEAR(Datum2)
   AND (MONTH(Datum1) = MONTH(Datum2)
   AND (DAY(Datum1) = DAY(Datum2)

WHERE 
   (YEAR(Datum1) = YEAR(Datum2))
   AND (DATEPART(dayofyear, Datum1) = DATEPART(dayofyear, Datum2))

WHERE CONVERT(varchar(10), Datum1, 101) = CONVERT(varchar(10), Datum2, 101)

WHERE FLOOR(CONVERT(float, Datum1)) = FLOOR(CONVERT(float, Datum2))

Porovnání s pevným dnem

Trochu jiná situace nastává v okamžiku, kdy jeden z údajů je pevný. Například hledáme záznamy založené určitého dne

DECLARE @DateFilter smalldatetime
SET @DateFilter = '20090305'

SELECT Created FROM MyTable
	WHERE
		(Created >= @DateFilter)
		AND (Created < DATEADD(day, 1, @DateFilter))

…zde s výhodou celý problém převádíme na porovnávání s konstantami, a pokud máme k dispozici vhodný index, dokonce na operaci Index Seek.

Kupodivu úplně identický execution plan (Index Seek) a se stejnými časy dotazu (testováno na obrovských datech na MS SQL Serveru 2012) dostáváme i pro podobu:

DECLARE @DateFilter date
SET @DateFilter = '20090305'

SELECT Created FROM MyTable
	WHERE CONVERT(date, Created) = @DateFilter

Windows Live Writer: Český spellchecker do anglické verze

Mám nainstalovanou anglickou verzi Windows Essentials 2012 (resp. Windows Live Writer z nich) a nejprve jsem se neznaje situace smířil s tím, že spellchecker je v tomto podružném produktu jen anglický. Omylem jsem ale na druhém počítači nainstaloval českou edici a byl pak mile překvapen, že mi to kontroluje češtinu.

Stačila pak již jen chvilka pátrání, abych zjistil jak češtinu dostat do anglické verze Windows Live Writeru:

  1. Spusťte „langselector“ (ať už Win+R, nebo přes vyhledávací box v menu Start).
  2. Ten slouží k přepnutí uživatelského rozhraní Windows Essentials do jiného jazyka, což způsobí i download a instalaci příslušného jazyka, pokud ho nemáte.
  3. Zvolte tedy „Čeština“ a přepněte celé Windows Essentials do češtiny.
  4. Spusťte Windows Live Writer a přepněte si v Nastavení spellchecker na Češtinu.
  5. Spusťte „langselector“ znovu a přepněte Windows Essentials zpět do angličtiny.
  6. …čeština už vám v nabídce spellcheckeru zůstane.

Nejspíš prostě samotný fakt doinstalace dalšího jazyka přepnutím na něj doplní nabídku spellcheckerů a bod 4 je možné pak udělat kdykoliv, to jsem neřešil.

Proč to nějak nesdílí spellchecker s instalovanými Office neřeším. :-)

Windows Live Writer: Jak na zmršené téma (blog template, motiv)

 

Windows Live Writer se pokouší vylepšit dojem WYSIWYG editace „stažením“ tématu. Přesněji řečeno vystaví na Váš blog na chvilku nový článek a ze získaného HTML a CSS se pokouší sestavit vlastní template. Má na to vlastní logiku, která ne úplně vždy dobře zafunguje.

V případě tohoto blogu to například dopadlo takto:

image

Windows Live Writer se totiž snaží v získaném HTML detekovat pozici titulku a těla, přičemž chce dále osekat HTML o hlavičku a další přebytečné věci, aby zbyl jenom ten titulek a tělo. V případě, že máte strukturovanější HTML nebo používáte-li dokonce „moderní“ elementy jako header či article (které třeba mé WordPress Twenty Twelve theme má), Windows Live Writer se těchto vymožeností v HTML kódu své šablony zbaví a na výsledné HTML aplikuje všechny původní styly (do nich zdá se nezasahuje).

Naštěstí se dá osekaná podoba HTML na disku najít a řešení je pak většinou snadné. Dalo by se sice upravit ono HTML, ale bylo by to poněkud lokální řešení. V mém případě nebyl problém přidat do CSS pravidel blogu taková, která se naaplikují ořezanou HTML šablonu Windows Live Writeru a výsledný dojem WYSIWYG editoru vylepší:

image

Windows Live Writer navíc používá jako HTML-engine jakýsi pravěk typu IE5 (hlouběji jsem nezkoumal), takže se dají použít i některé CSS hacky a triky pro cílení na tyto retro-technologie.

Viz též Johan Driessen: Fixing the blog preview theme in Windows Live Writer.