Friday, March 27, 2015

Blog Dead? Nope! Just taking a break (and if you need a Cool Thing fix, check these out...)

As if you haven't noticed, I'm on something of a blogging sabbatical. I'm still scanning my 2.5K+ feeds daily and sourcing stories for other areas (see below), but I've kind of run out of blogging want too. No, it's not dead and yes, I'll be back, but for now am just taking a little break...

Still need a Greg/Cool Thing fix? Then you should check out these blogs and casts that I'm  sourcing stories for or helping produce... :)

So yeah, all that and a full time day job (and a science fiction reading addiction), I think you can see why my blogging has been lacking recently. :)

Wednesday, February 25, 2015

IoT? Sensors? Devices? What's in what? "Understanding Internet of Things (IoT) Device Choices" Whitepaper

Understanding Internet of Things (IoT) Device Choices

File Name: Understanding Internet of Things_IOT_ Device Choices.docx

Date Published: 2/24/2015

File Size: 13.2 MB

This paper provides an introduction to the landscape of the Internet of Things (IoT) for devices, including accompanying high-level patterns for communications and enabling technologies, and serves as a primer for IoT. It is based on a variety of experiences with large-scale customers and deployments. This paper does not provide detailed guidance, such as how to choose a device for a specific purpose or decide on a communication pattern for devices.


Executive summary

As stated in the press, at conferences, and in publications[1], the Internet of Things (IoT) represents a huge opportunity across industries and customer segments. The paper “Building the Internet of Things”, which is available at discussed a broad set of topics associated with building IoT solutions. This paper is a follow on to that earlier paper and focuses on the "things" within IoT solutions.

First, it explains the concept of smart objects that contain devices, sensors and actuators, the combination of which will gather, process, send and receive data. Smart objects may or may not interact with a local gateway, which is sometimes used to provide external communication capabilities or provide local processing.

This paper also explains the set of considerations for device capabilities, and how they affect an overall solution. These considerations include cost, communications requirements, power availability, security requirements, and compute capacity. Next, it explains the options for device connectivity and the implications of choosing between common options.

Security in the IoT is critical, and a failure to consider security early in IoT design can lead to unfortunate and even catastrophic hacks that often end up in the news, potentially impacting human lives. Because overall system security starts at the device itself, the paper offers a set of device security principles and provides guidance on how to address those principles.

Interoperability in the IoT is also important today, and will continue to grow in mindshare and be seen as a critical requirement for emerging devices. This paper discusses standardization efforts, including the AllSeen Alliance, Open Interconnect Consortium, and several others. All of these efforts have strong industry supporters, but with the exception of AllSeen they are in their early stages. Although AllSeen and OIC are currently dominant, it’s too soon to call out a clear leader.

The final section of the paper discusses some example prototyping devices, their capabilities and some of the considerations when going from prototype to production.

This paper will give the reader a broad understanding of many of the aspects of device design for IoT solutions. For decision makers planning projects, this paper helps with scoping and knowing where more research is required to lay the groundwork for a successful IoT project.

[1] How IoT will disrupt the world,




If you're trying to grok IoT and what it means (not like it's going to be, if not already is, the overused and misunderstood terminology of the yeah) this 37 page whitepaper does a pretty bang up job of making the devices used in IoT a little clearer.

For example, "What's a Sensor versus a device?" Answered...

Do you not do contracts because legalize isn't your thing? Then you should contract( ) ('Do Contract')!

gamasutra - announcing contract( ), a free builder for plain English agreements

Legalese is for attorneys. contract( ) is for game developers.

contract( ) (pronounced ‘do contract’) generates free, plain English agreements for and between game developers. It’s based on the idea that developers do not need legalese to come to an agreement or to resolve a disagreement.

After many iterations on contract( ), using feedback from experienced game developers and attorneys, I’m super excited to announce that contract( ) is now ready for public use. What started as a homemade tool to quickly make agreements between me and my collaborators, quickly developed into a full-fledged agreement builder that anyone can use. The builder currently includes templates for defining the work per project or per milestones, templates for giving out IP rights, and templates for compensation through a fixed fee, fixed rate, per milestone, or through revenue share.




What you need to know about contract( )

contract( ) offers a free agreement, using common language, covering most things you want to agree on before working together with someone in the games industry. contract( ) is based on the idea that two people or two companies do not need legal talk to come to an agreement or to resolve a disagreement.

For the sake of simplicity and clarification, contract( ) tries not to use the specific terminology of the laws of your country or state. Several attorneys have reviewed contract( ) to make sure it doesn't conflict with most country- or state-specific laws.

A legal document without legal talk?

The law is very advanced in handling situations between people or companies. When an attorney writes a legal document, he tries to match the terminology of those laws so that they connect one-to-one and make sure that the agreement is enforceable. However, this does not mean that a document with a different terminology is automatically invalid.

Every written agreement you make can be considered a legal document, even if your agreement is two sentences on a napkin. In case you and the contractor get into a disagreement and decide to take it to court (which is uncommon), much of the conversation in court will be about what is what, and only sections of the agreement that are very unclear or in direct conflict with country- or state-specific laws may be held unenforceable.

Country-specific laws?


In short: while contract( ) is designed to cover most cases, it is also designed to be short and straight forward. Be aware that contract( ) therefore still relies on local laws for a number of things like those listed above.

A personal note

contract( ) is my attempt to transfer my experience, but also the experiences of dozens of other developers and attorneys, to other game developers. I (Adriaan de Jongh) use the agreements from contract( ) myself, and feel that this is the only way to make it as unbiased, practical, honest, but also as legit as possible. I'm not responsible for your agreements with others, but I do not want to push anyone into an agreement I would not want to be in myself.

In the end, contract( ) isn't legal advice because that's exactly what it tries to avoid. If you wish to cover any of the legalese mentioned earlier, or want to know what the law provides if cases are not included in contract( ) agreements, hire a qualified attorney-at-law from your country or state to go over the agreement from contract( ) before signing it.

Attorneys recommended by other developers

In case you feel that this agreement does not fit your needs...


Made by & thanks to

contract( ) was made by game designer Adriaan de Jongh with the help of dozens of experienced game developers and attorneys. I have been in numerous tricky situations with contractors, IP transfers, and publishers, and found that it was never the legal talk that saved my relationship with a collaborator or contractor, but rather the inclusiveness of the contract: a contract in common language, simple and straightforward, can serve an equally good purpose if it reflects the conversation between two parties rather than the conversation between two attorneys.


