Runar Ovesen Hjerpbakk

Programmer. Software Architect. Technical Manager.


FindRef - find those references!

.Net is awesome and especially .Net Core Global Tools. Similar to npm install -g you can install tools by executing and easy command:

dotnet tool install --global [name-of-global-tool]

Running the tool is as simple as:

[name-of-global-tool] [arguments]

Just like that you get access to thousands of useful tools, without running installers or browsing to find the correct binary for your system. These tools will run on all platforms supported by .Net Core, both macOS, Windows and Linux. This is truly the power of a cross-platform, open ecosystem. The only pre-requisite is an updated .Net Core SDK installed on your machine.

Read More

Keyboard disabled in Visual Studio 2013

ReSharper 8

Although Visual Studio 2013 is a great IDE, it's even better together with ReSharper.

But not this day.

Eager to get some coding done, I opened my solution ready to work on the worlds best app. I tried typing my ifs, whiles and gotos (not really), but nothing happened. Within this particular solution, Visual Studio stopped responding to keyboard input. Completely. Kind of defeating the purpose of being an IDE.

Turns out Visual Studio was innocent and ReSharper was the culprit. Closing Visual Studio and clearing the ReSharper solution caches solved the problem.

The caches can be found at

C:\Users{User Name}\AppData\Local\JetBrains\ReSharper\v8.2\SolutionCaches\

if you want to delete them manually, or you can use ReSharper's Clear Caches button in ReSharper Options under Environment -> General, section "Caches (effective on solution open/close)".

Read More

Easy Online UML Sequence Diagrams

Even though UML is not as hip as it once was, a couple of its diagrams are still useful, such as the UML sequence diagram. However, manually creating diagrams in a graphical tool has its drawbacks:

  • Creating them can be time consuming
  • Binary files, such as images, cannot be merged
  • The diagram's history cannot be easily be viewed in a source control system
  • Team members cannot edit the diagram without the appropriate tool

Plain text is the most portable file format in the world and it's exactly what uses to generate sequence diagrams. The syntax is easy to write and is readable even without the generated diagram. Perfect for source control!

Heres an example:

title AsyncMethodCaller

participant "View Model" as vm
participant "Service" as service

vm -> service: CallMethodAndContinue
activate vm
activate service

alt Work completed
  service -> vm: continueWith
else Exception occurred
  service -> vm: failWith

deactivate service

Which generates the following diagram:

AsyncMethodCaller Sequence Diagram

Good stuff!

Read More

Evernote and Remember The Milk

I use Evernote to keep track of my notes and Remember The Milk (RTM) as my task manager. Both applications have the advantage of syncing to the cloud and being available online, together with native applications on most platforms if you so prefer.

Previously I kept all the information regarding my tasks, such as links, directions or notes in the RTM tasks themselves, but that has never been especially elegant. RTM is a great task manager, but note taking is not it's forte.

Enter Evernote to the rescue.

In the latest version you have the ability to get a hyperlink (Note Link as they call it) witch points to the note in question.

Copy Note Link

Pasting this into the URL-field of a RTM task will make the note accessible from RTM on every platform, with a fallback to the Evernote web application if no Evernote application is present. Now tasks requiring notes of any kind can keep this information in Evernote where it belongs, while still being easily accessible from RTM. Another first world problem solved.

Read More

Improve Google search results: Personal Blocklist

Improve Google search results personal blocklist
Google has finally realized that their search results have suffered lately. Trying to find genuine information has become more difficult with the advent of aggregator sites, associated content and “news” media. In response to this, Google has released a plug-in to Chrome: Personal Blocklist. Install it, and Google search results will be accompanied by a link for blocking domains.

A useful extension, but keep in mind that you agree to let Google freely use this information “to improve our products and services”.

Read More