Author Archives: Robert Haken

avatar Neznámé

About Robert Haken

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

Vybírám notebooka III. – Objednal jsem si T440s

Dnes jsem si objednal Lenovo ThinkPad T440s 20AQ0066 :

  • 14.0 FHD 1920x1080mat IPS with Touch
  • i7-4600U@2.1GHz
  • 8 GB RAM PC3-12800 DDR3L SDRAM SODIM
  • 512 SSD SATA3
  • Intel HD 4400
  • Int7260 2x2AC+BT4
  • 720p HD Camera for Touch
  • WWAN (M.2.) Integrated mobile broadband (Ericsson N5321)
  • Fingerprint Reader
  • backlit keyboard
  • 2x TP Bat 3cell Li-Polymer 23.2Wh
  • Windows 8 Pro64 Czech/EN
  • vPro, noDVD, No M.2 Memory
  • 3 YEAR ON-SITE
  • ThinkPad Pro Dock (ten už dorazil)

…dorazit by měl začátkem prosince, napíšu pak první dojmy.

The Ultimate Agile Planning Handbook–zajímavý e-book zdarma od Teleriku

Telerik v rámci propagace svého produktu TeamPulse vydal a zdarma ke stažení nabízí e-book The Ultimate Agile Planning Handbook, knížku o plánování, odhadování, velocitách a podobých věcech v agilním pojetí vývoje.

Přímý link ke stažení PDF.

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

Slides z mé nedělní přednášky pro MS Fest Praha 2013 (jiná podoba než MS Fest Brno 2013 před měsícem):

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

Zkušenosti s přechodem na TFS a agilní techniky [MS Fest Praha 2013]

Slides z mé nedělní přednášky pro MS Fest Praha 2013:

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

IIS Express: Managed Pipeline Mode – Classic

Pokud je Vaše aplikace psána pro Classic Managed Pipeline Mode, potom při standardním spuštění nad IIS Expressem dostanete krásnou chybku:

HTTP Error 500.22 – Internal Server Error

An ASP.NET setting has been detected that does not apply in Integrated managed pipeline mode.

image

Mě to potkalo u přechodu z VS2012 (kde jsem aplikaci pouštěl nad vestavěným Cassini) na Visual Studio 2013, kde je již jenom IIS Express. Přepínač je lehce ukryt, najdete ho v Properties projektu webové aplikace:

image

SQL DMV: Most Expensive Queries, Missing Indexes

Kolem Database Management Views a jejich využití pro SQL performance diagnostics toho napsáno tuny, ale právě tato kvanta různých zdrojů uvádějí spousty různě kvalitních podob dotazu pro Most Expensive Queries.

Nebaví mě pokaždé hledat ten správný, nebo ho dokonce vymýšlet, proto si zde archivuji mojí oblíbenou podobu:

-- Most expensive queries
SELECT TOP 20
	SUBSTRING(qt.TEXT, (qs.statement_start_offset/2)+1,
		((CASE qs.statement_end_offset
			WHEN -1 THEN DATALENGTH(qt.TEXT)
			ELSE qs.statement_end_offset
			END - qs.statement_start_offset)/2)+1)
		AS query_text,
    db.name AS [db_name],
    qs.total_elapsed_time/1000 AS total_elapsed_time_ms,
    qs.total_elapsed_time/qs.execution_count/1000 AS average_elapsed_time_ms,
    qs.last_elapsed_time/1000 AS last_elapsed_time_ms,
    qs.execution_count,
    qs.total_worker_time/1000 AS total_worker_time_ms,
    qs.total_worker_time/qs.execution_count/1000 AS average_worker_time_ms,
    qs.last_worker_time/1000 AS last_worker_time_ms,
    qs.last_execution_time,
    qs.total_logical_reads,
	qs.last_logical_reads,
    qs.total_logical_writes,
	qs.last_logical_writes
    --qp.query_plan
    FROM sys.dm_exec_query_stats qs
        CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) qt
        CROSS APPLY sys.dm_exec_query_plan(qs.plan_handle) qp
        LEFT JOIN sys.databases db ON (qt.dbid = db.database_id)
    -- WHERE db.name='DatabaseName'
    -- ORDER BY qs.total_logical_reads DESC
    -- ORDER BY qs.total_logical_writes DESC
    -- ORDER BY qs.last_worker_time DESC -- CPU time (active)
    -- ORDER BY qs.last_elapsed_time DESC -- clock time (včetně čekání na locky, atp.)
    -- ORDER BY qs.total_worker_time DESC
	ORDER BY qs.total_elapsed_time DESC

