| Anton's profileCodeDebatePhotosBlogLists | Help |
|
January 31 SprintTomorrow (Thursday), I'm off to Manchester for a day. I depart Lusaka at something like 9am, quick stop at Heathrow and then connect to Manchester. Spend the day reminding myself where "home" is supposed to be and then off to Seattle on Saturday 3rd, again via Heathrow. Seems the travel agent in me is not yet tuned to my Hatred for Heathrow.
Seattle for just a week, then back across the pond to teach in Holland and Turkey. Yes, you guessed it: Team System.
After those two trips (back to back since Turkey starts their week on Sunday), I'll be back in Manchester for a day, maybe, and then onwards to Lusaka again.
After Lusaka it is one week of Team System leading up to my birthday (in Altrincham, close to home!) but the birthday itself: Tokyo!
What 2007 holds, who knows. At least one more trip to Dubai for GEEKs at the Mall of the Emirates with Microsoft Dubai, but then there is the vast stretch of a year that is sure to pass in the blink of an eye. LusakaNetwork issues may kill this expedition yet, but for now, everyone is on the same network with TFS a hop away (over a 5Mbps wireless point-to-point link). We have external access configured but Team Explorer is not happy showing Reports or Documents - similar to CodePlex, except ours is actually "there".
This week we added VSTE for Database Professionals to the mix and things are going more smoothly than I expected.
Next step is to configure the Basic Authentication ISAPI filter to see if that helps the Team Explorer issue above but the real test is whether the Boston-based contractors can get in and be productive. Team ExplorerThe only pace I know to find this link is CodePlex. Not even seeing it on Google. So here's my own personal universally accessible bookmark: Team Explorer is here: http://download.microsoft.com/download/2/a/d/2ad44873-8ccb-4a1b-9c0d-23224b3ba34c/VSTFClient.img January 30 CheckIn.Hatred()"Check In...", write detailed comment, associate with work item, oH! Merge conflict, ok lets Resolve, fine done it even builds. "Check In..." comment GONE. Happy reremembering and retyping!
Soooo, I now have a nervous twitch: type checkin message, CTRL-C!, etc.etc.etc. VSTEDP Build Output NameFor those of you doing cont. integration or even just distributing your .sql output file to developers (until such time as they can open the DB project in their own tools), note that you can control the name of the output file like so:
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v8.0\TeamData\Microsoft.VisualStudio.TeamSystem.Data.Tasks.targets" />
<PropertyGroup Condition=" '$(Configuration)' == 'Default' "> <BuildScriptName>CreateSmartCareDB.sql</BuildScriptName> </PropertyGroup> Add that to the .dbproj file as the last import, and you'll effectively be overriding the blank name default that usually then causes a name to be generated that includes the server name, instance name and database name. Doing this override, you can then write post build events that target the output file.
Also, for those developers out there not yet comfy with the new SQL Management Studio, go look for the "SQL CMD Mode" button. You'll need it to run the output from a DB Project.
Original forum post is here: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=992962&SiteID=1 HeathrowFirst, no luggage, then, cancelled flights. Now, apparently flights reinstated, but no catering. BA == Bad Airline. January 28 Virtual Server Power ToysMy OCD-light caused me to revamp project Bliss this morning; first checkin already available on www.codeplex.com/Bliss but a lot more to follow! January 26 Wish Listtf.exe : Where's the option to specify the work item ID to associate?
VSTEDP: Where's the build event variable with the output file's name?
VSTEDP: Where's the tool to process a deployment file generated in VSTEDP? I don't have VSTEDP installed in my datacentre nor in the installer of my COTS. UPDATE: SSMS has a button to enable "SqlCmd Mode". Now to go see if sqlcmd.exe does the same... VSTEDPWow. Turns out even the build output from the VSTE Database Professional is locked into that product: the notation for variables break the script in Query Analyzer and even SQL 2005 Management Studio. So now we're stuck with pre and post build event gymnastics. I'll post the scripts to explain my pain. That is, I'll post the scripts after I first write a utility to strip out the VS-specific extras from that build output. January 25 Slip of the tongueTeam Fortress, speaking of Team Foundation Server authentication issues :) VSTEDPIs it just me or did the use case for COTS - Commercial Off The Shelf - software just not show up when they designed the Visual Studio Team Edition for Database Professionals? Deploy. Really? I want the build result to feed into my WinForms app's installer. I don't mind complicated. I do mind having to work this hard to make it do the obvious: the database project should simply be a dependency for my WinForms project, should show up as an "Install DB" step in the installer. It has the script from the build output, right?
All this is do-able. Just a few hoops. Now loop this back into a team using TFS for SCM and it gets really tricky when not everyone has Team Edition for DB Pros. Feel free to tell me how you do it. We're still figuring this one out... January 24 MicrosoftGreat way to burn away a weekend online: http://msdn.microsoft.com/events/devresources/
For anything and everything you could possibly want as a developer on the Windowd platform.
Enjoy! January 23 ASP.NET Cache with GenericsThis is more a test of Spaces' HTML formatting capabilities than a technical article, but some of you may find this interesting.
Usually when we retrieve items from a database, the data may be long lived. That is, it may be valid of a period of time. So we cache it in memory in stead of fetching it from the database on subsequent requests. So with a TextBox and a Button on the web form, the code behind may look something like this:
protected void btnFetch_Click(object sender, EventArgs e) { txtContent.Text = DoExpensiveContentLoad() + " (from DB)"; } private string DoExpensiveContentLoad() { System.Threading.Thread.Sleep(10000); return "Hello World"; } That ten-second-method is the fake database or file access or whatever other IO we presume is more expensive than the RAM we may have spare. So we cache like so:
protected void btnFetch_Click(object sender, EventArgs e) { object data = Cache["key"]; if (data != null) { txtContent.Text = data.ToString() + " (from Cache)"; } else { data = DoExpensiveContentLoad(); Cache["key"] = data; txtContent.Text = data.ToString() + " (from DB)"; } } I don't know about you, but if I have to write that block of logic every single time I just want to get some data, I am bound to make mistakes or worse, miss a spot. Watch out for a follow on post where we remove the logic from the call site. First Full Day of TFSOfficially, we switched from SVN to TFS yesterday. "Officially" because the boss is now doing "get latest version" off the TFS SCM branch in stead of SVN so if you want your changes to show up where it matters... :)
Migrating the 140kloc Windows Forms application was surprisingly pain free. Math.Floor was a no-brainer fix. But then one of the fancier controls caused a moment of panic: it has a property that VS' Forms Designer tried to serialize, presumably to .resx, but I couldn't figure out how to keep it from poking at that property. So in the end I changed it to a couple of methods and that solved it for us. At this time, I am not aware of any other .NET 1.x to 2.0 upgrade issues. Sweet!
To be fair, we have not yet switched from MSDE (SQL 2000) to SQL Express. There are issues with our reporting queries, regardless of so called Compatibility mode.
Needless to say, management loves Work Items. Even the most skeptical of developers converted once they saw work items associated with checkins (change sets) and change sets showing exactly which files are affected.
There is still the matter of working offline - not supported with TFS but reality in dodgy bandwidth locations all over Africa. Cash CowIf you want to make money in Africa: wireless. Mobile phones, sure, but don't underestimate the growth of wireless internet access. January 20 Irony of the worst kindRwanda to scrap the death penalty... Seems the motivation is to allow countries against the death penalty but holding genocide accused to send them to Rwanda for trial. From Russia, with love...According to the Times of Zambia, Russia is writing off USD$1 BILLION of debt in these parts. From what found online, this means in the range of USD$111million of direct debt relief to Zambia alone in 2007. Other countries are similarly affected by Russia's actions. When the drug to prevent transmission of HIV from mother to child costs in the range of 57pence (40% chance of success, iirc), this is huge news! January 16 Victoria Falls PhotosJust finished uploading a selection of the Victoria Falls photos; most of those uploaded were taken on Saturday afternoon, a few on Sunday morning. Enjoy! January 14 Victoria Falls4am wake up call - which came early! - six hour bus ride - this coach has five seats in each row - and proper African hot weather. A long long trek but oh so worth it in the end. And my mom even made it up here from Cape Town! Will post photos tomorrow when I have a bit more bandwidth. The flight from Livingstone to Lusaka was my personal record for smallest plane (commercia flight): 12 seats, twin prop,9 people and no door between us and the cockpit - which made up for not getting a close up view of the Vic Falls from the sky, especially on approach into Lusaka airport :) |
|
|