Tip of today: enable source map scrollbar in Visual Studio

Last week I was at the Microsoft Tech Days 2015 in The Hague. One of the sessions was about Visual Studio Productivity. The presenter showed us a ancient feature that is already available since the early: convert your VS scrollbar into a sourcemap-scrollbar. This helps you navigating a long source files, since we humans are picture oriented:


You can enable this by right-clicking the scrollbar itself and choose Scroll Bar Options from the menu. In the dialog check the ‘Use map mode for virtual scrollbar’-setting. Et voila!

Photo 2 Folders

Sometimes you’re just happy with some small piece of software that saves you a lot of time. At this rainy sunday afternoon I wanted to sort out my digital photo collection, including my mobile pictures. Where to start with 300+ pictures in one folder? Luckily photos have metadata in them with date, time and sometimes even GPS locations. The utility Photo2Folders utilizes this information to automatically sort those photos and move them to a nested folder structure.



The event name is not in the metadata, so these have to be specified during the sorting process.

Windows 8 cleanup tips

Most of my friends have a single SSD in their computer as the primary boot disk. SDD is still a bit expensive, so probably the size is often limited (128gb). Since Windows is installed on the SSD to utilize the amazing speed for booting and working, it can take more space again and again. And oops, almost no space left on C!

Some general guidelines to prevent this situation:

1. Only store important system data on the SSD (your mp3 can best be stored on other available drives)

2. Install applications that don’t the extra speed on your old magnetic drive. Programs stored their run a bit slower, so only use it for less frequently used apps.

3. Store cloud service software on a different drive.

4. Uninstall unused programs and features.

5. Change the default download location of your browser to a non-system drive (d:\downloads\). In Google Chrome you can find this under Settings –> Advanced Settings

These guidelines are for experienced users ‘common sense’. I have also some tricks that be be used to save space and keep my SSD drive clean. Most tips require command-line actions. So, here it goes:

Clean you drive with the built-in Clean Manager. I created a small batch file (shutdown_and_clean.bat) to clean before shutting the PC. Just open notepad and type the following:

@echo off
start /wait c:\windows\system32\cleanmgr /sagerun:1
shutdown -s

Recommendation: place a shortcut to this script on the desktop to quickly shutdown the PC. Special options: ‘Run as Administrator’ + ‘Run minimized’

Remove temporary files from the DVD-burn directory (not part of clean manager). Location is C:\users\<accountname>\appdata\local\microsoft\windows\burn

Search for big files with windows search. Open Windows Explorer (WinKey+E) and type in the search filter (right upper corner) for big ones: size:

Use Windirstat the search for big files that be easily removed.

Use compression for system backup folders (right click on folder, properties, advanced settings and check the compress checkbox) for the following directories:

  • c:\windows\installer
  • c:\windows\logs\ (if available)
  • c:\windows\system32\DriverStore\(if available)
  • c:\windows\system32\logfiles\ (if available)
  • c:\windows\system32\winevt\logs\ (if available)
  • c:\program files(x86)\common files\windowslive\.cache\ (if available)


Cleanup the Windows/sxs directory. Windows stores here all downloaded and installed updates. It’s only used for enabling unstall for Windows updates. Most of the time, this is not necessary. Handle with care, without guarantees: you can remove older files from this directory with the command line, by entering: dism /online /cleanup-image /startcomponentcleanup /resetbase

Disable the Windows hibernate function (losing the c:\hiberfil.sys file). Disable via the command prompt: powercfg /h off. If you like, you can also to keep hibernate enabled, but decreasing the required space. For 50% usage: powercfg /h –size 50

Tridion Developer Summit 2014 – part 2

In this follow up post I mention 3 other sessions of the afternoon of the TDS.

Lightning Talk Sessions - Ingmar Umans - Stop!


This lightning session from HintTech colleague Ingmar was about better interpretation of the customer needs: ‘STOP building what the customer asks’. We as developers tend to start running in solution mode when a customer is asking you to solve a problem. Ingmar had several good examples in which this could be the wrong solution for the wrong problem. You could better ask the customer ‘Why?, why?, why?’ several times to get to the bottom of the customer business purpose and the real customer needs.

So spending more time in analysis of the customers business / budget / politics / mindset or habits will result in a better project delivery in the end.


There were some other sessions which are also great, but I didn’t take notes of those...

Media Manager Templating: Tips, Tricks and Tools for using Tridion to show Media Manager videos (Frank Taylor)

image Fun presentation about SDL Media Manager. Frank showed us his personal (front-end) experiences with MM and the quirks he encountered. He started with explaining the basic components of Media Manager. In short:

  • Assets: the raw media file (image, video, audio or a generic file)
  • Programs: a collection of one or more Assets.
  • Outlets: the presentation of the Program. This is something like a Tridion component template
  • Distributions: the combination of a Program and a Outlet. This is published and used by the end user.


After showing the various options that MM have for each components, Frank showed us multiple ways of putting videos on a page. Some links:

Frank has shared his html-based presentation on his site: http://presentations.frankmtaylor.com/sdl-media-manager/

Automated unit testing of assembly template building blocks (Bjørn Van Dommelen)

Embedded image permalink

This session from HintTech colleague Bjorn was the last of the day, but very interesting! Bjorn showed us another way (than Dominic) for unit testing the Tridion Building Blocks by faking Tridion using a Custom Rendering Engine. This enables us to do unit testing without having a full SDL Tridion installation on a developers machine. The (test) data still comes from an external Tridion database.

