Consulting Chronicles

From Mobile developer to WEB Front developer (1st part)

OCTO is a great place to work and even greater place to grow. As an Octo consultant I’m used to learning and improving on a regular basis. Sharing knowledge is a central value of OCTO’s culture. I have been told to always try to find a better way and to push the boundaries of knowledge.

As sharing is a core value, I could help by sharing this new career path I’ve choosen.

After 5 years spent in the iOS development field, I had the strange feeling that I wasn’t learning anymore. Not that I had mastered everything there is to know about iOS development, but I felt the need for a “reboot”.

Talking with HR and managers, and I decided to face new challenges by joining the WEB Front team (WEBF).

I started my career a while ago in embedded software (for automotive and aeronautic industries). I never touched JavaScript and HTML/CSS always appeared to me as black magic.

Although I will officially join the WEBF tribe in May, the 2nd, I already started to take some MOOC and attended some of WEB Front team’s days for a month. Therefore I can already explain a few things I found out about my new challenges. Read more

Archi & Techno

Asynchronism in mobile

In Android, asynchronous tasks are done to avoid long operations in the main thread. Android documentation gives a good advice to the community to avoid ANR (Android Not Responding):

Therefore, any method that runs in the UI thread should do as little work as possible on that thread. In particular, activities should do as little as possible to set up in key life-cycle methods such as onCreate()and onResume(). Potentially long running operations such as network or database operations, or computationally expensive calculations such as resizing bitmaps should be done in a worker thread (or in the case of databases operations, via an asynchronous request). — Keeping Your App Responsive – How to Avoid ANRs

The point is that long operations like network, file system or database can freeze the UI, and that these kinds of operations must be done in a worker thread rather than in the main thread.

What is often misunderstood here is where to put asynchronism. The most current pattern is to protect the UI from long operations. Thus, long operations are wrapped with AsyncTask, Service, Thread, Executor or libraries which can be called asynchronously.

Read more

Archi & Techno

Serverless sweetness: enforcing strict EC2 instance tagging policies with Lambda

Hey everybody,

TL;DR

I coded something in order to enforce strict tagging policies on AWS EC2 instances using
Python and a bunch of AWS services (Lambda, Cloudtrail, SNS, and S3). If you keep reading,
I’m going to talk to you about AWS Lambda and Serverless computing, or FaaS (Function as a service).

You can check the source code and permission related template files here:

https://github.com/sebiwi/broom

If you want to use it, create a Cloudtrail trail, activate it on every region, create an S3 bucket
to store the Cloudtrail logs, create a SNS topic for notifications, create a Lambda function using
the Python code (adapted to your resources and use case), an IAM role using the policy that comes
with it, and finally activate events from the S3 bucket to the Lambda function on object creation.

I can teach you how to do all of these things if you don’t know how. Just keep reading.

Read more

Culture

Polar Expeditions and Agility: The 1911 Race to the South Pole and Modern Tales

www.octo.chA polar expedition and an IT project have much in common. They both share a goal, a team, and constraints. They share risk management issues, as failure is always a possibility even if the stakes are different. They also share a special relation with tooling and the influence of leadership style. But they mainly share the importance of the philosophy under which each project is undertaken.

We will see in this article how the approach taken to face a challenge can have tragic outcomes. And how the fantastic race to the South Pole in 1911, or modern polar explorers methodology, can relate to our daily IT experience.

My personal life as a software developer, a data scientist, a team leader and now an agile consultant is every day influenced by my ten years experience as a polar skier, and even more by the giants on whose shoulders I stood.

Vision, team, leadership, decision making, continuous improvement, tooling… The source of inspiration never ends. This post is an attempt to share some of it.

Slides are also available on slideshare.

Read more

Archi & Techno

How does it work? Kubernetes: Episode 5 – Master and Worker, at last!

Hey everybody,

TL;DR

I hacked something together in order to create a Kubernetes cluster on CoreOS (or Container Linux) using Vagrant and Ansible.

If you keep reading, I’m going to talk to you about Kubernetes, etcd, CoreOS, flannel, Calico, Infrastructure as Code and Ansible testing strategies. It’s gonna be super fun.

The whole subject was way too long for a single article. Therefore, I’ve divided it into 5 parts. This is episode 5, regarding the actual installation and configuration of the Kubernetes Master and Worker nodes.

Read more

Archi & Techno

Visualizing massive data streams: a public transport use case

www.octo.ch

Public transport companies release more data every day and some of them are even opening their information system up to real time streaming (Swiss transport, TPG in Geneva, RATP in Paris are a couple of local ones). Vast lands are unveiled for technical experimentations!

Beside real time data, these companies also publish their full schedules. In Switzerland, it describes trains, buses, tramways, boats and even gondolas.

In this post, we propose to walk through an application built to visualize, in fast motion, one day of activity, as shown in this movie. As real time data are not yet available, they were simulated, based on available schedule information. This pretext is too good not to dig into a stack containing Play/Scala/Akka on the backend, Angular2/Pixi.js/D3.js/topojson in the browser, linked together by Server Side Events.

This prototype is intended to explore the possibility of doing massive geographical visualization in the browser, applying techniques described in a previous post.

The backend and frontend code is available on github, and tests continuously ran on travis-ci.

Read more

Archi & Techno

How does it work? Kubernetes: Episode 4 – How to Ansible your CoreOS, and etc(d)!

Hey everybody,

TL;DR

I hacked something together in order to create a Kubernetes cluster on CoreOS (or Container Linux) using Vagrant and Ansible.

If you keep reading, I’m going to talk to you about Kubernetes, etcd, CoreOS, flannel, Calico, Infrastructure as Code and Ansible testing strategies. It’s gonna be super fun.

The whole subject was way too long for a single article. Therefore, I’ve divided it into 5 parts. This is episode 4, regarding the usage of Ansible on CoreOS, and etcd.

Read more

Archi & Techno

How does it work? Kubernetes: Episode 3 – Infrastructure as code: the tools of the trade

Hey everybody,

TL;DR

I hacked something together in order to create a Kubernetes cluster on CoreOS (or Container Linux) using Vagrant and Ansible.

If you keep reading, I’m going to talk to you about Kubernetes, etcd, CoreOS, flannel, Calico, Infrastructure as Code and Ansible testing strategies. It’s gonna be super fun.

The whole subject was way too long for a single article. Therefore, I’ve divided it into 5 parts. This is episode 3, regarding Infrastructure as Code, and the tools of the trade.

Read more