Download Subtitles Automatically on Qnap with Python Subliminal

Using Subliminal, you can download the subtitles of movies and tv shows to your Qnap. It uses guessit library to extract Video information and then downloads the subtitles for your video from the internet.
To install Subliminal on Qnap, you would need the terminal SSH access to your qnap.
  1. Install Python
Subliminal doesn’t work with Python3 so you will need python 2.7. This can be done easily from App center.
Go to App center and search for python. Install the 2.7 version .
  1. Install Pip
PIP is not installed by default. The easiest way to install is through get-pip .
download the script first with Curl. Use -k for no verify
 Bash | 
 copy code |

curl -O -k

run the setup script
 Bash | 
 copy code |


  1. install Suliminal with pip

Since you have PIP installed, it only takes 1 line command to download and install subliminal and all the dependencies

 Bash | 
 copy code |

python -m pip install subliminal

  1. Create softlink to your /usr/bin
Create a softlink to your subliminal installation in your user bin folder so it’s easier to execute. If you choose not to do this, you can still run subliminal from the directory /share/MD0_DATA/.qpkg/Python/bin/
 Bash | 
 copy code |

ln -s /share/MD0_DATA/.qpkg/Python/bin/subliminal   /usr/bin/

In case you run into installation problem, install pytest-runner and guessit using pip before installing subliminal.
Using Subliminal to Downlaod Subtitles
you can use subliminal as
 Bash | 
 copy code |

subliminal -l en -a 24h /share/MD0_DATA/Download

it will scan your Download directory and  download English subtitles for all the videos that are 24 hours old.  on the first run you can remove the -a option to scan the entire directory. However on subsequent runs, use the ageing flag. If don’t, then it will take a long time to scan the entire directory and repeatedly searching for a subtitle of the same video may get you banned from the subtitle providers.
You can also add it to your crontab to run every 24 hours.

Terminal Services on Microsoft Surface Pro 4

Microsoft Surface Pro 4 is an amazing device. Having used Thinkpad T430 for years, I consider myself as a power user with productivity at the first priority and Surface Pro has not disappointed me. It’s Not exactly as productive as T430 is, but this comes closest .

Now imagine my disappointment when I tried to use microsoft terminal services client (mstsc) with this device, only to see a huge desktop shrinked to fit a small screen with extremely small font size and small icons. In short, I saw a high DPI on a small screen.

Changing the resolution won’t help , it only gives you a smaller windows at the same DPI. The solution is to use the open source connection manager like mRemoteNG.

What mRemoteNG does it automatically adjusts DPI for you. The only problem is that you can’t “Pin it” to the taskbar. There may be other remote connection managers out there that may do the job, but I am sticking to the open source mRemoteNG

Crawl your site and find all broken links using Scrapy

Scrapy is an extremely efficient framework to write web spiders.  With just 30 lines of codes, you can write a crawler that can go through each link in your website and report each link , with HTTP status and the link from where it is linked.

I use this spider to detect broken links on my site. It can also be used to see how many links actually exist on your site and later make a sitemap.

My website is very small with under 10K links, so I set the CONCURRENT_REQUESTS_PER_DOMAIN to 2 in my spider settings so that the website is not overloaded.

 Python | 
 copy code |



If you have a large website, you can have more concurrent connections to the site by increasing this number. With more concurrent connections, the crawler is faster but the site has more load.

Run the spider and let it dump the data into a csv.

 Python | 
 copy code |


scrapy crawl brokenlink -t csv -o broken.csv

or alternatively if you want to run it in batches, pause and resume, you can run it with -s

 Python | 
 copy code |


scrapy crawl brokenlink -s JOBDIR=crawls/broken -t csv -o broken.csv

Here is the spider coding

 Python | 
 copy code |


from scrapy.spiders import CrawlSpider, Rule
from scrapy.linkextractors import LinkExtractor
from scrapy.selector import Selector
from scrapy.item import Item, Field
class myitems(Item):
    referer =Field()
    status = Field()
    response= Field()
