Tuesday, February 09, 2010

Ben Sandofsky is a mobile engineer on Twitter. He has published a four-minute video called Twitter Code Swarm that is really quite intriguing. It took a few viewings of this video before I started to appreciate what’s going on, so let me share.

imageStraight off, with everything that’s going on and all the detail, you have to view it full screen. And turn on the sound, he’s selected a lively and dramatic score, Undercurrent, by cellist Jami Sieber from her 1994 release Lush Mechanique.

As explained in the introduction and the information posted on Vimeo, the video chronicles development of key Twitter codelines from 4/2006 to 1/2010: the main Ruby application, Flock, the streaming API, and a mobile site.

The round disc icons represent developers and the particles represent source files being created or changed. When another developer changes a file, the particle zooms from the previous committer to an orbit around the new developer’s icon. I am guessing that the size of the particle is related to the size of the file or the size of the changeset that was committed. It seems that come time after the commit, if there is no further commit the particle fades out, but my reading of that might be off.

In the upper left corner is a legend which explains, for instance, that HTML/CSS is blue, tests are green, Ruby is red (nice choice there), Scala is yellow, and so on. In the picture above, the developer slightly higher than the center of the frame is working a lot with tests at that moment. Often the Ruby files don’t seem to get all of the way to their intended target before they change course, headed for another developer; at times the swarm seem constant. Once in a while there is a Ruby file that seems to just oscillate in the space between developers for a period of time, suggesting a lot of collaboration or a particular resource that has a high degree of contention.

The date ticks off in the lower right corner, and in the lower left corner is a rolling timeline of the volume of commits of different types of files. Periods of frenetic particle movement have a corresponding high volume of commits. Notice the big drop off in all activity in December 2007 through January 2008. Perhaps that was a time for retrospection or maybe a well-deserved holiday. Then the pace really picks up and goes through some rather distinct phase shifts. After one or two viewings, you may find it interesting to read some of Twitter’s history on Wikipedia and look for connections with the development.

Thanks for this visual feast, Ben. What can they tell various stakeholders about development of applications? And how do we make our own code swarm videos?

Tuesday, February 09, 2010 11:11:13 AM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [1]  | 
 Saturday, January 30, 2010

If you’re in the greater San Francisco Bay area, come out and hear me talk on Modeling with SQL Server Modeling Services (née “Oslo”) on Wednesday, February 3, 2010 at the Bay.NET User Group which meets on the Microsoft campus in Mountain View. Social networking starts at 6:00 PM, and my presentation is at 6:30 PM. This is a free event, but registration is required.

First, please don’t get thrown by the SQL Server part of SQL Server Modeling Services. This modeling technology is for developers, architects, database developers and, in the fullness of time, most aspects of the application lifecycle management.

I will explain what’s in the November 2009 CTP of SQL Server Modeling Services, where the technology is going, and why you should be interested in it today. I’ll demonstrate the “M” modeling language using the new Intellipad editor, and graphical modeling in “Quadrant”. Bring your questions, and I will see you there.

Saturday, January 30, 2010 4:42:08 PM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  | 
 Tuesday, December 08, 2009

This morning I rediscovered a shortcut for creating an elevated command prompt. Press the Windows key, type “cmd” then press Ctrl+Shift+Enter. Voila!

Works on Win7, Vista, and presumably on Windows Server 2008.

Thanks to Tim Sneath who also suggests making the first command be “color 4f“ so that this window is visually distinct from non-elevated command prompts.

Tuesday, December 08, 2009 11:09:03 AM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  | 
 Tuesday, November 10, 2009

This is a big day for Miguel de Icaza and the Mono team with the announcement of the release of Mono Tools for Visual Studio. This release has features for deploying to Linux from Visual Studio, remotely debugging code on Linux from Visual Studio, a tool called for evaluating your code for migration issues moving between .NET and Mono, and moving from shipping applications to shipping appliances — complete virtual machines with the application already installed and ready to go. More details and links…

Other coolness from Mono. If you happened to miss the September 2009 announcement, MonoTouch is now available as a commercial product that lets you create iPhone and iPod Touch applications written in C# and .NET. Scott Hansleman discussed MonoTouch, among other things, with Mono project manager Joseph Hill on Hanselminutes podcast #181, well worth checking out.

Tuesday, November 10, 2009 12:47:14 PM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  | 

