Skip to content

Instantly share code, notes, and snippets.

Patrick Debois jedi4ever

View GitHub Profile
jedi4ever / broker.js
Last active Jun 22, 2020
xsub , xpub example in nodejs
View broker.js
var pubListener = 'tcp://';
var subListener = 'tcp://';
var hwm = 1000;
var verbose = 0;
// The xsub listener is where pubs connect to
var subSock = zmq.socket('xsub');
subSock.identity = 'subscriber' +;
jedi4ever /
Created Aug 18, 2014
Command upload App/Ipa to the iTunes Connect App Store
set -ex
# This scripts allows you to upload a binary to the iTunes Connect Store and do it for a specific app_id
# Because when you have multiple apps in status for download, xcodebuild upload will complain that multiple apps are in wait status
# Requires application loader to be installed
# See
# Itunes Connect username & password
jedi4ever / gist:d095656ae0f0eca4a83ebb2b331da367
Last active Jun 2, 2020
Chromium build with proprietary codecs
View gist:d095656ae0f0eca4a83ebb2b331da367
jedi4ever / dns tuning ssh login speedup vagrant
Created May 27, 2013
speeding up DNS/SSH connections in vagrant
View dns tuning ssh login speedup vagrant
- Tune /etc/ssh/sshd_config
UseDNS no # Disable DNS lookups
GSSAPIAuthentication no # Disable negotation of slow GSSAPI
don't forget to restart it, use a script provider to set it , or create it with veewee or snapshot it
- Tune Vagrantfile
vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
jedi4ever /
Last active May 4, 2020
nodejs clustering, zero downtime deployment solutions

Clustering: The basics

The trick? pass the file descriptor from a parent process and have the server.listen reuse that descriptor. So multiprocess in their own memory space (but with ENV shared usually)

It does not balance, it leaves it to the kernel.

In the last nodejs > 0.8 there is a cluster module (functional although marked experimental)

View Reseach

These are notes while researching a way to convert a browser/website to a stream. This could be used for Facebook Live or for webrecording. TL'DR:

  • I started with Phantomjs - but that didn't support the html5 video tag
  • SlimerJS supports it, but there is no way to record audio directly (though this might come from desktop audio)
  • So I moved to research ffmpeg/X11/XVFB to record it with linux which works
  • But ffmpeg has no easy way to mix streams/overlays to I moved on to OBS with overlay browser support
  • I started researching options OBS in docker and it needed best a GPU , so I move to nvidia-docker
  • And so came across building game servers on EC2/AWS using GPUs and managed to run OBS inside of GPU g2x.large machine
  • I tried streaming to twich , which works great and managed to restream 4K 60FPS youtube on an AWS instance
  • Remote control works through OBS-Remote but OBS has kinda limit in types of features
jedi4ever / gist:898114
Created Apr 1, 2011
update jenkins Updatecenter from CLI
View gist:898114
$ java -jar jenkins-cli.jar -s http://localhost:9000 install-plugin findbugs
findbugs is neither a valid file, URL, nor a plugin artifact name in the update center
No update center data is retrieved yet from:
findbugs looks like a short plugin name. Did you mean 'null'?
# Specifying a full URL works!
$ java -jar jenkins-cli.jar -s http://localhost:9020 install-plugin
# Get the update center ourself
jedi4ever /
Last active Sep 24, 2019
Pulimi feedback


  • did brew install pulumi, installed 1.0.0 , running it keeps nagging about brew upgrade to 1.0.1
  • I wonder if there is a phone-home option, then it needs an optional opt-out
  • I'd expect pulumi init instead of new
  • pulumi needs documentation on the bootstrap for the state bucket (correct permissions)
  • pulumi login defaults to the saas platform, and says alternative logins available. not too clear , a select local would be nice
  • also the path where is stores the files should be asked for during installation
  • pulumi new --secrets-provider=passphrase (default I assume) has no way to initialize the secret from the CLI (like reading it from stdin or file)
  • why is bin in .gitignore (because typescript compiles in ./bin)
jedi4ever / gist:903751
Created Apr 5, 2011
Tuning stuff for Ubuntu hosts
View gist:903751
# /etc/security/limits.conf
* soft nofile 999999
* hard nofile 999999
root soft nofile 999999
root hard nofile 999999
# /etc/sysctl.conf
# sysctl for maximum tuning
jedi4ever /
Last active Feb 22, 2019
Impression of 1 week exchange

I had a long overdue holiday planned. For many people this would mean going somewhere and relax. Turns out I'm not the sight-seeing person , I'm more of a people-seeing person: talking to people and exchanging new ideas is what makes me tick. Having been a consultant for several years, you learn the most from new environments. Interns would have that opportunity to apply , but why can't people with more experience?

So I launched on twitter the idea of what company is willing to do an exchange. After receiving several replies I got invited by Ramon Van Alteren from Unomaly and deciced to take a leap of faith.

It felt like the excitement of starting a new job. Scary , because you don't know what to expect.

You can’t perform that action at this time.