> Hello World_

Welcome to my blog. I share here knowledge, thoughts and solutions to problems I encounter in my daily work as a developer.

const date = '31.03.2026';
Synology Drive Client 4.0.2

Synology Drive root folder breaks OpenFileDialog search on Windows 11

The issue

I ran into a very strange problem while using the standard WinForms OpenFileDialog on Windows 11 together with a Synology Drive folder.

Everything looked normal at first. Search worked in regular folders, and it also worked in every subfolder of C:\Synology\SynologyDrive. The only place where it consistently failed was the root folder itself: C:\Synology\SynologyDrive.

Each time I typed something into the search box and pressed Enter, the dialog blinked for a split second as if it was about to switch to search results, but then it immediately returned to the normal folder view.

Why it was so confusing

What made this especially hard to understand was how selective the problem was.

  1. Search in normal Windows Explorer still worked
  2. Search inside OpenFileDialog worked in all subfolders of C:\Synology\SynologyDrive
  3. The same files copied to another regular local folder also worked correctly
  4. Rebuilding the Windows search index did not solve anything

Because of that, this did not look like a normal indexing problem, a WinForms problem, or a problem with the files themselves.

What finally solved it

The breakthrough came when I stopped opening the folder through its original path and accessed it through a junction instead.

For example, I created:

C:\Synology\SynologyDrive_J -> junction to -> C:\Synology\SynologyDrive

The files were exactly the same, but once I opened them through that junction path, search inside OpenFileDialog started working correctly.

Why this points to the real cause

That result was very revealing.

Since the junction pointed to the exact same physical folder and files, the fix clearly was not about the content of the folder. It also did not point to a WinForms bug or to a broken Windows Search index.

Instead, it strongly suggested that the issue was tied to the shell state or folder identity of the exact original path C:\Synology\SynologyDrive.

How to create the junction

To create a junction like this, you can use the following command:

mklink /J C:\Synology\SynologyDrive_J C:\Synology\SynologyDrive

Why this workaround works

The interesting part is that a junction changes the path identity that Windows Shell sees, while still leading to the same files.

In my case, the original root path seemed to be in a broken state, but alternative junction aliases pointing to that same folder worked without any problem. That makes this look path-specific rather than file-specific.

If you need a stronger fix

If your application cannot easily switch to another initial path, there is also a more aggressive version of the same workaround.

You can rename the real folder and then recreate the original path as a junction pointing to the renamed location. That way, applications can still use the old path, but Windows Shell sees it as a new folder identity.

This should be done carefully, preferably after a reboot and with Synology Drive Client fully stopped, because the folder may be locked by background processes.

0
const date = '12.07.2021';
.NET 5 Blazor

Quick, simple and easy idea for automatic versioning in azure pipelines

Here are two straightforward steps for automatic versioning of a .NET application when using azure pipelines.