Doug Purdy has blogged that Microsoft’s “Oslo” project has been realigned and unveiled as SQL Server Modeling at VSConnections this week. There will be additional announcements and a new Community Technology Preview (CTP) released at the Microsoft Professional Developer Conference 2009 (PDC09) next week, so stay tuned.

Doug’s post provides a brief recap of the jigs and jogs that have been the history of the “Oslo” codename, starting with the announcement at the 2007 Microsoft SOA and BP conference where it was the term applied to a broad multiple product initiative for modeling. I was fortunate to be in attendance for the initial announcement, and have followed the winding path of Oslo, so I am keenly interested in the Oslo-related keynotes and sessions at PDC to which Doug posted some handy links earlier. And, of course, I can’t wait to get my hands on the next set of bits.

As I see it, modeling and DSLs have been underrated by most of the software development community, and that is largely due to the lack of first-class mainstream support in the form of great technologies and equally great tools. Sure, there have been some great strides, like the Domain-Specific Language Tools in Visual Studio, but you can hardly characterize their use as widespread. And, no doubt, Martin Fowler’s upcoming book on DSLs (which you can read as a work-in-progress) will help raise the level of discussion and general awareness of the concept. And there are many other efforts in the world as well. But there is much left to do.

Why is modeling so important? Because as an industry we work too hard for too long to create applications, using general purpose languages and low-level technologies, essentially from scratch each time. It is high time to evolve past that approach and dramatically reduce the cost and time-to-market for broad classes of applications that businesses need today. That is why I am excited about SQL Server Modeling (née Oslo) and that’s why I want it to be a truly great modeling platform.

Tuesday, November 10, 2009 3:45:41 AM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [2]  | 
 Saturday, December 27, 2008

Luca Bolognese has put together a .NET library of financial functions which is now available on CodeGallery on Microsoft. His goal was to replicate the financial functions in Excel, right or wrong. And if you think that Excel got a function wrong, he invites you to contribute a different implementation.

Luca implemented the library in F#. The library is available in two forms, one which statically links to F# (so that you don't need to redistribute F#) and one that doesn't (which is correspondingly smaller). Luca gave an outstanding talk on F# at PDC2008, which is well worth checking out.

Saturday, December 27, 2008 10:02:34 AM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [1]  | 

Brian Randell, Microsoft MVP on Team System, announced that he's put together new VSTS virtual machines for Microsoft, and they're available for download. The previous VSTS VMs are set to expire at the end of 2008; the new ones expire at the end of 2009. Additionally, all the components have been updated to recent versions.

There are four VM images to choose from. You can select an "all-up" image with Team Foundation Server (TFS), Team Build, Team Explorer, and Team Suite, or a "TFS-only" image with TFS, Team Build, and Team Explorer only. Each of those comes in two flavors: one compatible with Virtual PC 2007 and Virtual Server 2005 R2, and one compatible with Hyper-V. As Brian says, "Download the ones that make you happy!"

See Brian's post for the details and download links. Thanks, Brian!

Saturday, December 27, 2008 8:49:48 AM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  | 
 Friday, December 19, 2008

Sara Ford has posted Visual Studio Tip of the Day #382 as the final tip in her popular 17 month series. From its introduction to yesterday's graceful exit, Sara has brought Visual Studio into sharp focus for a vast number of developers. Each post begins with a personable "Did you know..." and no matter how much I thought I knew about Visual Studio, often, no, I didn't know that.

Did you know... that the popular tips series was a labor of love (translation: not what she gets paid for), a gift to the developer community?

Mining her blog, Sara brought these golden nuggets out in book form this fall,  Microsoft Visual Studio Tips: 251 Ways to Improve Your Productivity (Microsoft Press, 2008).

And did you know... that all of the author's proceeds from the book go to help send Hurricane Katrina survivors to college?

Now Sara will be turning her attention to other ways to engage with the community, including her day job on CodePlex, Microsoft's open source project hosting website. I cannot wait to see what's next.

We stand on the sandy shore and wave a fond farewell to the Visual Studio Tip of the Day series as it slips over the horizon. Adieu!

So long, and thanks for the all the tips!

Friday, December 19, 2008 6:58:04 AM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  | 
 Friday, October 03, 2008

image The Data Dude, a.k.a. Gert Drapers, Architect and Development Manager for Visual Studio Team System Database Edition, has a pair of posts on his blog discussing the recent announcement that VSTS Database Edition is merged into VSTS Development Edition, effective 1 October 2008. Two SKUs are now one. Here are the Dude's posts.