…a rovnou přidávám už méně používaný dotaz pro chybějící indexy (varuji před zkratkovitou úvahou, že tyto indexy je nutné přidat):

SELECT
	mid.statement
	  ,migs.avg_total_user_cost * (migs.avg_user_impact / 100.0) * (migs.user_seeks + migs.user_scans) AS improvement_measure,OBJECT_NAME(mid.Object_id),
	  'CREATE INDEX [missing_index_' + CONVERT (VARCHAR, mig.index_group_handle) + '_' + CONVERT (VARCHAR, mid.index_handle)
	  + '_' + LEFT (PARSENAME(mid.statement, 1), 32) + ']'
	  + ' ON ' + mid.statement
	  + ' (' + ISNULL (mid.equality_columns,'')
		+ CASE WHEN mid.equality_columns IS NOT NULL AND mid.inequality_columns IS NOT NULL THEN ',' ELSE '' END
		+ ISNULL (mid.inequality_columns, '')
	  + ')'
	  + ISNULL (' INCLUDE (' + mid.included_columns + ')', '') AS create_index_statement,
	  migs.*, mid.database_id, mid.[object_id]
	FROM sys.dm_db_missing_index_groups mig
		INNER JOIN sys.dm_db_missing_index_group_stats migs ON migs.group_handle = mig.index_group_handle
		INNER JOIN sys.dm_db_missing_index_details mid ON mig.index_handle = mid.index_handle
	WHERE migs.avg_total_user_cost * (migs.avg_user_impact / 100.0) * (migs.user_seeks + migs.user_scans) > 10
	ORDER BY migs.avg_total_user_cost * migs.avg_user_impact * (migs.user_seeks + migs.user_scans) DESC

Vybírám notebooka II. – ThinkPad T440s + shortlist

Jak jsem již popisoval v předchozím článku, vybírám si nového notebooka, přesněji řečeno ultrabooka, jako náhradu za můj stávající Lenovo ThinkPad X230 (zkušenosti s ním už jsem také popisoval, obzvláště tragický clickpad).

Aktuální kritéria se vyvíjejí takto:

    • 13,3″-14,5″ IPS – snížil jsem hranici na 13.3″, byť stále preferuji větší display kolem 14,1″
    • váha < 1,7 kg, výška <21mm (Ultrabook)
    • CPU Haswell i7, 8GB RAM, SSD 256 GB
    • podsvícená klávesnice (ideálně s rozložením ála X230 – velký Enter, atp.)
    • ten zatracený touchpad, kdyby tak někdo uměl, to co má MacBook Air
    • dockovatelnost, fingerprint-reader, business-durable, ideálně plochý display s gorilla-glass ála MacBook Air

Shortlist

