Saturday, November 18, 2017


Very interesting workflow building tools that connects various mainstream web services

Monday, August 28, 2017

How to renew / extend your South African tourist / visitor Visa

This post assumes you hold a port-of-entry (issued on arrival) South African Visa that you wish to extend before you leave the country.

Basically you need to go the VFS South Africa web page, register and login, initiate an application, pay and then schedule an appointment for physical documentation and biometric data submission. You can only apply for Visa renewal / extension within the first 30 days of your stay in South Africa.

All of this can be done online but when it comes to payment you will probably not be able to use your overseas credit card (mine was not accepted and I have noticed that some online vendors in SA don't while others do), and assuming you do not have an Internet Banking enabled South Africa based bank account or someone with a South African credit card to help you, you will probably have to print out the payment reference page and go to any Standard Bank to pay it and get it stamped.

VFS (Visa Facilitation Services) is basically and international organization specializing in Visa processing outsourcing service. In the case of South Africa, the Department of Home Affairs (the gov org dealing with immigration) uses VFS for client facing and QA of submitted applications services.

You start by going to this page: and clicking that says "Please click here to proceed with the online process if you are applying for the first time." or if you have already registered this one: "If you have already registered previously and have your login details please click here."

There are three issues here:
  1. The website really sucks. Documentation, usability, design are all pretty bad. DO NOT use Chrome as it is not fully supported and you will have issues. Internet Explorer (yes IE) is your best bet although Firefox seems to also not have any issues.
  2. Although links to relevant legislation docs are provided the specific options that you need to select while applying do not become clear after reading those docs and there no guidance on the site to help you out. If you select the wrong option your application will not get accepted when you try to physically submit it and you will have to go through the whole process again. They will refund you the abnormally high fees of R1,350 (about 100 USD at this time) though but only after 1 month!   
  3. Do not ask people at the VFS or DHA; there is a good chance they will give you inaccurate or conflicting information due to ignorance or indifference.
Most relevant legislation can be found in the docs linked to below:
Here is a screenshot of the options you need to select when applying to extend your tourist visa from the standard 3 months to, say, 6 months:

Do not get confused with the multiple different 11(1) subtype options. Just select a the plain 11(1) option.

After starting like that it should all go smoothly. You just fill out your details, relevant dates and the reasons you are asking for a Visa renewal.

Remember: you should ask for RENEWAL NOT EXTENSION of your Visa.

In my case, in one of the forms, I was asked for dates of "any subsequent visa issued to me" and there was no way to skip of leave this blank(!) I think this is just a bug though because I simply entered the same dates as my original Visa and I had no issues physically submitting this and all supporting documentation to VFS. I am currently waiting to see if I will be granted by 3 months extension or not - regardless, thankfully, one can travel back home and then return back to SA for another 3 months as many times as he likes.

Once the three involved forms are fully filled out and the application submitted you will be given the the option for payment and scheduling an appointment. The link to schedule an appointment will not work until you have paid. If you pay via Standard Bank physical teller it will take 2-3 working days for the appointment link to be activated. Appointment slots seem to be generally available the next day or, in any case, not too far in the future; but do make sure that the appointment date falls within your first 30 days of stay in South Africa as it is probably this date that counts as "application submission date."

Before you actually show up for your VFS appointment please make sure you have the following items with you - some of them actually listed in the checklist in the appointment letter you will receive via email but will also be available on the site:
  • Your passport valid for no less than 30 days after the expiry of your intended visa renewal/extension
  • Online filled Visa Application Form (you can print this via the website but you must have also received it via email)
  • Photocopies of passport and all passport pages with visas/stamps
  • Original Bank payment / Electronic Fund Transfer receipt for payment done
  • Original and Copy of Bank Receipt in case of Repatriation / Bank Guarantee paid in Department of Home Affairs Account
  • Appointment Letter (you can print this viua the web site)
  • Supporting Documents for the application:
    • Ticket with date as close as possible and before the intended date of departure
    • Proof of income (at least 3-4 full months back from date of application submission - basically this needs to show that you can easily maintain yourself in the country)
    • Letter of purpose (why you are requesting renewal/extension explained in a nice short letter)
    • Duration letter (a letter stating the number of the Visa you wish to extend, date of entry, current Visa expiry date and your desired date of exit after renewal/extension)
Good luck!

Saturday, February 18, 2017

How to forward X11 from a CentOS/RedHat Linux server to a Windows PC

In some cases it might be useful to run GUI based apps on backend servers (usually VPSs or dedicated servers) that lack the means to display them, i.e. have no graphics capability or monitor attached to them.

On Linux servers this is usually done via VNC but that requires firewall mods to open the VNC port(s) on the server side which may not always be possible or desirable.

That leaves us with two options:
  • TeamViewer which is fine for the occasional non-commercial use but requires licensing otherwise
  • Good old X forwarding from the server to a listening port on a computer with graphics display capability. In this scenario the backend server (or the GUI app running on it) becomes the X client and the app, running on the graphics capable PC, that displays their GUIs becomes the X server.

I will shortly cover here how the second scenario can be set up using a CentOS/RedHat server and Xming + Putty on a Windows PC. There are basically two ways to do it:

  1. Simply forward X on your remote server to your local X Server. This requires that you open/forward a port on your local PC to receive the X data in your X server.To set this up:
    • Install PuTTY on your PC
    • Install Xming on your PC
    • Open port 6000 on your PC and open/forward it from your router to your PC.
    • Add your remote server's IP into a file named "X0.hosts" under the Xming installation directory (typically "C:\Program Files (x86)\Xming") and start or restart Xming
    • Connect to your remote server via ssh using PuTTY and install the full X Window System on your backend server: yum groupinstall "X Window System"
    • Then issue this command to redirect the X display to your PC: export DISPLAY=x.x.x.x:0.0 where x.x.x.x is your PC's IP address.
    • From this point any command issued on your remote server that invokes a program with a GUI should bring up the app's windows on your PC via Xming, e.g. xclock & or firefox &
  2. Forward X to your PC via ssh (in this case PuTTY). This has two benefits and one possible down side compared to the option right above. The benefits are a)Secured X data (i.e. it cannot be intercepted while travelling between the server and your PC), b)You do not need to open/forward any port on your PC or allow your server's IP address in Xming's hosts list. The down side is that X forwarding may be slower this way, unless ssh compression is used which I am not sure how much it would change things. To do this follow these steps:
    • Install PuTTY on your PC
    • Install Xming on your PC and have it running
    • In PuTTY, under the SSH settings, find the X11 tab and
      • enable X11 forwarding
      • set the X display location to localhost:0
    • On your server edit your ssh daemon's config file, typically at "/etc/ssh/sshd_config" and set the following options:
      • X11Forwarding yes
      • X11DisplayOffset 10
    • Connect to your remote server via ssh using your PuTTY with the X11 options set as shown above.
    • From this point on any command issued on your remote server that invokes a program with a GUI should bring up the app's windows on your PC via Xming, e.g. xclock & or firefox &

Monday, January 30, 2017

Open/save password protected PowerPoint Presentations using VSTO

Although VSTO offers easy ways to save or open password protected Word documents or Excel Workbooks e.g. in pseudocode, Open(docpath, ..., password) or Save(docpath,..., password), it does not offer such options for PowerPoint presentations. However, there is still a way to do it programmatically fairly easily:

To save a presentation with a password:

PowerPoint.Presentation p = Globals.ThisAddIn.Application.Presentations.Add();
p.Password = "whatever";

To open a password protected presentation simply pass the password at the end of the presentation path, when opening it, in this "hackish" way:

PowerPoint.Presentation d = Globals.ThisAddIn.Application.Presentations.Open(FullFilePath + "::whatever::");