class maspider(CrawlSpider):
    name = "brokenlink"
    allowed_domains = [""]
    start_urls = ['']
    handle_httpstatus_list = [404,410,301,500] # only 200 by default. you can add more status to list
    rules = ( 
            Rule ( LinkExtractor(allow=(''),deny=('pattern_not_to_be_crawled'),unique=('Yes')), callback='parse_my_url', follow='True'),
    def parse_my_url(self, response):
        sel = Selector(response)
        item= myitems()
        item['referer'] = response.request.headers.get('Referer', None)
        item['status'] = response.status
        item['response']= response.url
        yield item

/media/nextend/cache – 77,000 files

I use nextend Smart Slider 2 for my joomla website. Its a great component that lets you create the responsive sliders, with CSS animation.

However I noticed exceptionally large numbers of files , close to 77K . The total number of files on this joomla installation was 96K – 80% was Nextend.  Deleting the cache from frontend didn’t work.

Finally I renamed the old cache directory and created another one with the same name. Didn’t have any trouble with the sliders , though I quickly saw 39 files were created in the new cache folder.

So ,I am going to keep an eye on this folder and occasionally clean it too. Hope this post will help someone who uses Nextend Slider with Joomla.

VDI with NComputing vSpace & L300 Zero Client

First thing first – I work for Datacare, the Distributor of NComputing in UAE.

NComputing has been making news as they have become the World’s third largest desktop virtualization company after Dell and HP with an impressive YOY growth and a huge install base in Education sector.

What’s unique about NComputing . 

Numberwise, NComputing is the world’s fastest growing desktop virtualization company, but numbers apart , they really have an advantage that no other virtulization hardware vendor does .

NComputing is the only end device vendor that doesn’t only provide an end device, but gives you a total solution including Virtulization application, so you don’t have to go to Vmware, Citrix or Hypervisor for your virulization layer.  NComputing’s vSpace server is the virtulization application that runs on the host OS and handles the session virtualization.

Real Strength of vSpace 

Apart from the fact that you don’t have to buy vSpace server ( its free and each NComputing device has a the client license built in the device), there are some technical advantages of using vSpace

First, its extremely lightweight and doesn’t demand your server to a very high specification. There are users running 25-30 desktop on a consumer i5 desktop with 16GB Ram. Even your old desktop computers can be re designated as the server.

Second, setting up and adding users is extremely easy. You don’t create multiple Virtual machines, but create only multiple users that run multiple simultaneous sessions.  This is why the system overhead is so low, all the core windows binaries are only loaded once.  They virtulize sessions. Think of session virtulization like running a docker or container instead of the whole VM.

Third, vSpace doesn’t only virtualize. It lets you manage your devices, view the sessions, upgrade end device firmware, optimize devices for bandwidth etc .

The potential for vSpace server is huge with compatibility from windows XP to Server 2012.

The Flagship L300 

NComputing L series L300 is the flagship product that has been running for over 6 years. All you need for L300 deployment is a VGA monitor, USB keyboard and mouse and an Ethernet connection to connect to server .  There are 3.5 mm MIC and Speaker jacks and 2 USB 2.0 ports in addition to KB and Mouse ports.

L300 is an end device that’s very well planned and well through. It does exactly what its supposed to do, no more and no less. Again like vSpace, this has some unique advantages

First, L300  is future proof .  It has been running for almost 6 years. Apart from the firmware upgrades and minor hardware tweaks , its the same product. In a tech world of planned obsolescence it gives you the obvious advantage – Your end device is future proof. Just upgrade your server and reuse the same end devices.

Second L300 is not a Zero Zero client, it does some Video and graphics processing locally, saving both bandwidth and server resources, still keeping the power consumption below 7W. Its a great division of labor, you don’t push everything onto server for processing, but don’t become a fat client either.  The advantage is that you can have a full screen hd video streaming on a 10MBPS network . It also has a flash memory to save the firmware version and the configuration .

Third, UXP ( the vSpace server protocol) clients licenses are built in each device.  That means Licensing is dead simple. Download the free vSpace server and install on your host. Now connect as many L300s as you want to the network and configure them to be connected to the discovered vSpace servers. You get firmware and software upgrades for Free. This is a big advantage as the solution becomes extremely simple .

There is no license management required. Connect your L300 device to a network on which you have a vSpace server, and it discovers all your servers. The User experience can be further enhanced by configuring L300 to display the windows login screen on bootup , so the first screen the user sees is the familiar windows login screen – much like the desktop.


NComputing L300 is probably the easiest VDI ( or Session Virtualization ) you would come across.

First Download the vSpace server and install on your Host server. The host server could be anything , even an i5 system with 16GB RAM. The real server configuration would depend on the use case.

Just like Terminal Services, you would have to make those users a part of RDP group that you want to provide access to. All the programs that are installed on the windows host become automatically available to all the remote users.

Adding a new client is as easy as plugging in an L300 to your LAN. The device will get an IP address from your DHCP server, and will  show all the discovered vSpace servers on the local LAN. You can configure it to automatically connect to a vSpace server ( or to a group of servers so it connects to second one if the first one is not available ) If you configure it this way, the user is taken straight to the windows login screen on bootup.

The 2 USB 2.0 ports can be used to connect peripherals like printers, flash drives, webcams or barcode scanners to the L300.

Management on the server  is through nc-console .  you can see all the connected devices, their firmware version, current sessions etc in the console.

Desktops : An Evergreen Market

The Dektop computers are the workhorse and are nowhere near obsolescence as many believe.  Smartphone and tablets are good and have their own utility, just as the desktops have theirs.

Here is what I have always thought and maintained – Tablets are for consuming content and Desktops are for content creation. Think about creating a spreadsheet of 300 columns on your tablet, or writing an essay of 2,000 words on your smartphone.

This is where Desktops rule – for creating content , and this is the market NComputing is targeting – a Desktop for everyone.


NComputing VDI solutions are

– Future Proof : Just update your server, keep the same end point device.
– End to End : Only Solution in the market that offers both End point device and Free Virtualization application
– Works on Session Virtualization : Extremely light weight and undemanding on server.
– No complicated Licensing
– Much easier to deploy compared to VDI