The opinions expressed in these materials are my own and are not necessarily those of Microsoft.
Copyright © Microsoft Corporation. All rights reserved. Unless otherwise indicated, all source code provided is licensed under the Microsoft Public License (Ms-PL).
On my journey to keep you better informed I will throw in information as I get it sometimes. Just to be clear I’m not an expert on licensing so you should always consult a licensing specialist before making any decisions. Now that I’ve got the CYA done; there was a pretty cool update to the MSDN licensing recently. Here is the summary from more knowledgeable folks than me:
Two new use rights were added to MSDN subscription use terms on January 1, 2013. In addition to the existing use rights, MSDN subscribers now have the right to use the software for evaluation and to use the software to replicate a customer environment for diagnosing issues.
1. Evaluation use rights were added to enable MSDN subscription use rights to be a superset of the use rights offered in TechNet subscriptions, and to make it easier for MSDN subscribers to evaluate the software, no longer needing to download trial versions for this purpose.
2. The right to replicate a customer environment was made to enable use of the MSDN software by support staff in non-production environments, even when they aren’t technically developing or testing the software when performing this support. A typical scenario is when a customer calls in for support and the front-line agent escalates the issue to a support engineer to troubleshoot.
The second item is the most compelling. Assuming the support engineer has an MSDN subscription, they can use MSDN to replicate the customer’s environment. If you’ve been doing this already you are now legal and if you haven’t been doing this then you should definitely make a decision about using this feature. If you want to know the specific area that was changed in the license agreement here is the verbiage from the Product Use Rights with highlighting of the added pieces:
You have the rights below for each license you acquire.
1. You must assign each license to a single user.
2. Each Licensed User may run an unlimited number of copies of the software and any prior version on any device.
3. For MSDN and TechNet subscriptions, the “software” means what is made available to your subscription level via MSDN and TechNet Subscriber Downloads.
4. The Licensed User may use the software for evaluation and to design, develop, test, and demonstrate your programs. These rights include the use of the software to simulate an end user environment to diagnose issues related to your programs.
5. The software is not licensed for use in a production environment.
6. Additional rights provided in license terms included with the software are additive to these product use rights, provided that there is no conflict with these product use rights, except for superseding use terms outlined below.
I often advocate using virtual machines and, in particular, Brian Keller’s VM for getting up to speed on our latest TFS changes. While I’m not sure about your usage, I often run these VM’s as long as possible but sometimes run up against the end of the trial period for TFS. I ran across this article from Brian Harry he wrote a while back about extending the trial period and thought I would share.
For TFS 2010, 2012, and later the procedure can be found here:
For TFS 2005 and 2008 the process for extending the trial period can be found here:
It’s been a while since I have blogged and have a lot of catching up to do. Look for for updates, new tips, and much more over the next year. To get the ball rolling I wanted to start with something lighter. I was watching episode 10 of Elementary [http://en.wikipedia.org/wiki/Elementary_(TV_series)] and they mentioned a language called Malbolge. I’ve been coding for a long time but never heard of this language so decided to do some research. Apparently there is a major group of programming language I haven’t been exposed to: Esoteric Languages. I thought I would show some of these to folks who may have never seen them.
So what IS an esoteric language? Here is how Wikipedia defines them:
“An esoteric programming language (sometimes shortened to esolang) is a programming language designed to test the boundaries of computer programming language design, as a proof of concept, or as a joke. The use of esoteric distinguishes these languages from programming languages that working developers use to write software. Usually, an esolang's creators do not intend the language to be used for mainstream programming, although some esoteric features, such as visuospatial syntax, have inspired practical applications in the arts. Such languages are often popular among hackers and hobbyists.
Usability is rarely a goal for esoteric programming language designers—often it is quite the opposite. Their usual aim is to remove or replace conventional language features while still maintaining a language that is Turing-complete, or even one for which the computational class is unknown.”
There is a thriving community of esolang people out there. The best place to start if you are interested in digging deeper would probably be the Esolang Wiki found here:
The language list at the Esolang Wiki is as complete as I have seen anywhere in my research: http://esolangs.org/wiki/Language_list
Interestingly, they separate general esoteric languages from joke esoteric languages with the distinction that joke languages “are not of any interest except for potential humor value. Generally speaking, they are completely unusable for programming even in theory, trivial and less interesting variations on existing esoteric languages, or too underspecified to determine any potential usability.” [http://esolangs.org/wiki/Joke_language_list]
Let’s take a look as some of the more interesting languages in the large list of esolangs.
Malbolge, was invented by Ben Olmstead in 1998, is an esoteric programming language designed to be as difficult to program in as possible. Seriously, that was the goal. It is modeled as a virtual machine based on ternary digits.
Below is the code for printing “Hello World!” (without the quotes of course) in Malbolge:
Created in 2003 by Edwin Brady and Chris Morris, Whitespace is an esoteric programming language that uses only whitespace as syntax. Everything other than spaces, tabs, or linefeeds is ignored. Below if a form of Hello World with highlighting of whitespace turned on for clarity.
Velato is a language which uses MIDI files as source code. Programs in Velato are defined by the pitch and order of notes. It is intended to allow for flexibility in composition, so functional programs will not necessarily sound like random notes. There is a tendency for Velato programs to have jazz-like harmonies.
Here is an example of Hello World in Velatio in sheet music format:
One of my favorites. LOLCODE is an esoteric programming language inspired by the language expressed in examples of the lolcat Internet meme. The language was created in 2007 by Adam Lindsay, researcher at the Computing Department of Lancaster University.
Here is an example of Hello World in LOLCODE http://esolangs.org/wiki/Hello_world_program_in_esoteric_languages#LOLCODE:
CAN HAS STDIO?
VISIBLE "HAI WORLD!"
Interestingly there was a .NET complier for LOLCODE made back in 2007 that can still be found here: http://code.google.com/p/lolcode-dot-net/
DNA# is an esoteric programming language which is based on the schematic structure of the DNA molecule and was invented 2009 by User: Benni++ at the Esolang Wiki.
Check out this snippet from the Hello World example of DNA# (NOTE: the original was pretty long so I just opted for a shortened version):
Piet is an esoteric programming language in which programs look like abstract paintings. It uses 20 colors, of which 18 are related cyclically through a lightness cycle and a hue cycle. A single stack is used for data storage, together with some unusual operations. Piet was invented by David Morgan-Mar and is named after geometric abstract art pioneer Piet Mondrian.
Hello World in Piet is pretty cool, check this out:
Well, I hope you enjoyed these esoteric languages as much as I did. There is some seriously messed up stuff here and we have only scratched the surface. As an honorable mention you should probably look at brainf**k which not only has a cool name but is one of the more famous esolangs around: http://bit.ly/2cxjWL
Look for some “catch up” articles to follow this one and then a new series or two to come after that. Keep me honest (as some of you already have) and ping me when I don’t get an article out on the usual Tues/Thurs schedule.
I’m finally happy to announce we have just released the Visual Source Safe Upgrade Tool for Team Foundation Server today!
This tool will make it easier to convert from Source Safe to Team Foundation Server. I have a lot of customers who want to get off Source Safe and start leveraging more than just source control. If you use Source Safe today, you need this tool! Here is the main text from the site:
The VSS Upgrade tool provides a Wizard Based UI for upgrading Visual Source Safe repositories to Team Foundation Server 2012, 2010 or Team Foundation Service (http://tfs.visualstudio.com/)
You and your team can enjoy many benefits by upgrading your code projects, files, version history, labels, and user information from Visual SourceSafe to Team Foundation Server (TFS) version control. TFS version control is a modern version control system that is fully integrated with the suite of ALM tools in Visual Studio 2012 and Team Foundation Server.
In case you haven’t heard yet, we have announced the RTM of our Team Foundation Service. Our long-term vision is to have up to 5 users free at all times and then some pricing model for over 5 users. Currently it is all free to my knowledge. Here is a blurb from the main site:
Plan projects, collaborate with your team, and manage your code online from anywhere.
Check your code directly into the cloud using Visual Studio or Eclipse. Manage work items and bugs in Internet Explorer, Chrome, or Safari.
Check it out here:
Symbols are vital to the overall debugging effort. Most of the time we take them for granted since they are auto-generated for our applications but we hit a brick wall when we try to work with something where debug symbols aren’t available. I thought it would be a good idea to remind folks where they can find information on what symbols are and how you can set up access to symbols on a symbol server. You can find our great guide for setting up symbols here:
Here is an excerpt from the Introduction to Symbols section:
When applications, libraries, drivers, or operating systems are linked, the linker that creates the .exe and .dll files also creates a number of additional files known as symbol files.
Symbol files hold a variety of data which are not actually needed when running the binaries, but which could be very useful in the debugging process.
Typically, symbol files might contain:
Function names and the addresses of their entry points
Frame pointer omission (FPO) records
Each of these items is called, individually, a symbol. For example, a single symbol file Myprogram.pdb might contain several hundred symbols, including global variables and function names and hundreds of local variables. Often, software companies release two versions of each symbol file: a full symbol file containing both public symbols and private symbols, and a reduced (stripped) file containing only public symbols. For details, see Public and Private Symbols.
When debugging, you must make sure that the debugger can access the symbol files that are associated with the target you are debugging. Both live debugging and debugging crash dump files require symbols. You must obtain the proper symbols for the code that you wish to debug, and load these symbols into the debugger.
Grant Holliday wrote a great blog post a while back that I have been meaning to surface to my readers for some time. If you haven’t seen it yet, you can find it here:
Here is the opening paragraph from the post that lays out what Gran is trying to do:
Team Foundation Server 2010 was released in April 2010. Since then, there have been a number of important Service Packs, Cumulative Updates and hotfixes that have been made available based upon internal usage at Microsoft and customer feedback via the support organisation. This blog post is an attempt at bringing together all the updates that are currently available.
He is keeping it updated consistently and you should definitely read this post if you use TFS 2010.
Folks, apologies for going dark for a few weeks but I have been heads down in the creation of some new IntelliTrace content. I’ve put together a set of labs and slide decks that you can use to train yourself and/or train others on how to use this to full advantage. You can find the entire package here:
The contents are built on top of Brian Keller’s amazing work with his virtual machine and labs that can be found here:
Here is a quick look at the contents:
· Slide Deck for presenting at an event
· Titles and Abstracts for informing others about the event
· Demo Quick Snippets for use when presenting to cut down on the demonstration time if needed
You can (and should) modify the materials to suit your needs. For example, to put on the one hour version of this session you would need to cut out several slides from the original deck. Feel free to modify as needed for your organization.
· Lab Manual for demonstration or instructor-led lab sessions
· Any supplemental material required to complete the labs including project files
Contents of the Lab Manual
Lab 1: IntelliTrace Events
Lab 2: IntelliTrace with Call Information
Lab 3: Creating Log Files
Lab 4: IntelliTrace CAB
Lab 5: Collection Plans
Lab 6: IntelliTrace Everywhere with ASP.NET
Lab 7: Debugging with IntelliTrace Files
Lab 8: IntelliTrace Everywhere with Other .NET Applications
Lab 9: IntelliTrace Everywhere with Microsoft Test Manager
Lab 10: Configuring Symbols
Lab 11: Using Symbols
· Collection Plans folder with sample collection plans for use with Visual Studio or IntelliTrace Everywhere as indicated by the folder name
· IntelliTrace Everywhere Best Practices document that has a summary of the best practices mentioned in the labs and slide deck
· IntelliTrace configuration tool obtained from http://intellitracecpconfig.codeplex.com/ Included in these materials with permission from the tool’s author, Vlatko Ivanovski
I’ve had a lot of people asking about our famous .NET poster and if there is a version for 4.5 yet. The answer, to my knowledge, is “no”. However there IS a really good poster created by Jouni Heikniemi that you can find here:
Grab it and see if you like it as much as I do
I love data! And, since I am hyper-focused on all things Visual Studio and Team Foundation Server, I love data about our internal usage of the products we sell to our customers. Make no mistake, we are hard-core users of the same technologies we ask you to use. Case in point is the publishing of our internal TFS statistics. You can find all the good data in the great post by Erin Geaney here:
Make sure check out the stats so you can get a feel for how we use TFS internally at Microsoft!