Monday, February 20, 2012

What Tools Do I Use? (Part 02–Visual Studio Plug-ins)


You  used to have to really hunt around to find useful anything useful to use as an add-in. About the two best that I could find in the past were a “Clean Solution” add-in, and a tool to display your solution, collapse the folders, and filter on what folders would be displayed. I don’t even remember their names. Everything has changed with VS 2010, NuGet, and the Extensions Manager. Most of the afore-mentioned utilities are now subsumed into goodies you download through the Extension Manager, or some NuGet package. Everything here can be found using the “Tools\Extension Manager” menu item. Search the online gallery. Here’s my list:
  • NuGet: (http://docs.nuget.org/) This is a package manager. When you install a NuGet package (of something else such as AutoMapper, or NLog), NuGet downloads the package (DLL’s etc) to a folder at the same level as your solution file. A manager allows you to check off which projects require the package, and NuGet adds the references automagically to your selected projects. Make a mistake? No problem, uncheck the project in the Package Manager, and bingo-bango! It removes the references for you. Just remember to check in your package folder as well.
  • Productivity Power Tools: This is the real work horse. Install this next.
  • Editor Guidelines: This draws lines of various types (your choice) in your editor to help you see where statement begin/end (“{“ / “}” pairs should be lining up.
  • Italic Comments: Uses an italic font for your comments
  • JScript Brace Matching Extension: Highlight a brace in your JScript, and see where the matching brace is (highlighted)
  • JScript Outlining Extension: Nice to tool to add collapse/expand capability to JScript editing
  • Solution Explorer Tools: Adds new collapsing/expanding capabilities to your Solution Explorer view. Very useful if you have a solution with many projects.
  • Visual Studio Color Theme Editor: A fun little toy …
  • WoVS Default Browser Switcher: For web development, this is the bomb! Puts a toolbar in VS that let’s you switch to whichever default browser you want without having to go through the “Tools” menu. Also adds a context menu item that allows you to launch a particular web-site project or just a page with any browser. It extends your “View in browser” menu item.
  • SlowCheetah - XML Transforms: Provides an online ability to preview your XML transforms of web.config files; but more importantly, provides the same same transform capabilities for App.Config files - something that MS doesn't provide. If you work in an environment that does both web and windows applications, this tool can save you a lot of headache.
One of the nice things about the Extension Manager is that it notifies you of updates to your installed extensions, and allows you to update them. Normally it works fine. However, I’ve never been able to get NuGet to update this way. It always throws an error. So I always have to uninstall, and then re-install NuGet. However, since your package configurations are stored in your solution folders (or nearby), nothing is overwritten during the re-install.
Install these! Let me know if you find them as useful as I do.

Sunday, October 30, 2011

What Tools Do I Use? (Part 01 - Repository Tools)

Since I started doing .NET development back in the days of yore (when the first Beta came out), I've accumulated a variety of tools and products that I use over and over. I thought it might be useful to others to list them, with links where appropriate. Basically, I go for Open Source (i.e. free) tools. There are certainly a lot of them available. However, not all of them are good. If I use them over and over, and recommend them to others, then they have met my nebulous definition of good.
When using Open Source tools, my first criteria is: does it do what I want or need? Then I look at whether there is a "stable" release. I've learned not to use "alpha" or "beta" releases. Next I look at how recently it has been updated.  If no one has touched it for a year or more, I generally won't use it. Third, I try to see how many users there currently are. A product with 12 users, regardless of it's stability rating or frequency of update, just doesn't have much of a future. Finally, after I've installed it, do I keep using it? Does it play well with other related tools?  Does it actually make my development life easier?  If I have to open a Command window to use the tool, I throw it out.  If I have to have multiple windows open to move information around, I throw it out.  With that set of criteria in mind, here are my favorites that I deem "good":
  • Project Locker (https://projectlocker.com/): Everyone needs a repository. I could do this at home, but then I have a bunch of stuff to back up, have to install server updates, etc. Project Locker offers free repository services for small projects. Since most of my projects done at home are smaller, they fit in this category. They also have paid services for larger repository requirements. They offer SubVersion and Git repositories, and a wealth of project management software as well. Having a repository for even small projects has saved my a** more than once.  Never start a project without one...
  • TortoiseSVN (http://tortoisesvn.net/): Once you have a repository, you need a client tool to access the repository. This one has a GUI interface, and adds menu items to the Explorer context menu that allow you to interface to your repository right from Explorer. In addition it has a set of folder icons to use in Explorer, that show you graphically the state of your files and folders vis-a-vis the repository state. This tool is absolutely wonderful! 
  • AnkhSVN (http://ankhsvn.open.collab.net/): It was a bit of a toss-up deciding in which category to put this: in the "Plug-in" section, or "Repository Tools" section? I finally decided to put it here, because its main purpose is to interface with a SubVersion repository. This is a plug-in to Visual Studio that (as does TortoiseSVN in Explorer), shows you the status of your files in your solution/projects. If you are using Visual Source Safe (AAAARRRRRGGGGHHHH!), or TFS on other projects (like at work), this has a similar interface - except for a SubVersion repository. 
By the way, unlike TFS or VSS,  using TortoiseSVN, SubVersion, and AnhkSVN it's very easy to work disconnected.  Plus the updates and commits seem to be much faster. Finally, all of these play very well together.

Wednesday, May 18, 2011

Signs Of A Project In Trouble

Recently I had a contract at one of our local banks (to remain un-named in this post). After about the first week, I knew we were all in trouble.

  • I was a new resource being brought on less than two months away from  the scheduled delivery date of the first release.
  • The primary developers on the project were all working 10, 12, 14 hours per day 6-7 days a week - for the last several months, and the whole short time I was on the project.
  • They claimed to be doing "Agile", but our standup meetings were lasting 45 - 60 minutes each day.
  • Their "burn down" chart was an Excel spreadsheet (a very clever one) with a worksheet for each sprint that only the Scrum master could update, and was updated during the standup by everyone giving their hours worked rather than the number of hours remaining.
  • Reviewing past sprints I realized that their initial estimates of effort compared to the actual effort recorded was off by 30% - 150% over the various sprints. Yet they kept making the same sorts of estimates at the beginning of each sprint.
  • Their concept of velocity was based on how many effort hours they achieved, rather than how much work was completed.
There were other factors too numerous to mention at this point. This bank is also known for simply defunding projects. In the last 30 years, I've worked there a total of 3 times. This was the first project I was on that was de-funded, but each time there was some project that was suddenly de-funded.

So, after two months of being on the project, one day it was announced that they had failed to receive further funding from the internal customer to complete the deliverable that was due a month earlier...

Fortunately, I had anticipated this, and already had another contract lined up. A happier place to work, at a higher rate of pay, with more control over the product deliverable.

O frabjous day! Callooh! Callay!

Friday, September 11, 2009

Why did I switch to Blogger?

Basically, for the same reasons I originally switched to BlogEngine: cheap, lazy, old curmudgeon.

It's actually cheaper than BlogEngine, because I don't have to pay for a site on which to host it.

It's easier for me, because I don't have any configuration work to do if I want to add associated blogs, (of which I have several), which means my laziness is less of an impediment. I still haven't figured out out the telepathic blog interface that allows me to create a blog instantly from any random thought/drivel that pops into my mind when I wake up. So I still have to get up in the morning and go to my desk...

I'm still a curmudgeon, and even older than I was before.

The Myth of the Magic Bean

(Originally posted 2008.10.09)

One of my clients has an office that provides free Peets coffee. They buy one pound at a time, whole bean, and store it in the freezer. When coffee is to be made, you grind the beans in the grinder, put the grounds in the maker, add water and electricity to the machine, and voilĂ , we have coffee!


What drives me crazy, is they steadfastly refuse to clean out the grinder. They like to leave the "dust" of the former beans from one grind to another. So what's the problem, eh?

What happens to butter when you leave it out at room temperature? It goes rancid. What happens to vegetable oils when you leave them out at room temperature? They go rancid. Any edible oil will go rancid when left in the open at room temperature. Except the magic coffee beans. These must be the same type of famous beans that Jack traded for his mother's cow (according to the fairy tale). Apparently the oil in coffee beans never goes rancid (in some peoples minds). So, when I grind the beans, social sabatouer that I am, I clean the coffee grinder! Hah! Take that you addled regenerates!

Now, in my defense, my #1 child works part time at the original Peets store in Beserkeley when home from college. The original Peets store, the progenitor of the gourmet coffee craze. Guess what? Peets cleans all their equipment, every single day. I'm guessing they have a far better appreciation for the true attributes of the "magic bean".

If it's good enough for Peets, it's good enough for me...

Why did I switch to BlogEngine?

(Originally posted 2008.05.11)

There were several reasons. But basically, I'm a cheap, lazy, old, curmudgeon.


First, I tried using a few PHP-based Blog engines: Wordpress Multi, Drupal, and something else I can no longer remember ... Since I'm cheap, I was trying to use "free" hosting sites. There are a few. WordPress was free, and since I wanted to have multiple Blogs, I decided Wordpress Multi was probably the best choice. There are a lot of themes. A couple were close enough to the "theme" of each my blogs that I could choose something for each. But the free hosting sites didn't really seem to like letting me put Amazon links in. There were plug-ins for Google Ads, but not for Amazon. Since, I'm also lazy, or more accurately, keenly aware of how much effort I am willing to exert for a given benefit (I am a contract progarmmer, paid hourly), and didn't want to invest the time to invent a new plug-in in a language in which I am a newbie, I decided to research something else in more familiar territory.

.NET open source options (at the time) seemed to be restricted to SubText (.Text was defunct), and dasBlog. I decided on SubText, because dasBlog is file based and that just seemed to me to present potential future performance issues. Also, SubText seemed more mature, with more people supporting it, and it used MS SQL Server. Back to the "cheap" issue again; my hosting provider for my primary site, www.sa-consult.com, only provides me with one MS SQL Server database as part of my monthly fee. Since I could install the SubText tables seamlessly in my existing database, it seemed like a good choice. Back to the lazy issue, I just found it too difficult to develop a suitable theme for this site. I was able to do it, but it just seemed like a pain in the **s. Also, I seemed to be unable to get it to use subdomains the way that I wanted to use them.

So, somehow, I found BlogEngine.NET. And I really like it! It uses XML files natively (like dasBlog), but unlike dasBlog (or at least the version I was researching), it supports multiple blogs in one installation, uses subdomains without jumping through hoops, seems to have permalinks and clean URL's for SEO, and has providers for both MS SQL and MySql server. The installation anywhere for the XML version seems to take about 5 minutes, and the instructions are easy to follow. I was able to create a theme (from an existing one), in about 2-3 hours, and another in about 1 hour. It uses Master pages. It's a bit short on plug-in's at this point, but I expect this to improve.

As for the curmudgeon issue: this product serves my needs quite easily. The curmudgeon in me likes that. I have several other curmudgeonly blogs: theSpiritualCurmudgeon, and theAmericanCurmudgeon. One is already converted to BlogEngine, and the other soon will be.

I highly suggest you take a look at it! (As well as my other Blogs ...)

Who Loves Scotch?

(Originally posted 2008.02.08)

Well

I do ...

Since this site is an "avatar" for a tavern, frequented by software developers, etc., it seems appropriate to discuss the entire gamut of topics suitable to taverns. One of my favorites is "spirits"; Usquabae, whisky, "the water of life". For those of you who are easily amused, try the following link: Whiskipedia.

I have 3 favorites, in the following order of preference: "Laphroaig", "Lagavulin", and "Glenmorangie Port Wood". "Lagavulin" and "Laphroaig" are both "Islay" (eye-la) scotches. They are produced on the Isle of Islay, which is the southernmost island of the Southern Hebrides off the West coast of Scotland. Both are famous for being smoky, peaty, whiskies. They are. Laphroaig sells (here in the US), primarily the 10 and 15 year old. For a good, strong, bracing drink before dinner, the Laphroaig 10 year old is my favorite. For me, it is an aperitif. The 15 year old is much smoother and more refined, but still smoky. I like it with a good piece of bittersweet chocolate.

"Lagavulin" is primarily sold here only in the 16 year old. "Lagavulin" is smoother and sweeter than the "Laphroaig" 15 year old. "Lagavulin" is aged 100% in sherry casks (like Macallen). It has more bite and character than Macallen, to me at least. I find Macallen to be just sweet. Again, good after dinner and with a piece of dark chocolate.

The "Glenmorangie Port Wood" is another single malt. It apparently is aged in Bourbon casks, and then "finished" in Port pipes. It has a slight pink tinge and is sweet and light. I happen to like Port a lot. So the Glenmorangie is a nice diversion for me. Glenmorangie is a Highland scotch, and like all the other Highland and Speyside scotches I've had so far, too light for me.

One peculiar scotch I've come across is "Jura" scotch. The Isle of Jura is another Hebrides island, just a little nor'east of Islay. The first time I had this, I thought the bar keep had gone cross-eyed and poured me some Tequila! It had an "oily" finish I'd only experienced with Tequila before. However, a second glass, and watching the bar keep carefully revealed it was indeed the taste from the bottle. If you can find it, I suggest trying it.

I prefer to drink ALL my whiskey's in a brandy snifter. I don't warm the snifter, I don't add water, ice, or anything. What's your preference?