SyncBackSE: Schedule a Move Operation on Windows

I have several file-system operations I cannot perform during the day, the machine’s performance would suffer and I would get angry e-mails. So I have to schedule simple move operations.

Now I could do this with Windows’ own task scheduler but I would have to write either a vbscript or a batch file to specify the details. Performing a dry run also sucks. Apparently there’s no dedicated software that gives a new “Schedule Move” or “Schedule Copy” context operation (hint: I’ll develop one once I have beaten Grand Theft Auto V) for quick use, so I started experimenting.

It seems the amazing SyncBackSE fits the bill. I already own a license for this great piece of wizardry to perform sync operations between multiple machines and backup my files. Turns out you can configure a new, one-time job to be your scheduled file mover:

  1. Create a new backup profile and choose the directory above the one you want to move.
  2. Choose “Select Subdirectories and Files” to specify the directory/directories you want to move.
  3. Now select your target directory.
  4. Add a schedule
  5. As a condition set “Move file to target”

SyncBackSE will automatically move your file, produce a nice log for you to review and even allows for a dry run.

Bring order to your chaos with File Juggler

I’m a sucker for sweet file-management tools. My ever-growing/changing list of essentials has a new addition and I welcome the fabulous File Juggler. File Juggler is a rather simple, yet powerful tool that allows you to define rules based on file-names, modification date and other criteria and perform operations on those files.

The reason I decided to shell out the 25$ for the tool is because it just works. No bells and whistles, no stupid, overloaded crap UI. Select a few sources to monitor, define your rules, done. File Juggler will automatically keep watch of the files and move, delete, rename or extract them when the rules apply.

In the current version 1.3 you cannot move entire folders around, unfortunately. So if I wanted to move .\a\b to .\c\b the files from .\a\b would end up in .\c\. Fortunately the developer behind the application is already working on folder operations for version 1.4, so I have high expectations 🙂 .

Windows web stack woes

For quite a while I was not satisfied with the performance of one of my Windows 2008 servers. While the machine had reasonable processing power, a fair amount of RAM and almost no disk IO the rendering performance of PHP pages on IIS 7 was simply atrocious.

Different PHP versions, lots of TCP and Wincache tweaking – no cigar. What could possibly cause the server to wait for about 8 seconds to render a simple WordPress front page?

The answer puzzled me: localhost.

Due to the IPv6 address of the machine, some kinky routine preffered the IPv6 address over the IPv4 one, causing significant slowdowns on each and every request to MySQL.

After simply replacing “localhost” with “127.0.0.1” in all configuration parameters I got the kind of snappy performance I expected. Crazy stuff.

Maxivista v4 Mirror Pro Review

Monitors don’t cost a fortune anymore. I remember buying my iiyama 21″ TFT in 2004 and I also remember that it wasn’t cheap.

With the advent of technologies like Eyefinity even non-professional users crave for more screen estate – and the industry is happy to oblige. But there’s one big problem: There’s no room left on my desktop. Mobile phones, laptops, trinkets, joypads of all sorts as well as beverages fight for their spots. But hey, what if we could just recycle some of the screens we already have on our desktops?

Enter Maxivista, a software that allows Windows systems to extend their screen estate by utilizing other Windows/OSX|iOS systems’ screens. The idea isn’t new and there’s also a free program called ZoneOS ZoneScreen that basically does the same (minus the OSX|iOS compatibility) plus a few mediocre solutions geared towards tablet/smartphone compatibility.

Papers and tech demos are fine – but does Maxivista really work well in everyday use?

Let me write up front that I tested MaxiVista v4 Mirror Pro which is the latest and greatest version with all the bells and whistles. If it’s not in here, it ain’t there. With a price tag of 99 EUR the software is not exactly a bargain, add a few more Euros and you could get a nice new monitor.

There are a few limitations with MaxiVista:

  • Aero will not work while MaxiVista is active.
    I don’t really care for blurred windows and transparency, so I’m fine with this. However – this also means that kinky stuff like overlays or accelerated graphics operations won’t work either. So while you can watch a movie on your host’s screen, you cannot drag the window to a MaxiVista screen and continue; there’s no cpu-based drawing fallback. This means that applications like XSplit will not work on MaxiVista screens.
  • You can use a maximum of 3 machines as slaves.
    If I interpret the FAQ correctly each of these machines can have up to 2 screens connected to them, giving you a maximum of 6 additional screens. Personally I wouldn’t exactly call this a limitation since this gives you a lot of extra screen estate to play around with.
  • There’s an OSX/iOS version but no Linux/Android port.
    While I understand perfectly well that supporting a variety of platforms can be tricky, I’d really love at least an Android version of MaxiVista.

