RSSAmplifier

Blog

Lost in Details

Lost in Details Blog

lostindetails.comRSS feed ↗40 posts

Latest posts

Setting up Deno Desktop

How to host a vite app while making deno native apis available

Self-hosting a web font

What I did to reduce the size of a font file to use it in a website without resorting to external cdns.

TailwindCSS color palette for Inkscape Update

An update for getting a current tailwindcss palette file for inkscape.

Do not use todo lists to drive your work

What problems can occur if you use To-do lists as the main driver of your work and what you should do instead.

Global HotKeys for Windows Applications

How to get global HotKeys working in your .NET Windows Application, including some a Message Loop detour.

Desktop Apps with AvaloniaUI and FSharp

Why you should consider switching from WPF and C# to AvaloniaUI and F# when developing desktop applications.

TailwindCSS color palette for Inkscape

If you are in love with TailwindCSS and you want to use it's color palette in your inkscape designs.

How to get a Block Caret in Visual Studio

Getting a Block Caret in vscode and Rider is trivial - in Visual Studio you can do it with an extension.

Native Bindings in CSharp

Native Bindings in C# and how to invoke native libraries when you don't know the library name at compile time.

How to run cron inside Docker

What you need to do know to be able to run cronjobs inside a docker container, complete with an example Dockerfile.

Image Artifact removal in CSharp

Using C# and OpenCV, image artifacts are algorithmically detected and removed.

How to use OpenCV with CSharp

Learn how to get started with developing OpenCV Applications in C#, e.g. for image detection and conversion.

Dotnet Cheatsheet

I've created a cheat sheet for the dotnet cli in different colors. It's available as a pdf file that you can download.

You should be using using in CSharp

Find out why the using keyword is so useful in C#. Hint: It protects against three different ways how an instance can escape it's Dispose() call.

Using Timeboxing to achieve Workplace Happiness

Timeboxing is a time management strategy that can be used to improve autonomy, which is a key factor in achieving workplace happiness.

Create Svg Badges with CSharp

I've written a small commandline tool that uses SkiaSharp to generate svg files in C#.

Docker Cheatsheet

I've created a docker cli cheatsheet in different colors that you can download as a pdf.

A look at OAuth 2.0

I've read through the OAuth 2.0 rfc and summarised my findings in this article.

Get Contributor stats from git

This article shows how to retrieve stats like commits and lines changed per contributor from git using the commandline.

Use a XBox Controller to control your Angular2 app

By using XInput and calling native Windows APIs you can use an XBox Controller to control any application.

Hotkeys in Angular2

Thanks to the mousetrap javascript library you can easily create a reusable HotkeysService including configuration.

Using Windows Built in OCR from CSharp

Using Win10 Built-in OCR TLDR; To get OCR in C# Console- Wpf- or WinForms-App: run on a modern Windows Version (e.g.: Win10) add nuget UwpDesktop add the following code: var engine = OcrEngine.TryCreateFromLanguage(new Windows.Globalization.Language("en-US")); string filePath = TestData.GetFilePath("testimage.png"); var file = await Windows.Storage.StorageFile.GetFileFromPathAsync(filePath); var…

Fixing ORA 06502 in CSharp

Fixing ORA-06502 in C# A bug appears A few days ago a friend asked me to help him figure out a bug that was reported. Thanks to the error report he was already able to trace the bug to a specific code fragment, but he was wondering why it failed - the code looked perfectly fine. The cause The code was interfacing with an oracle database and was calling a stored procedure. As a stored procedures…

Binding your View to your ViewModel in Wpf

Binding your View to your ViewModel in Wpf Overview When you are using Mvvm you need a way to bind your view to the ViewModel. While this is always done by binding the DataContext Property of a View to an instance of the specific ViewModel class, there are generally two different scenarios: The ViewModel can be retrieved using the current DataContext. The ViewModel needs to be retrieved from a…

SkiaSharp with Wpf

SkiaSharp with Wpf Example Background After SkiaSharp was announced by Miguel de Icaza on his blog , I downloaded the nuget and took it for a spin and used it for some image manipulation. While the sample code got me started, it was written for System.Drawing/GDI+ and when I later wanted to use it in a Wpf app, I didn't find any sample code for that. So I wrote some code and this blog post, in…

Custom Knockout Bindings

Creating Custom Knockout Bindings Background I've been using and enjoying knockout.js for some time now. It's a great library that allows you to use MVVM in web applications and keeps you from writing spaghetti code to manipulate the DOM without requiring a switch to a monolithic framework and the associated downsides like lock-in and too many abstractions from plain html. Using knockoutjs, you…

JavaScript debugging in VisualStudio with Chrome