The posts include links to the announcement and an FAQ page, as well as some good discussion.

I consider this to be excellent news! Thanks to the VSTS team for making this change!

Friday, October 03, 2008 2:22:02 PM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  | 
 Sunday, August 17, 2008

SQL Server 2008 Just in case you missed these three notable releases so far this month...

SQL Server 2008 has Released To Manufacturing (RTM) and is available for download by MSDN and TechNet subscribers. There's also a free 180-day Full Trial and Express Edition which are available for download by everyone.

Visual Studio 2008 Following that up is a pair of complementary releases: .NET Framework 3.5 Service Pack 1 and Visual Studio 2008 Service Pack 1.  The .NET 3.5 SP1 includes performance improvements, ADO.NET Entity Framework and Data Services, and a version of the .NET runtime optimized for clients which weighs in at under 28 MB. On the VS2008 SP1 side of the house, there are both new and improved designers, improved VSTS features, and new controls. Plus both service packs provide support for SQL Server 2008. And a bunch more.

Scott Hanselman blogged a nice guide to the combined service packs.

Sunday, August 17, 2008 6:59:28 PM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  | 
 Tuesday, July 08, 2008

image Last week I gave a Windows Workflow Foundation (WF) presentation at the Portland Area .NET Users Group (PADNUG). I figured it's summer, a couple of days ahead of the Fourth of July weekend, I should be prepared to have six people in attendance. But, in truth, it was around to 30. Not bad considering the competition. And it was great group for breaking in my new WF talk with several excellent questions and comments from the audience. And there was general beer drinking and WF merriment at Gustav's afterwards.

A PDF of the slides is available for you to download and enjoy.

Increase and decrease font size from the keyboard. I got tied up in traffic on the way to the talk, which discombobulated me slightly, and I forgot to bump up the font sizes in Visual Studio the way I always do. Thankfully, someone called the small fonts to my attention. As if on queue, Rich Claussen talked me through Sara Ford's Visual Studio Tip #242: "Did you know… You can bind macros to keyboard shortcuts (or how to quickly increase / decrease your text editor font size)?" That totally rocks. Thanks, Rich. Thanks, Sara.

Change font and size of IntelliSense. While I was looking that tip, I ran across an equally awesome tip for presenters on Sara's blog, "How to change the font and font size for Intellisense: Statement Completion, Parameter Info, and Quick Tips." I can see this one will be really handy for presentations where I am using IntelliSense to discover and explore some kind of object model. Nice.

Monday, July 07, 2008 11:24:28 PM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  | 
 Thursday, June 19, 2008

The long-anticipated Subversion release 1.5 is now available. Subversion is an open source version control system available on a wide range platforms. It was written as the compelling replacement for CVS. Release 1.5 introduces several features, including support for basic merge tracking suitable for many common scenarios, as well as changelists.

At Corillian-now-part-of-CheckFree-now-part-of-Fiserv, we've been using Subversion for nearly three years. It took people some time to adjust to optimistic concurrency, it meets most of our source control needs. We'll probably wait a few months until we're in a better place in our development cycle before upgrading, unless a team member finds something we simply cannot afford to live without.

Many developers here use the TortoiseSVN client, which should have a Subversion 1.5 compatible release shortly. Support and training for Subversion 1.5 is available from CollabNet.

Congrats to all the Subversion contributors, I know it's been a long haul getting this one out.

Thursday, June 19, 2008 12:58:57 PM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [1]  | 
 Wednesday, June 18, 2008

Matt Hinze draws attention to a little-known (translation: new to me) item in Appendix B of the TortoiseSVN documentation, Create a shortcut to a repository. In short:

Create a new shortcut and set the target to:

TortoiseProc.exe /command:repobrowser /path:"repositoryURL" /notempfile

Replace repositoryURL with the path in the desired repository. Thanks to Travis Illig for passing this along.

Wednesday, June 18, 2008 8:11:07 AM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  | 
 Tuesday, June 17, 2008

Cliff Simpkins in CSD, replied very promptly to my post over the weekend asking why there was no Visual Studio in the WF tutorials.

image It turns out that the tutorials I was looking at were old versions from the original .NET Framework SDK. The SDK clearly doesn't include Visual Studio, hence no mention of Visual Studio. That makes sense.