Bartels Media states these limitations on the MaxiVista homepage, so they don’t come as a surprise and we know what we’re getting into.

MaxiVista features a WDDM driver, enabling the program to work perfectly on a 64bit Windows system and is just so much more comfortable than ZoneScreen. Once the software is installed you can generate a viewer program for either 32bit or 64bit systems. Copy the viewer program onto the target machine (i.e. your laptop), run it and you’re pretty much done, Aero gets disabled automatically – zero configuration is required.

There is one thing that makes MaxiVista absolutely great: There are plenty of compression options to ensure you get the best performance out of your network. Whenever you feel that an applications displays too sluggish you can run an integrated optimization tool that really does a wonderful job of adapting the compression options to suit the application.

In the default settings MaxiVista isn’t much of a killer, this is most apparent when you’re trying to scroll through webpages on a MaxiVista screen for the first time: The scrolling is choppy, there’s tearing and general slowdown. Optimize the application by following the process’ instructions and you will barely notice that you’re working over the network. The screen will get a little choppy if you fill it completely with dynamic content which is expected and still above your average RDP, NX or VNC performance.

The performance and quality is good enough to watch videos fullscreen on a 1680×1050 screen over network in very good quality – if your CPU is powerful enough to handle the decoding in software.

While MaxiVista always gets demonstrated with WiFi (see demo videos on their homepage and on YouTube), I highly recommend a wired connection to get sharp, crisp images.

On the topic of picture quality: There is absolutely nothing to complain about. From your usual JPEG-artifact-ridden compression up to lossless, there is a setting for everyone. I got great results just optimizing for Google Chrome with great sharp fonts and bright, vibrant colors that do not bleed into neighbouring areas.

One thing I noticed during my test period are some infrequent crashes on the viewer. If you opt to install the viewer as a service that’s not much of a problem since all your programs still reside within the MaxiVista screen but annoying nevertheless.

There seems to be some weird outage whenever the resolution on the host machine switches (think: games starting up) that result in the MaxiVista screen losing connection, applications flying back to the host’s screen and immediatly back to the MaxiVista screen. Yuck!

For some reason applications will always start up on your host’s screen and migrate to the MaxiVista one. Again, it’s an annoyance, not a problem.

MaxiVista allows you to hide the expanded screen on a client so you can continue to use the machine. While the idea is a good one it does miss an option to disable the client’s keyboard/mouse and also lacks an option to prompt for a password before hiding the expanded screen.

If you’re planning to get the most basic of MaxiVista’s editions you can stop reading here because that’s all there is to it. The bigger editions come with some sort of Synergy-slash-InputDirector-slash-Multiplicity-esque software KVM feature that allows you to share a single keyboard/mouse plus the contents of your clipboard across multiple machines. While the idea of integrating this feature is a good one, the execution lacks the flexibility of the former programs. An option to switch machines via hotkey is not available, neither is sound transfer to the controlling machine (Multiplicity shows how to implement these features in a sane manner, imho).

Now if you remember the title of the post, you probably wonder when we get to the “Mirror” part. Well, additionally to the main screen-extension and software-KVM feature you also get a small feature to display the contents of your host’s screen on the client. It utilizes the same technology as the screen-extension feature so the image is crisp and the refresh rate is still good. A nifty feature would have been to integrate the option of actually controlling the MaxiVista/host screen from one of the clients (think of it as a reverse KVM) – but sadly that’s not possible, thus making VNC a more affordable and flexible option for these use cases.

Bottom line: is MaxiVista worth the money? The answer is a big “yes” with a small “but”. If space on your desktop is limited or you are under constraints by your device (old laptop or desktop machine) and you keep the limitations of the software in mind you’ll find that MaxiVista is a fantastic piece of software with a few minor annoyances. The extra features you get with Mirror Pro are nice but not really a big deal, especially considering that there are other solutions that outperform MaxiVista in the aspects of KVM and display mirroring. But you’ll be hard-pressed to find a software that works as easy and well as MaxiVista’s core.