Debugging JavaScript in Visual Studio TL;DR Start chrome in remote debug mode: chrome.exe --remote-debugging-port=9222 Attach Visual Studio: "Debug" -> "Attach to Process..." -> select the chrome instance Done. Justifying a use case So you are still reading? Fine, than I can do some rambling. I was developing a JavaScript WebApp with some complicated client code - it's built like a game loop using…

M-Files mass file export

Exporting a lot of files at once from M-Files Background I've written about how to do a mass file import into M-Files here and here before, but recently I was contacted by a client who had quite the opposite problem - he wanted to export a lot of files out of M-Files. Getting Info After a quick skype call to get to know the client and the details of the project, the following facts were available:…

M-Files Backend Databases

About M-Files Databases Background M-Files always stores it's data in a Sql Database. As of this writing two Database vendors are supported: Firebird (default) Firebird is an open source Sql Server, you can find out more about it on http://firebirdsql.org . As it is free, it's the default option when you install M-Files. MS-SQL Server Microsoft's Sql Server is the second option. Because it's…

Fixing Razor Intellisense

TL;DR If razor intellisense stops working suddenly, try deleting your C:\Users\username\AppData\Local\Microsoft\VisualStudio\14.0\ComponentModelCache folder. The Problem When I was opening Visual Studio the other day, I was greeted with the following error message: Closing and reopening Visual Studio didn't fix the error - it occurred every time I opened a razor view (.cshtml) page. While Visual…

Keep an open mind when choosing a software solution

Choosing between different solutions (WebApp, MobileApp, DesktopApp, Console or Service) Abstract In this article I'll encourage you to keep an open mind about your options when building a software solution. Motivation Why write or read about how to choose between different solutions? Shouldn't it be obvious? I think it's well worth our time to dwell on that, especially considering two reasons:…

Implementing an Update Check for an Application

"Check for Updates" for an Application Background In this article I explore a simple mechanism to check if an update is available by querying a server. My use case was that I've been writing a C# Application and I wanted to include a quick "Check for Updates" functionality that would inform the user if an update is available. Additionally, I wanted a simple upgrade process, so that I can upload a…

AvalonDock 2.0 with MVVM

AvalonDock 2.0 and MVVM Background When I was writing an application, I came to the conclusion that a flexible GUI Layout that enables the user to rearrange the windows to fit their needs would be the best option. I wanted an interface that is as flexible as Visual Studio itself when it comes to window positioning. Docking Libraries Back in the days, I've already used a commercial solution, but…

M-Files mass file deletion

Deleting thousands of files from M-Files Summary In this article I am discussing mass file deletion from M-Files and why this is sometimes useful and conclude with a C# implementation that is able to delete files based on their object type or class. Use Cases When you are inserting a lot of files you probably need to delete a lot of files as well. In my case, as I've been writing the importer I am…

M-Files mass file import Part II

Importing files using the native API Background The native API of M-Files is pretty powerful - everything you can achieve by using the admin client or the client tools you can do programmatically using the API. It's not available as a separate download, but is installed when you install M-Files. Requirements Creating a new object Inserting data into an existing M-Files Vault is pretty…

M-Files Class Exporter

An alternative Class CSV Export Overview In this article I'll show an alternative way to take a look at the class hierarchy in M-Files by exporting all classes and their properties into a single CSV-file (Comma Separated Value) so that they can be reviewed in Excel. Intro Usually when you start to work on a project, you'll want to get an overview first. In a M-File project with a lot of custom…

M-Files mass file import Part I

Importing tens of thousand of files in M-Files Overview This is the first part of blog series where I talk about a recent project working with M-Files. I will publish the next parts on my blog as well. Prelude In a recent project, I was helping a client importing tens of thousand of files into M-Files. M-Files is an information management solution for documents and other information. M-Files in a…

Implementing INotifyPropertyChanged

An everyday task If you've written some MVVM Wpf Application, chances are you've probably implemented the interface INotifyPropertyChanged a couple of times. In this post, I am going to talk about different options for implementing this simple interface. The interface looks like this: INotifyPropertyChanged interface INotifyPropertyChanged { event PropertyChangedEventHandler PropertyChanged ; }…

Compiling a kernel module for the raspberry pi 2

Compiling a kernel module for the raspberry pi 2 Normally compiling a kernel module for a linux distribution is rather straight forward, but on the raspberry pi however it's a little more involved. That's why in this article I am going to show how I build kernel modules for the raspbian wheezy distro. There are a couple of infos on the web about how to do it, but piecing them together for a…

Why write a blog

Why write a blog? I've decided to start a blog. Why now? Aren't there enough blogs out there? Even good ones? So why start crappy one now? Well, I thought about starting a blog for a while now and I've finally decided to do something about it. I thought I'd start by listing a few reasons that after years got me to start this blogging thing. My reasons to write a blog 1. Improve your writing The…