sp_MSForeachDB – Vykonání SQL příkazů pro každou DB

Microsoft SQL Server má nedokumentovanou uloženou proceduru, která usnadní vykonání stejného SQL příkazu pro více DB. Např. nalezení CLR assemblies přes všechny DB:

sp_MSForeachDB 'use [?]; SELECT DB_NAME(), * FROM sys.assemblies WHERE name LIKE ''Havit%'';'

Pokud chceme příkaz vykonat s výjimkou některých DB, můžeme použít IF:

sp_MSForeach 'IF ? NOT IN (''master'', ''msdb'', ''tempdb'', ''model'') USE [?]; -- atp'

(Pozor, že pokud dáte pod IF jenom USE, tak se Vám následný příkaz vykoná pro aktuální DB několikrát, protože neproběhne jenom přepnutí USE na jinou DB.)

ASP.NET Developer – hledáme nového kolegu na full-time

Do našeho týmu hledáme dalšího kolegu na pozici “ASP.NET developer”.

Požadujeme:

  • schopnost produkovat kvalitu, s citem pro potřeby zákazníka a s osobním uspokojením nad výsledky práce,
  • pokročilou znalost C#, ASP.NET WebForms a/nebo MVC, HTML, CSS/LESS, webových technologií, OOP,
  • slušné znalosti databázové problematiky (návrh relační DB, MSSQL, T-SQL),
  • důležité jsou osobnostní kvality, otevřená mysl a schopnost učit se novým věcem,
  • znalost Entity Frameworku může být výhodou, není však podmínkou,
  • občas se může hodit aktivní angličtina, cit pro grafiku a podobné bonusové dovednosti,
  • orientace v client-side typu jQuery, AngularJS, atp. potěší.

Nabízíme:

  • přátelské prostředí střední pracovní skupiny, kde se především snažíme, aby práce pro nás byla zábavou,
  • pohodový pracovní režim, kde Vám neprudí 3x denně u stolu obchodník, že zrovna tohle musí být okamžitě hotové, nejpozději hned,
  • relativně volnou pracovní dobu, kde jsou přesčasy naprostou výjimkou a je potřeba podržet kolegu, který domluvil něco, co neměl,
  • práci na zajímavých projektech (především zakázkový vývoj webových aplikací, někdy též vlastní projekty Goran a business.center.cz), neděláme moc webové prezentace,
  • příjemnou vývojářskou práci na vícevrstvých aplikacích, s agilním přístupem, s nejnovějším vybavením (MSDN Premium, VS2013, SQL2014, NET4.5, SSD, 2xLCD, …), s využitím našich knihoven a generátorů kódu, kdy se budete moci věnovat opravdu tvorbě aplikace nad vygenerovaným objektovým modelem, a nebudete trávit dny datlováním stále stejných věcí dokola (přístupů do DB, atp. atp.),
  • odborný rozvoj v kolektivu MVP, MCT, MCPD, MCP kolegů ;-)
  • možnost aktivně se účastnit technologického směřování celého týmu (aktuálně např. WebForms vs. MVC, vlastní ORM vs. EntityFramework, testability, ASP.NET vNext, …)
  • každý rok týdenní teambuilding na námořní plachetnici, na horách, nebo obdobný (snad to znovu vyjde) ;-)
  • nadstandardní lékařská péče pro všechny naše pracovníky,
  • volitelné lekce angličtiny na pracovišti.

Preferujeme plný úvazek, resp. exkluzivní spolupráci (snížení úvazku z důvodu studia či péče o děti se nebráníme). Sedíme kousek od Budějovické. Nástup možný ihned, pokud nás však zaujmete, jsme ochotní i počkat po výpovědní dobu dosavadního zaměstnání.

Nekuřácké pracoviště, nekuřák podmínkou.

Zájemci mě kontaktujte s profesními informacemi o sobě na haken_zavinac_havit.cz.

