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.

My streaming setup

As you have probably noticed if you follow my projects for an extended amount of time, I do love streaming. The idea of personal media has become an incredible creative influx in today’s web culture. Think of great podcasts, let’s plays and weekly shows you enjoy.

Since I’ve changed my workflows and my software stack around a bit in the past few months, here is a small look at how I work. I am not suggesting this setup is generally awesome (because it is clearly not) but at least it’s a solid, mostly software-based foundation.

I’m not the average player who simply streams his progress. I am too lazy for producing a continuous series of videos. Another problem is that gameplay is – in my opinion – only interesting at 720p and/or higher resolutions. Unfortunately, due to the poor cut-throat politics of the German Telekom, it is impossible to get proper broadband internet access. I have to put up with ~100 kiloByte/s upload and mere 10 Megabit/s downstream. The best I can manage with that is 480p with about 700-750kbps video data and 96/128kbps AAC audio.

However, I do want to be able to record in high-definition anyway. Ideally I record in 720p@30 and stream in 480p@30 – in realtime, that is. Technically this should not be an issue, my computer supports Intel Quick Sync so I could (in theory) encode my local high-definition copy of a video without suffering any performance penalty. I specifically mention “in theory” because reality leaves me in despair.

In the past I have used Dxtory and Xsplit to stream. Dxtory can output data to both file and a pseudo-camera. The camera output could then be used in Xsplit to stream in 480p. Unfortunately Dxtory does not give any specific resolution details to it’s camera output so the content is always 4:3 and blurry as hell in Xsplit. That may be an acceptable short-term solution for 480p crap quality but no keeper. Another bummer is that Dxtory does not make use of Quick Sync. The same is the case with Xsplit (except when doing local recording – which renders the entire feature moot).

I also want to mix several input sources (like multiple webcams, microphones, my Hauppauge PVR2 plus local media files [avi, mkv] etc.) so my choices are rather limited. Again, I use Xsplit as my weapon of choice here. I have tried Open Broadcaster Software and while the software did perform well, the user-experience and some kinks with capturing DirectX and OpenGL surfaces once again left me in despair. Capturing an exclusive madVR surface is impossible with OBS in it’s current state, there is flickering all over the place.

So yeah, Xsplit it is for preparing and switching stages. Starting with Xsplit 1.3 it has also become a useful tool for local recording due to Quick Sync support. Again, I could use OBS here or even Mirillis Action! but I already own an Xsplit license and there’s too little difference in the output to warrant extra software setup.

As mentioned before I use a Hauppauge PVR2 Gaming Edition Plus device to capture HDMI and Component material from my Xbox360, Playstation 3, Nintendo Wii and Playstation Portable. It works fine, the quality is acceptable, even if the blurry Playstation 3 component output makes me cry. One little thing has to be noted: The PVR2 has a streaming lag of about 3750ms.

It would be rather ugly to have commentary about 3-4 seconds early, so I manually keep my microphone input in a 3750ms Virtual Audio Cable repeater buffer that also allows me local playback in realtime from my line-in while adding latency to the audio data for use in Xsplit. It’s a great piece of software, I’ve fiddled around with VB-Cable before but VAC is just a much better experience for me. Your mileage may vary, especially since my  requirement here is inducing latency while most people want to reduce latency.

So, what’s left to do? Well, I still need to get a proper microphone that does not sound like I’m trapped in Buffalo Bill’s basement. I also need an additional, dedicated SSD for dumping the video data. And yeah… proper upstream – the one thing I will never get.

In short:

– Dxtory for capturing “strange” sources
– Hauppauge PVR2 for capturing consoles
– Virtual Audio Cable for mixing, splitting and postprocessing live incoming audio data
– Xsplit for bringing all sources and media together

I am not saying that the software listed above is perfect or the best there is. God knows Xsplit is far from perfect and OBS shows SplitMedia Labs who is boss in some departments (and no – “having more features” is not a good excuse for having the world’s slowest UI or not implementing features supported by libx264 [like OpenCL]). But my workflow could be a lot more miserable, so I guess this could pass as a recommendation.

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.

Bitcasa Everywhere Chrome modification for infinite queue

Addendum 2014-05-21: I received a mail from Bitcasa informing me that this modification polls Bitcasa’s services so much that it has undesired side effects. Contrary to what you might believe it was not a threat or any sort of lesson in legal issues but a simple request backed by very reasonable, technical arguments. If you are not familiar with how the modification worked, here is the short version: BCE Mod created a background timer that would poll Bitcasa’s endpoint every x seconds to update it’s internal status, log you in, trigger new downloads and so on. One person using this method is not a problem. Add an undefined number of people and the trouble starts. Every user with this mod increases the stress on Bitcasa’s web interface considerably due to the unending stream of requests. Now here is where my dilemma starts: I was out to improve the user-experience and show that it does not take much to do so, not to harm the service I want to prosper for years to come. Unfortunately though, that seems to be the case now, making the life of the good folks at Bitcasa harder – not cool. So please understand that I will not offer or work on this modification anymore. I do recommend that if you still use the modification, you should uninstall it immediatly because it will not work as intended anymore; all it will do at this point is lock you out of My Bitcasa for a few minutes due to the number of requests. If you are interested in…

  • An infinite queue for your Bitcasa Everywhere downloads
  • Automatic login to My Bitcasa
  • Tighter integration with 3rd party services
  • A more up-to-date Bitcasa client update check (possibly an official announcement for each new release via Twitter?)

