Gadgets IT

Synology DSM remote access slowness fix (SSL certificate)

It has been quite some time since I started using Synology as my NAS (thanks JeromeH for the suggestion!) – it has been great its software is one of a kind. Recently I experienced a problem – although the remote access using ssh tunneling / VPN is very safe, it is not very user friendly, especially for connecting from a non-rooted Android Synology apps.

Eventually I decided to give a go of just exposing the Synology NAS ports to the web making the connection as secure as possible in process.

  1. tried Synology QuickConnect – but dropped it pretty quickly a) awfully slow 2) everything is proxied over Synology servers, explains the slowness and cannot call it very secure neither
  2. DDNS with port forwarding of HTTPS ports and default (self signed) SSL certificate (443 for PhotoStation and 5001 for the rest of DSM) – very slow, very unstable, I read about the possible reasons why and understood that getting an SSL certificate for the DDNS would probably resolve the issue as apparently lot of time is spent just negotiating exceptions around the self-signed certificate etc.
  3. DDNS with port forwarding and SSL certificate, this setup was a wee more complex and expensive, but the result is really usable compared to 1 and 2:
    • had to get a SSL supporting DDNS provider, went with since it is well supported on DDNS supporting routers and since I was already using it with the free account that has to be confirmed every month which is a bit irritating anyway 🙂
    • bought a domain for this purpose (any domain provider will do), set it to be managed by DNS servers
    • bought a managed DNS service for my domain from, set up the subdomains including the one to be used for Synology remote access
    • set up DDNS ip address renewal to the new subdomains, check that it works
    • bought a RapidSSL from for the subdomain to be used for Synology remote access – there is a procedure to confirm the SSL certificate, easiest if you already point your MX records to a mailserver and can control forwarding of wildcard e-mails arriving as part of the process is to receive an email sent to the subdomain admin user
    • make sure to use the intended ports in DSM – 5001 for https (Control Panel -> Network -> DSM settings) and 443 for PhotoStation (default) – they can be forwarded by the router to different external ports
      • note – the PhotoStation is a special beast not really integrated well with DSM, it seems it ignores port settings pretty much so just assume it runs on port 443, use that with forwarding for most reliable connection
    • enter the hostname and external DSM https port in Control Panel -> External Access -> Advanced section of the DSM
    • import the SSL certificate associated with the hostname in Control Panel -> Security -> Certificate

Access to Facebook APIs for WordPress re-posting

Wanted to reactive a seemingly simple feature, to re-post from my WordPress to Facebook as well as other social networks.

I have been using this paid plugin,

Which works well for Twitter and Linkedin after some initial setup trouble.

But Facebook, since 2018, is another story. It is not enough to create an application at Facebook side, no no that would be too easy.

So there is a choice of buying a subscription to another NextScripts API, which is better but well its a yearly fee, so that excludes it for me.

The other option is to get your application approved by Facebook and main limitation is that you can only post to your Pages / Groups. And WordPress has to be in https.

What I had to do (and yes finally it seems to be working)

  1. Creating and configuring the Facebook application
  2. Configuring Auto-poster WordPress plugin
  3. App review:
  4. Confirm your identity (need to send an official identity document scan), accept use policies – which took quite some time as of manual intervention needed
  5. For the needed access, send application forms (publish, manage pages) – this is the real trouble, it was back and forth like 7 times. I also got the feeling that there is some review gateway team who don’t have a clue about IT or technical matters. What finally helped was getting to live chat with an actual reviewer who understood the use case and left a message for the gateway to let the request go through next time.

Set Windows 10 background slideshow script in Powershell

I have set with every installation of Windows 10 with my profile a slideshow to change picture from a folder every X minutes. However recently I noticed that this resets from time to time and goes to one picture / slideshow over only some of the pictures that Windows has decided to keep in it’s cloud cache.

Thinking it should be easy I looked around for solutions but found out it is not that trivial (doh it is after all Microsoft 🙂 ). Finally seem to have something workable in Powershell below which you can add to startup (%userprofile%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup) e.g. by using a batch file that runs the poweshell script:

@rem save as a *.cmd file (add shortcut to it in startup)
@echo off
powershell .\set-slideshow.ps1
# to use this, need to create a good slideshow setup from a folder then copy the files from $dest to $source
$source = "$env:userprofile\Install\MySoft\pws\slideshow"
$dest = "$env:appdata\Microsoft\Windows\Themes"

