# Hello world ## Something like a blog <a href="lets_encrypt_renew">Renewing a letsencrypt certificate</a> <br /> <a href="embedding_python">Embedding Python</a> <br /> <a href="bavarde">Chat like a nerd</a> <br /> <a href="dash_dash">Dash dash</a> <br /> <a href="resharding">Using rcc to reshard a Redis Cluster optimally</a> <br /> <a href="cluster_node_invalid_ip">Fixing Redis Cluster nodes ip address</a> <br /> <a href="vim_visual_bell">Disabling vi visual flashing mode</a> <br /> <a href="binpacking">Bin Packing, Redis Cluster and Cobra</a> <br /> <a href="ws_in_alpine_3_11">IXWebSocket ws tool available in Alpine Linux 3.11</a> <br /> <a href="tls_peer_verification">Controlling some TLS option with IXWebSocket</a> <br /> <a href="resume_from_last_position">The fix that creates another bug...</a> <br /> <a href="asyncio_leak">An asyncio leak</a> <br /> <a href="redis_conf_2019/index.html">RedisConf 2019 report</a> <br /> <a href="redis_conf_2019/slides.html">RedisConf 2019 talk</a> <br /> ## Something like a resume <a href="resume.html">`whoami`</a> <br /> <a href="https://github.com/bsergean">github</a> <br /> ## Projects ### Serious * [IXWebSocket](https://github.com/machinezone/IXWebSocket), C++ websocket and http client and server library, coming with ws, a command line swiss army knife utility. This is both production code and a playground, and there is all sort of things there, a basic cobra compatible server named snake, cobra bots to republish cobra traffic to Sentry, Statsd or Redis, a WebSocket debugging tool, file transfers tools, a statsd and redis client, a websocket and http proxy, and even a pubsub only redis server. * [cobra](https://github.com/machinezone/cobra), a real time messaging server using WebSocket for the transport, built on top of Redis Streams. * [rcc](https://github.com/machinezone/rcc), a Python asyncio Redis Client library, with a cli for resharding and analyzing your keyspace. ### Toys * [wsproxy](https://github.com/bsergean/wsproxy), a very simple Python asyncio WebSocket proxy with per deflate compression. To this day the main Golang WebSocket library, Gorilla, does not support that spec entirely, notably the *Context takeover* part where the compression dictionary is retained accross messages, and it is unfortunate as it is where that extension shine. See [this](https://www.igvita.com/2013/11/27/configuring-and-optimizing-websocket-compression/). ## Docs Doc to my beloved WebSocket library. <a href="https://machinezone.github.io/IXWebSocket/">IXWebSocket doc</a> <br /> An Autobahn link <a href="autobahn/reports/clients/index.html">IXWebSocket autobahn tests</a> <br /> ## Links * [System programmers to the rescue](https://scholar.harvard.edu/files/mickens/files/thenightwatch.pdf) * [TCP Puzzles](http://dtrace.org/blogs/dap/2016/08/18/tcp-puzzlers/) ## News * Sat Oct 19 PDT 2019 - [Dark mode support](dark_mode.png) * Sat Oct 19 PDT 2019 - Experimenting with li tag for layout * Sat Oct 19 PDT 2019 - Adding robots.txt file to give hints to the Google Crawler