CentOS 7 firewalld NAT router

gearsI recently built a simple gateway/router using firewalld and NAT on CentOS 7 and thought I’d share the firewall-cmd commands used. The machine in question was used as a gateway/router for two VMWare virtual networks being used by students to build Windows domains. As their domain controllers were running DHCP servers, their networks had to be isolated from the TAFE (college) network and each other to avoid problems, but the students also needed access to the TAFE network for DNS forwarding and internet access purposes.

Continue reading “CentOS 7 firewalld NAT router”

Braintree payments: first impression

brainI have just finished my first integration of Braintree‘s online payments system into a ticketing and event bookings web app. I’m impressed with the overall experience and with how easy Braintree have made this integration for developers, and certainly expect to use them again. No, this is not a paid advertisement and there are no affiliate links on this page.

Continue reading “Braintree payments: first impression”

A sideways look at FreeBSD

freebsdApart from a stint with Slackware, I’ve been squarely in the Red Hat ecosystem since around the year 2000 when I first got into Red Hat Linux 6.0. Today my production servers run CentOS 7 and it does a great job. Nevertheless I am currently evaluating FreeBSD as a server operating system to run what is now my standard stack: Nginx, PHP-FPM and MariaDB.

Continue reading “A sideways look at FreeBSD”

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”

Slow Internet

slow-internetIf you’ve spent much time around internet marketing types you’re probably familiar with the frenzied atmosphere that can envelope the room as they cycle through all the things you absolutely must be doing to have any hope at all of surviving in today’s cut-throat online world … website, responsive design, SEO, graphic design, logo design, apps, blogs, copywriting, AdWords, Facebook, Twitter, Pinterest, Instagram, LinkedIn … the list goes on and on and of course all work involved is billable to the client.

Continue reading “Slow Internet”

MySQL database migration


gearsI recently upgraded my development laptop to CentOS 7 and while I was at it built a spare laptop running the same operating system. After manually creating a dozen MySQL databases and users and then importing their data from dump files on one laptop, I wasn’t interested in going through exactly the same process again on the second laptop.

Continue reading “MySQL database migration”