2018 May

05-12 Pyre: Fast Type Checking for Python

Today, we’re excited to announce Pyre, a static type checker for Python. Pyre is designed to help improve the quality and development speed in large Python codebases by flagging type errors interactively in your favorite editor.

05-09 CloudEvents, Multi-Cloud, and the Gloo Between Them

We at Solo believe the future of serverless platforms will be to enable building serverless applications across cloud vendors.

05-03 UML sequence diagrams

The classic case discussed for branch by abstraction is the changing of one persistence technology for another. In the original article⇩ for this, it was swapping out Java’s ‘Hibernate’ technology for ‘iBatis’ (now MyBatis). That was hypothetical for the blog entry.

05-03 Open-sourcing gVisor, a sandboxed container runtime

With traditional containers, the kernel imposes some limits on the resources the application can access. These limits are implemented through the use of Linux cgroups and namespaces, but not all resources can be controlled via these mechanisms.

05-03 How to break a Monolith into Microservices

As monolithic systems become too large to deal with, many enterprises are drawn to breaking them down into the microservices architectural style. It is a worthwhile journey, but not an easy one.

05-03 Making a Gmail bot with Apps Script and TypeScript

Google Apps Script is one of the best hidden features of Gmail. Did you ever want just a bit more flexibility from a filter? Maybe the ability to remove a label, or match on a header, or just decide the order they are applied in.

2018 April

04-18 Go Range Loop Internals

While they are very convenient, I always found Go’s range loops a bit mystifying. I’m not alone in this: Today’s #golang gotcha: the two-value range over an array does a copy. Avoid by ranging over the pointer instead.https://t.co/SbK667osvA

04-11 How A Tiny Go Microservice Coded In Hackathon Is Saving Us Thousands

In the past few weeks we’ve rolled out a Go microservice called “KIB” to production, which reduced a huge portion of the infrastructure necessary for Movio Cinema’s core tools: Group Builder and Campaign Execution.

04-09 12 Git tips for Git's 12th birthday

Git, the distributed revision-control system that’s become the default tool for source code control in the open source world, turns 12 on April 7. One of the more frustrating things about using Git is how much you need to know to use it effectively.

04-05 Lazy Loading Images and Video

The portion of images and video in the typical payload of a website can be significant. Unfortunately, project stakeholders may be unwilling to cut any media resources from their existing applications.

04-02 Kedge

Use pre-existing Kubernetes definitions such as Pod or Container within your YAML file. Reduce your file-size and definitions by using intuitive (and easy to use) Kedge shortcuts.

04-02 Introducing QALM, Uber’s QoS Load Management Framework

Much of Uber’s business involves connecting people with people, making the reliability of our customer platform crucial to our success. The customer platform supports everything from ridesharing and Uber Eats, to Uber Freight and Uber for Business.

04-02 Draft vs Gitkube vs Helm vs Ksonnet vs Metaparticle vs Skaffold

Want to know more? Read ahead. Kubernetes is super popular nowadays and people are looking for more ways and workflows to deploy applications to a Kubernetes cluster. kubectl itself has become like a low-level tool, with people looking for even easier workflows.

2018 March

03-29 How to Integrate RollingUpdate Strategy for TPR in Kubernetes

Rolling upgrades need to proceed in order and are the most demanding step of the process. One cannot continue a rolling upgrade until and unless previous updates to MySQL instances are running and ready. 4 Verify the cluster. 5. Enable client access to database proxies.

03-27 Testing in Production, the safe way

In this post, I hope to explore different forms of “testing in production”, when each form of testing is the most beneficial as well as how to test services in production in a safe way.

03-23 Secret management in multi-tenant environments

Knox, Pinterest’s open-source secret management service, now supports SPIFFE x509 identity documents as an authentication method. This update enables Knox to manage secrets in multi-tenant environments like Kubernetes.

03-23 LinkedIn Lite: A Lightweight Mobile Web Experience

India is a mobile-first country, with 71% of the population having only a mobile internet connection and accessing the internet only via mobile.

03-20 Git diff Minified JS and CSS

While working on a little PR for the Hugo doc site theme, I learned that if I needed to make changes to JS/CSS, I had to commit my changes in both unminified and minified versions. I have a habit to always look at the diffs at the time of staging and committing.

03-19 Browser testing with Chromedriver / Drupal 8.5.0

First, let me say thanks to mpdonadio for his tweet which helped me out of a composer ditch I couldn’t possibly get out of myself and to mixologic who provided some astonishing insight into this craziness. So I am testing the login flow for https://community.smartsheet.com .

03-17 Introducing Skaffold: Easy and repeatable Kubernetes development

As companies on-board to Kubernetes, one of their goals is to provide developers with an iteration and deployment experience that closely mirrors production.

03-14 Switching from PHP to Go : A Development Case Study

We recently upgraded from PHP to Go for our Face Recognition API architecture. In this article we share why we made the move, how it’s radically improved performance, and some lessons learned along the way.

03-14 Introducing Agones: Open-source, multiplayer, dedicated game-server hosting built on Kubernetes

In the world of distributed systems, hosting and scaling dedicated game servers for online, multiplayer games presents some unique challenges.

03-13 Announcing santiano.io V1.0.0

Its been some time since I presented santiano.io first beta version at last MeasureCamp Bruxelles in 2017. With great feedback there and some time to test santiano.io features with my customers, I am now so happy to tell you. Now santiano.io V1.0.0 is live !

03-13 ACME v2 and Wildcard Certificate Support is Live

We’re pleased to announce that ACMEv2 and wildcard certificate support is live! With today’s new features we’re continuing to break down barriers for HTTPS adoption across the Web by making it even easier for every website to get and manage certificates.

03-12 Lighter than Lightweight: How We Built the Same App Twice with Preact and Glimmer.js

Time in milliseconds; lower is better. SSR = Server-side rendered, CSR = Client-side rendered. Render time measured in CSR mode, rehydration time measured in SSR mode. Both flavors performed very well.

03-12 Synchronization queues in Golang

Let’s suppose we’re running an IT company employing programmers and testers. To give people a chance to get to know each other and relax a bit we’ve bought a ping-pong table and established following rules: So first either tester or programmer approaches the table.

03-12 API versioning and evolution with proxies

The technological choices made at the beginning of a project or a company can very likely end up proving to be either inadequate or outright wrong a few years down the road.

03-11 The Fall of the House of Node

TJ Holowaychuk, a long-time Nodist (from a Nodist colony?) who has contributed much to Node, finally abandoned Node in favour of Go. TJ writes:

03-08 What I learnt from building 3 high traffic web applications on an embedded key value store.

In 2015, I stumbled on the golang BoltDB database library, and first used to save state in basic server-side applications. Then I stumbled on blevesearch, and it dawned on me. The most basic thing most databases offer is storage, and flexible search over stored data.

03-05 Conjur

Conjur is an open source security service that integrates with popular tools to secure secrets, provide machine identity based authorization, and more. Running your own Conjur server gives you total control over the software.