For whatever reason, the tutorial links that are on the Windows Workflow Foundation Tutorials page in the MSDN Library link to the old, SDK-only versions of the tutorials. MSDN is working on getting those updated to link to the modern versions of the tutorials. That might take a week or so if there are other priority things in the MSDN queue.

In the meantime, you can get to all of the modern versions of the WF tutorials by navigating the tutorials using the tree view on the left. I think you want to use this exclusively until MSDN fixes all the links.

The modern versions of the tutorials guide you through using either Visual Studio or a POTE (plain old text editor). Sweetness.

You can tell if you are looking at an old SDK-only version of a tutorial because the tree view on the left will be severely truncated and not show the page you are viewing, and the navigation controls at the top of the right page will only show "MSDN | MSDN Library" instead of several additional levels.

Additional resources

Cliff also pointed me to some other WF resources to share. First stop is the Windows Workflow Foundation (WF) Developer Center at http://msdn.microsoft.com/workflow (score bonus points for the cool URL.)

Next up, HelpDesk v1.0 is a sample web app that demonstrates WF on TryIt Channel9.

Finally, there is a nascent collection of Windows Workflow Foundation articles and overviews on MSDN. Good stuff there, and I expect more over time as Microsoft continues investing in WF.

Tuesday, June 17, 2008 3:26:44 PM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [1]  | 
 Sunday, June 15, 2008

Updated 17 June 2008: Cliff in Microsoft's Connected Systems Division quickly identified the problem. See Yes, we have Visual Studio in WF tutorials for the full story. I was buried yesterday or I would have posted the update sooner!

I had a notion to see what the WF training materials on MSDN were like. Straight away I hit upon a conundrum.

Does anyone out there have a clue why the Windows Workflow Foundation tutorials on MSDN Library studiously avoids use of Visual Studio?

The first tutorial, creating a sequential workflow, Exercise 1, Task 1 has you creating a .csproj file and pasting in a few dozen lines of XML without explanation of why we're going down this path. What's wrong with VS2008's File | New | Project?

Then it has you cut-and-paste over 200 lines of code into a .cs file for a Windows Form application, most of it in InitializeComponent which I am guessing was generated in the VS designer. That's wacky.

Sure, it is a time saver, and purely ancillary to the WF topic, but this is not how I start building applications. And nary a word of why.

What gives?

Sunday, June 15, 2008 10:05:59 AM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [1]  | 
 Saturday, June 07, 2008

imageMy friend Patrick Cauldwell will be talking on The Code Is The Easy Part on June 12, 2008 at 7 PM at OGI in Portland. His talk addresses of continuous integration in theory and practice. The talk is free and open to the public, please register at the above link.

The Code Is The Easy Part
Patrick Cauldwell
Sponsored by Rose City Software Process Improvement Network (SPIN)
OGI School of Science and Engineering, Wilson Clark Center
6:00 PM networking and pizza, 7:00 PM seminar

Patrick is also the recent author of Code Leader: Using People, Tools, and Processes to Build Successful Software on Wrox Press. To get a sense of where the book goes, read Patrick's post This I believe... the developer edition. Scott Hanselman wrote the forward to Code Leader and blogged some comments on the book.

Saturday, June 07, 2008 8:57:32 AM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  | 
 Friday, May 30, 2008

image Microsoft DreamSpark is a program for students at accredited colleges and universities in 11 countries to get free copies of Visual Studio 2008 Professional, Microsoft Expression Studio, Windows Server 2003 and the XNA Game Studio.

Get started with DreamSpark today and spark your own dream.

DreamSpark is hosted on Channel 8, Microsoft's site specifically for students. It is a sister to Channel 9 and Channel 10. There are some great resources, as well as serious fun to be had on these websites.

Friday, May 30, 2008 4:42:05 AM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  | 
 Wednesday, April 30, 2008

image I first saw Seattle-based Tableau Software a few years back at a conference expo, and ended up spending about an hour at their booth. Then I dragged friends over to their booth. Being a big fan of Edward Tufte and his beautiful work on data visualization, I was instantly impressed with what Tableau is doing. If your job includes analysis of data, or creating visual representations of data for others to analyze and draw their own conclusions, then you need to look at this company's award-winning software.

image They now have a page of interesting examples of data visualization created using Tableau. It is well worth exploring even if you aren't interested in their product. You can drill into the details of each example, including downloading the data behind each visualization. What better way to convince someone of your analysis than to show them the data?

