Software tools

Various tools:

(there is also a list as a blog article here – one day I will hopefully do a spring cleaning)
(I have jotted down where the tool lives (win/osx/web/java etc.) and an approximate year when I last considered the tool as worthy.)

Agent ransack – windows, 2019

I have used this freeware for years. It is a fast and powerful program that searches inside text files. It also does regex, both on file names and contents. At least earlier it has a simple user interface for creating simple regex. It is also fast, and even faster the second time when stuff are cached or indexed.

Autohotkey – windows, 2022

This freeware makes it possible to automate simple tasks. There is a simple (ugly) language to do simple stuff like writing today’s date when you press F3 or more complex stuff like starting applications and navigating them. I have used it for moving the windows with windowbutton-arrows before it was implemented by Microsoft in WinVista. By the time of writing I use it for simple stuff like writing today’s date whenever i write “odate”.

I have for instance used it for swapping out my Caps lock key to a more usable “meta” key. This “meta” key is Esc when pressed by itself. When combined with anything else it is navigation, marking, or whatever I have programmed it to. When I need a Caps lock I press alt-Caps lock instead.
I have also used it for making alt-F4 work as expected with Skype. Skype is a marvel of bad user interface design.

Approvaltests – windows, 2012

When doing automated (i.e. unit test) tests and comparing/asserting/verifying complex objects or long strings I have noticed it being fiddly. In the former case one has to do a lots of asserts – which makes the assert part of the test hard to read, or extend the class with a (custom) equality operator, or move the list of asserts for a class to a helper method. In the latter case one has to copy strings into an editor and search by eye; tedious.

The open source Approvaltests solves the first case by converting (with some of your custom code) to a string and then compare the strings. Which leads it to the second case which it solves by presenting the string comparison result in a friendly way.

Also see Verify for a similar solution. I have not tested it.

Unit tests and comparing long strings or objects

CarloSag CodeTranslator – online translator C#<->VBNet<->Java<->Typesctipt – web, 2016

There is another code translator that ranks higher on Google but I tend to never get an answer so this is the one I use.
I use it mainly for C#<->VBNet. It only handles snippets and not projects or files.
It cannot handle åäö and does not understand that ”’ should be translated to /// but a lot of other tedious translation tasks.

CodeCompare – diff and merge tool with source code awareness – windows, 2017

Something I have looked for a long time is a source code diff tool that has knowledge about what code is.
Example: If you swap two methods the ordinary diff tool doesn’t know that “nothing” is changed; instead it shows a whole block of red and yellow to show that code has been deleted, added and moved. For two 10 rows method this is ok but when it happens to a 100 rows class one cannot see what really happened.
CodeCompare takes a stab at this in its payed version (which also means I haven’t tried it). But I do use the gratis version.
The payed version also does 3 files comparison. I have used a gratis (or was it free) diff program for this years ago and it was really useful that time I needed it. Can’t remember which it was though.
I think WinMerge has a slightly nicer keyboard shortcuts, but that can be because I have more hours with WinMerge than CodeCompare.

Presently I use Kdiff3. F/OSS and 3 ways compare. After I learned the ctrl1/2/3 shortcut I stopped complaining about the GUI.

Collabedit – online text collaboration – web, 2015

Instead of ping ponging text back and forth just open a simple text document in Collabedit and you can see edits in real time.
You go to Collabedit, ask for a new document and receive a 5 character token in the URL. Just send, or say, the URL to y0ur partner and hey presto – online text collaboration.
Example (if it isn’t removed):

Cyberchef – web, 2024

Manipulate a block of text in several steps.

Sometimes you want to do a search-and-replace of text but it becomes a several steps long task. And when you are finished you notice something went wrong 3 steps back. And ctrl/cmd->Z is no longer feasible. Enter Cyberchef.

It can search/replace, to/from base64, randomise, make url calls, code formatting, data conversion, visualise data distribution, and a way more. The “recipes” can be stored and reused.

Ditto – multiple copy/paste – windows, 2022

Having a multiple clipboard is so convenient. It is a bit like multiple monitors, once you have tried you don’t want  to go back.
Now there is already a multiple clipboard in Visual studio (just ctrl-shift-v next time you paste (every time you ctrl-shift-v it chooses the earlier clip)) and I guess there is one in MSOffice too, but that is not the same thing as having it system wide.
Note: It remembers usr/pwd copied too. Especially if you use Keepass, or similar, for saving and copy-pasting usr/pwd you should be aware you are storing usr/pwd in clear text.

In Windows11 there is a built in multi clipboard. I have not tested it.

DotnetFiddle – web, 2022