Something new and different and not something I'd usually share, but I think many of you will like, or might be able to use. Personally, thinking about "doing a contract" makes my... well... um... errr.... well, makes me not feel well... Now, make sure you read and understand this, but worse case, it's a great starting point!

.NET in 2015... Is it .NET 4.6, .NET Core 5, both? Beth knows and shares... (Hint: Both)

Beth Massi - Understanding .NET 2015

Last year after BUILD I posted Exciting Times for .NET and since then I have had the pleasure of working much closer with the .NET team, which includes the runtime, framework, languages & compilers. Although my focus has been a lot more on internal community in the last year, such as helping run internal conferences for our field employees, I’ve also spent time helping get the .NET Foundation off the ground and learning a lot about open source communities and all our .NET Foundation projects. Oh right, I also got married. :-) It’s been a transition period for me. Going from community “evangelist” to more of a “facilitator” or “connector”.  I really like Alex Hillman’s term: Tummler.

Now that we’re approaching the next BUILD, I’m even more excited about the progress we’ve been making, particularly around the .NET platform itself, and the team’s approach to open source. There are multiple tracks of .NET innovations happening so I thought I’d write a high-level “sign-post” style blog post to help people understand the major pieces and how and where to get involved with the projects. In other words, a good place to start learning about .NET 2015. At least that’s my hope!

.NET 2015 – 10,000 foot view

At a very high level, here’s the rundown of the major components that fall under the “.NET 2015” umbrella.



Major components of .NET 2015
Frameworks and Runtimes

The .NET Framework is a managed execution environment that provides a variety of services to its running applications. It consists of two major components: the common language runtime (CLR), which is the execution engine that handles running applications; and the .NET Framework Class Library, which provides a library of tested, reusable code that developers can call from their own applications.

.NET Framework 4.6 builds upon 4.5.2 and contains new APIs, improvements to event tracing, and many bug fixes. This is the next version of the full .NET Framework we know today. .NET Framework 4.6 will be included in Windows 10 and will also ship on Windows Update for previous OSes (Vista and above). See: .NET Framework 2015 Preview

.NET Core 5 is a general purpose, modular framework that can be used across a wide variety of app models and platforms, is available as open source, can be deployed modularly & locally (side-by-side), and will be supported by Microsoft on Windows, Linux and Mac OSX. It is a refactored set of base class libraries (corefx) and runtime (coreclr) which includes a new JIT compiler (“RyuJIT”), the .NET Garbage Collector, native interop and many other .NET runtime components. Today, .NET Core builds and runs on Windows. We are adding Linux and Mac implementations of platform-specific components over the next few months.


I know YOU all know and understand what .NET 4.6, .NET 5 (Core), etc. etc. are, but I bet some (many/most) of your co-workers don't. Beth does a great job in detailing both, what's in what and what's not, what's open source (now and in the future) and what's not... In short, read her article. AND keep if for reference, as it IS a little confusing right now (and for a few years into the future, I'll bet...)

Tuesday, February 24, 2015

[I so want/need this] Kitchen Safe - Helping you from helping yourself...

technabob - Time Locking Kitchen Container Keeps Cookie Monsters Away from Cookies

...Well, this time locking container will help.


The Kitchen Safe is a plastic container that locks your goodies up. Just put the food in, set the timer from 1 minute to 10 days and lock it. It won’t open until the timer runs out. Unless you get a hammer out, you cannot get around it. You just have to wait it out. It will help you with your diet, since it keeps you from your mortal enemy. It’s also a fun way to present a gift, by locking it away inside with a the countdown timer set to secure the item until the appropriate occasion.


You can also get one that has a white (i.e. non-see through) base... talking about making people crazy... LOL

Kitchen Safe: Time Locking Container (Pink Lid + White Base)


  • Featured on Shark Tank! Build good habits by locking temptations in the Kitchen Safe. USA Today and TIME Magazine call it "Brilliant!"
  • Simply place an item in the Kitchen Safe, rotate the dial to set the time, and press the dial to activate the lock! Once locked, it cannot be opened until the timer reaches zero. No overrides! Now, you can enjoy the occasional snack, and keep it around the house, without worrying about blowing your entire diet. :)
  • The product is built from thick, sturdy, high quality, BPA free materials. Container walls are very rigid and 3X thicker than typical containers. A large, high contrast display shows the amount of time remaining. The locking mechanism is driven by a high quality motor.
  • The interface takes seconds to learn. Kitchen Safe can be locked for any amount of time between 1 minute to 10 days. Batteries last 6 to 12 months.
  • Studies of highly successful people show that the best strategy for achieving goals is to avoid relying on willpower in all situations. These people are more likely to use something called precommitment, which significantly improves odds of achieving goals. Precommitment is the notion of committing to a smart choice early, when we know we will be tempted by a bad choice later. The Kitchen Safe is a tool that enables us to precommit to smart choices. Plus, it's really fun to use. Who doesn't like spinning and pressing a giant button? Learn more at


Kitchen Safe


They had me until the "As handy as duct tape". Sorry, beyond a towel, there is nothing as handy as duct tape! It's a universal law. :P

Qualcomm Releases the NoSQL DB Qizx [Java, Amazon EC2, EBS hosted]

I Programmer - Qualcomm Releases NoSQL Qizx

Qualcomm has launched Qizx, a noSQL, native XML database for text-intensive projects where you need quick access and searching of documents.

Qualcomm acquired Qizx when it bought Axyana Software back in 2013, and has been developing the database since then. The new version was launched at the start of the year and is now available on the AWS Marketplace.

Qualcomm describes the new version as enterprise ready with high availability, improved performance, reliability, and efficient document indexing and search power. It works with well-formed XML documents, with no DTD or schema required.


Qualcomm Qizx

XML is an extremely versatile way of representing scientific data, technical documents, medical information, books, manuscripts, catalogs, regulatory filings, intellectual property, and business and accounting records. The Qualcomm® Qizx™ software is a NoSQL, document-oriented, native XML database that stores, retrieves, and manipulates XML files, documents, and semi-structured data.  Qizx is enterprise-ready and is well-suited for high volume, high throughput, workflow environments and text intensive projects where documents need to be quickly loaded and indexed for searching.