<warning>

I had a bit of trouble with the dynamic popups on the examples page. When you hover the mouse over an example, a detail window is popped up. If the popup window is displayed so that the mouse is in the window, it immediately closes the popup window. The net effect is an annoying flash — now you see it, now you don't. No, you can't move the mouse fast enough to get it out of the way, and I couldn't see any rhyme or reason to where the page decides to pop up each window.

That's a real UX bummer, Tableau. Can you get that fixed, please?

For now, you can just click directly on the example for a detail page.

</warning>

From what I've seen, Tableau has been hard at work evolving their capabilities and offerings, including a free Tableau Reader. Nice.

Want more? Take a product tour, download a free trial, watch on-demand web seminars, or make plans to attend their first customer conference 20–22 July 2008 in Seattle, Washington.

Wednesday, April 30, 2008 6:16:03 AM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  | 
 Thursday, April 24, 2008

image Here's a handy trick for whipping C# using declarations into shape. Visual Studio 2008 will remove unused using declarations, or sort them, or both in one shot. Here's how.

In Visual Studio 2008, open a .cs file. Right-click anywhere in the block of using declarations at the top of the file and select Organize Usings. Now you can select Remove Unused Usings, Sort Usings, or Remove and Sort which does both.

Thursday, April 24, 2008 8:16:16 AM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  | 
 Friday, April 11, 2008

For those attending the Microsoft MVP Summit, here's some late breaking news. Patrick Smacchia (C# MVP) has a talk on NDepend that's a new addition to the schedule. It will be 5PM, Wednesday, 16 April 2008 in the MSCC. The session highlights new features of NDepend, including integration with code coverage metrics from NCover or VSTS.

If you aren't aware of NDepend, it a freaking amazing code analysis tool. It generates seriously deep code metrics, and provides tools for analyzing and visualizing the results. In the Documentation section of the website you can find a pdf "placemat" for understanding the code metrics which I created with help from Scott Hanselman and Patrick Cauldwell.

Friday, April 11, 2008 12:16:45 PM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  | 
 Sunday, April 06, 2008

The InnoTech 2008 conference is here in Portland, Oregon, April 16 – 17, 2008, at the Oregon Convention Center. There are a lot of events included in the conference or associated with it. You may be particularly interested in two of those events.

The Developers track runs on Wednesday, April 16, and Thursday, April 17, and features ten sessions. A number of my friends and colleagues are presenting:

And the other sessions look great, too. A big hand to my fellow SAO Development SIG committee member, Mark Lawler, for putting the track together.

The Open Source Summit runs on Thursday, April 17. One of the many things that I really respect about the open source community is their creativity when it comes to presentations and conferences. The Open In Oregon Lightning Talks session features seven snapshot 'lightning talks' by an outstanding panel of presenters. Nice.

InnoTech 2008 is presented by the Software Association of Oregon and EasyStreet Online Services.

Sunday, April 06, 2008 6:16:32 AM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  | 
 Tuesday, April 01, 2008

imagePain. IntelliSense is handy in a number of ways. One way it is not so handy is that when it pops up, it covers up whatever is down and to the right of where you are typing. Murphy's Law dictates that whatever is covered up is exactly the context that you need to see in order to write your code. Sigh.

For example consider the situation shown here. I was counting on the adjacent code to jog my memory if the class member I am about to create should public, protected, internal, or private.

Band-aid. I've always worked around this annoying 'IntelliSense-makes-a-better-door-than-window' problem by dismissing the IntelliSense window by pressing the Esc key, looking at that code I need to see, and then bringing the IntelliSense window back by pressing Ctrl+J. It's not pretty, but it works. I've done this so much that I find it is hardwired into my fingers. But it is a band-aid solution at best.

imageRelief. When IntelliSense is displayed, you simply hold down the Ctrl key and the IntelliSense window becomes semi-transparent (is that translucent?) so you can see right through it. It's not gone: if you look closely at this screen shot, you'll see the ghost of IntelliSense lingering just inside the range of barely perceptible. Release the Ctrl key and the IntelliSense  window is opaque once again.

Nice. Nice. Very nice.

Updated: as Rob comments, this is a Visual Studio 2008 feature. Sorry for not making that clear. Another good reason to upgrade.

Tuesday, April 01, 2008 7:51:57 PM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [2]  |