It is a JsFiddle for dotnet. Navigate to Dotnetfiddle in your browser and you have not only compiler and runner but also intellisense. Very nice for testing out snippets. I have used it for doing camelCasing; instead of creating a new project in Visual studio I just used my browser. I could then send the link to my code and even collaborate with my colleague in the very code. For talking about code without looking at the same screen it also works – start collaboration and you can see the same code and even each others mouse pointer.

Dpack – making it easier to find files and methods in Visual studio – windows, 2015

I use this plugin all the time for opening files and finding methods within.
Visual studio and Resharper are slowly catching up but for finding files and methods in the file you are, Dpack is still the best.

I have for years just pressed alt-U to open a dialog where I can write a part of a file name and see corresponding files in a list. A feature Visual studio has finally got native; but still not as good.
For finding methods I just press alt-M and start writing something I know of the method name. Visual studio still lacks this.
Last time I checked Resharper did not have as good a solution either.
There are more features in Dpack but I seldom use them.
Dpack is open source.

Visual studio has gotten ctrl-T. With the correct ctrl/shift/alt-combination (or if it was a shortcut after the “dialogue” was opened) one can search for methods only.

Fork – graphical git client – win, osx, *nix, gratis, license, 2022

Yet a graphical git client. Does less than SourceTree but also with less bugs and quirks. I use it mainly for its nice interactive rebase dialogue.

After having discovered their clever implementation of ctrl-0/1/2 which moves the focus in a clever way for “normal” commit/pushing I use it more and more.

 Ghostery – delete those pesky tracking cookies – web browser plugin, gratis, license, 2022

Not a tool per se but a browser plugin to remove tracking cookies.
Support is lacking for mobile browsers but I have it working in my Firefox mobile on Android.
I believe Facebook is getting around Ghostery’s detection on their link landing page.

Gmaster – graphical git client – win, osx, *nix, client, gratis during beta – 2020

Yet a graphical git client. Does less than SourceTree but also with less bugs and quirks. Its main feature is it nice, side scrolling, branch tree and its diff/merge tool with semantic understanding.

Does, unfortunately, not exist anymore.

Heidisql – yet another sql/rdb tool – win, free – 2017

I have tried this sql/rdb tool against Sqlserver(2016). It has some advantages over SSMS;
starts blazingly fast, has a less fiddly UI for inspecting columns(it behaves more like Toad), it can free text search in the whole database, it is open source (Pascal), it can be installed as portable(i.e. on a server without disturbing the rest of the server), or through Chocolatey, it handles other databases than Sqlserver, it can query the query you are standing on instead of the whole document.

I use it side by side with SSMS.

Hide main menu – hide the menu bar in Visual studio – visual studio, 2017, 2019

I am a fan of not having a lot of buttons and tools cluttering my work space. This extension hides the menu. The shortcuts still work and one can always bring the menu forth by a press on the alt button (windows standard).

Does not work in Visualstudio 2022

JsFiddle – online javascript doodling – web, 2022

For testing simple javascript solutions without having to set up; just select what frameworks and their versions, enter javascript, html and css, behold result.
Since it lacks debugging capabilities it isn’t very good for trying out too advanced stuff but for sending showing working code to others.

There is also Dotnet fiddle for dotnet. It runs on a server somewhere so some restrictions apply.

Keepass – client side password manager – multiple platforms, 2022

Too many passwords requries a password manager. My tool of choice is Keepass since it is 1) open source and 2) client side. I then rely on its cryptographic powers and keep the data file in a synced folder so I have my usr/pwd on every device of choice.

Manoli C# code format – online c# code formatting – web, 2012

Formatting source code to HTML, useful when posting to certain forums (that aren’t stack overflow).

Ncrunch  – used for speeding up test writing – windows, 2022, €

Ncrunch is a tool that integrates into Visual studio and runs the tests continuously. It also updates the source code, not only the tool box, with colours and icons that shows test coverage and test result. I have used it on a smaller library and it worked stupendously. On a slightly larger, still small according to my ruler, web project it failed. I cannot say if it was because of me or of my setup of the tool.

Having continous test changes the way you code.

I have tested Jetbrain’s Resharper solution for continuous test but it messes up the colour coding and made the code too hard to read for my liking. It might have changed since the time of writing.

Visual studio has a similar built in tool if you have  the Enterprise? or ridculously expensive Ultimate version. My first, and early, tries with it showed that it was not on par with ncrunch.

Pastebin – putting source code snippets online and collaborate – web, 2012

Sending source code to and fro others without the email ping pong.
There are several of this kind of site with different levels of functionality.