Shortlist se mi prozatím vykrystalizoval takto:

  1. Lenovo ThinkPad T440s – viz níž, byl jsem se na něj podívat
  2. Dell Lattitude 14 Series 7000 (E7440) – vypadá jako solidní alternativa, i když svého času jsme konvertovali od Dellu k Lenovo (na poslední notebook jsme čekali asi 5 měsíců od objednání a uhrazení, což mě na dlouho odradilo),
  3. Lenovo ThinkPad X1 Carbon 2 – zatím se o něm ví jenom to, že bude nejdříve v lednu 2014. Samozřejmě lze počítat s Haswell CPU, ale jinak je to velká neznámá. Líbí se mi „air“ provedení, ale odrazují mě tam dvě komplikace – 1. v potřebné výbavě se dostanu nejspíš nad 40 000 Kč a poslední, co by se mi chtělo, je odepisovat 4 roky; 2. nemá nativní dokovatelnost, ale jen USB 3.0 port-replicator, což je dost opruz (nenabíjí, grafika prý laguje, atp.)
  4. bočním okem stále sleduji, jestli se někde neobjeví nějaký další trhák:
    • Lenovo Yoga 2 Pro – příliš vysoké rozlišení, nedokovatelný, malý display?
    • Dell XPS 13 – ten protáčecí display ve mě nebudí důvěru, malý display?
    • Samsung ATIV Book 9 Plus – příliš vysoké rozlišení, malý display,
    • Acer Aspire S7 – nevěřím, že by mě Acer uspokojil kvalitou provedení a servisu
    • Asus Zenbook – ten kruhově broušený+leštěný hliník, nebo co to je, to je hnus,

Dilema

S čím se neumím vypořádat je rozlišení. Všichni výrobci tlačí na maximální rozlišení a verze s nižšími rozlišeními jsou často podřadnějšího ražení. Moc to nechápu, protože už na svém stávajícím 12.5″ X230 považuji 1366x768px za hranici přijatelné čitelnosti v poloze „na klíně“ (u televize, vlak, bus, atp.). Nikdo mi zatím nevymluvil, že by se Windows umělo důstojně v desktop-režimu vypořádat se škálováním UI. Mám trochu obavu, jestli na tom FHD něco uvidím, a to ani nemluvím o různých Samsung, Yoga, Retina, co mají rozlišení úplně jinde. Modely HD+ jsou bohužel okrajová skupina.

Lenovo ThinkPad T440s

Dneska jsem se byl podívat v showroomu na Harfě na Lenovo ThinkPad T440s. Zajímal jsem se hlavně o nový click-pad, protože jinak považuji tento notebook za přirozeného nástupce svého X230, pokud motivaci shrnu jako „stejná váha, trochu větší display, nové technologie“. Žiletkové ultrabooky jsou sice super, ale pokud poměrně často prezentuji přes VGA, pokud zvažuji zrušit desktop a potřebuji tedy dokování, pak trochu portovatější T440s, popř. Dell E7440, jsou myslím tím rozumným cílem pro mě.

Zpátky k cíli mé cesty – click-pad. Shrnu to slovy – není to zázrak, ale ani to není taková katastrofa, jak jsem se bál. Rozhodně se to na první dojem tvářilo o dost použitelněji než pupínkovaný click-pad mé X230. Je to hladké, je to velké, pro klikání to neklade tak velký protiodpor (to mě mimochodem překvapilo na X1 Carbonu, co tam stál vedle, že potřebuje taky poměrně velkou sílu na klik). Hlučí to. Při tap to drnčí. Rozhodně to není ideál, ale na rozdíl od X230 se s tím asi dá žít.

Jinak ta T440s se bohužel zatím prodává jen jako i5, na showroomu navíc měli dost chudý model bez touch, takže to mělo klasický display zapuštěný do rámečku. Přivázané na Kensington-lock se dost špatně posuzovala váha a provedení, ale budilo to dojem velmi lehkého až dutého stroje (oproti X230, které zase při potěžkání vypadá jako poměrně koncentrovaná věc, i když papírově lehčí). Celkově to vypadalo, asi i díky té nové šedé, plastověji a křehčeji, než jsem čekal, ale je to snad jen první dojem.

(…mimochodem nechápu taktiku Lenovo a Dell, že obě firmy začínají prodej T440s i E7440 nejslabšími verzemi, když v první lekci snad každého pojetí marketingu je řečeno, že jako první je potřeba slíznout smetanu od nedočkavců prodejem nejdražších verzí a až potom nasytit masy.)

Závěr

Budu čekat na T440s ve výbavě, kterou potřebuji (i7, 8GB, SSD, touch) a mezi tím se pokusím ještě někde prohlédnout ten Dell E7440. Budu taky sledovat, jestli se neobjeví specifikace nového X1 Carbon 2, abych o něco nepřišel. Aktuálně to ale vypadá, že zvítězí i trocha netrpělivosti a až se objeví to správné T440s, tak bude moje.

