Archive for the ‘Technology’ Category

Eggs and baskets

Networking, Technology, Web

About a week ago a large chunk of the Web vanished for a few hours as Fastly experienced a major outage in their Web cache service. Popular sites like Reddit, the BBC, Amazon and much of the UK government online services suddenly presented blank pages. There was much finger-pointing for days afterwards, then Cloudflare goes down last Friday (more fingers pointing) and today with many of those fingers finally holstered we suddenly find ourselves in the middle of an Akamai outage. Fingers out and reloading!

The thing about these services is that they are mainly caches: intermediary services that optimise the delivery of content from the origin sites. Unfortunately, when they go down, the origin sites do not just go [click title to read more…]

Domain control

Legal and Political, Networking

I won’t give the perpetrators the benefit of a mention or link, but it is really troubling when those responsible for a top level DNS domain don’t adhere to their own rules by allowing unethical use of a domain name during the current global crisis. A phrase strongly associated with public health is undoubtedly going to encourage people to enter into their browser’s address bar a site name based on that phrase. Sadly, these unsuspecting people will then be presented with the latest conspiracy theories, anti-vaccination tripe and bizarre political agendas.

During the current worldwide calamity it is not only the search engines and social media companies that need to keep a close eye on their services. All of the [click title to read more…]

Tab v Space

Coding

Many years ago, a work colleague/friend and I had a disagreement over the use of tabs and spaces in software source code. At the time, my preference was to indent my code with two spaces as I often had complex nested operations that would vanish on the right-hand side of my screen if I were using the conventional 8 spaces.

Indenting with 2 spaces:

while ( unopenedThingsExist() ) { for ( eachThing in theCollection ) { with ( opened ( eachThing ) ) { if ( lookInside ( eachThing ) == something ) { display ( nameOf ( eachThing ) ); } } } }

Indenting with 8 spaces

while ( unopenedThingsExist() ) { for ( eachThing in theCollection ) [click title to read more...]

Local dev cert

Networking, Technology

Testing Web services in a development environment over SSL/TLS (HTTPS) can be a problem if your development environment doesn’t have a suitable SSL Cert. In such cases, creating a self-signed cert is usually sufficient, but you have to ensure that your client applications (including browsers) trust the cert you created yourself.

Here’s a recipe for creating a self-signed certificate and installing it into Firefox so that the Developer window doesn’t fill up with warnings (such as about Strict-Transport-Security headers being ignored). The recipe assumes you have keytool (usually in the “bin” of your JDK). This is for Windows, but similar steps apply to other OSs.

keytool.exe -genkey -alias selfsigned -keyalg RSA -keysize 2048 -sigalg SHA256withRSA -validity 3650 -keypass [click title to read more…]

Warning

Coding

Sometimes the only way to get a development tool installed is to compile it from source. In fact, many Open Source projects will assume this is how you intend to install. Some nice people out there might actually compile it for you and make the binaries available, but unless you have 100% trust in whoever is supplying these, compiling from source might be the best route. Perl, my Swiss Army Knife of choice, has many contributors offering modules that go through an elaborate compile/configure/test routine. Such installation processes can take a few minutes to complete, which is often a good excuse to go get a coffee.

The build scripts accompanying such from-source resources often include liberal dollops of commentary that [click title to read more…]