Papercut – simple client application for mimicking a email SMTP server – windows, 2018

When developing a solution that sends email one must have an SMTP server. One can use google’s or set up one on the dev machine. For Windows this is not hard but takes some clicks and googling and time to get right.
So I use Papercut that is a client application that grabs everything coming at port 25. There is no setup, just start the application and your emails start popping up. It also shows a ballon in systray so one doesn’t have to cool switch to it all the time to see if the email has been sent. A drawback is that it crashes for me from time to time.

On a side note there is also Pickupmailviewer that solve s a slightly different email development problem.
 <- A smart use of PickupMailViewer when you have a test environment sending mail but no way to get to them.

Parallels – 2017

I use virtual machines for development. Presently I use Parallels but there are more solutions.

Parallels makes sure that many OS upgrades don’t work with your version of Parallels so be prepared to cough up upgrades every second year.
You will be notified in time. Over and over again. By email and popup on the application and then some more emails and popups. Until you upgrade when the popups disappear and the emails in a week. Yes, you get about one email a week. To top it of it is the kind of email you normally report as spam directly because it is Sale and Discount and Now and Bings and Woosh and Bang and Savings all over it. If I had seen such an email before I bought it in 2011 for the fist time I would have chosen another product. It looks that unserious.
The product is quite nice though.

Queryexpress – a free windows sqlserver sql client – windows, 2010

Running SQL queries without having to install something (e.g. ms query analyzer or ms server manager).
Useful when working with servers close to production.
JAlbahari’s is the original but has since moved on to query explus. <- query express <- query explus

Regex  – online exploration and testing – web, 2015

I tend to come back to Rubular for testing out regex although it runs Ruby regex and I mainly work in Dotnet. The reason for this is usability.

Servicebusexplorer – a desktop azure bus exporer – win, free, 2022

Instead of logging in to the Azure web gui to investigate an Azure bus one can use this desktop tool. The GUI is a kludge. A killer is that it can listen to a queue with just a click without interupting the flow.

Snipping tool – windows and osx screen and part-of-screen grabbing tool – win, osx, 2022

Snipping tool is already built in, at least in Win8.
Besides grabbing the screen, a window or a rectangle it provides very simple annotations.
Just open the start menu and write snipping.
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Accessories\Snipping tool
which leads to C:\Windows\system32\SnippingTool.exe

Later versions of Windows10 has Snip & Sketch which, I presume, will replace has replaced Snipping tool. At least there is a small note in Snipping tool that says so. Just write “Snip” in the start menu and “Snip & Sketch” will surface.

Windows 10 and 11 has Snipping tool. Its shortcut is window+shift+S.

For OSX it is called Grab.
Just write grab in spotlight.

See Steps recorder below for automatic grabbing.
There is a newer Snip from the MSOffice team but I have not tried it.

There is also a movie recorder built in. It is hidden somewhere under gaming and can be triggered with win-alt-R. A moment ago I used it, as it was built in, to record my interaction on a Win server.

Steps recorder – win, 2018

Steps recorder was a serendipity for me in Win8. I believe it is runnable in Win7 too but I doubt the binaries are there.
Just start Steps recorder, and it grabs the screen every time you do something and dumps it in a document together with a textual description.

Just type steps rec in the start menu.

Steps recorder in start menu

Steps recorder in start menu

Or start it through %windir%\system32\psr.exe.

For another screen recording tool see Jing at which does video recording; instead of image dumps to a document like Steps recorder does. I have not tested Jing.

See for momentaneous grabs see Snipping tool above.

Sql complete – win, 2017

Devart Sql complete is an extension to Microsoft sql server management studio, aka SSMS, which makes it possible to execute the line/query you are on instead of all queries in the document. Just like Toad. Almost. Toad does the job a little better as Sql complete seems to just look for words like “select” and “insert” while Toad succeeds in separating the queries/command whatever contents.

Say you have a document with 2 select queries and just want to execute one. Normally you would have to highlight the query you want to run and then ctrl-E. Totally doable but irritating. With Sqlcomplete just press ctrl-shift-E instead.

It also provides better/different intellisense.

The simpler variant, which contains above mentioned functionality, is gratis.

System.IO.Abstractions – Dotnet, 2017

Doing unit tests is hard in Dotnet if the code uses  the Sytem.IO namespace that is filled with static classes and methods. System.IO.Abstractions tries to create a class-by-class and method-by-method copy of said namespace and make them testable.

I have used it for 2 or 3 hobby projects and it is much easier than rolling your own virtual abstraction.

There is a similar project called Thinktecture.Abstractions that seems to do the same. I have not tried it though.