Jak mě dostalo UAC File System Virtualization: Virtual Store

Člověk se pořád učí. Dnes mě potkala lekce obzvláště těžká.

Na svých desktopech jsem vždy vypínal UAC, jeho zákoutí jsou mi tedy skryta a dosud mi to nechybělo. Dnes jsem narazil na něco, co mi chvíli dávalo zabrat.

Dohodl jsem se nedávno s účetní firmou na převzetí našeho účetnictví s tím, že ho povedou přes vzdálenou plochu na našem prostředí (Příjemně mě překvapilo, že jim to přišlo jako běžný požadavek.) Minulý týden jsme tedy nainstalovali čerstvé Virtual PC s Windows 7 a přesunul jsem na něj ze svého desktopu instalaci účetního systému Money S3. Účetní firmě jsme založili doménový účet, dali práva vzdáleného přístupu a vše jsem si vyzkoušel, když jsem se přes jejich účet na virtuál vzdáleně přihlásil a do účetnictví nastavil dovolené zaměstnanců za září, aby mohla účetní zpracovat mzdy. Během týdne jsem byl dost rozlítaný, takže mi účetní jen poslala mailem výstup ze zpracovaných mezd, vše jim fungovalo.

Dnes jsem si našel konečně čas, abych do Money naimportoval z našeho systému Goran vystavené faktury za září a připravil tak pro účetní část podkladů pro zpracování DPH. Přihlásil jsem se vzdáleně, provedl import a zaúčtování faktur, všechno v pohodě. Nakonec jsem si chtěl prohlédnout, jak účetní zpracovala mzdy.

Hledám marně. Mzdy tam nejsou. Chvíli přemýšlím, jestli to mohli nějak zpracovávat u sebe, nebo co se to děje. Zkoumám dál, v účetnictví nejsou ani ty dovolené, co jsem tam sám zadal. Panika, zmatek. Co se to mohlo stát, celé účetnictví vypadá tak, jako bych ho zrovna zmigroval ze svého desktopu. Nejsou v něm ani dovolené, ani mzdy, jen ty dnes importované faktury. Volám kolegovi, jestli nedělal nějaký restore staršího snapshotu VPC, nebo jestli netuší, co se to tam děje. Netuší.

Peklo, jak mám takovému stroji svěřit účetnictví? Co to tam hnije? Nechávám vypsat na počítači všechny soubory změněné po migraci účetnictví z desktopu, abych se alespoň trochu chytil, kdy se tam co dělo. Ve výsledcích jsem mj. zahlédl toto:

C:\Users\haken\AppData\Local\VirtualStore\Program Files\Money\Data\...

WTF? Co to je? Začíná mi to spínat…

Virtual Store

Nikdy předtím jsem o tom neslyšel (kupodivu). Nicméně ve zkratce řešeno je to mechanizmus ve Windows, který má sloužit pro podporu funkčnosti zastaralých legacy-aplikací, a když zjistí, že se aplikace pokouší zapisovat do Program Files, tak místo aby aplikaci vykopnul s odepřením přístupu, tak namapuje požadované soubory z profilu uživatele (VirtualStore). Stane se tak, že každý uživatel má vlastní podobu příslušné složky z Program Files. Ve finále jsem tedy měl v jednom uživatelském profilu Money s dovolenými a mzdami, v druhém pak s importovanými fakturami.

Jak to vypnout?

Popravdě řečeno jsem příliš detailně nepátral, jak to vypnout, nemám dneska chuť se s tím detailně drbat. U mě postačilo nastavit uživatelům Read+Write práva na příslušnou složku v Program Files a vypnout UAC. Vypadalo to, že samotná práva nestačí, přesněji řečeno zřejmě stačí, pokud jsou nastavena běžným uživatelům/skupinám, nikoliv však Administrators (tam administrátorský přístup právě hlídá ještě UAC). Administrátorům to vytvářelo VirtualStore, dokud bylo zapnuté UAC.