Navrhněte nejraději rovnou dva nebo tři termíny v nejbližší době, kdy byste se mohli dostavit k osobnímu setkání. Pošlete:

  • životopis,
  • ukázku svého zdrojového kódu (stačí jeden/dva soubory),
  • popř. též odkazy na projekty, kde jste se podstatným způsobem podíleli na vývoji (pokud jsou veřejně dostupné).

Dokud je zde zveřejněno, náš zájem trvá. Žádná formální kola výběrového řízení neorganizujeme, prostě dokud nenajdeme vhodného kandidáta, tak hledáme a vybíráme. Aktuálně hledáme až tři/čtyři nové lidi, takže můžete přijít i jako tým ;-).

HTTP Redirect nastavovaný z IIS Manageru umí zavařit

Dneska ráno nás v práci uvítal critical ticket v HelpDesku, jednomu ze zákazníků “nešel web a všechno, co po přihlášení zkusil, vedlo na homepage”. Hned se nám spojilo, že to je web, na který kolega nastavoval přesměrování HTTP requestů na HTTPS a zkoušel si různé způsoby, jak to udělat.

Jeden z testů, které udělal, byl přes <httpRedirect> (HTTP Redirection). Pak od něj ale upustil a redirect nastavený přes IIS Manager zase vypnul.

Souhra okolností chtěla, aby toto zapnutí a vypnutí způsobilo poměrně velký problém.

Po IIS Manageru zůstalo v hlavním ~/web.configu webu toto:

<system.webServer>
		<httpRedirect enabled="false" destination="https://chester.xerox.cz" httpResponseStatus="Permanent" />
</system.webServer>

To by samo o sobě nevadilo. Peklo však nastalo v okamžiku, kdy se to potkalo s web.config soubory v podsložkách, v nichž byla různá specifická přesměrování od vývojářů:

<system.webServer>
		<httpRedirect enabled="true" exactDestination="true">
			<add wildcard="/Old-URL.aspx" destination="New-URL.aspx"/>
			...
		</httpRedirect>
</system.webServer>

Když se to celé sečetlo, tak ve všech takových podsložkách se reaktivoval disablovaný redirect z rootového web.configu a veškeré requesty na resources v dané složce přesměrovával.

...další důvod proč nemám rád, když IIS Manager modifikuje web.config. Hlavním je ten, že při nasazování chci web.config přepisovat vždy celý novou verzí a jakékoliv production-specific volby z něj mít vyextrahovány třeba pomocí atributu configSource.

Jak zaregistrovat příkaz pro kontextové menu Windows Exploreru (např. Notepad2)

Řeším to tak akorát v četnosti, kdy právě zapomenu, jak se to přesně dělá. Tedy pro připomenutí, stačí do registry přidat:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell\Notepad2]

[HKEY_CLASSES_ROOT\*\shell\Notepad2\command]
@=&quot;\&quot;C:\\Program Files\\Notepad2\\Notepad2.exe\&quot; \&quot;%1\&quot;&quot;

...název klíče odpovídá textu položky v menu.

Vývojářské nástroje a software, který používám [Robert Haken, 06/2014]

Protože velmi často na kurzech i jinde dostávám otázky na software (nejenom vývojářský), který používám, sumarizoval jsem seznam toho, co mám na svých počítačích nainstalováno. Předesílám, že jsem za těch 20 let s počítačem přešel od pojetí maximalisty, který měl na PC nainstalováno kde-co (s přispěním AltaVisty), na přístup minimalistický.

UPDATE: Toto je novější verze předchozího seznamu z 09/2013. Vzniká při příležitosti vynucené reinstalace mého počítače, a tedy rovnou aktualizuji seznam i pro sebe, abych měl příště check-list, co všechno mám instalovat. Podstatné změny oproti předchozí verzi jsou označeny červeně.

Vývojářská platforma

  • Microsoft Visual Studio Ultimate – Základem veškeré vývojářské práce je samozřejmě Visual Studio, nyní už nejenom pro kódování, ale i jako klient k TFS (pro mě raději než web, i když ergonomie UI je děs).
  • Team Foundation Server
  • SQL Server – Management Studio, Profiler, Data Tuning Advisor – Pro běžnou práci s SQL si vystačím s Microsoft nástroji, pro schéma DB využívám Database Diagrams. Žádné další IDE či designer třetí strany nepoužívám.

