Application Security Testing: An Integral Part of DevOps
It's about time programmers were recognized for all of their hard work. OK, that probably doesn't make much sense. As a programmer, you are used to working until 4 AM in the morning. Sleep. Waking up at 6AM and go to your office again. Programmers are used to it. We are tough. We can handle it... Or so we thought. Honestly, it actually sucks.
You may be wondering what I am talking about. Well, the point is: Programmers do not really get much recognition. There is not much that can motivate us to try and do a better job. Yes, having the satisfaction of seeing your masterpiece of code being used on a daily basis gives a warm feeling; but, if you have been in the game as long as I have, you have achieved what you wanted to achieve many times over. You start to get bored and start feeling under-appreciated. Until now...
Visual Studio Achievements
Now what is Visual Studio Achievements actually?
Well, it is an excellent way to motivate coders to enjoy normal mundane day-to-day tasks. They give us a reason to try and code things right. And, with this, they appreciate our 20 hour days; they appreciate our ways of thinking. Microsoft has launched a program called Visual Studio Achievements, which enables you to earn Achievement Badges , which you can show off to your fellow employees; even your boss.
What Achievements are There?
There are six main categories in which you can earn Achievements:
- Customizing Visual Studio
- Don't try this at home
- Good Housekeeping
- Just For Fun
- Power Coder
- Unleashing Visual Studio
- Windows Azure
The subcategories for each achievement are as follows:
|Main Category||Achievement Name||Description||Points|
|Customizing Visual Studio||Extensions Junkie||Install 5 Extensions to Visual Studio||5|
|Customizing Visual Studio||Extensions Junkie Deluxe||Install 10 Extensions to Visual Studio||10|
|Customizing Visual Studio||Gotta Be Different||Load Custom Visual Studio Settings||5|
|Don't Try This At Home||Field Master||Have 100 Fields in a Single class||Uses FxCop|
|Don't Try This At Home||Go to hell||Use of the Goto keyword||Uses FxCop|
|Don't Try This At Home||Job Security||Write 20 single letter class level variables in one file.||Uses FxCop|
|Don't Try This At Home||Magic Numbers||Write a enum with 30 fields||Uses FxCop|
|Don't Try This At Home||Overload||More than 10 overloads of a method.||Uses FxCop|
|Don't Try This At Home||Scrollbar Wizard||Write a single line of 300 characters long.||Uses FxCop|
|Don't Try This At Home||Turtles All the Way Down||Write a class with ten levels of inheritance||Uses FxCop|
|Good Housekeeping||Regional Manager||Add 10 Regions to a Single Class||7|
|Good Housekeeping||Using Just What I Need||Used 'Organize Usings' 50 times||7|
|Just For Fun||Install and Register For Visual Studio Achievements||Install the add-in and register with Channel9||5|
|Just For Fun||Lonely||Code on a Friday or Saturday night.||5|
|Just For Fun||Obsessive Compulsive Disorder||Invoke the 'Close All But This' menu option 10 times.||5|
|Just For Fun||Potty Mouth||Use 5 different curse words in a file||5|
|Just For Fun||Save A Tree||Print source code||5|
|Power Coder||Complex||Have 50 projects in a solution||10|
|Power Coder||Equal Opportunist||Write a class with public, private, protected and internal members||10|
|Power Coder||Localization Guru||Have 1000 localized values||10|
|Power Coder||On The Shoulders of Giants||Reference 25 assemblies||10|
|Power Coder||Suspicious||Use 5 preprocessor directives||10|
|Power Coder||Time For An Upgrade||A solution that takes 10 minutes to compile||10|
|Unleashing Visual Studio||Architect||Add 10 items to a sequence diagram.||5|
|Unleashing Visual Studio||Casual Observer||Start a debug session using step over (F10) more than 10 times.||5|
|Unleashing Visual Studio||Cheater||Invoke an IntelliTrace Menu 10 times||5|
|Unleashing Visual Studio||Interrupting Cow||Have 10 breakpoints in a file.||5|
|Unleashing Visual Studio||Performance||Invoke performance tools 10 times.||5|
|Unleashing Visual Studio||Start Me Up||Have 3 startup projects.||5|
|Unleashing Visual Studio||Stubby||Generate method stubs 9 times.||5|
|Unleashing Visual Studio||The Explorer||Start a debug session using step into (F11) more than 10 times||5|
|Unleashing Visual Studio||UML God||Create a UML Class Diagram 10 times.||5|
When an achievement is unlocked, Visual Studio lets you know visually with a pop-up-screen in the IDE:
Figure 1 - Achievement Unlocked
Your Channel9 profile will also be updated, and this will recalculate your position on the Achievements Leaderboard:
Figure 2 - Channel9 Leaderboard
You can Tweet about your Achievements as well as share them on Facebook. If you have your own blog, you can use the Visual Studio Achievement Widget, which is as simple as adding one line of script to your page.
As you can see, Microsoft is trying to make programming fun! My personal favorite is Potty Mouth. Well, I guess everyone feels like this scenario sometimes:
You are coding and thinking and coding and thinking. Doesn't matter what you do, that certain code segment does not want to work! Now, I am not a very patient guy. So sometimes out of frustration, you just type random words, which ends up being curse words! The problem with me is that Visual Studio doesn't understand Afrikaans curse words, so there goes my points!
Microsoft is pushing people to try Azure. As such, there are a number of achievements around installing and using Azure and SQL Azure. You have the ability to download a 90 day trial of Azure. With achievements, while you try learning how to use Azure, you can earn badges too!
Windows Azure Categories
Unleashing Windows Azure
Database Darling (5 points)
Use SQL Azure.
Desktop Debutante (5 points)
Configure Azure for Remote Desktop Connection.
Get On The Bus (5 points)
Use the service bus.
Heading Into The Cloud (5 points)
Publish to the cloud from Visual Studio.
IntelliTrace Rocks (5 points)
Configure Azure to use IntelliTrace.
It's My Party (5 points)
Configure Azure to use start up tasks.
Keep Heading Into The Cloud (5 points)
Publish to the cloud from Visual Studio 10 times.
Performance Power (5 points)
Configure Azure to use performance profiling.
Show Me The Cache (5 points)
Use Windows Azure Caching.
Union Jack (5 points)
Configure Azure to use a worker role.
Write Once, Run Anywhere (5 points)
Run multiple websites in a single web role.
Windows Azure SDK Guru
Attack of the Blob (5 points)
Use page blob features of Windows Azure Blob Storage.
Tired Of Waiting In Line (5 points)
Use time out features of Windows Azure Queues.
Windows Azure Toolkit Wizard
Game In The Cloud (5 points)
Use Windows Azure Toolkit For Social Gaming.
Phone In The Cloud (5 points)
Use Windows Azure Toolkit For Windows Phone.
How do I get started?
3 Easy Steps:
Register and create a Channel 9 account. This will allow you and Microsoft to track your Achievement points, as shown in Figure 2
Download the Visual Studio Achievements Extension.
Get started earning valuable points!
Downloading and Installing the Extension
The following steps will allow you to download and install the Visual Studio Achievement Extension:
- Download the Visual Studio Achievements Extension.
- When Prompted Save the file anywhere
- Navigate to the folder where you have downloaded this extension to. The Extension's name is Coding4Fun.VSAchievements.Package.vsix
- Double click this file. Your screen will look like :
- Open Visual Studio 2010. Your screen would appear as follows:
- Sign in with your Windows Live account. This will enable you to create your Channel9 account.
- Follow the Cannel9 screens' steps to Authorize the tracking of your progress
- Start a new Project.
You already have scored 5 points, just for installing this extension.
Figure 3 - My Achievements
To earn an extension, choose which one you'd like to attempt. In this example, I'll choose Regional Manager under the Good Housekeeping Achievement section. This means I'll have to Add 10 Regions to a single class, as simple as that!
I have created a new Visual Basic Windows Forms application - Achievements can be earned through either VB or C# - named RegionTest:
I created 10 Regions randomly scattered across my code, and now I'll get 7 points, just for doing good housekeeping!
See how easy it is? Have fun!
Go on, enjoy your coding for a change! Enjoy coding on the weekends, and earn Achievement points in the process!