I am working on a new book: Mastering SwiftNIO

How to build cross-platform client and server frameworks in #Swift. Released Q1 2020. So far, so good ;)

ejabberd is now able to support OAuth 2 password grant. You can learn more by reading: Understanding ejabberd OAuth Support & Roadmap

Peak AWS? Do we still need AWS?

I am reacting to the following post, because it matches my recent experience with AWS: AWS Elasticsearch: a fundamentally-flawed offering – spun.io

That’s my overall experience with AWS as well. They used to be quite reliable and have good support, but I have found that over time, the overall service is not as good or as essential as before.

If you use services that are not simple base EC2 instances, the costs are very high (like for example DynamoDB) and certainly too expensive to build a platform leveraging those added-value components at scale.

As an Open Source developer, I am also annoyed by their recent new offering that consist in taking Open Source software and build a SaaS offering on top of it. The main problem is that they do so without working with the main stack developers. They do not contribute back their code change either (to my knowledge). This end up with the kind of offering like AWS Elastic Search that is both hurting Elastic Search company, Elastic Search project and end up providing a bad experience to their customers.

To be fair, this is a more general question for the governance of Open Source projects, though, as you cannot expect cloud providers to pay fees at this scale. Passed a certain point in popularity, Open Source projects likely need to be led by a mixed team of contributors from a larger range of companies. The same question would arrise on Redis or MongoDB for example.

Anyway, this race to expand AWS offering through integration of Open Source components as a service or to provide higher value APIs seems to be at the expense of quality and customer service.

There is now plenty of decent alternatives for the base hosting part. So, I am wondering if we have passed the point where we don’t need AWS anymore.

Do you have the same experience?

Here are my highlights of FrenchKit conference Day 2

I have finally tried VSCode Remote Development container plugin and it is fantastic. Very well done.

I had never heard about Gayageum, a Korean string instrument. Fascinating Jimi Hendrix’s Voodoo Child cover:


Here are my highlights of FrenchKit conference (iOS / MacOS / Swift) Day 1: blog.process-one.net/frenchkit…

Tons of great Swift talks :)

Amazed to see that my Erlang book from 2004 is still getting some nice reviews 😍 Maybe I should finally update it and translate it at some point.

Erlang programmation

On Facebook support being dropped from League of Legends and PlayStation: micro.chartier.land

SwiftNIO is a building block for client libraries and server frameworks.

If you want to learn it, I have started a series of blog posts. Here is the first one: SwiftNIO: Understanding Futures and Promises

Comments are welcome!

During the next two days, I will be attending @frenchkitconf, an iOS / MacOS Developer Conference in Paris. If you attend as well, come say hello!

Sign in with Apple feature is finally fully compliant with OpenID Connect

The Sign In with Apple feature has been launched with iOS 13. It allows to sign-in to web sites supporting Open ID Connect, but also to create account and sign in to iOS applications. It was well received when announced at Apple WorldWide Developer Conference (WWDC) in June 2019 because the feature is design to protect user privacy. It even offers an option to avoid sharing your real email address with the compliant service, by letting Apple use a random email address and relay the messages to your real email address.

However, the feature was also criticized because it was mostly based on OpenID Connect but with a few differences and variations, making it noncompliant with OpenID.

Apple worked with the OpenID Foundation to solve the compliance issue and finally, the OpenID Foundation wrote an open letter to Apple stating they are happy they made all the changes to be compliant with OpenID specifications.

This is good news for the Open Web.

Spotted via HackerNews

SwiftUI is starting to work on iPad Swift Playground app.

I tried it tonight, along with Dark Mode support. It is still early stage but pretty nice to be able to experiment with SwiftUI on the go :)

I have been exploring further the Swift concepts behind SwiftUI in this new blog post:

The concepts behind SwiftUI: What is the keyword “some” doing?

Microsoft Dual Screen Upcoming Devices

Upcoming dual screen Surface devices look interesting. I am curious to see if the actual device will live up to our expectation.

It is also good to see Microsoft embracing Android to replace Windows on the smaller form factor, while I wonder why it would not have been a good fits for the larger screen. Maybe they just want to test the water and avoid putting all their eggs in the same basket.

I am really looking forward to experiment with those devices to see which kind of innovations and new User Interface paradigms you can create on those.

If you want to watch Microsoft short presentations on each device: Surface Neo (the larger one) and Surface Duo (the smaller one, based on Android).

Here is my new advanced blog post exploring SwiftUI and showing how to write a custom iOS scroll view: Writing a Custom Scroll View with SwiftUI in a chat application


Is someone working on a new XEP to map IETF SASL OAuth flow to XMPP?

A Set of Simple Authentication and Security Layer (SASL) Mechanisms for OAuth

I added OAuth2 support to Fluux XMPP Go library: X-OAUTH2 authentication mechanism

We are working on making the OAuth2 toolchain to be top-notched. Storing password in client for authentication, even encrypted, is not a good idea.

HTTP/3 is coming faster than I expected.

If you would like to play with HTTP/3 today, Cloudflare is providing a nice way to do so: HTTP/3: the past, the present, and the future

I do not use Chrome or Cloudflare service, but they also provide an Open Source implementation for both server and client in Rust: Quiche: Savoury implementation of the QUIC transport protocol and HTTP/3.

Firefox is also going to provide soon a nightly build that support HTTP/3.

HTTP/3 is becoming a reality faster than I expected.

This is a must see video to start your week-end with the right mood: Eurythmics’ “Sweet Dreams” and The White Stripes’ “Seven Nation Army” mashup

ejabberd 19.09 has been released, with reworked support for ACME / Let’s Encrypt support


It looks like Dropbox will be more and more becoming a bloated all-in-one tool. I guess it is time to unsubscribe, as I do not like the way it is heading.

Facebook to acquire CTRL-Labs, a startup for controlling computers with the mind

Strangely, I read it the other way around: Facebook is making an acquisition to control minds with computers …

I wrote a blog post explaining how to use a local development certificate authority with ejabberd and Phoenix: Using a local development trusted CA on MacOS


Fascinating article to think about optimizing flows: Your Navigation App Is Making Traffic Unmanageable - IEEE Spectrum (via @dave)

This is an issue I had suspected but I had no hard data.