Why Qizx?
  • Automatic Indexing:  Qizx indexes XML content automatically, eliminates the classic burden of defining ad-hoc indexes for application queries, and provides query and transformation performance that saves time, money, and resources in the development process.
  • Query Performance:  Thanks to automatic indexing, queries are fast.  Document Type Definition (DTD) and schema are optional.  Qizx takes advantage of the XML structure to optimize queries automatically.
  • Standards Based:  Qizx supports XQuery (including Full-Text and Update extensions) and conforms to W3C specifications.
  • Scalable:  Qizx is proven to manage data repositories of several terabytes in size that contain millions of documents.
  • ACID Transactions:  Atomicity, Consistency, Isolation, and Durability support enables concurrent transactions and updates; queries can be completed without interfering with concurrent updates; backups can be performed while the Qizx engine is running; and modifications are journaled, enabling crash recovery.
  • Extensible:  It also comes integrated in a REST server that can be accessed by remote clients and applications



Embeddable engine

Qizx is written in Java and can be integrated into a standalone application. It can also be used in the J2EE environment and conforms to the Java J2EE Servlet API. Qizx offers a simple, ready-to-use server based on HTTP protocols, thereby making it usable by applications written in a variety of languages. C++ and Python bindings are included for database access.

Enterprise ready

Qizx offers high availability, improved performance, reliability, and clustering, which allows for database replication and scalability.


Qizx offers per user, hierarchical, fine-grained Access Control Lists.

System requirements

Entirely written in Java and officially supported platforms:

  • Windows 7, Vista, XP
  • Linux 2.4+
  • Mac OS X 10.5+

Java runtime

JRE 1.7

Qualcomm Qizx


This is just one of those announcements that I thought different and cool. Sure it's so far outside my sphere that I doubt I'll ever use it, but the fact that Qualcomm released it, I still found interesting...

