Sunday, May 3, 2026

Upgrading asp.net 6 to 10

I recently upgraded one of my projects from .NET 6 to .NET 10, and while the process was smoother than expected, there were several important steps and breaking changes worth documenting. This post summarizes what I did.

Tuesday, December 30, 2025

Repairing a TVIX Remote Control aka Fixing Unresponsive Buttons

I stumbled upon my old TVIX HD M-7000A media player, and discovered that the OK button on the remote control was unresponsive, preventing menu selections and general usability. If you encounter similar issues with your TVIX remote, such as buttons failing to respond (e.g., the red LED does not illuminate upon pressing), the following steps may help restore functionality.

Tuesday, August 12, 2025

Using an indoor air conditioner with a broken outdoor unit

During the Daniel extreme flood event in Thessaly, I was fortunate not to lose anyone, but sustained material losses, including two cars and my air conditioners’ outdoor units, which were submerged for two days and destroyed. The internal units were safe, and I wondered if they could function independently for fun. It turns out that any internal air conditioner unit can operate as a fan without the need of an external unit.

Tuesday, November 12, 2024

How to fix Snip & Sketch not working on Windows 10 (Snipping Tool shortcut issues)

I often need to take a screenshot and annotate it a bit before I paste it into a chat, Jira ticket or document. On my Windows system, I love the simplicity of the Microsoft Snip & Sketch app (also known as Snipping Tool), which is always just a shortcut (Win+Shift+S) away. 

Unfortunately, on my work laptop (still running Windows 10), I've recently run into an issue where the shortcut stops working.  When I press the shortcut or even open the app and select to take new snip, no screenshot is taken, and the toolbar doesn’t appear. Instead, I see the cursor spinner for a few seconds, but nothing else happens.

After some troubleshooting, I found a solution, so I thought I'd write it down for future reference and to help anyone else facing the same issue!

Friday, October 18, 2024

Parse Excel XML using power query in excel

I wanted to load an Excel XML file (a.k.a. Microsoft Office Excel 2002 and Excel 2003 XML Format — SpreadsheetML) in another Excel file using Power Query M formula language. It turns out that it's trickier than I expected so I decided to blog my solution.

Friday, January 5, 2024

LogonCommand doesn't execute in windows sandbox

I was trying to use Windows Sandbox to run UniFi server and I wanted to install VC140 as a logon command which seemed to not work 🤔 I was mounting the Desktop folder where I had both the executable and the startup.cmd file. Opening the sandbox and running the script worked. This means that the LogonCommand should also work, right? 

Well, no, because the scripts needs to use full paths as mentioned in this youtube video.

Running Ubiquiti UniFi Network Server on Windows 11

I was trying to run the self-hosted UniFi Network Server v8.0.26 on a newly installed Windows 11 but I was getting a cryptic message "Server taking too long to start…" followed by a "Start-up failed" error. It turns out that VC140 runtime is a hidden requirement (Visual C++ redistributable aka MSVC) and in my case it worked fine installing the latest MSVC for 2015,2017 and 2022 available in the official Microsoft site. Here is how I discovered the missing dependency.

Monday, October 16, 2023

Disabling critical battery action

 I have an old laptop with an almost dead battery, which I always use tethered to a power source, mostly as a media device connected to my TV. Occasionally, I need to move it, and if it's open, Windows realizes that the battery is very weak and decides to hibernate, as that's the default critical battery action. This can become very frustrating. The good news is that you can easily address this issue using Windows' powercfg command.

Tuesday, July 4, 2023

Installing Windows 11 in QEMU on Supported Hardware

When attempting to install Windows 11 in QEMU, you may encounter the "unsupported hardware" message. This occurs because QEMU does not enable TPM 2.0 support by default.

Saturday, May 6, 2023

Copy contacts from outlook to gmail

To transfer your contacts from Outlook to Gmail and keep the pictures, you need to export them as vCard files (vcf) and then import them into Google Contacts. However, Outlook does not support exporting multiple contacts as vCard files at once and neither does Google Contacts support importing multiple vCard files at once. You can use a workaround to export your contacts in batches and then combine them into a single file. Here are the steps:

Saturday, December 31, 2022

Dual boot two windows operating systems

I wanted a windows installation where I could write my book and escape from the apps of my everyday windows operating system. You will find plenty of articles about dual boot with Linux, but I couldn't find one on how to dual boot two windows installations. 

In hindsight, after talking to one of my colleagues, there is an easier way to do the same thing using just the windows boot disk and navigating through the UI wizard. This article is still relevant if you want to understand what the wizard does, if you want complete control, or if you want to upgrade the OS in just one of your partitions.

