Context and Mission
ADA Ocean Australia was built to be the first fully Australian Cardano Stake Pool. At the time we registered our stake pool, all other Australian pools had all their servers, or a majority of their servers in countries other than Australia. Their reasoning was server costs, as Australian based servers are typically more expensive compared to other countries such as Germany. Other reasons might also include the misunderstanding of needing servers closer to other block producers to reduce latency, however Cardano doesn’t work like that.

This mentality caused a lot of clustering in the United States and…

How to merge objects and handling their collisions.

Objects colliding

Merging Javascript Objects is a frequently discussed topic. Doing a quick search will find you many articles and ways to merge your objects. What most of them don’t talk about is what happens when two or more objects that are being merged have keys that are the same. A lot of tutorials will “very conveniently” use examples that won’t have collisions when you merge them.

Let’s take a look at the most modern and simplest way to merge objects. The spread syntax: let objClone = { …obj }; introduced in ECMAScript 2018.

Zoom has become an extremely popular alternative to Skype for video conferencing and has even been the go to over Microsoft and Googles offerings.

Like a lot of services, they come at a price. Literally and figuratively. Jitsi Meet is a completely open source video conferencing service that directly competes with Zoom. This has many advantages, with the main one being that it’s completely free if you decide to install it on your server. …

Like all things, JavaScript has limits. Interestingly there are artificial limits and then there are physical limits. I’m going to be exploring these limits and try and push them as much as possible to their true limits.

In JavaScript, a Number is defined by as:

Unlike many other programming languages, JavaScript does not define different types of numbers, like integers, short, long, floating-point etc.

JavaScript numbers are always stored as double precision floating point numbers, following the international IEEE 754 standard.

This format stores numbers in 64 bits, where the number (the fraction) is stored in bits 0 to…

Photo by Caspar Camille Rubin on Unsplash

Streaming Introduction

If you know how streaming works, jump down to “Using Video On Demand on AWS”.

A big mistake that first time developers make is not processing videos correctly for streaming. While a single 10MB video isn’t problematic, having dozens of videos over this size that haven’t been processed for streaming has two problems.

  1. If you want to jump to the half way point of a video, it has to load all of the video before the half way point before you can start watching
  2. You can’t dynamically change the quality of the video.

In the case of point 1, if…

Photo by Paul Hanaoka on Unsplash

Smartphones are frequently used throughout our day, however they’re rarely used to their full potential. My smartphone when I’m not using it, is using only 10% of it’s CPU. As I’m writing this article, my laptop is using only 5% of its CPU.

What if we could use our idle smartphones and computers for ‘good’? It turns out that you can.

How can your smartphone help science?

The great thing about smartphones is that they’re cheap to run and there are millions of them. The problem is that smartphones sit idle for a large part of the day, which means there is millions in lost CPU…

For centuries cryptography has been used to stop unauthorised humans from reading each others communications. From simply swapping out letters, to more advanced machines such as the Enigma machine, which was used heavily during World War II.

With the introduction of computers, encryption has been taken to a whole new level. Even Android and iOS devices have encryption turned on by default so that if your phone fell into the wrong hands, they can’t retrieve anything from it.

There is a misconception around encryption however, in that not all forms of data storage or transference rely solely on encryption. …

Cryptographic Hashing is one of the lesser known forms of security and data integrity, and is often mistaken for encryption. Hashing is however a critical element in the ways computers operate and communicate with one another. Essentially, without hashing, the way computers operate would be vastly different and potentially less secure and efficient.

How does Hashing Work?

Hashing works by allowing a one way conversion from readable text to unreadable, fixed-length alphanumeric text. As an example, the text “I am Text.” can be converted to the MD5 (more or this later) hashing of “8c120839f2b7f2665f6505845ed81f78”. By design, there is no practical way to convert the…

Walnuts in a nutcracker with the caption “Compression In a nutshell”

compression: the act of pressing something into a smaller space or putting pressure on it from different sides until it gets smaller

We’ve all been there. We’ve tried to squeeze an object into a smaller space with the intention of removing it for use later. Depending on the object, you may desire it to be restored to its original “glory”, while other objects don’t matter.

Think of a soccer ball. You can deflate it to store in tight spaces and then inflate it to once again use it as a soccer ball. …

I’ve seen a number of articles and benchmarks around the most optimal way to loop through JavaScript String Arrays, and they’ve typically all given the same results. I haven’t seen any that actually try to improve on the methods they’re using to loop, and this challenged me. I want to see if we can improve on the array iterators to better find data stored in them.

Let’s take a look at the different ways to loop through arrays in JavaScript

There’s the traditional for loop:

for(let i = 0 ; i < maxArraySize; i++) {
let item = array[i];

Casey Gibson

I’m a full stack developer in HTML/CSS, JavaScript, PHP, Java, NoSQL, SQL with extensive knowledge in MongoDB, NodeJS, AWS Lambda and DynamoDB.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store