"Top 10 Changes in ASP.NET 5 and MVC 6" [The post that has the WebForm/VB'ers in an uproar...]

Stephen Walther - Top 10 Changes in ASP.NET 5 and MVC 6

I spent the last couple of weeks writing sample code for ASP.NET 5/MVC 6 and I was surprised by the depth of the changes in the current beta release of ASP.NET 5. ASP.NET 5 is the most significant new release of ASP.NET in the history of the ASP.NET framework — it has been rewritten from the ground up.

In this blog post, I list what I consider to be the top 10 most significant changes in ASP.NET 5. This is a highly opinionated list. If other changes strike you as more significant, please describe the change in a comment.

1. ASP.NET on OSX and Linux

2. No More Web Forms [GD: Click through and read the comment & comment]

3. No More Visual Basic [GD: Lots of comments about this. Click through for support links, comment & comment)

4. Tag Helpers

5. View Components

6. GruntJS, NPM, and Bower Support

7. Unified MVC and Web API Controllers

8. AngularJS

9. ASP.NET Dependency Injection Framework



WebForms is not going away, not any more than WPF is. It IS going to live in the 4.6 line though.

What about Web Forms?

You can continue developing Web Forms apps and have confidence that Web Forms is an essential part of the .NET web development platform. We remain focused on adding new features to Web Forms to improve the development experience and keep the technology up-to-date with web practices.

Web Forms 4.6 includes the following new features for Web Forms:

  • HTTP 2
  • Async model binding
  • Roslyn CodeDOM compilers

Your existing Web Forms apps will continue to run without modification on IIS with .NET 4.6. You can’t use Web Forms apps with the cloud-optimized runtime.

For a video about the new features in Web Forms 4.6, see Web Forms 4.6. For information about the many recent changes for Web Forms in Visual Studio 2013 Update 2, see Improvements to ASP.NET Web Forms.

VB? Again VB "IS NOT DEAD" but for ASP.NET v5 it won't be in the RTM.

Visual Basic Support? #236

paullyvenne commented on Dec 14 2014

I was interested in trying out vNext with VB.NET? It seems to be promoted on most of the news but I don't see anything but C#. What's the latest news?

matthewhancock commented on Dec 15 2014

Yeah, it's a little frustrating re-installing the latest versions of Visual Studio 2015 hoping VB will have vNext templates with no luck.

coolcsh commented on Dec 15 2014

ASP.NET 5 is C# only at this point and that will not change before we RTM. We plan to have extensibility points so other languages like VB, F#, etc can be added via the form of a support package or such.

Guys look, ASP.NET v5 is a complete, from the ground-up rewrite. It's a v1, but built by those that have decades of experience and have learned the many hard lessons that entails ad built for today's web, not the web of the late 99's...

Don't take it from me, check out today's Scott Gu post;

Introducing ASP.NET 5

The first preview release of ASP.NET 1.0 came out almost 15 years ago.  Since then millions of developers have used it to build and run great web applications, and over the years we have added and evolved many, many capabilities to it. 

I'm excited today to post about a new release of ASP.NET that we are working on that we are calling ASP.NET 5.  This new release is one of the most significant architectural updates we've done to ASP.NET.  As part of this release we are making ASP.NET leaner, more modular, cross-platform, and cloud optimized.  The ASP.NET 5 preview is now available as a preview release, and you can start using it today by downloading the latest CTP of Visual Studio 2015 which we just made available.

ASP.NET 5 is an open source web framework for building modern web applications that can be developed and run on Windows, Linux and the Mac. It includes the MVC 6 framework, which now combines the features of MVC and Web API into a single web programming framework.  ASP.NET 5 will also be the basis for SignalR 3 - enabling you to add real time functionality to cloud connected applications. ASP.NET 5 is built on the .NET Core runtime, but it can also be run on the full .NET Framework for maximum compatibility.

With ASP.NET 5 we are making a number of architectural changes that makes the core web framework much leaner (it no longer requires System.Web.dll) and more modular (almost all features are now implemented as NuGet modules - allowing you to optimize your app to have just what you need).  With ASP.NET 5 you gain the following foundational improvements:

  • Build and run cross-platform ASP.NET apps on Windows, Mac and Linux
  • Built on .NET Core, which supports true side-by-side app versioning
  • New tooling that simplifies modern Web development
  • Single aligned web stack for Web UI and Web APIs
  • Cloud-ready environment-based configuration
  • Integrated support for creating and using NuGet packages
  • Built-in support for dependency injection
  • Ability to host on IIS or self-host in your own process

The end result is an ASP.NET that you'll feel very familiar with, and which is also now even more tuned for modern web development.

Microsoft Health for Developers (no, not a MS Diet for Dev's) - Microsoft Band SDK for WinPhone/Android/iOS(coming soon)

Microsoft Band SDK

Create amazing app experiences for Microsoft Band.

Extend the experience of your application to your users' wrists via a new dimension of interaction. Create an app that can send UI content to the band, keeping users engaged when they're in motion. Your app can also receive data directly from the band sensors, giving your users more reasons to interact with it. Create a personalized, data-rich, custom experience and enhanced scenarios that will engage users in ways only possible with Microsoft Band.

The Microsoft Band SDK Preview gives developers access to the sensors available on the band, as well as the ability to create and send notifications to tiles. Enhance and extend the experience of your applications to your customers' wrists.

Band SDK Preview for Windows Phone


Sample code

Band SDK Preview for Android


Sample code

Band SDK Preview for iOS

(coming soon)

Additional resources


Experience design guidelines

Release notes

Access sensors

Use a range of sensors including heart rate, UV, accelerometer, gyroscope, and skin temperature, as well as fitness data, to design cutting-edge user experiences.

Create your tile

Keep users engaged and extend your app experience to Microsoft Band. Create tiles for the band that send glanceable notifications from your app to your users.

Personalize your app

Monetize your app by offering users ways to customize the band. Change the color theme, or bring the Me Tile to life by changing the wallpaper.


I bet you can guess what the next Coding4Fun Hardware Friday post is going to be on... :P

The above mentioned doc's are currently just a 19 page PDF, so if you're interested just grab it.


From the PDF:

The Microsoft Band SDK Preview is designed to allow 3rd party application developers to harness the power of the Microsoft Band hardware. The SDK gives developers access to the sensors available on the Band, as well as the ability to create Tiles on the Band and sending notifications to these tiles for their applications. Through the SDK you as an application developer will be able to enhance and extend the experience of your application to your customers’ wrists. This opens up a whole new dimension of interaction and enables new, richer scenarios for your applications that make use of the capabilities of the Microsoft Band.

Applications that work with Microsoft Band essentially make use of the Microsoft Band SDK Preview to communicate to and from the Microsoft Band. The application logic runs on the host OS (iPhone, Android, Windows Phone) and it remotely controls the UI of the Microsoft Band as well as receives contextual information and sensor data from the Band.

The features offered by the SDK are as follows:
 Multi-platform support
 Subscribing to sensor data from the Band
 Sending application notifications to the Band
 Allowing and application to personalize the theme of the Band
The following subsections describe these features in more detail.

Multi-Platform Support
Given the multi-platform support of Microsoft Band, the SDK is also supported on all of the same platforms the current Microsoft Health and Sync applications are released on. This includes:
 Windows 7 or later
 Windows Phone 8.1
 Mac OS X 10.9
 iOS 8
 Android 4.2 (API 17)

Wednesday, February 11, 2015

TouchDevelop [Browser Client] is now Open Source (MIT) and on GitHub

Canadian Developer Connection - Microsoft Research makes Touch Develop open source

Touch Develop is a tool developed by Microsoft Research that allows developers to build mobile apps, games and websites in a browser. As of this week it is now open source on Git!

The TouchDevelop project was inspired by the programmability of 8-bit computers of the 80s that introduced many of us to the power of programming. TouchDevelop brings that magic to modern touch-based devices. The result is a tool that you can use to write basic code using a browser and can play on websites or mobile devices

What is TouchDevelop? ...


TouchDevelop has always been a very open tool, with developers having the ability to share their scripts with other Touch Develop users. But now they take the next step – they have released the TouchDevelop web app under the MIT license. The team at Microsoft Research remains dedicated to leading its further development, but you, our users, fellow researchers, and hackers of the world, are invited to contribute.

TouchDevelop sits in a GitHub repository. You can fork it there, submit pull requests with bug-fixes or new features, submit and comment on issues in the bug-tracker, and check on latest activity. TouchDevelop consists of about 160,000 lines of TypeScript plus some CSS and a tiny bit of HTML. ...

TouchDevelop - TouchDevelop goes open-source

The TouchDevelop project was inspired by the programmability of 8-bit computers of the 80s. This is how many in our team learned about programming and we wanted to bring that magic to modern touch-based devices. In very beginning, with our first Windows Phone 7 app, it was about programming your own device, 80s style.

Soon after, we have moved to the open web as the platform and added the capability to publish and share your programs (scripts) with other users in source form, so others can learn from and even improve upon them. We believe this openness has helped the platform quite a bit, with over 200,000 scripts published over the past 3 years.

Today, we’re taking another step on this path – we’re releasing the TouchDevelop web app under the MIT license. The team at Microsoft Research remains dedicated to leading its further development, but you, our users, fellow researchers, and hackers of the world, are invited to contribute.


Join the party!

TouchDevelop sits in a GitHub repository. ...

What’s not there

You’ll notice we’re not releasing the source of our Windows Phone and Android apps, as they will become obsolete very soon, when we switch to Apache Cordova. Also, running a cloud back-end for a major service like TouchDevelop is costly and complicated. We’re thus not expecting you to do that (and we’re not releasing the back-end). Instead, you can run your forked version of the TouchDevelop client web app against our cloud services. This will work as long as you’re running the client on localhost. If you want to run it from a different domain, drop us an email and we can talk about it.




TouchDevelop is a touch-friendly app creation environment for iPad, iPhone, Android, Windows, Mac, Linux developed with <3 at Microsoft Research. Our mobile-friendly editor makes coding fun, even on your phone or tablet!

This repo contains the source code of the TouchDevelop editor. If you are intending to write TouchDevelop scripts, you probably want to go to

Other pages of interest:

What's in this repo?

The repo is mostly written in Typescript with tiny pieces of HTML gluing.

This repo contains the source code for:

  • the browser client
    • the compiler
    • the editor
    • the runtime
  • the node.js client

However, you will not find the cloud backend code here. Indeed, takes care of storing and managing the scripts.


There are many ways to contribute to TouchDevelop....

I tweeted this earlier, but wanted to follow-up with a normal blog post (and there's also going to be a Coding4Fun,,  post on it next Wednesday too ;)

The two words a DBA or Dev loves to hear, "It's Slow..."

Brent Ozar - “It’s Slow” Is Not A Metric

When I start a SQL Server Critical Care with a client, the first thing I ask is, “What is your #1 pain point? Where does it hurt?” The answer I hear most often is, “The server is too slow”.

I’m a runner. If I was able to run a 5K race at an 8:30 per mile pace, I would think I was the fastest runner on earth. The world record for a 5K by a woman is at a 4:34 per mile pace. She would think an 8:30 pace was…slow.

Slow is relative.

Slow is not a metric.


In order to effectively measure our systems, we need metrics.This is why baselines for our systems are so essential.

Getting Started with Baselines ...

Tools for Baselines ...

Have metrics, not feelings

“Slow” is relative. “Slow” is not a metric. You never know when someone is having a bad day and everything feels slow to him, or he needs to rush out the door early because his kid is sick, or she is getting ready for vacation and time has slowed down in her world. Measure and track. Numbers don’t lie.

Brent says: You get what you measure. The instant you start putting a graph on your cubicle wall, people start paying attention.

Kendra says: User complaints per day is also a metric! Find out what parts of the application people are complaining about and what their experience is specifically. As you work through issues, “Numbers of complaints solved” is a really useful metric for your next performance review.

I swear, Brent and team have someone slipping them information from my day job [Yes, I'm looking at you... ;] We've recently been having some "It's Slow" and conversations and "Prove It" benchmark tests so this topic is nice and timely.

It's also funny just how long us Dev's and DBA's have been having this conversation. I remember fielding "It's slow" questions around my VB1 app running on Windows 3.1 (where we had to use a floppy disk to do our daily information transfers... lol...). The answer is still the same today, "define slow"...

Monday, February 09, 2015



I see this on the train home and chuckle every time. Do you know why? (As a long time MS Sphere Dev, where would I have heard this before...hum...)




Yep, you guessed it [and I'm not going to say a thing about someone being something of an old timer...(in Net Years at least;) ], one the VS 2005 Personas.

You all remember the "Mort" flamewars? Seeing this brings me back... (I was, and am, a Mort and damn proud of it! :)

Pluralsight Learning Path Dev Insanity ("Understanding the .NET Framework", "C# End to End" & "T-SQL CRUD")

Pluralsight blog - Learning Path: Understanding the .NET Framework


Learning path objective:

The courses outlined in this learning path provide a comprehensive look at the operation of the CLR, as well as a tour of key classes in the Framework Class Library that every .NET developer — regardless of the type of application or service they’re building — should understand.

Target audience:

This learning path is designed for developers who have been introduced to C#, and want to develop a deeper understanding of the foundation upon which every .NET application is built.




Pluralsight blog - C# End to End


Learning path objective:

The goal of this learning path is to take you from having little to no experience with C# to understanding how to leverage the language’s advanced features and how it works on the CLR. This includes basic logic flow, generics, interfaces, collections and enumerables, extension methods, asynchronous operations and LINQ.




Pluralsight blog - T-SQL CRUD

CRUD! It’s everywhere. And by CRUD I mean the Create/Read/Update/Delete operations used by applications that rely on persistent storage. In my career, I would venture that 90 percent of the applications on which I’ve worked have revolved around CRUD operations against a relational database. Transact Structured Query Language (otherwise known as T-SQL) is a superset of the ANSI SQL language that operates on Microsoft SQL Server. Being able to leverage T-SQL is key to incorporating SQL Server in your business workflows and custom software applications.

Learning path objective:

This learning path aims to help make you proficient in using T-SQL to query and manage data on SQL Server 2012. The path begins with gentle introductions to reading and updating data using ANSI SQL, and then guides you through more specialized aspects of applying T-SQL to business problems including working with dates and times, XML data, Common Table Expressions and analytic functions.



Want even more? Check out all their Learning Paths,

Podcasting 101

MaximumPC - How to Start a Podcast

The ABCs of podcasting


Car rides and long commutes have been mitigated by the immense popularity of podcasts. What’s great about podcasts, unlike radio, is that they’re largely democratic endeavors. Anyone and everyone is free to record, edit, and publish their own podcasts.

In an effort to help out any aspiring podcasters out there, we’ve decided to outline the process in a guide. Now’s probably a good time to plug our kickass No BS Podcast, because it’ll act as our benchmark for what we’re trying to accomplish. We can’t guarantee that your podcast will be the next Serial, but we’ll teach you how to get your finished product out to the masses

Planning the Podcast ...

Recording the Show ...

Editing the Recording ...

Exporting the Podcast ...

Getting it on the Web ...

Wrapping Things Up

With your podcast listed on iTunes and Stitcher, you should be all set to produce spectacular shows on whatever schedule you set for yourself. With each episode, you’ll have to upload the file, convert another Google Drive URL, and post the episode on your blog. FeedBurner and your content providers will do the rest.

This is mostly for my reference. I hope to start helping produce the RadioTFS Podcast (no, it's not dead... just sleeping a little) and thought this post would REALLY come in handy... And who knows, maybe I can start my own
Cool Thing of the Day/Week/Month" podcast or something. :)

Baking Unit Cheatsheet/Treemap (i.e. Baking Units for Greg's and Dummies)

FlowingData - Baking units demystified


A handy chart by Andrew M.H. Alexander. Treemap conversion from one gallon, down to a teaspoon.

I love this (because I can never, ever remember the breakdown). Finally, I think this is presented in a way that I can grok and remember (maybe... ;)

Wednesday, February 04, 2015

Six Free Modern... I mean Metro... um... Material Design Icon packs

Super Dev Resources - 6 Free Material Design Icon packs

Material Design, Google’s visual language, emphasizes on use of animations, shadows, bold colors and typography to allow users to easily comprehend the interface and provide them a delightful experience. Many of you would have seen material design principles in action in revamped Android apps from Google like Gmail and Chrome browser.

In case you are planning to embrace material design language in your own Android app interface, web app or website design, this post brings free Material Design icon packs for you. As an app developer and designer, we recommend you read Google’s design specifications which provides in-depth guidelines for designing system icons (or UI icons) as well as product icons (or your app icons).

In this post, we round up free material design user interface icon sets, towards the end you will find material design icon font resource and Sketch template as well. You may also want to check out our earlier post where we covered Material Design Web UI frameworks and Bootstrap themes for your web development needs.



Material, Modern, Metro... whatever... These look like they would be useful in our Microsoft world, don't they? Funny how...

Five Fun F# Facts

Infragistics - Five interesting facts about Microsoft F#

Since its 2005 conception at a Microsoft Research Center, use of the F# language has seen steady growth among developers both in the Open Source Community and for enterprise applications. Because it combines safe, simple and robust coding with the option of application on practically any operating system, it makes for an interesting proposition with developers seeking simple solutions to complex problems.

Many consider F# particularly suitable to scientific or big data based applications, but it is actually good when applied to a whole host of problems and applications. Characterized as a functional programming language with strong typing, it is able to express a developer's ideas in a succinct and declarative way.

However, while growing in popularity, F# is a long way from universal adoption. In this post we’re going to look in more detail at what makes F# different and why it might be you worth getting to know better.

1. The importance of community...

2. Five wins for functional programming ...

3. Practical application in a variety of industries ...

4. Universal ...

5. Fun to use ...


I don't F# yet, but really dig the work being done on it and the community behind it. It's the little train that could... :)

I guess it's eBook week... eBook of the Day: “Data Science in the Cloud, with Azure Machine Learning and R" Report (Name-ware)

Machine Learning Blog - Download Free O'Reilly Report - Data Science in the Cloud

O’Reilly's new report, titled “Data Science in the Cloud, with Azure Machine Learning and R," shows how newer Cloud-based tools, combined with established techniques such as R, make sophisticated ML models accessible to a wide range of users. Through a practical data science example, with relevant data sets and R scripts available on GitHub, it helps you navigate through tasks such as:

  • Data management

  • Data transformation

  • Building and evaluating ML models

  • Producing R graphics

  • Publishing your models as web services

All this is done using a free account in the Azure ML cloud environment. You can ...

O’Reilly - Getting started with data science in the cloud

Large-scale machine learning, or predictive analytics, is having a powerful impact across many industries. By using machine learning, companies, governments, and not-for-profits are replacing guesses and seat-of-the-pants estimates with valuable data-driven predictions.

Deriving value from machine learning, however, is often impeded by complex technology deployments and long model-development cycles. Fortunately, machine learning and data science are undergoing democratization. Workflow environments make tools for building and evaluating sophisticated machine learning models accessible to a wider range of users. Cloud-based environments provide secure ubiquitous access to data storage and powerful data science tools.

To get you started creating and evaluating your own machine learning models, O’Reilly has commissioned a new report: “Data Science in the Cloud, with Azure Machine Learning and R.” We use an in-depth data science example — predicting bicycle rental demand — to show you how to perform basic data science tasks, including data management, data transformation, machine learning, and model evaluation in the Microsoft Azure Machine Learning cloud environment. Using a free-tier Azure ML account, example R scripts, and the data provided, the report provides hands-on experience with this practical data science example


Microsoft Azure - Data Science in the Cloud with Microsoft Azure Machine Learning and R

The Microsoft Azure Machine Learning cloud platform provides simplified yet powerful data management, transformation and machine learning tools. R language scripts integrate with built in Azure ML modules to extend the platform. Additionally, models running in Azure ML can be published as web services.
You will be provided information on how to perform data science tasks including, data management, data transformation, and machine learning in the Azure ML cloud environment. You will learn:

  • Data management with Azure ML.
  • Data transformation with Azure ML and R.
  • Data I/O between Azure ML and the R Scripts.
  • R graphics with Azure ML.
  • Building and evaluating machine learning models with Azure ML and R.
  • Publishing Azure ML models as a web service.

    Free tier Azure ML accounts are now available with a Microsoft ID at

  • ...

    image image

    Here's a snip from this 58 page "report"

    Recently, Microsoft launched the Azure Machine Learning cloud platform—Azure ML. Azure ML provides an easy-to-use and powerful set of cloud-based data transformation and machine learning tools. This report covers the basics of manipulating data, as well as constructing and evaluating models in Azure ML, illustrated with a data science example.

    Before we get started, here are a few of the benefits Azure ML provides for machine learning solutions:
    • Solutions can be quickly deployed as web services.
    • Models run in a highly scalable cloud environment.
    • Code and data are maintained in a secure cloud environment.
    • Available algorithms and data transformations are extendable using the R language for solution-specific functionality.

    Throughout this report, we’ll perform the required data manipulation then construct and evaluate a regression model for a bicycle sharing demand dataset. You can follow along by downloading the code and data provided below. Afterwards, we’ll review how to publish your trained models as web services in the Azure cloud.

    For our example, we will be using the Bike Rental UCI dataset available in Azure ML. This data is also preloaded in the Azure ML Studio environment, or you can download this data as a .csv file from the UCI website. The reference for this data is Fanaee-T, Hadi, and Gama, Joao, “Event labeling combining ensemble detectors and background knowledge,” Progress in Artificial Intelligence (2013): pp. 1-15, Springer Berlin Heidelberg.

    The R code for our example can be found at GitHub.

    Working Between Azure ML and RStudio
    When you are working between AzureML and RStudio, it is helpful to do your preliminary editing, testing, and debugging in RStudio.

    This report assumes the reader is familiar with the basics of R. If you  are not familiar with using R in Azure ML you should check out the following resources:
    • Quick Start Guide to R in AzureML
    • Video introduction to R with Azure Machine Learning
    • Video tutorial of another simple data science example

    The R source code for the data science example in this report can be run in either Azure ML or RStudio. Read the comments in the source files to see the changes required to work between these two environments.

    Overview of Azure ML
    This section provides a short overview of Azure Machine Learning.

    You can find more detail and specifics, including tutorials, at the Microsoft Azure web page.

    In subsequent sections, we include specific examples of the concepts presented here, as we work through our data science example.

    Azure ML Studio...

    You also heard that Microsoft bought a firm that's a "leading commercial provider of software and services for R," Microsoft to acquire Revolution Analytics to help customers find big data value with advanced statistical analysis, right? Funny how that works.... :)

    Tuesday, February 03, 2015

    Bond... Microsoft Open Source, Bond (the cross-platform high scale serialization library... Microsoft Bond)

    InfoQ - Microsoft Open Sources Cross-platform Serialization Library – Bond

    Last month Microsoft open sourced Bond, a cross-platform framework for processing schematized data. Bond supports cross-language serialization/deserialization and powerful generic mechanisms for efficiently manipulating data. The framework is broadly used at Microsoft in high-scale services. The project is currently available at GitHub under the permissive MIT license. Current version supports C++, C# and Python and is available on Linux, OS-X and Windows. The Bond compiler is written in pure Haskell.

    Bond shares many similarities with other serialization systems, for example Google Protocol BuffersThrift and Avro:

    • Bond messages are defined in the IDL – like language
    • It maps all Bond’s data type to the native language data types

    Bond’s implementation however has one major difference: it doesn’t hard-code type mappings. It allows one to plug-in many things that aren't part of the core schema logic -whether to serialize from Bond schemas or a custom type, what the wire format is, whether to put custom metadata in the payload, and so on. For example, in C++ the defaults are STL containers like std::vector; however, a user can easily map custom types - using Python’s boost::multi index container in a generated C++ struct or mapping a uint64 schema field to a System.DateTime field in a generated C# class-. Bond generated C++ structs can also use custom allocators.

    A nice comparison between Bond and Google Protocol Buffers is presented is this Stack Overflow



    Microsoft open-sources cross-platform serialization library, Bond

    Hey all, I wrote a small part of Bond, so let me see if I can answer some of the questions here:

    • Bond is used pervasively throughout the company, in a lot of mission-critical systems. I don't know that I can say where publicly, but when Adam says it's used for scale infrastructure, he really means it.
    • It was started sometime around when Thrift was just picking up steam, so it's been around in one form or another for awhile. The released version is actually Bond v3.
    • The answer to the "why" question is more or less here: The short of it is that the differences between systems like Thrift, PB, and Avro, tended to be in things like wire format, protocol, format of target class, etc., and not as much in the logic of how you do things like version schemas. But in short, IMHO the innovation of Bond is that it allows you to plug in a lot of the things that aren't core schema logic (e.g., whether to serialize from Bond schemas or a custom type, what the wire format is, whether to put custom metadata in the payload, and so on).

    If you want to offer feedback or ask questions, you can either email Adam Sapek (adamsap -at- microsoft) or me, Alex Clemmer (, and I will loop you in with the correct people.



    Bond is a cross-platform framework for working with schematized data. It supports cross-language de/serialization and powerful generic mechanisms for efficiently manipulating data. Bond is broadly used at Microsoft in high scale services.




    For details, see the User's Manuals for C++, C# and Python.

    For a discussion how Bond compares to similar frameworks see Why Bond.




    Bond can be built with Clang (3.4+) or GNU C++ (4.7+). We recommend the latest version of Clang as it's much faster with template-heavy code like Bond.


    OS X

    Install XCode and then run the following command to install required packages using Homebrew ...



    Install the following tools:


    Really, I just wanted to to use Bond in the title... :P

    Cool eBook for the Day #2: Microsoft Azure Essentials: Fundamentals of Azure (Think "Azure 102")

    Microsoft Press - Free ebook: Microsoft Azure Essentials Fundamentals of Azure

    We’re happy to announce the release of our newest free ebook, Microsoft Azure Essentials: Fundamentals of Azure (ISBN 9780735697225), by Michael S. Collier and Robin E. Shahan. This is the first ebook in Microsoft Press’s free Microsoft Azure Essentials series. Future ebooks will cover specific Azure topics, such as Azure Machine Learning, Azure Automation, and others.

    Below you’ll find the ebook’s Foreword, by Scott Guthrie, Executive Vice President of the Cloud and Enterprise group at Microsoft, as well as its full Introduction. Enjoy!


    Download all formats (PDF, Mobi and ePub) hosted by the Microsoft Virtual Academy



    Microsoft Azure is Microsoft's cloud computing platform, providing a wide variety of services you can use without purchasing and provisioning your own hardware. Azure enables the rapid development of solutions and provides the resources to accomplish tasks that may not be feasible in an on-premises environment. Azure's compute, storage, network, and application services allow you to focus on building great solutions without the need to worry about how the physical infrastructure is assembled.

    This ebook covers the fundamentals of Azure you need to start developing solutions right away. It concentrates on the features of the Azure platform that you are most likely to need to know rather than on every feature and service available on the platform. This ebook also provides several walkthroughs you can follow to learn how to create VMs and virtual networks, websites and storage accounts, and so on. In many cases, real-world tips are included to help you get the most out of your Azure experience.

    In addition to its coverage of core Azure services, the ebook discusses common tools useful in creating and managing Azure-based solutions. The ebook wraps up by providing details on a few common business scenarios where Azure can provide compelling and valuable solutions.

    Who should read this ebook

    This ebook focuses on providing essential information about the key services of Azure for developers and IT professionals who are new to cloud computing. Detailed, step-by-step demonstrations are included to help the reader understand how to get started with each of the key services. This material is useful not only for those who have no prior experience with Azure, but also for those who need a refresher and those who may be familiar with one area but not others. Each chapter is standalone; there is no requirement that you perform the hands-on demonstrations from previous chapters to understand any particular chapter.

    We expect that you have at least a minimal understanding of virtualized environments and virtual machines. There are no specific skills required overall for this ebook, but having some knowledge of the topic of each chapter will help you gain a deeper understanding. For example, the chapter on virtual networks will make more sense if you have some understanding of networking, and the chapter on databases will be more useful if you understand what a database is and for what you might use one. Web development skills will provide a good background for understanding websites, and some understanding of identity will be helpful when studying the chapter on Active Directory.

    This ebook might not be for you if…
    This ebook might not be for you if you are looking for an in-depth developer or architecture-focused discussion on a wide range of Azure features, or if you are looking for details on other public or private cloud platforms.

    The topics explored in this book include:

    • Getting started with Azure: Understand what cloud computing is, visit the management portals, and learn about billing.
    • Websites and Cloud Services: Learn about Azure Websites, from deployment to monitoring, and gain an understanding of the web and worker roles used in Azure Cloud Services.
    • Virtual Machines: Explore the basic features of Azure Virtual Machines, including how to create, configure, and manage them.
    • Storage: Read about the basics of Azure Storage, including blobs, tables, queues, and file shares.
    • Virtual Networks: Learn the basics of virtual networks, including how to create one, and why a virtual network might be necessary. This also covers site-to-site and point-to-site networking, as well as ExpressRoute.
    • Databases: Explore two relational database options available in Azure: Azure SQL Database and SQL Server in Azure Virtual Machines.
    • Azure Active Directory: Explore basic features of Azure AD, including creating a directory, users and groups, and using the application gallery.
    • Management Tools: Explore three common tools for working with Azure: Visual Studio 2013 and the Azure SDK, Azure PowerShell cmdlets, and the Cross-Platform Command-Line Interface
    • Business Scenarios: Explore four common scenarios for utilizing Azure features: development and test, hybrid, application and infrastructure modernization, and Azure Mobile Services.


    Need to introduce someone to Azure? This free 246 page eBook looks like a great starting point...


    Cool eBook of the Day #1: Xamarin.Forms Book Second Preview Edition Now Available

    Xamarin - Announcing the Xamarin.Forms Book Second Preview Edition!

    Since Xamarin Evolve 2014, we’ve received fantastic feedback on the first Preview Edition of Charles Petzold’s Creating Mobile Apps with Xamarin.Forms, so we’re excited to announce that we’re making a Second Preview available for download.

    The book has been updated to incorporate feedback from the first preview, as well as to include the latest features from Xamarin.Forms 1.3. Readers will notice a substantial re-organization of the book and additional XAML content that was not in the first preview.

    The following chapters are available for download today:


    And there are many more chapters still to come! We will be updating the download page every week or so with a new chapter until the book is complete [GD:Emphasis added] and we move into the final editing and publishing phase.


    Creating Mobile Apps with Xamarin.Forms Book Preview 2


    Charles Petzold is currently writing a new book - Creating Mobile Apps with Xamarin.Forms - which is due for publication in the spring of 2015.

    We released the first preview in print at Xamarin Evolve 2014.

    Preview 2 has been completely updated for Xamarin.Forms 1.3 and XAML support. Chapters will be available for download soon after they've been written and reviewed!



    The samples for the second preview edition are available on github.

    Preview 2 is a work-in-progress - it will not be published in other electronic formats. The final product will be published in book form and made available in the usual formats (as preview 1 was).



    Come on, it's Charles Petzold's work! Need I really say more? (Oh okay, it's Free too! There!)


    Related Past Post XRef:
    Cool Preview eBook of the Day: "Creating Mobile Apps with Xamarin.Forms" by Charles Petzold (Yes, that one)

    Monday, February 02, 2015

    After cooking for a few years, Inkscape v0.91 is now available!

    Inkscape - Inkscape Version 0.91 is Released!

    The Inkscape community proudly announces the release of Inkscape 0.91.

    Inkscape is a drawing and painting tool similar to Illustrator, CorelDraw, and Xara X, but with features, new tools, and interface style of its own. It emphasizes the W3C standard Scalable Vector Graphics (SVG) file format, but reads and writes a wealth of other formats including PDF, so it is an easy complement to your other graphics and desktop tools. Best of all, Inkscape is created *by* the community *for* the community: Inkscape is 100% Open Source and freely available to everyone in the world.


    This release marks the culmination of a multi-year effort to switch to a new internal graphics rendering engine, Cairo. This brings performance enhancements and more accurate rendering of drawings. Thanks go especially to Google for sponsoring much of this work.

    A new Trace Pixel Art feature enables creation of vector art from bitmaps, sprites, and icons. A new Symbols Library provides reusable graphics elements - you can even read in Visio symbol libraries. New Snapping options and improved Snap preferences make it easier to quickly place items in the alignments you need. The tools for arranging objects offer several new ways to position the elements of a drawing. Tons of other little improvements have been made across all the other tools as well.

    Several new file formats are supported, including FXG, SIF and HTML5 export; and VSD and CDR import. EMF/WMF are now readable and writable for all platforms. And XCF, PDF, EPS, and PS+LaTeX support are improved.

    Inkscape has a rich Extension ecosystem, which is well known for bringing clever, cool, and innovative new ideas. Over a dozen new extensions are added in this release, including an Isometric Grid Generator, a Bitmap Cropper, a Text Extractor and a Text Merger, an HSL Adjuster, a Font Replacer, a Voronoï Diagram Creator, and more.

    The above barely scratches the surface of all the new stuff included in this release. For the full story, including examples and screenshots, please see our detailed Release Notes:


    Inkscape - About

    What is Inkscape?

    Inkscape is professional quality vector graphics software which runs on Windows, Mac OS X and Linux. It is used by design professionals and hobbyists worldwide, for creating a wide variety of graphics such as illustrations, icons, logos, diagrams, maps and web graphics. Inkscape uses the W3C open standard SVG (Scalable Vector Graphics) as its native format, and is free and open-source software.

    Inkscape has sophisticated drawing tools with capabilities comparable to Adobe Illustrator, CorelDRAW and Xara Xtreme. It can import and export various file formats, including SVG, AI, EPS, PDF, PS and PNG. It has a comprehensive feature set, a simple interface, multi-lingual support and is designed to be extensible; users can customize Inkscape's functionality with add-ons.

    The Inkscape project has a growing international user community, and many learning materials exist to help get you started with your creations. Help and support is provided by the community, and there are lots of ways for you to get involved if you want to help improve the Inkscape project.


    If you are doing vector graphics then you probably already know and love Inkscape. If you don't, then this might be new to you (well not to YOU, but... um... your peers... yeah). In short, it is a MUST have drawing tool. Oh yeah, it's free AND open source too!

    And for formats, don't forget that XAML in/out is supported too... :)


    Related Past Post XRef:
    Inkscape 0.46 Released

    "Graphically Challenged?" Want to see how even you can create your own game character in Inkscape?
    How to make dirt [clipart]
    Open Clip Art Library
    Looking for XAML Clip Art? Then make sure you look for SVG files as well...

    Run, don't walk, to get the new Autoruns v13.0

    Sysinternals Site Discussion - Update: Autoruns v13.0

    "This major update to Autoruns, an autostart execution point (ASEP) manager, now has integration with to show the status of entries with respect to scans by over four dozen antimalware engines. It also includes a revamped scanning architecture that supports dynamic filters, including a free-form text filter, a greatly improved compare feature that highlights not just new items but deleted ones as well, and file saving and loading that preserves all the information of a scan" [GD: Post Leached in Full]

    Autoruns for Windows v13.0


    This utility, which has the most comprehensive knowledge of auto-starting locations of any startup monitor, shows you what programs are configured to run during system bootup or login, and when you start various built-in Windows applications like Internet Explorer, Explorer and media players. These programs and drivers include ones in your startup folder, Run, RunOnce, and other Registry keys. Autoruns reports Explorer shell extensions, toolbars, browser helper objects, Winlogon notifications, auto-start services, and much more. Autoruns goes way beyond other autostart utilities.

    Autoruns' Hide Signed Microsoft Entries option helps you to zoom in on third-party auto-starting images that have been added to your system and it has support for looking at the auto-starting images configured for other accounts configured on a system. Also included in the download package is a command-line equivalent that can output in CSV format, Autorunsc.

    You'll probably be surprised at how many executables are launched automatically!




    One of those must, must, must have utilities.

    One thing to note: The new toolbar might look a little funky on high DPI screens (like mine, a "3K" Display @ 200% DPI).