Thursday, December 8, 2022

Convert VHS mpg files to mp4 to import in DaVinci Resolve

I recently got my hands on a bunch of mpg files ripped from VHS cassettes (32 files spanning 157 GB), and I wanted to edit them with DaVinci Resolve. To my surprise, mpg files are not supported, so I had to convert them. I choose to use FFmpeg and convert them into H.264/MPEG-4 AVC compression format with Advanced Audio Coding (AAC) using the following command:

Wednesday, December 1, 2021

Genomics in Azure

Genomics analysis is an interesting field that has high computational and storage requirements. On top of that, there are compliance requirements, especially if the analysis happens on top of patient clinical data. This makes genomic research activities great candidates to run in an compliant elastic cloud, non other than Azure cloud which even has the recent NEN 7510 standard that is a mandatory requirement for all Netherland organizations that process patient health information.

Thursday, September 9, 2021

Network link is disconnected

You get a new device that has a 1Gb ethernet card (mine has the I219-LM) and you start getting random network disconnects. Been there and it is frustrating. There are a couple of reasons why this could happen (faulty drivers, faulty hardware, more than 100m from router) but in my case, it was a faulty cable that was easily identified with a ethernet cable continuity checker.

Thursday, December 24, 2020

Remove unknown locale qaa-Latn from windows

Got a fresh window 10 installation where I configure US keyboard as default and added Greek as well (the language with π and Σ symbols). I noticed that when I was switching languages a 3rd locale (qaa-Latn) appeared in the list which I couldn't remove from the windows list. In my case the keyboard was emitting Greek characters but the windows spelling couldn't recognize the words. In order to remove the extra locale I had to use the following powershell.

Sunday, September 20, 2020

Set proxy for command line in windows

 Ever wanted to force tools like curl and az cli to pass their traffic through a proxy while running them in cmd.exe?

Set the following environment variables and netsh will automatically pick up them and use them for all network connectivity.

Tuesday, February 18, 2020

Download new chromium based edge via powershell

If you ever need to download the stable version of the chromium based Edge via powershell, you can use the following one liner:


# Stable
# Invoke-WebRequest -Uri "https://c2rsetup.officeapps.live.com/c2r/downloadEdge.aspx?ProductreleaseID=Edge&platform=Default&version=Edge&source=EdgeStablePage&Channel=Stable&language=en" -OutFile "EdgeSetup.exe"
# Dev
Invoke-WebRequest -Uri "https://c2rsetup.officeapps.live.com/c2r/downloadEdge.aspx?ProductreleaseID=Edge&platform=Default&version=Edge&source=EdgeStablePage&Channel=Dev&language=en" -OutFile "EdgeSetup.exe"

Monday, November 11, 2019

Fixing an old Wordpress plugin to run on PHP 7

You should always update your CMS engine and individual plugins. Unfortunately this is not always possible especially when you have a non actively maintained website and you've used commercial theme or plugins.

In my case, I had to deal with an old Wordpress site which was updated but was still running on an older PHP version 5.6.40. Changing the PHP version  on the server to 7.3, the site broke with a sneaky Call to undefined function mysql_error() on the frontend and [] operator not supported for strings on the admin area. Both errors were caused from a plugin installed by the theme which doesn't support auto updates. More specifically Revslider 4.6.0 which looks like it was used by various themes in the past.
I had no other option but to try and fix them manually since I couldn't downgrade to older PHP version anymore nor invest more resource to change/update the theme and plugins.

Thursday, April 5, 2018

Exchange view DSN mail contents from queue

We had some DSN mails queueing up on our Exchange server's outgoing queue with error 450 4.7.1 and i was trying to figure out what were those mails in the first place. The Subject in all those mails looked like spam and since the From Address was empty, it got me kinda worried and curius at the same time. Using Queue Viewer wasn't helpfull since I couldn't see the origin of the DSN message. I had to use Exchange Management Shell to find out more info.

In order to view the email contents so that you can check the body and find out more information about the cause/source of the DSN, you need to know the message Identity, suspend the message's from processing and then export it.

Tuesday, July 25, 2017

DNN site's search issue with index outside bounds of array

I had an issue with a DotNetNuke 7.4 site's DB size. It had grown way too big and we found out about it because of the server's warnings about low disk..
Both Exceptions and EventLog tables had three new logs (General Exception, Scheduler Event Failure, Scheduler Exception) every 30 seconds saying that the "Index was outside the bounds of the array."