Visual Studio Add-Ins/Extensions

  • StyleCop (Free) – Doplněk pro kontrolu stylové čistoty zdrojových kódů. Hlídá názvové konvence, formátování kódu a spoustu dalšího. U nás ho máme jako součást continuous integration buildů a jakákoliv nesrovnalost failuje build. Taková automated před-fáze code-review.
  • Web Essentials od Madse Kristensena (Free) – Must-have každého webového vývojáře.
  • Resharper od JetBrains (Paid) – Za nezbytný jsem ho považoval v dobách VS.NET, od VS2005-2010 jsem nepoužíval, nyní se k němu vracím pro pár funkcí, které mi usnadňují život. Využívám v podstatě hlavně vyhledávání (Ctrl[+Shift]+T) a navigaci v kódu.
  • Productivity Power Tools (Free) – V podstatě se jedná o proof of concept pro nové funkce do Visual Studia. Jednak to, co Microsoft nestihl do releasu dostat a to, co testuje na uživatelých, jestli by se hodilo do releasu dalšího.
  • Team Foundation Server Power Tools (Free) – V podstatě z té sady používám jen Windows Shell Extensions a pár drobotin ze skupiny Team Explorer Enhancements.
  • HAVIT Visual Studio Extensions (Private) – Drobné pomůcky z domácí dílny, např. – Surround member with named region (Ctrl+K,R), Collapse all #regions (Ctrl+-), Expand all outlining (Ctrl++), Open local resources file (F6), Check Build, Run Business Layer Generator, atp.

Vývojářské nástroje

  • Fiddler od Teleriku (Free) – Zachytávání a analýza HTTP(S) komunikace na straně klienta.
  • RedGate .NET Developer Bundle, jmenovitě pak  
          • .NET Reflector (Paid) – Nástroj, který umožňuje prohlížet a analyzovat zdrojový kód jednotlivých assembly, včetně samotného .NET Frameworku (decompiler). Díky MVP licenci je pro mě stále jedničkou. Jako free alternativa se nabízejí např. ILSpy nebo dotPeek od JetBrains.
          • ANTS Performance Profiler od RedGate (Paid) – I když performance-profiler je vestavěný ve Visual Studiu, ANTS Performance Profiler je pro mě jedničkou pro své přehledné uživatelské rozhraní.
  • RedGate SQL Toolbelt, jmenovitě pak 
    • SQL Compare a SQL Data Compare od RedGate (Paid) – Nástroj na porovnání schématu/dat mezi dvěma databázemi a jejich synchronizaci. Používám pro deployment nových verzí aplikací.
    • SQL Prompt od RedGate (Paid) – vylepšené intellisense pro SQL Server Management Studio, zejména umí nabízet podmínky do JOINů dle existujících FKs
  • TortoiseSVN (Free) – SVN jsme používali do roku 2012 jako hlavní nástroj pro source-code-management. Po migraci na TFS používám pouze pro přístup k cizím SVN a pro neaktivní archivované projekty.
  • WCAT a WCAT Extension pro Fiddler (Free) – Zátěžová zkouška webové aplikace. Přes Fiddlera lze označit requesty připravené proklikáním z browseru a následně je přehrát jako WCAT stress test.
  • Browser F12 Developer Tools (Chrome/IE)
  • Windows Debugger (WinDbg) od Microsoftu (Free) – debugger. Používám zejména pro analýzu memory-dumpů. Pro .NET používám pscor4.dll rozšíření.
  • Debug Diagnostic Tool (DebugDiag) od Microsoftu (Free) – analýza memory dumpů (nejenom).