Virtual router manager – 3/4g dongle to WLAN – windows, 2017

I have for many years had a Samsung N150 as a 3g to wifi router. I connect my 3g dongle to the computer, starts Virtual router manager and gets wifi internet connection in the room.

It is open source and pleasantly clean for bells and whistles. It is not especially stable though. I have got to to work from Win7 to 8 to 10 but for every update it has stopped working and every time I know I solved it earlier but couldn’t remember how.

It fails with some unintuitive error messages like “An event was unable to invoke any of the subscribers(Exception from HRESULT:0x80040201)” or something about handle missing or “Group & resorces are not in correct state”. My problem has always been the first and it has been remedied by allowing the Wifi to be shared.

At Answersmicrocoftcom you can read:

1) Right click Wireless Network Connection (i.e. the connection you want to share over your virtual AP [not the 3/4g network])
2) Select Properties / Sharing tab
3) Tick top box “Allow other users to connect through this computer’s connection” 
4) Select newly named network connection (i.e your virtual AP [another name for Wifi in this case]) in the dropdown box below
5) Click OK

As Codeplex is shutting down I downloaded the source to here and here.

With today’s good wifi hotspot functionality in mobile phones I haven’t used VRM for years.

VSCode plugin – Kubernetes 2022 – gratis

This plugin is from Microsoft and aids when spelunking your pods in kubernetes. A simple tree view in the primary side bar.

VSCode plugin – REST Client – gratis

Do your rest calls in VSCode.

Alternatives are Postman (freemium-ish?), Insomnia (freemium).

Untested but looking interesting

Asafaweb – (semi) automatic vulnerability check of an aspnet web site

Run it once or on a schedule. It mainly discovers configuration errors. Afaik it is gratis.

BareTail – like *nix’s tail, watch the last rows in a log file as new records come in – windows, 2018

Instead of opening a log file and then ctrl-end to the bottom of the text file one can let the viewer scroll down by itself. It’s like *nix’s tail but with colours and border.
Free but not open source.

Notepad++ now has functionality like tail -f. It does not seem to work for large files though.

Eightify – gratis (afaik), browser extension, 2023

Summarises Youtube films. Supposedly useful for quickly browsing whether a film is see worthy and to jump to the right position.

Fasterflect – dotnet reflection library – Win, 2016

I started writing some reflection i needed in CompulsoryCow. Perhaps, perhaps this is already written in Fasterflect.

Hangfire – easier background processing – library, dotnet, dotnet core, F/OSS 2017

Lesser lambda and delving into Process namespace and more easy-to-read C# code.

Mizage – window handing – OS X, 2016

In Windows one can reposition the windows with the keyboard. OSX requires a mouse.
Mizage should be a solution to this.

Openrefine – stand alone F/OSS application for washing data – java, 2014

Have you ever gotten data from the business division and “it should be a breeze to just import” and 2 days later you are still finding dirty data to have to work around. I have.
An often used method is to import the data into a spreadsheet and start transforming and washing; to find out after a while that some data was destroyed during the washing.
This tool does better by 1) being dedicated to washing and 2) having a stack with what is done. This should also mean that the same manipulation can be done next month when new, less than perfect, data is sent from the business.

Update: I have now tested it but still keep it under “untested” section since I didn’t have time to play with it properly. The GUI is strange and take a while getting used to. Not more or less strange than copy-paste functionality in Excel I suppose. The built-in language was not very powerful for the tasks I wanted to solve; you probably have other needs.

I have discovered, but not tested, Wrangler that does approximately the same but online. Easier install (none) but less privacy. – freemium, iOS, android, chrome extension, 2023

Records your meeting as text.

Semantic merge – a merge tool with language domain knowledge – osx?, win, dotnet, java, (javascript), 2017

(Almost) all source code merge tools are text and line based. This means they have no knowledge about what a class, a variable, a constant or an if statement is; it can’t differ between added-and-removed code and switching places between two methods. Semantic merges promises otherwise, it has knowledge about the language and can differ between structural changes and semantic.
I have missed such a tool for a long time but still haven’t gotten around to examine Semantic merge.

I did a test of Semantic merge spring 2017. Where it did work it was awesome. Then there were places where it really should have figured out the semantic connection but didn’t; almost like a bug, but it didn’t smell like one. Finally there was lots of places where it didn’t measure up to my (too high?) expectancies. I still keep an eye on the product though.

I am using Gmaster at the time of writing. It has semantic knowledge. It has also a better branch fork diagram. It is unfortunately deprecated.

Sql Fiddle – Dotnet fiddle for SQL – gratis, online, 2019

You can play with 5 different database engines, create tables and query.