HN user

mickael

181 karma

ProcessOne Founder, SF and thriller writer.

Posts76
Comments51
View on HN
github.com 5mo ago

PR to support XMPP channels in OpenClaw

mickael
1pts0
www.process-one.net 5mo ago

Fluux Messenger: A Modern Cross Platform XMPP Client

mickael
4pts0
www.process-one.net 1y ago

Thoughts on Improving Messaging Protocols – Part 2, Matrix

mickael
2pts0
www.process-one.net 2y ago

Instant Messaging: Protocols Are "Commons", Let's Take Them Seriously

mickael
9pts1
blog.process-one.net 6y ago

SwiftNIO: Understanding Futures and Promises

mickael
1pts0
blog.process-one.net 6y ago

My GopherCon 2019 Highlights

mickael
1pts0
medium.com 7y ago

Stop using URL shorteners, to help protect the Web, please

mickael
2pts0
medium.com 8y ago

Toward Hybrid Macbooks with Apple and Intel CPU?

mickael
2pts0
blog.process-one.net 8y ago

Developing a Basic Echo Server Using Swift-NIO

mickael
4pts0
medium.com 8y ago

Eve Online Chat Is Moving to Ejabberd

mickael
106pts68
blog.process-one.net 9y ago

Ejabberd 16.08 released with MUC Sub mobile groupchat

mickael
3pts0
blog.process-one.net 10y ago

Making Whatsapp-like group conversations easy with ejabberd and XMPP

mickael
2pts0
blog.process-one.net 10y ago

Ejabberd 16.06, with more powerful ACL

mickael
5pts0
blog.process-one.net 10y ago

Property-based testing of XMPP: generate your tests automatically [video]

mickael
1pts0
blog.process-one.net 10y ago

Ejabberd 16.03 released, with MIX group chat experimental support

mickael
1pts0
blog.process-one.net 10y ago

How to use ejabberd as an Elixir application dependency

mickael
2pts0
blog.process-one.net 10y ago

IoT Studio #1 Video and Slides

mickael
2pts0
blog.process-one.net 10y ago

Experimental MIX Next Gen XMPP Group Chat Support in Ejabberd

mickael
4pts0
blog.process-one.net 10y ago

Ejabberd 16.02 released, with new mobile oriented features

mickael
6pts0
blog.process-one.net 10y ago

XMPP, chat and real time news

mickael
4pts0
blog.process-one.net 10y ago

Ejabberd reaches 2M connections on a single server

mickael
3pts0
venturebeat.com 10y ago

Why Pinterest just open-sourced new tools for the Elixir programming language

mickael
9pts1
advanced-erlang.com 10y ago

Mocking for the game of life in Erlang

mickael
1pts0
blog.process-one.net 10y ago

XMPP Academy #2 video and slides

mickael
1pts0
advanced-erlang.com 10y ago

Basho, Maker of Riak, Join Advanced Erlang Initiative to Promote Erlang Products

mickael
2pts0
advanced-erlang.com 10y ago

Growing List of Advanced Erlang Workshops

mickael
1pts0
blog.process-one.net 10y ago

Push notification component for XMPP

mickael
3pts0
blog.process-one.net 10y ago

Step by step tutorial: build an iOS XMPP client in Swift 2

mickael
1pts0
blog.process-one.net 10y ago

ProcessOne XMPP Academy #1 Video and Slides

mickael
1pts0
blog.process-one.net 10y ago

Ejabberd 15.09 released, now with OAuth 2.0 support

mickael
3pts0

You need a stream parser like expat. No need to code your custom parser and once you settle at level n+1 in the XML it is just like parsing independent document. But again, the parsing is hidden by existing XMPP library, so you do not even need to go to that level of details.

I have written an article explaining the difference between Matrix and XMPP, and why it cannot be as scalable by design.

You can read it here: https://www.process-one.net/blog/matrix-and-xmpp-thoughts-on...

TL;DR: Matrix protocol is based on document replication and synchronisation, while XMPP is based on message passing. Matrix requires to constantly replicate and merge the data. It is an intended feature, but as it does more, you cannot expect to scale to the same level.

That said, we want ejabberd to be able to suit all types of messaging needs and we have already implemented 1-to-1 gateway with Matrix server inside the protocol. We are fine tuning our chatroom interop with Matrix. It means that we have already most of the code in place to support Matrix chat (as we need to implement the replication part). It means, the next step could be to implement full Matrix support for those who would rather use Matrix clients.

Disclosure: I am ProcessOne Founder, XMPP developer since 1999 and working on ejabberd since 2002.

E-Ink Typewriter 5 years ago

I am using Obsidian as well and I am considering using an Android eInk tablet (Like a Boox), with a keyboard to be able to use Obsidian. I may give it a try it some day.

E-Ink Typewriter 5 years ago

Thanks for this repo :) I also writes in French, but decided to switch to Qwerty layout a while back to get access to a wide-range of nice keyboard. Very happy with this move. I know this will not help you right now, but just saying you may not totally stuck to AZERTY forever.

I am writing this from the Server Side swift conference. Despite what is said in the comments, I do not see a community waiting for Apple to push the server-side ecosystem further. What I see is a group of passionate people building plans to move the ecosystem forward. Yes, it is still easier to develop on MacOS than on Linux (but it is doable). Yes, having the async/await feature in the language sooner than later would help. However, the community seems healthy and the projects are interesting and well designed.

The notification are for signaling. The message notification can be distinct and encrypted using standard push notifications. If the problem is with metadata around the conversation (like typing indication, etc), they still can be encrypted on the server but with a cleartext flag associated with them to tell if the content should be pushed or not.

When you talk about MQTT and IoT, scalability and clustering is the deciding factor. When you deploy an IoT stack, it is common to have to manage hundreds of thousands or millions of devices. The stack is leveraging ejabberd clustering and scalability.

What I find interesting is to link exception handling in real or virtual process to the way we handle it in programming languages.

Exception handling is one of the main difference between a junior and senior programmer. Beginner programmers will often struggle getting their code working in real life due to their focus on the ideal code path.

It also reminds me of Erlang "Let it crash" philosophy: you cannot always handle all possible errors that can happen in real situation and it is often best to design your system to be able to cope and recover from transient unexpected errors. This is at the heart of Erlang worker and supervisor architecture design.

Well, in practice, it is more than a promise. You are not forced to use Mnesia. You can use other backends to simplify the ops. Yes, it is as simple and make managing the platform a breeze. You need to be as stateless as possible.

Well, the most difficult part is to understand how the Erlang VM / Environment works. Once you have set it up, ejabberd just works. You can have massive scale and large uptime. This, ultimately, saves bigger headaches.

XMPP strong selling point is federation. You can run your own private server and it does encryption. There is plenty of implementations from servers to clients, most being open source. It seems to me just one of the Zillion messaging alternative available.

Actually, Elixir support comes from API changes to be more Elixir friendly (for example order of parameter to be "pipe" friendly). This is also about submitting the component on hex.pm package manager to be easily integrated in Elixir mix tool. And finally, this is about writing some part in Elixir. For some projects we are even starting writing code directly in Elixir.