$id = get-random
$code = @"
using System;
using System.Runtime.InteropServices;
using Microsoft.Win32;
using System.Threading;
namespace Wallpaper {

   public class Setter$id {
      public const int SetDesktopWallpaper = 20;
      public const int UpdateIniFile = 0x01;
      public const int SendWinIniChange = 0x02;

      [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
      private static extern int SystemParametersInfo (int uAction, int uParam, string lpvPara, int fuWinIni);

      public static void SetWallpaper (string path) {
         SystemParametersInfo(SetDesktopWallpaper, 0, path, UpdateIniFile | SendWinIniChange);

      public static void SetSlideshow (string path) {
         RegistryKey keyz = Registry.CurrentUser.OpenSubKey("Control Panel\\Personalization\\Desktop Slideshow", true);
		 //enable shuffle
		 keyz.SetValue(@"LastTickHigh", 0);
 		 keyz.SetValue(@"LastTickLow", 0);
		 //set to 10 minutes shuffle slideshow
		 keyz.SetValue(@"Interval", 600000);
		 keyz.SetValue(@"Shuffle", 1);
         keyz = Registry.CurrentUser.OpenSubKey("Control Panel\\Desktop", true);
         //"Fit" style
         keyz.SetValue(@"WallpaperStyle", "10");
         keyz.SetValue(@"TileWallpaper", "0");
         SystemParametersInfo(SetDesktopWallpaper, 0, path, UpdateIniFile | SendWinIniChange);

Copy-item -Path "$source\*" -Destination $dest -Force
# don't know how and why but setting it to empty string makes shuffle working (nonexist.jpg attempt does not although it does set to a color background)
Add-Type -TypeDefinition $code -Language CSharp
Invoke-Expression "[Wallpaper.Setter$id]::SetWallpaper('')"
Invoke-Expression "[Wallpaper.Setter$id]::SetSlideshow('$dest\TranscodedWallpaper')"
#Stop-process -name explorer
Gadgets IT Phones

Exporting SMS from Windows phone

Maybe someone finds this useful (word of advice, don’t use Windows phone in the first place to avoid trouble like this)

  • to be able to export sms’es without rooting etc., you first need to upgrade to Windows Phone 8.1 since the feature only appeared in this version
  • then you need to insert an sd card
  • go to settings, transfer my data
  • click the “…” button
  • export to sd option, select sms’s / contacts to export
  • a file like sms.vmsg will be created. it is a format for which there is no support outside Windows Phone it seems (there was a tool from Lenovo that could import them in Android 4.2 but it stopped working. And, vmsg is not vmg either.
  • the sms’s are in the file, what I did was to convert it to a Titanium Backup Android XML schema by lots of text manipulations. Another advice with Titanium, try to make thread that are less than 500 messages or it will hang. Also, take care of the unicode characters in the texts.

Merry exXmas and happy 2015 🙂

Funny Gadgets IT Phones

Advertisement of another class

LG G3 Beat : Product Movie

Funny General IT

My birthday song #1 – Champaign – How ‘Bout Us
Interesting concept, you fill in your birthdate, replace ddmmyyyy with your birtdate e.g. for July 1st 1978.
What you get as a result is #1 song at that time in charts (not sure which).
This is what I got (never heard it before to be honest). Note the number 22 appear in second 29 🙂
Champaign – How ‘Bout Us

Gadgets IT

Excellent demo of a non-scary robot

And for my next trick, a robot

Funny IT

Heartbeat exploit for dummies

xkcd: Heartbleed Explanation


Emulating life

Been thinking lately about computing and emulation capabilities.
Imagine couple of things being implemented, sooner or later.
Zero chance of it happening with the current computation capabilities, as the current efforts prove. NY Times article
A powerful enough computer (hardware & software wise) to simulate life would be needed (quantum computing?)
Running a simulation of centuries for thousands of bacteria in a simulated dynamic harsh environment
Really the question is – would it result in evolution?
Equally probable, would it result in a recursion? Is the current existence an experiment of evolution as well?
Indeed, bizzare.

Funny IT Phones

Android next version codenames

I have 2 suggestions:

  • Apple strudel
  • Blackberry pie