The presentation showed us the requirements and installation steps for enabling such a setup:

  • setting up app.config with a valid Tridion config
  • copying of required .xsd schemas from Tridion installation
  • copying of required assemblies from the Tridion GAC
  • don’t forget setting up TRIDION_CM_HOME environment

After explaining all the details of his endeavors, he should us that it works like charm. Important to note: Since it’s not supported by SDL, it could be that every Tridion version 2009, 2011, 2011SP1 can have different obstacles to overcome.

The presentation and code used during the demo is available on Github.

Tridion Developer Summit 2014 – part 1

image Last week I attended TDS 2014. It’s the first time that it has been organized, most of it by Robert Curlette. Great job! There was a huge reply of the community. Some stats of TDS:

  • 85,753 miles travelled
  • 17 speakers
  • 12 countries
  • 45 companies


That’s pretty impressive for a 1st time conference, wouldn’t you think? Everybody had a good time and enjoyed in-depth sessions given by developers from the Tridion community. Below my impressions, notes and links.


The day started with a welcome speech and after that SDL announced the new MVPs for 2014. Everybody was invited on stage to receive their MVP trophy. Some nice stats about that:


Nuno Linhares from SDL showed the latest Tridion developments and future plans: ‘10 things you did not know about SDL Tridion 2015’. Quick list:

  • #1 - You will be able to load AppData from multiple items in bulk
  • #2 - We will have a new item type (4096 - Business Process Type)
  • #3 - Content Delivery will be able to load configuration from a repository (rather than File System)
  • #4 - Content Delivery will expose a discovery endpoint to CM
  • #5 - SDL Tridion 2015 will trigger Events on lists
  • #6 - SDL Tridion 2015 will allow code to temporarily elevate a user's privilege
  • #7 - SDL Tridion will let you create "Site Types"
  • #8 - SDL Tridion 2015 will introduce a Topology Manager
  • #9 - SDL Tridion 2015 will have a default website and reference implementation
  • #10 - Publication Targets will be deprecated in SDL Tridion 2015


Great stuff to expect in the next edition! For more details see Nuno blogpost or slideshare deck. After keynote, there where two tracks with session. Below my selection of sessions I visited.


The quest for Continuous Integration with SDL Tridion (Ryan Durkin and Rob Stevenson-Leggett)

Rob and Ryan from Building Blocks showed us how you can implement CI with Tridion. They used Team City as build server with Nant as task build runner. Nant is using XML for configuration. The basic outline of the CI setup:

  • Pre: Build gets triggered by a commit in a Version Control system. Can be anything, like SVN or GIT.
  • Build step 1: Build Web. Run unit test. Compile the .NET code that is used as CD application.
  • Build step 2: Deploy Web. Deploy the assemblies and related stuff to the Content Delivery server.
  • Build step 3: Build Tridion Items. Compile the C# TBBs.
  • Build step 4: Deploy Tridion Items. CSS/JS/etc are copied via WebDav. Compiled C# TBB’s are deployed via the TcmUploadAssembly.
  • Build step 5: Publish CSS/JS Structure Groups. This was done by a .NET console app that uses the CoreService (tcm-id’s, credentials and end-points where configurable via app.config). Alternative would be to use a powershell script to trigger the publish.

Besides unit tests they also showed some automatic security testing tool called NetSparker. See ttps://www.netsparker.com/communityedition/

Agile Tridion Development (Dominic Cronin)

Agile Tridion development could be anything. Former colleague Dominic Cronin had several topics which turned out to be lot about testing! In one of the first slides he pointed out that there is Tridion Practice hosted on Google Code which offers a collection of useful Tridion recipes. 

Dominic also demonstrated T-cubed which is a Tridion Template Testing Framework. The Framework itself can be downloaded as a Visual Studio solution. After downloading, you have to fix the references to the Tridion assemblies. The framework gives you a structured way to:

  • modify the content of a package
  • make assertions about the content of the package.


In more detail: what T-cubed basically does is that it connects to Tridion via the Core Service. Then get some ‘fixed’ Test component run it against a Component/Page template. After running the outcome is asserted in the unit test by verifying the variables on the package with the coded expected values. Very nice idea. The only downside –if i may say so- that it heavily relies on test components in Tridion, which can be changed and then your test breaks. Also those components ‘pollute’ Tridion in a way, although you can hide them via security. And you probably never content port them further in the DTAP delivery street.

Another demo was about using Selenium WebDriver for creating unit test for web pages. You could instruct the WebDriver to retrieve a webpage by url and then use CSS selectors to dig into the html to search for a certain element and test the value. A nice extra touch was his demo to have a local HTML validator installed and unit test if the webpage was still HTML5 compliant and did not contain TCDL tags in the generated output.

Lightning Talk Sessions - Will Price - Cook up a search with SI4T

The lightning sessions where fast, short & fun. The best example was the session from Will Price.


As a masterchef he showed a nice recipe to ‘Cook up as search with SI4T’. When setting up search for SDL Tridion and Solr it’s a matter of doing things right and in the correct order, so that’s how he came up with the cooking and ingredients:


He shared his complete recipe as a blog post on http://www.tridiondeveloper.com/cook-up-a-search-with-si4t. The SI4T can be found on github.

Other sessions

I will pick some session for the next blog post: TDS 2014 part deux…