…no nic, složku v Program Files jsem přepsal verzí s dovolenými a mzdami a jdu naimportovat ty faktury znovu.

Visual Studio 2013 RTM ke stažení z MSDN

Visual Studio 2013 je ke stažení z MSDN, není co dodat.

Vybírám notebooka – I.

Must-have

  • 13,5″-14,5″, kvalitní display (ideálně IPS)
  • váha < 1,7kg
  • CPU Haswell – kvůli výdrži baterií, očekávám tak 8hod+
  • SSD (nebo HDD vyměnitelný za SSD)
  • 6-10 GB RAM, nejspíš 8 GB (paměť kupodivu dost žere baterie)
  • dockovatelnost (minimálně přes USB dock)
  • durable, business-targeted (tj. nechci žádný consumer-targeted low-cost)
  • podsvícená klávesnice
  • použitelný touch-pad (bohužel není samozřejmost)

Nice-to-have

  • 3G modem (poslední mé dva notebooky Lenovo TP X2xx ho měly, ale asi se dá žít i s tetheringem)
  • touch (ještě nejsem rozhodnut, asi není podmínkou)
  • fingerprint-reader
  • dostupnost do konce roku 2013 (nespěchám, ale zase nechci čekat věčně)
  • docela rád bych se vešel do 40 000 Kč bez DPH (VO), ať nemusím řešit odpisy

Nepotřebuji

  • track-point
  • DVD
  • vysoké rozlišení (chci na to vidět, když ho mám na klíně a Windows nejsou zrovna špička adaptability, co se scalingu UI týče), optimum pro mě nejspíš bude HD+ (1600x900px)

Co jsem zatím shromáždil

  • Lenovo se asi rozhodlo, že své jinak skvělé stroje ThinkPad pohřbí nepoužitelnými click-pady. Nový ThinkPad T440s, v který vkládám velké naděje, vypadá, že má ohavný click-pad se zdvihem 1mm. Což bude nejspíš strašný, musím to dojít někam vyzkoušet.
  • Lenovo X1 Carbon zatím nemá ohlášenu Hasswell verzi (předpokládá se koncem roku) a trochu doufám, že to bude můj únik od T440s, pokud na něm něco nezmrví. Zkoušel jsem jeho click-pad a ač to má daleko k ideálu (MBA), tak je to alespoň hladké a docela rozumně clickací jen v rozích (i když majitel X1 na to nadával).
  • Ještě chci mrknout na Lenovo Yoga 2 Pro, nebo něco takového. Jsem docela malůvkář a docela mě láká představa, že bych občas něco skicnul rovnou na tablet, ale asi je to sci-fi.
  • Dell má v Haswellu aktuálně zřejmě jen 12″-12,5″ modely. Uvidíme, co ještě přijde. Koukám teď, že by to měla být E7440 jako 14″ s Haswellem, budu muset prozkoumat.
  • Mac Book Air 13″ 2013 má skvělý touchpad a i když má jen dobrý TN display, ve spojení s OS X je to skvělý stroj (líbí se mi třeba i to překrytí displaye sklem). Bohužel potřebuji stroj pro Windows a tam už to zřejmě s MBA nebude tak žhavé. Když pominu trochu problematické rozložení klávesnice, na které by se asi dalo zvyknout, tak prý pro Windows nemá Apple moc dobré drivery. Výsledkem pak třeba je, že baterie výrazně méně vydrží. (BTW: Za skvělé považuji dvouprstý right-click a scrollování. Asi se budu pokoušet něco takového mít i pro Windows. )
  • SONY, Fujitsu, Samsung , Toshiba a možná ASUS jsou pro mě značky ve druhé skupině, kterou budu muset teprve prozkoumat. Doufal jsem, že to nebude potřeba, a že bude na výběr Lenovo/Dell.
  • ACER, GIGABYTE, MSI, HP jsem zatím vyškrtnul jako značky, kterým bych se pocitově raději vyhnul.

Budu průběžně aktualizovat, jako svůj záznamník, a kdyby někdo řešil něco podobného. Vítám jakákoliv doporučení…