Základ desktopu

  • Windows 8.1 64-bit EN – S koupí Lenovo T440s jsem nakonec přešel na Windows 8.1, zejména kvůli lepší (přesto stále bídné) podpoře škálování UI při přecházení mezi různými režimy (panel/dock). Pracuji raději s anglickým prostředím.
      • StarDock Start8 (Paid) – Pro mě naprosto nezbytná pomůcka do doby, než Microsoft vrátí do Windows mini-Start. Nepoužívám na tom vlastně skoro nic jiného, než Search (Win + píšu), ale přesto to je základ mého soužití s Win8.x.
      • Windows Explorer – Pro veškerou práci se soubory používám základní Windows Explorer, obejdu se bez souborových manažerů ála Total Commander.
  • Microsoft Office EN - Outlook pro maily, kontakty a kalendář. Word, Excel. OneNote poměrně intenzivně na zápisky ze schůzek. Visio občas na nějaký ten diagram (za ideální ho nepovažuji, ale vhodnější jsem nenašel). PowerPoint na slides, které se snažím ve svých vystoupeních spíše omezovat. Dříve jsem používal Access s pár naklikanými formuláři pro editaci obsahu jedné DB, ale po skončení podpory .adp již není důvod. Publisher nepoužívám. Project jsem odsoudil do rubriky “kreslítko Gantt-chartů”, i když jsem mnoho marných pokusů přijít mu na chuť udělal.
  • Google Chrome – od jara 2013 můj primární browser. Roky jsem používal Internet Explorer s argumentací, že chci vidět weby tak, jak je vidí většina našich zákazníků. IE však svůj tržní podíl ztrácí, rozdíly renderování se zmenšují a Google Chrome si mě získal svojí jednoduchostí, rychlostí a synchronizacemi.
      • IE Tab Multi (Enhance) – Chrome Extension pro hostování IE v Chrome. Používám ve specifických scénářích (tisk, elektronický podpis, daňová přiznání, atp.)
  • 7Zip (Free) – Komprese/dekomprese. Používám skrze kontextové menu ve Windows Exploreru.
  • PDF Creator (Free) – Virtuální tiskárna s výstupem do PDF souboru.
  • XnView[MP] (Free) – Prohlížeč obrázků/fotek. Neorganizuji fotky (zatím?) do žádných knihoven a pracuji s nimi čistě souborově (organizováno do složek), XnView používám čistě jako výchozí prohlížeč obrázků s jejich otevíráním rovnou do režimu FullScreen, aktuálně jsem zkusil nainstalovat novější podobu XnViewMP. Posledního půl roku jsem místo toho používal IrfanView, ale ač ten je velmi rychlý, v pohodlnosti použití se XnView nevyrovnal.
  • Notepad2 (Free) – lepší Notepad. Nepoužívám příliš často a v podstatě opravdu jenom jako náhradu pomalého Notepadu, takže od toho nic moc nečekám, nic lepšího jsem nehledal. Moc se v něm ani nevyznám a nejspíš bych se bez něj obešel. Dříve jsem používal PSPad editor a musím uznat, že Notepad2 je pro mě subjektivně lepší (rychlejší, přehlednější a zcela nahrazuje výchozí Microsoftí Notepad). Ručně k tomu doplňují registraci do kontextového menu Windows Exploreru (shell).
  • Paint.NET (Free) – Editace obrázků. Nejsem žádný grafik, ani foto-geek. Tato jednoduchá napodobenina PhotoShopu mi na moje úkony bohatě dostačuje a jedinou slabinou je chybějící podpora formátu .PSD. Od foťáku mám licenci Photoshop Lite, ale nevyužívám ji. V mimořádných situacích sáhnu po GIMPu, ale trvale ho instalován nemám.
  • Total Commander (Paid) – Nepoužívám jako hlavní správce souborů, ale především jako FTP klienta. Využití u mě má i pro pár dalších scénářů (prohlížení velmi velkých souborů, porovnávání složek, atp.), nijak intenzivně ho však nevyužívám.
  • CrashPlan+ (Paid) – Automatické zálohování souborů do cloudu. Používám nejširší CrashPlan+ Family Unlimited plan pro počítače své a svých rodinných příslušníků. Nepoužívám dlouho, ale zatím jsem spokojen. Za asi $12/měsíc to na pozadí slízává soubory ze všech počítačů (včetně manželky MacOS) a zálohuje na cloud-storage poskytovatele služby.
  • Dropbox (Free) – Cloud storage. Nevyužívám příliš intenzivně, nemám ani stále spuštěno, ale občas se hodí, např. ke zpřístupnění souborů pro iOS. Mám i OneDrive a GoogleDrive, ale zatím obecně cloud-storage moc nevyužívám.
  • Adobe Reader, Combined Community Codec Pack