If you’re on Linux you’re out of the game. MaxiVista is proprietary software and the protocol is not open.

Windows 7 – Enable concurrent RDP + multiple sessions per user

Let’s all admit it: Microsoft is still a bitch. Nowadays they try to push Metro down our throats, in the past they artificially limited the number of concurrent RDP sessions – and what’s worse: Limited the sessions to 1 per user on their client operating-systems. There’s no reason for limiting RDP on client systems (except for making it a premium feature) but a ton of scenarios where I need to be able to log-on more than once [with the same username] onto my workstation. Now, if you’re on a non-Ultimate version of Windows 7 you might be out of luck, but if you run Ultimate the following might be just what you’re looking for: Enter Concurrent RDP Patcher. Applying the patch is simple: Download, unpack and run it. Afterwards you’ll need to make a small change to your registry. Navigate to:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server

and create/modify the following DWORD value with the value 0:

fSingleSessionPerUser

After a simple reboot you’ll be able to connect to your machine – multiple times. As usual when putting your fingers where they don’t belong, make sure you keep a backup of your original termsrv.dll (can be found in your system32 directory) before getting started.

GTA IV for PC

I think I just spent more time in Windows than the last 2 years together. GTA IV is fun, easy as that.

I don’t know why people keep nagging at the game, it’s great and just what I’d expect of a new title of the franchise.

The only thing I can really get mad about are the horrible DRM-esque copy protection, the need to register at least 2 accounts (1x Rockstar Social, 1x Windows Live) and the massive memory leak that brings down the performance after a few hours of play.

So, come on Rockstar… Instead of spending thousands and thousands of dollars to keep the game copy-protected, spend a few thousands on debugging the PC version – for Pete’s sake. It really isn’t funny and the fact that the game doesn’t even start with ATi graphic cards is… ok, that’s to be expected 😉 .

How to deactivate (revoke) Far Cry 2

Far Cry 2 comes with a nasty copy protection. Actually, it’s more like a strict DRM variant that needs to be activated online and can only be used X times when not properly deactivating it.

You can manually revoke an activation without uninstalling the game by simply calling:

FarCry2.exe /revoke

Easy, huh? I’d prefer Ubisoft to not use any of these bugger DRM crap at all, but then again we all know the story of software piracy (note: pirates probably have a better version without this crap, so this whole thing is totally beyond the point anyway!).

Making the NX Client portable

NX is great. I’m deeply in love with it. Sometimes it’s acting like a real jerk, though. The NX Web Companion is installing a lot of crap into the active user’s profile. The NX client writes stuff in the active user’s profile. Both isn’t really convenient for me.

I prefer to have all my settings with me on a USB thumbdrive. So, in the spirit of PortableApps I’ll show you how to simply turn NX into a portable application.

First thing to do is installing NX client on a machine, if you have installed already – that’s fine. Copy the entire program folder to a new directory structure like NxClientPortable\App (I’ll follow the PortableApps schema here). In NxClientPortable create a new directory named “Data” and a batch file with the following contents:

@echo off
set USERPROFILE=%CD%\Data

App\nxclient.exe %*

reg delete /f /va "HKCU\Software\Cygnus Solutions"
reg delete /f /va "HKLM\Software\Cygnus Solutions"

That’s it. Start the batch file and you’ll be fine. No need for installations, no files in some stranger’s profile. Everything goes back to your thumbdrive neatly.

This example also demonstrates why batch still isn’t dead: The USERPROFILE variable will be changed just within the scope of our batch file, all other applications will still use the path specified in the “global” instance of the variable.

Making Cygwin portable

One of the very packages I always install when I have to work with Windows is Cygwin. Being able to use my beloved GNU tools really makes things easier. Often I don’t have the option to install it. I grieved a little bit about the fact that some problems could be solved with just 2 commands that were — of course — missing from Windows’ horrendous command prompt. So I snooped around and built the following batch that’ll start a full-blown Cygwin session from i.e. portable harddisk:

@echo off set PATH=%CD%bin;%CD%sbin;%CD%usrsbin;%PATH set HOME=%CD%homePortable mount -bfu %CD%/ / mount -bfu %CD%bin /usr/bin mount -bfu %CD%lib /usr/lib cd %HOME% bash ----login -i

Easy, huh? All you have to do to make it work is renaming your /home/Username to /home/Portable (or simply adjust the setting in the batch). Pretty neat stuff.

