Welcome to Techcoil

Technologies coil to form a greater whole, thereby facilitating the exchange of information between people.

That was how Techcoil was named. Launched in 2010, Techcoil was designated to serve as a memory lane, as well as a testing ground for web related technologies.

We have articles to some technical problems, book recommendations for reading pleasure and self-improvement and some tools to help make some work a little faster.

Latest blog posts

How to host a web server behind Linksys EA7500 Max-Stream AC1900 router

My 2 year broadband contract ended with StarHub a few months ago and I signed up for a dual broadband (Cable + Fibre) contract for the Linksys EA7500 Max-Stream AC1900 MU-MIMO gigabit router.

With the new broadband subscription, the D-Link DIR-868L router from my earlier contract sits behind the cable modem while the new Linksys EA7500 Max-Stream AC1900 MU-MIMO gigabit router sits behind my fibre optic modem.

Since I want my reverse proxy server to serve HTTP traffic via the fibre optic network, I had to configure my Linksys router so that my Raspbian Jessie Lite reverse proxy server can serve HTTP traffic from the Internet.

To have a reference on how to do that again when need be, this post documents the steps that I took to host a web server, which serves as a reverse proxy server, behind the Linksys EA7500 Max-Stream AC1900 router.

Setting up ProjectSend on your Raspberry Pi 3 for sharing files - the LEMP way

Do you have large files that you want to share with your friends or clients? Do you keep your Internet connection on 24-7?

Compared to using Google Drive, Dropbox or other on-the-cloud file sharing software, hosting your own file sharing software when you never switch off your Internet has a few advantages.

Provided that your friends don't share your files with others, your files stay at home and on your friends' machines. Furthermore, you are only limited by the amount of storage that you have on your machine.

If you have a Raspberry Pi 3 in your house, you may want to consider setting up ProjectSend on your Raspberry Pi 3 for sharing files with others. This post shows how to do it with a LEMP stack.

How to enable secured remote management of D-Link DIR series router with Certbot, nginx, Raspbian Jessie Lite and Raspberry Pi 3

If you have a Internet subscription at home, chances are you will have a router that helps to enable computers, big and small, to access the Internet concurrently. To enable my computers to access the Internet concurrently, my Internet service provider gave me a D-Link DIR-868L router which had been serving me well over 2 years.

One way for me to access the router when I was not at home is to enable remote management by checking the Enable Remote Management in the ADMINISTRATION section of the TOOLS tab.

However, this feature activate remote management through HTTP through a designated port. Since HTTP communication is not encrypted, it is not safe for me to use this remote management feature from an unfamiliar network.

Since I had created a reverse proxy server with nginx, Raspbian Jessie Lite and Raspberry Pi 3 and installed Certbot on it, I reckoned that I can enable remote management of my D-Link DIR series router to be performed in a secured manner.

This post documents how to enable secured remote management of D-Link DIR series router with Certbot, nginx, Raspbian Jessie Lite and Raspberry Pi 3.

Latest proof of concepts

Proving that we can use jQuery to push a dynamically generated file to the web browser based on the user's input

In order to demonstrate the possibility of using JavaScript/jQuery to push a dynamically generated file from the server backend to the browser, a sample scenario was created.

There is a number dial that changes rapidly and a text field for the user to enter his name. When the user clicks on the "get lucky number" button, jQuery is used to send the lucky number on the number dial and the user name to the server.

The server generates a text file based on the input from the user and sends the file back to the browser. The browser will then show a download dialog box for the user to decide whether to save a copy of the file or view the file using one of the native applications found in his/her computer.