Užitečné maličkosti

  • Copy Path To Clipboard od Jgaa’s Internet (Free) – Přidá do kontextového menu Windows Exploreru ke každému souboru/složce volbu “Copy Path to Clipboard”.
  • Paste As File od Chrise Gingericha (Free?) – Přidá do kontextového menu Windows Exploreru volbu “Paste As File”. Používám občas v kombinaci s PrintScreen nebo OneNote Snipping Toolem na ukládání screenshotů do souboru.
  • AutoHotKey (Free) – Používám omezenou funkčnost, zato téměř stále. Používám své AltGr+V pro “Paste as plaintext” a dále máme ve firmě napsaný jednoduchý skriptík, který na klávesovou zkratku AltGr+A vygeneruje skrz klávesnici edit-stamp používaný při editaci WorkItems v TFS (popř. editaci čehokoliv jiného, jako třeba meeting-requestu) :

image

  • FileLocator Lite (Free) – Vyhledávání souborů na desktopu. Používám od dob Windows XP jako náhradu za standardní nefunkční vyhledávání souborů (ve Windows 2000 jsem problém nikdy neměl). Je docela rychlý a hlavně spolehlivý. Původně se jmenoval Agent Ransack.

Blogging, Publikování

  • WordPress.com (Paid) – HAVIT Knowledge Base běží jako hostovaný blog na WordPress.com, komerční sekce projektu WordPress.org. Předtím jsem používal šest let Community Server a udělal krátký marný pokus s BlogEngine.NET. Využívám služby, které vycházejí asi na $90/rok.
  • Windows Live Writer od Microsoftu (Free) – Publikování blog-postů z desktopu, off-line příprava postů. Aktuálně součást Windows Live Essentials a není jasné, jestli to Microsoft nezařízne. Jiný editor jsem ani nezkoušel. Pro WordPress.com jsem musel nastavení WLW trochu poladit – vypnout HTML-encoding titulků postů.
    • WLW SourceCode Plug-In pro WordPress.com od Riche Hewletta (Free) – Plug-in pro vkládání code-snipettů do postů Windows Live Writeru při publikování na WordPress.com. Žádný zázrak, ale lepší řešení jsem zatím neobjevil.
    • Insert Files Plug-In pro WLW od ScottIsAFool – Plug-in pro vkládání souborových příloh do blog-postů.
  • Camtasia Studio od TechSmith (Paid) – Nahrávání a střih screencastů.

Business Administration

  • Money S3 (Paid) – finanční účetnictví, mzdy
  • Datovka od CZ.NIC Labs (Free) – klient pro obsluhu Datové schránky
  • HAVIT Goran (Paid) – provozní agenda – timesheety, náklady, plánování, fakturace, dovolené, CRM, atd.

Osobní pomůcky

  • SplashID Safe (Paid) – repository na hesla a jiné chráněné údaje. Používám se synchronizací na iOS.
  • Apple iTunes – telefonizuju s nima od iPhone 4 (první pro mě vizuálně přijatelná podoba jinak zdařilé věci, kterou od pra-verze používá manželka) a dopadlo to tak, že máme i AppleTV a v iTunes mám i veškerou svou hudbu. iTunes nejsou žádný zázrak (ovládání dodnes nechápu), ale jako součást uceleného ekosystému mi to vyhovuje.
  • Quicken od Intuit (Paid) – používám čistě pro evidenci volného kapitálu a investičního majetku. Není ideální, ale lepší jsem nenašel. Je to určeno spíše pro US trh (napojení na banky, napojení na burzu) a spíše pro běžný rodinný rozpočet (evidence výdajů atp.). Zvažuju přejít na čistý Excel.

