Share This

Blog

Welcome!

Posted by on Jan 1, 2013 in Welcome | Comments Off on Welcome!

Welcome!

My name is Claus Topholt and this is my personal blog. I’ve been delivering business-critical IT consulting and solutions for 15+ years.

read more

Software Robots That Can Automate Anything

Posted by on Feb 18, 2016 in Blog | 2 comments

Software Robots That Can Automate Anything

During the last 12 months, I have worked very hard together with my team of amazing developers on a new software product called LEAPTEST Automation Suite. LEAPTEST Automation Suite is a platform to configure software robots to automate anything across browsers, applications and devices. With this unique tool, it only takes a few minutes to configure and maintain a software robot because of the code free and intuitive building block workflow based on advanced image- and text recognition. Here’s a quick, 4-minute introduction to it all: There’s lots more to learn about the new company and product on...

read more

A Simulated Distributed Microprocessor

Posted by on Oct 27, 2014 in Blog | 1 comment

A Simulated Distributed Microprocessor

Here’s a virtual machine that simulates a microprocessor, built in Python.

read more

Microcorruption Security CTF

Posted by on Feb 7, 2014 in Blog | 8 comments

Microcorruption Security CTF

Capture the Flag and remind yourself that devices are made by people like you and me.

read more

Mysterious App Pool Crashes? WinDbg is Your Friend

Posted by on Nov 4, 2013 in Blog | 0 comments

Mysterious App Pool Crashes? WinDbg is Your Friend

Investigate root causes of application crashes with Windows Debugging Tools.

read more

Boosting Performance and Productivity

Posted by on Oct 20, 2013 in Blog | 0 comments

Boosting Performance and Productivity

If you do it right, MongoDB can boost performance and productivity immensely.

read more

Remote Copy with Powershell and MongoDB

Posted by on Sep 29, 2013 in Blog | 0 comments

Remote Copy with Powershell and MongoDB

MongoDB and Poweshell are powerful allies in corporate infrastructure environments.

read more

A Brand New .NET Language: Top#

Posted by on Sep 10, 2013 in Blog | 3 comments

A Brand New .NET Language: Top#

I recently implemented a full .NET programming language plus MSIL compiler.

read more

DynaTrace to the Rescue!

Posted by on Aug 2, 2013 in Blog | 0 comments

DynaTrace to the Rescue!

DynaTrace from Compuware is one of the world’s leading monitoring and profiling tools for live / production environments. It works in both Java and .NET environments and enables you to quickly perform root cause analysis on anything from performance bottlenecks to error storms. There are various vendors in the Application Performance Management (APM) space, including AppDynamics and the cloud-based New Relic. Most of these other products are more geared towards monitoring, whereas DynaTrace is more geared towards profiling, which is better suited for the way troubleshooting normally works, in my opinion. DynaTrace has both a browser and a server component, and by using both it’s possible to understand what happens all the way through a request. The browser component called Ajax Edition is free, whereas the server component comes with a (substantial) license cost. My focus is on the server component, which in brief terms requires a “collector” server to be installed on-site and “agent” services to be installed on each server you want monitored/profiled. Depending on the amount of assemblies and namespaces being instrumented, this leads to a performance degradation of typically between 10-25% on the server — a price often worth paying in order to troubleshoot live incidents. A “client” application is then used to connect to the server and analyze data as it streams in. This may sound a little bit complicated, but it’s actually very easy and quick to setup. Over the last 3-4 years, I have used DynaTrace on a more or less daily basis to perform the following tasks: Understand performance patterns in dev / test environments during code review Understand performance bottlenecks in live / production environments Troubleshoot live incidents, particularly related to database and external integration points Because of confidentialy constraints, I can’t show client screenshots, but here’s an example taken from Compuware’s APM blog. In the example, a SharePoint page takes almost 7 seconds to respond. By diving in to the callstack in DynaTrace, it becomes immediately clear what web part is to blame and that most of the time is spent in a WaitHandle: As explained in the blog post, DynaTrace is used to identify the root cause of the problem — in this case, 10 threads doing simultaneous web service requests to the same remote host. And because there is a default limit of 2 simultaneous connections (which can be tweaked) the threads spend most of their time waiting for their turn to do the call. I have used DynaTrace to quickly troubleshoot otherwise very hard to find issues on Microsoft SharePoint sites, Microsoft CRM, ASP.NET websites, console applications, Windows services — you name it. Any managed process can be profiled and monitored with DynaTrace. Here are a few real-life examples: LINQ can be a performance killer. For instance, in earlier versions of .NET, there was a huge difference between calling myList.Count and myList.Count(). These days, it’s typically more a matter of people misunderstanding the “magic” that LINQ does and end up with things like myArray.ToList().First(p => p.MyNumber = 500). That’s a whole lot slower than just iterating through the array with a for-loop. Not a big deal if you don’t do it all the time, but people have a tendency to use this sort of thing inside caching mechanisms that get called hundreds of times per page...

read more

Create Your Own CLR Profiler in C#

Posted by on Jun 8, 2013 in Blog | 4 comments

Create Your Own CLR Profiler in C#

Here’s how to build a CLR profiler in C# that can be used in dev and test scenarios.

read more