First step is to add -p:Version=$(date).$(buildCounter) switch to the dotnet publish (or dotnet build if you don't use publishing) step:

- script: dotnet publish --output $(Build.ArtifactStagingDirectory) -p:Version=$(date).$(buildCounter)
  displayName: 'dotnet publish'

The second one is to declare the variables used in the previous step in variables section. First one is the current date in yyyy.MM.dd format and the second is a build counter (for given date) that is reset everyday.

variables:
  buildConfiguration: 'Release'
  date: $[format('{0:yyyy}.{0:MM}.{0:dd}', pipeline.startTime)]
  buildCounter: $[counter(variables['date'], 0)]

Thanks to that msbuild will put a version in current date + build counter format in the assembly (e.g., 2021.7.12.2) that guarantees it will always be unique and incrementing with every build. If that's a Blazor application then you can display this value by using this code:

<span class="small">MyBlazorApp @($"v{GetType().Assembly.GetName().Version}")</span>
0
const date = '11.04.2020';
Windows 10

Windows reports no internet connection after connecting to a VPN and Microsoft applications don't work

When, after connecting to a VPN (like NordVPN), your Internet connection is fine (e.g., you can browse the Internet using a web browser) but Windows reports "No internet connection" and some Microsoft/Windows applications doesn't work (e.g., XBOX app) then here is what helped me.

Figure 1. Steps to fix the issue

Follow the steps as on the above image:

  1. Click on the network status icon
  2. Click on the "Network & Internet settings" option
  3. Click on the "Change adapter options" option
  4. Right click on your VPN ethernet connection and select Properties from the list
  5. Select "Internet Protocol Version 4 (TCP/IPv4)" on the list
  6. Click "Properties" button
  7. Click "Advanced" button
  8. Click "Add" button to add the default gateway
  9. Put your gateway IP address
  10. Click "Add" button and close all other windows by using "OK" button

If you do not know what is your gateway IP address then disconnect VPN for a while and open command line (press Windows key + R and type cmd and press enter). In the command line window write ipconfig and press enter. Find your non-vpn adapter in the results and under it there should be default gateway IP addres. Use that one.

0
const date = '19.05.2019';
Google takeout

Easy way to download all your photos and videos from Google Photos at once

Some time ago Google introduced a new website called Takeout where you can download all your data stored by Google at once.

It is enough to go to the Takeout page and select the data you are interested in. For example, unselect everything except Google Photos. Click "Next step" button and wait for an email with a link to your download. I got my link after 2-3 minutes. The link takes you to a zip package containing all the data you requested.

0
const date = '25.08.2018';
Ubuntu Server 18.04

Transmission daemon doesn't create a log file nor a pid file

So you edited default transmission-daemon settings file (/etc/default/transmission-daemon) then restarted the daemon and nothing happened? Well... thanks to this thread on unix.stackexchange.com I learned that transmission-daemon is managed by systemctl and because of that init.d scripts that use mentioned default config are ignored.

To tell the daemon that you want him to create a pid and a log files you need to edit /lib/systemd/system/transmission-daemon.service file to look like this:

[Unit]
Description=Transmission BitTorrent Daemon
After=network.target

[Service]
User=debian-transmission
Type=notify
RuntimeDirectory=transmission-daemon
LogsDirectory=transmission-daemon
ExecStart=/usr/bin/transmission-daemon -f --log-error --log-debug --logfile /var/log/transmission-daemon/transmission.log --pid-file /run/transmission-daemon/transmission.pid
ExecStop=/bin/kill -s STOP $MAINPID
ExecReload=/bin/kill -s HUP $MAINPID

[Install]
WantedBy=multi-user.target
Where:
  • RuntimeDirectory tells systemd to create transmission-daemon folder inside /run owned by daemon's user. We want this because the daemon runs under debian-transmission username which doesn't have access to the /run so it won't be able to write to this directory.
  • LogsDirectory tells systemd to create transmission-daemon folder inside /var/log. Reasoning is the same as above.

Now you can restart the daemon (don't forget about systemctl daemon-reload before restarting) and the log and the pid files should be in place.

0
const date = '19.06.2018';
ASRock J5005-ITX

Intel Pentium Silver J5005 supports 16GB of RAM

I finally got my ASRock J5005-ITX motherboard and can confirm that it is able to handle 16GB of RAM. Although Intel's web page says this CPU supports up to 8GB, I have successfully installed Ballistix 2x8GB SODIMM kit (model BLS2C8G4S240FSDK) and it has got correctly recognized by BIOS and Ubuntu OS.

16GB of ram discovered correctly by Ubuntu System Information
Figure 1.

There are also other people reporting that this CPU supports 16GB. For example in this review Intel's NUC built on J5005 works with 16GB of RAM. There's statement that RAM modules need to be 2400MHz ones. This not necessarily has to be true as ASRock maintains RAM compatibility table for mentioned motherboard where 2133MHz modules are also listed.

Edit note: A reader contacted me regarding compatibility issues with his Kingston HyperX Impact 8GB - HX424S14IB2/8. He bought two pieces for dual-channel but motherboard behaved like the RAMs were damaged. Even when using only one of them. Finally what helped for him was the BIOS upgrade. Now they run smoothly in dual-channel. So keep that in mind that flashing the newest one to your J5005-ITX can add support for your RAMs.

9
const date = '07.09.2016';
C# 4.5 Thrift 0.9.3

HBase Thrift C# Article

I have recently added an article showing HBase as a database for C# clients. It describes how to connect to HBase from C# via Thrift and how to retrieve data from HBase tables. You can also find some useful tips there. Hope you will find it helpful: Hbase and thrift in .Net C# Tutorial.

0
const date = '15.07.2016';
Windows 10 Broadcom bcm94313hmgb

Internet wifi drops/disconnects. Connected to wifi but no internet.

After migrating to Windows 10 from 7 I had Wi-Fi internet issue. After some time (e.g., 5 minutes) my WiFi connection was reporting "No Internet". Reconnecting manually to the WiFi was fixing the issue. After digging some time in the internet I found out that this has something to do with IPv6 address assignment. If you don't need it you can disable it using the "Disable IPv6" tool from microsoft site.

Mirror on my site in case mentioned site is down: download.

People also reports that in some cases that helped to solve Ethernet issues in Windows 10.

Additionally I have installed the newest Broadcom drivers I could find for my bcm94313hmgb chip. It was broadcom_bcm_5.10.97.7 from this site: Broadcom BCM943XX/BCM43XX WLAN Driver 5.10.91.4 for Vista

2
const date = '10.01.2016';
AIM SC808

Audio In Motion (AIM) SC808 - No sound problem

If you want to use SC808's daughter board (or HD Audio connection probably too) you have to disable integrated audio card in BIOS! Otherwise Windows doesn't install drivers for the daughter board (it is visible as a separate card in Windows Sound panel).
0