👋 Nový obsah na borekb.cz

Info Tento blog je v "read-only módu" a nový obsah již nebude přibývat. O vývoji píšu na DevBlog.

Témata

Nasazení ASP.NET aplikace využívající SQL Server Express na běžném hostingu

Až doposud jsem si myslel, že nasazení ASP.NET aplikací je snadnou až triviální záležitostí. Podle všech reklamních sloganů i logiky architektury ASP.NET by měl fungovat zázrak jménem xcopy deployment, zvlášť když nový SQL Server 2005 umožňuje databáze jednoduše nahrát jako jeden nebo několik MDF souborů. Jak ale vypadala realita, když jsem někde na netu potřeboval zprovoznit ASP.NET aplikaci do školy?

Začal jsem na svém hostingu, kde ASP.NET a SQL Server 2005 Express běží někdy od listopadu. Jakýkoliv pokus o práci s databází však končil chybou „Failed to generate a user instance of SQL Server due to a failure in starting the process for the user instance. The connection will be closed.“ Asi hodinu jsem se problém snažil řešit s pracovníkem podpory, na webu jsem pročetl mnoho článků a diskuzních fór, ale vše bez úspěchu (mezi nejlepší zdroje patřil článek Tomáše Petříčka Nejčastější chybové hlášky SQL Express 2005 a diskuze na MSDN forums). Chyba je kdoví kde – možná jsou na nějaký soubor špatně nastavená práva, možná by pomohla reinstalace, ale jisté bylo jen to, že na mém hostingu aplikaci zřejmě nezprovozním.

Zařazeno do kategorií |

There is already an open DataReader associated with this Command which must be closed first

Představte si následující kód, ve kterém je využíváno jediné připojení k databázi (detaily jsou vynechány):

reader = command.ExecuteReader();
while (reader.Read()) {
  ...
  updateCommand.ExecuteNonQuery();
  ...
}

Tento kód skončí výjimkou „There is already an open DataReader associated with this Command which must be closed first“.

První věcí je, že popis výjimky moc vývojáři nepomůže. Zpráva totiž napovídá, že je s jedním Commandem asociováno víc DataReaderů, což ale na první pohled není pravda – jediný otevřený DataReader je asociován s objektem command, který není totožný s objektem updateCommand. Navíc vykonáváme ExecuteNonQuery a žádného DataReadera nevytváříme. Pro začátečníka mého typu je tedy hláška zcela k ničemu, naopak je spíše matoucí. (V souvislosti s tím doporučuji shlédnout skvělý track PRS223: Getting Users to Fall in Love with Your Software: 2005 Editionvideí z PDC 05, kde se na téma zbytečných hlášek pobavíte a poučíte zároveň.) Jen pro úplnost poznamenám, že hláška svůj smysl má, protože oba objekty command jsou propojeny přes objekt Connection a DataReader se vytváří i při ExecuteNonQuery, protože tento příkaz vrací počet ovlivněných řádků. Ale to je celkem jedno, hláška prostě dobrá není.

Zařazeno do kategorií |

Historie jazyků C a Visual Basic (tak trochu jinak)

Pokud se chcete dobře pobavit, přečtěte si články History of the BASIC family of languages a History of the C family of languages. Zde je malý aperitiv:

1997 – Taking the advice of hallucinating industry analysts, Corel decides to rewrite all their applications, including WordPerfect, in Java. The end result is the first known word processor that is slower to use than a typewriter.

Zařazeno do kategorií |

Omea končí?

JetBrains Omea je zajímavý kousek softwaru, který primárně používám jako RSS čtečku, ale umí pracovat třeba s usenet skupinami, s maily, s webovými záložkami atd. Právě byla vydána nová verze 2.1 (release notes), což je prima, ale současně jsem se v diskuzní skupině dočetl, že Omea je už od září oficiálně nepodporovaný projekt:

Since September'05, development team was cut significantly. JetBrains decided to not support the product anymore, and most of the latest development/fixes were done in our free time (those Omeans who remained in the JetBrains have their new responsibilities in IntelliJ IDEA project). Thus I hope everybody understands now that the latest months were just really hard.

Zařazeno do kategorií |

Tohle je hrozný web

Chcete vidět typický příklad špatně udělaného blogu? Právě se na něj díváte.

  • Je použit defaultní skin WordPressu, což je trapné a velmi málo nápadité. Autor, který si neumí zařídit aspoň trochu osobitý design, pravděpodobně ani sám moc osobitý nebude.
  • Přeložena je pouze část uživatelského rozhraní. Slovíčka „posted in“, „comments“, ale i divný formát data (Leden 12th, 2006) svědčí o značném amatérismu.
  • Kategorie jsou nekoncepčně připravené a články nejsou vždy zařazeny do odpovídající rubriky.
Zařazeno do kategorií | |

Návštěvnost a párek v rohlíku

Blogování je zajímavá činnost. Já jsem začal tak, že jsem si různé věci zapisoval, aniž jsem vlastně věděl proč. Nikde jsem svůj blog nepropagoval, nikdo o něm nevěděl a nikdo ho tudíž nenavštěvoval. Sigmund Freud by nejspíš psaní blogu pro sebe samého nazval trochu přísněji než jen podivnou kratochvílí, nicméně ať tak či onak, v minulosti vzniklo několik zápisků, které bych už dnes asi nenapsal.

Soutěží LCD za web počínaje mi na blog chodí lidi. Ne, nejsem jako onen hostinský z Hospody na mýtince a naopak zde návštěvníky vřele vítám. Určitými indíciemi aktivity na tomto webu jsou sem tam zanechané komentáře, ale abych poznal, které články jsou zajímavé, odkud sem návštěvníci proudí (nebo spíše chodí :) ) a tak dále, rozhodl jsem se blogovníček monitorovat dvěma službami pro audit návštěvnosti. Téma sledování vlastního webu je zajímavé a určitě o něm napíšu samostatný článek, ale celé tohle má být o něčem jiném.

Zařazeno do kategorií |

Windows Media v QuickTime playeru - a hlavně naopak

Microsoft na svých stránkách nabízí Windows Media Components for QuickTime, které umožní přehrát .wmv a .wma přímo v QuickTime playeru.

Co ale asi potěší daleko větší množství uživatelů, je QuickTime Alternative, sada kodeků umožňující naopak QuickTime formát přehrát ve Windows Media Playeru. Dostat QuickTime pod WMP má jednu zásadní výhodu: jakmile přehrávání funguje tam, začne fungovat i v dalších aplikacích využívajících stejné API, např.

Zařazeno do kategorií |

Jak zrychlit start .NET aplikací

Seznam užitečných tipů a triků pro zrychlení startu vyvíjené .NET aplikace by neměl uniknout nikomu, kdo to s použitelností vlastního programu myslí vážně. Rychlý start je jedna ze základních věcí, která může uživatelům velmi zpříjemnit život.

Zařazeno do kategorií |

Monad je feature complete

Monad, snaha Microsoftu přinést na svou platformu sílu *nixových shellů, je feature complete. V současnosti je ke stažení beta 3, k vydání by mělo vyjít současně s Exchange 12, tedy někdy na konci roku 2006 nebo začátkem roku 2007.

Pokud se chcete o Monadu dozvědět víc, doporučuji shlédnout prezentaci TLN303: Monad: Advanced Command Line Scriptingloňského PDC.

Zařazeno do kategorií |

ceskatelevize.cz

Jirkou Macichem sdílím potěšení, že ČT konečně sídlí na adrese srozumitelné běžnému Čechovi. Nikdy jsem příliš nechápal, jak může veřejnoprávní médium používat adresu czech-tv.cz. No, už je od toho pokoj :)

Zařazeno do kategorií |
Syndikovat obsah

Komentáře jsou uzavřeny (blog je v read-only módu). Pokud mě chcete kontaktovat, můžete mailem.