Používal jsem dříve, může se hodit…

    • OutlookOnTheDesktop – po drobné úpravě (mapování klávesové zkratky) používám pro rychlé zobrazení mého týdenního kalendáře (FullScreen). Funguje i s Outlook 2013. Nějak si nerozumí s Win8.x, takže prostě mám neustále puštěné druhé okno Outlooku s kalendářem (první okno s maily).
    • CDBurnerXP (Free) – Vypalování CD/DVD (už velmi zřídka). Původně jsem používal Nero Burning ROM, ale poslední dobou se nějak komplikovaně získává a z celého jednoduchého Nera se stala taková komplikovaná hydra, že jsem si našel CDBurnerXP. Vestavěné vypalování ve Windows (vyjma Burn ISO) jsem nepřijal za důvěryhodné.
    • Log Parser od Microsofty (Free) – command-line utilita, která umožňuje do klást SQL dotazy do textových logů, typicky do logů IIS. Nemám nainstalováno stále, ale občas se pro diagnostiku velmi hodí. Alternativou je importovat log do tabulky SQL serveru a ptát se tam.
    • Help & Manual od EC Software (Paid) – tvorba on-line dokumentace, viz třeba manual.goran.cz. Už jsem to dlouho neměl puštěné… :-)
    • Azure Diagnostics Manager a Cloud Storage Studio – Cerebrata (Paid) – administrace Windows Azure
    • Pencil (Free) – skicování UI. Malé, nenápadné, primitivní a s docela líbivými výstupy. Hodí se v situacích, kdy jde o vizuální vyjádření myšlenky a nepředpokládá se editace (revize) návrhu UI zákazníkem. (V takových situacích používám většinou Excel, se kterým si každý poradí. Vlastně už používám skoro jenom Excel, ale asi se k Pencil pro některé scénáře vrátím.) Zkoušel jsem i PowerPoint Storyboarding, ale nezaujalo mě to.
    • Cruise Control .NET (Free) – Před migrací na TFS náš hlavní build server.
    • Hide Main Menu (Free) – Visual Studio Extension. Na notebooku umožňuje získat řádek kódu navíc :-)
    • VisualSVN (Paid) – Visual Studio Extenction. Napojení na TortoiseSVN funkce přímo z kontextu Visual Studia. Intenzivnější práci se SVN si bez něj nedokážu představit. Používali jsme ve firmě všichni vývojáři dlouhé roky. Po migraci ze SVN na TFS již ani neinstaluji, pro ty občasné potřeby mi stačí holé TortoiseSVN,
    • GhostDoc (Free) – Visual Studio Extension. Generování XML dokumentace. Používal jsem zejména pro kopírování předchozích komentářů při overridech.
    • Ident Guides (Free) – Visual Studio Extension. Zobrazuje svislé čáry dle úrovně odsazení kódu. Existuje několik doplňků tohoto typu a je i obsaženo v mnoha širších balících, nyní je obsaženo i v Productivity Power Tools.
    • Code Contracts od Microsoftu (Free) – snažili jsme se je několik let ve firmě používat až jsme na ně definitivně zanevřeli v okamžiku, kdy jsme nenašli záměr jejich reimplementace nad Roslyn. Jejich stávající implementace pomocí post-compile rewriteru je zoufale pomalá a naprosto neodpovídající přidané hodnotě. Nakonec jsme si vytvořili vlastní tradiční implementaci s překrývající syntaxí, která sice umí jen základní scénáře typu Requires(), Assert(), Assume(), zato se časy buildů našich projektů vrátily z minut na vteřiny.
    • Virtual CloneDrive (Free) – Virtuální CD/DVD mechanika pro připojení .ISO souborů. Nyní si bohatě vystačím s windowsím Mount…
    • inSSIDer (kdysi Free) – Wi-Fi monitor. Zobrazí obsazení kanálů, sílu signálu jednotlivých AP, atp. Hodí se k vyhledání volného místa pro vlastní Wi-Fi, popř. k rychlé diagnostice/přehledu.

Podobné seznamy