Thai language machine translation

Machine translation between many languages is now at the point where the translation gives a very good indication of a text’s content even if the translation itself is not exactly publishable. This is not the case for all languages, however. Sometimes the translation gives little idea what a text is about apart from a few random vocabulary items. Thai to English machine translation is a good case in point.

Continue reading “Thai language machine translation”

Mininet SDN teaching tool

Mininet is a Linux-based network emulator which enables the creation of a realistic virtual network, running real kernel, switch and application code, on a single machine (VM, cloud or native), in seconds, with a single command. It is a great way to develop, share, prototype, research, teach and experiment with OpenFlow and Software-Defined Networking systems.

Continue reading “Mininet SDN teaching tool”

Ansible control centre

This post describes one way to configure a computer to centrally manage an IT training lab using Ansible. The control centre computer could be physical or virtual, headless or not, a laptop, a desktop or anything else: the only real requirements are that the device can bring up a CLI (command line interface) in a terminal, that the vi text editor is installed, and that normal SSH infrastructure is in place.

Continue reading “Ansible control centre”

Advanced open source networking resources

gearsIt is no secret that most corporate and industrial computing resources in the world today have now been migrated from physical infrastructure to a combination of public, private and hybrid cloud environments. A similar trend is now under way in the networking space, with network control logic shifting from proprietary hardware-based platforms to open source software-based platforms (SDN or Software Defined Networking).

Continue reading “Advanced open source networking resources”

CentOS 7 firewalld NAT router

gearsThis post outlines how to build a simple router using firewalld and dnsmasq on CentOS 7.3. The problem this router solves for us at SuniTAFE is that it isolates virtual networks being built or used by students on VMWare ESX hosts from the main college network, while still allowing student access to the college network for DNS forwarding and internet access purposes.

Continue reading “CentOS 7 firewalld NAT router”

Update CentOS 7 to Golang 1.6

wowCentOS 7 is a rock-solid development and production platform, but this stability often means that default web-related packages are outdated. It turns out golang is no exception: the default CentOS 7 version is 1.4, whereas I wanted 1.6. There have been some changes in golang project layout between the two versions and I figured I may as well get with the program and update before starting a new API project.

Continue reading “Update CentOS 7 to Golang 1.6”

A PHP CORS example

Cross Origin Resource Sharing

gearsA webpage makes a cross-origin HTTP request whenever it requests an image, stylesheet or script from a different domain than the one which served itself. A good proportion of websites on the internet rely on the ability to make such requests. However, when a cross-origin HTTP request is initiated from within a script in a webpage, web browsers block the request for security reasons. The best example is Javascript’s XMLHttpRequest function, which follows the same-origin policy. This means that a web application using XMLHttpRequest within a script can only make HTTP requests to resources located within its own domain.

Continue reading “A PHP CORS example”

Golang libraries for data science

wowThe Golang programming language is on a par with Python when it comes to ease of use, but the code compiles to a binary that runs almost as fast as C. So Golang is worth considering for any task that crunches large volumes of data. This is a curated list of Golang libraries useful in data science and related fields.

Continue reading “Golang libraries for data science”