…please vote for these features on the official feature request section! The more votes a feature gets, the better! If a feature is not feasonable you will receive official word on why it will not make the cut. Also consider voting for the addition of some kind of file-download extension to Bitcasa’s API, giving third-party developers more freedom to interact with Bitcasa without having to play the “middle man” for file caching. Again, sorry to everyone at Bitcasa for the inconvenience caused and sorry to everyone who came here expecting a turbocharger for their Bitcasa Everywhere!

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.

FLV Embed Modification

I love Yaosan Yeo’s FLV Embed WordPress plugin. In fact, while here on TnH I use a variety of plugins, on my new site it’s exclusively FLV Embed.

Now, the plugin ships with an old version of JWPlayer that doesn’t support subtitles. This is bad because that’s just the feature I needed. So, I updated the player version shipped with the plugin and also added a few more tricks to the otherwise great plugin:

  • You can now specify a default size in the options. If you don’t give a size in the flv tag, it’ll automatically use the ones specified as default.
  • There’s a few more parameter combinations, most notably you can now add subtitles to the parameter list (filename, sub, poster, width, height).

What does this mean? You now have the following possible combinations:

  • (filename) Plays just the filename with the default size, no subs or poster
  • (filename, subs) Plays the filename with the specified subtitles with the default size
  • (filename, subs, poster) Same as above, just with the additional poster
  • (filename, subs, width, height) Same as above but without poster and with custom sizes
  • (filename, subs, poster, width, height) Same as above but with poster.

Yeah, I don’t really need the poster. If you’re interested you can grab the file here. Be advised that you need to download and unpack the player.swf and yt.swf from the new JWplayer to make this work. Also, you need the original plugin.

Howto: Run Vector Magic Desktop Edition with Wine

Vector Magic is pretty cool. I loved the project back in the days when everyone could use it for free and was happy to see that they started providing a desktop client after going commercial. Even better: The client is utilizing Qt so we have a Windows and a Mac version. But nothing for Linux.

Don’t fret, of course you can run this application with Wine:
The only thing to notice here is that you need to set your Windows version to Windows 98, otherwise the application will always go haywire when loading a picture.

vectormagicwine

All features are working perfectly, no native DLLs needed.

Howto: Fix Wuala’s Copy & Paste on Linux

If you’re using a recent KDE version you’ll notice that Wuala’s Copy & Paste feature doesn’t really seem to work anymore. Instead of using the contents you specify within the application (say, files and folders) it’ll always use the contents of Klipper.

That’s pretty annoying if you don’t know that the contents does indeed come from Klipper. So, just clear your Klipper history and you should be fine.

Visual Studio 2008 Essentials

Despite all my bickering, Visual Studio 2008 is great. It was well worth the money to upgrade.

There are a few things missing from the Professional version, though. The lack of a powerful profiler for everyone still makes me shake my head but I’m using Red Gate’s ANTS profiler anyway, so who cares.

Let’s talk about some updates, add-ins and extras you should definetively try…

  • Visual Studio 2008 and .NET 3.5 Service Pack 1
    This service pack adds a plethora of new features, enhancements and bug fixes and should be installed right away. Data scaffolding, new WinForms controls, an entire new data modelling framework, countless WPF enhancements… you name it, it’s probably in the SP already.
  • PowerCommands for Visual Studio 2008
    This package contains numerous nifty functions that’ll improve your sourcecode and workflow. Remove unnecessary usings, open command prompts on the fly, way better undo… just read about the features on the homepage and try it, you won’t regret it.
  • AnkhSVN
    I don’t like SourceSafe. For it’s requirements it gives back very little. In comparison Subversion performs great: You don’t need a server or anything, just create a repository on your local disk, check in your files and start branching, merging and keeping book of your changes. And best of it all: It’s free. Now, that’s where AnkhSVN comes into play – it adds TortoiseSVN’s power into Visual Studio. Don’t know how I worked without this.

So, what’s missing on this list? Let me know 🙂 .

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 😉 .

Stopping Sweetcron from breaking with too long posts

Okay, now this is really really bad, starting with MySQL 5 there is a strict mode. What does that mean? The strict mode will not silently swallow all your data and just cut off what’s left but throw an exception back at you when you try to insert more data than the field type allows.

Sweetcron is really vulnerable for this kind of problem. It always stopped fetching the feeds to complain about a single post. Now, while fixing the problem on the software side would be preferrable I opted for a simple configuration change on the server side this time.

All you really need to do is altering the my.ini line that activates the strict mode:

sql-mode=”STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION”

will either become

#sql-mode=”STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION”

or

sql-mode=”MYSQL40″

Simply restart the MySQL service afterwards and sweetcron should eat the posts without complaining (I don’t even want to think about the loss of data here, but who cares?).

WordPress 2.7

Gee, there I am, not updating my installation for ages and now I’m wandering the path of nightly-builds again.

WordPress 2.7 is amazing. The new interface not only looks great but also offers a lot: You can collapse your toolbar to save space, the auto-updater has been improved and now supports updating WordPress’ core as well.

Quite slick, can’t wait for the final 🙂 .

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!).

Wrapper Release

Gee. I didn’t get around to post this but the stable wrapper v. 0.0.1.0 has been released onto Wuala.

Changes include the latest adjustments to the API (doesn’t include the changes to the thumbnail method, as this came later) and a little cleanup/documentation in the sourcecode itself.

I think it’s a nice, easy-going wrapper to work with that doesn’t make a big deal out of every little event (as a matter of fact, it doesn’t throw any exceptions whatsoever $me thinks).

Since there isn’t much demand for fast-paced development and I’m kind of absorbed into FarCry 2 at the moment, I probably won’t bother working on the Wuala Browser Sample (the application that should succeed ToyBox at one point) for a while — that doesn’t mean I won’t play around with it, though.