Windows Genuine Advantage Validation tool fails to install?

Well, well, well — Windows is full of shit sometimes.

So there’s this dreadful Windows Genuine Validation crap thing Microsoft pushes down your throat. Now, that’s fine as long as the crap works but sometimes it fails to install via Windows Update; consequently you can’t install any other updates at that time. Bummer.

But there’s a (relatively) easy way around it: Try to install the control (yes, it’s a dreadful ActiveX control) directly through Microsoft Genuine: On the site click “Validate Windows” and the control should install. After that you can continue to install Windows updates.

I hate it when companies try so hard to show it the evil software pirates and end up annoying the paying userbase only. Thanks a lot, Microsoft.

Copying User profiles while in use

I know it’s not a feasable way to do it but sometimes you can’t get around to copy a user profile while it’s still locked (think: Windows locks it even after the user logs out).

To copy such a pesky profile I use Hobocopy:

hobocopy /full /y /r “%HOMEDRIVE%\%HOMEPATH%” “C:\UserProfileBackup”

The program makes use of shadow copies to perform the process so the resulting file will still be locked but at least it was copied. This becomes quite useful when used in conjunction with, for instance, the portable version of CCleaner and it’s /AUTO switch.

Moving folders to the server side

Wow, the second Windows-related post today? Something horrible must be happening to me right now…

Anyway, you may know a situation like this: Many clients, one server and a terribly stubborn application that just wants to write into that one pesky folder on the local hard disk. Needless to say that thanks to your policies that won’t last a reboot.

So, how can we tame applications like that? People want their data to be available across the network, in a central location/database. If the application’s data is not transaction-dependant you’re in luck.

Unix-lovers know hard-, soft- and symlinks. Hardlinks are available on Windows XP as well, but the truly wonderful stuff comes in on Vista: You get the two other missing types.

That doesn’t mean that XP users are left in the cold, you can download the necessary tool from various sources on the net for free and give it a shot.

So, what is this mysterious tool? It comes with Vista and is called MKLINK. Just use it like this:

mklink /D "Damn local database folder" "\\SERVER\DatabaseFolder"

Yes, we can actually point to a UNC path and — given the client users have sufficient rights — will be able to browse the folder just like any other folder on your file system. That’s pretty sweet and incredibly useful for ol’ haggy applications.

Don’t forget that this operation (just like everything fun) requires elevated access to do!

Temporarily register fonts using a normal User account

As you may know Windows is quite stiff sometimes. You can’t add additional font directories like you’d do on Unix. Another stiffy problem is that Windows requires an elevated account for operations like installing/removing fonts from the system. That’s quite troublesome at times.

This is exactly when my little tool jumps in. With RegisterFont you can add a number of fonts to your font cache without using an elevated user account. The downside is that all the changes persist only ’till the next reboot; Windows will rebuild it’s cache and the changes will be lost.

Anyway, the archive contains a binary as well as the C# sourcecode to this small utility. Use it like that:

RegisterFont.exe add font1.ttf font2.ttf font3.ttf … font1000.ttf

Easy, huh? If you don’t want to add fonts but remove them, substitute the “add” parameter with “rem” and you’ll be set. I didn’t bother to link up to the MSDN entries explaining the API, this is just a quick and dirty tool I wrote because we were in need of a quick solution to a problem 🙂 .

Update 2010-08-27: dcpurton wrote a tool in C to accomplish the same goal but without the .net dependencies. Best of all: Sourcecode is also available 🙂 .

Mandatory profiles w/XP

Mandatory profiles are an ideal way of keeping a complete set of workstations in sync in regard of their visual appearance and settings.

One thing I was stuck at: Whenever I copied a profile and renamed the NTUSER.DAT to NTUSER.MAN the profile simply wouldn’t load the preferences from it, resulting in ugly window decorations, empty start menus etc. Why is that?

The reason lies in the permissions on HKCU. To circumvent this undesired effects you can use Computer -> Properties -> Advanced -> User Profiles -> Copy To… — and now comes the thing — before clicking OK also click the button on the bottom of the form to set permissions. I used DOMAIN\Everyone but as usual… results may vary.

This way it worked fine, though.
It’s a shame that this little click isn’t mentioned in 90% of the quick’n’dirty guides on the net, it really does make a difference.