Author: Ian Bull

I have started writing about my experiences with Kubernetes and the PicoCluster. The PicoCluster is a set of inexpensive boards (10 Rock64 boards in my case), housed in a single cluster with a network adapter, fan and power supply. They have been pre-configured with Ubuntu and Kubernetes. The cluster is in my basement, plugged directly into my router. With this setup, I have a 10 node...

Read More

GitHub API for querying users & repositories In this article, we will look how we used the GitHub API for querying users and repositories of an organization. In particular, we will look at how promises were combined to make the data retrieval easier.Querying GitHub is relatively easy with the GitHub API. The GitHub API is REST based and provides access to your Activity, Gists, Issues, Organizations,...

Read More

Cloud native, highly available, web-scale, coordinated containerized applications! Wow, that’s a mouthful, but what does it mean?Over the past six years, many large companies have started telling the world how they architect their systems to scale. From the now famous Netflix Global Cloud Architecture to Google’s Borg system, many of these companies have been solving the same problem using similar patterns. The systems are designed...

Read More

Authentication & user management is hard Ok, it's not one of the two hardest problems in Computer Science, but adding authentication to your web-based application is non-trivial. In addition to the security concerns involved, you are also required to maintain account information, registration, and identity management, which most users are tired of. Nobody wants Yet Another Password To Remember (YAPTR).Of course, most of you will point...

Read More

JavaScript has been used as a client side language for over 20 years and as a server side language for close to 10. In the past 3 years, JavaScript has emerged as a language of choice for mobile app developers, especially those looking for a cross-platform solution. Technology stacks such as React Native and Tabris.js are the obvious choices, but some engineers are rolling their...

Read More

In preparation for the Tabris.js 2.0 release, we started counting down the 10 features of Tabris.js 2.0 that we're most excited about. We reached the halfway point, which means that the release is almost here and we have 4 features left to go. Feature Number 6: Binary Fetch is a pretty exciting technical feature, especially for me because it required the implementation of shared memory regions in...

Read More

After over a year of development, Tabris.js 2.0 is almost here. To help celebrate this, the Tabris.js development team is counting down some of the features we're most excited about.Over the past year, I've had the opporuntity to focus on Tabris.js security related work such as certificate pinning, code signing, code obfuscation, and other security enhancements. Certificate Pinning When an SSL connection is first made, the server...

Read More

AES (Advanced Encryption Standard) is a symmetric-key encryption algorithm. Symmetric-key algorithms are algorithms for cryptography that use the same cryptographic keys for both encryption of plaintext and decryption of ciphertext. In this tutorial we will demonstrate how to encrypt plaintext using the OpenSSL command line and decrypt the cipher using the OpenSSL C++ API.The cryptographic keys used for AES are usually fixed-length (for example, 128...

Read More

Code signing and verification is the process of digitally signing executables or scripts to ensure that the software you are executing has not been altered since it was signed. I previously outlined how to perform code signing and verification with OpenSSL, using both the command line and OpenSSL API.While the tutorial explained how to create an RSA KeyPair, it didn't mention anything about protecting the...

Read More

Tabris.js is a cross platform mobile toolkit that enables application developers to target multiple platforms from a single JavaScript code base. Unlike some other cross-platform toolkits, Tabris.js does not rely on WebViews, but instead produces native applications. This is achieved by providing a cross-platform API in JavaScript and linking that API to the platform specific widgets. Additionally, Tabris.js also includes a build service. This service enables our...

Read More