Skip to content

Instantly share code, notes, and snippets.


Fabien Penso penso

View GitHub Profile

Keybase proof

I hereby claim:

  • I am penso on github.
  • I am penso ( on keybase.
  • I have a public key ASCpVt9KtzTpS7hwTrOEHDA_me6wYmeGnr509miLRkb1Ewo

To claim this, I am signing this object:

penso / 0.log
Created February 9, 2022 11:00 — forked from rtyler/0.log
Playing around with syntax sugar around handling websocket messages
View 0.log
INFO otto_eventbus > Listening for WebSocket connections on
DEBUG tungstenite::handshake::server > Server handshake done.
DEBUG otto_eventbus > Received: Ok(Text("{\"type\":\"ping\", \"value\" : {\"msg\":\"hi\"}}"))
INFO otto_eventbus > deser: Meow { ttype: "ping", value: Object({"msg": String("hi")}) }
DEBUG otto_eventbus > Handling: Ping { msg: "hi" }
DEBUG otto_eventbus > Received: Ok(Text("{\"type\":\"hello\",\"value\": null}"))
INFO otto_eventbus > deser: Meow { ttype: "hello", value: Null }
DEBUG otto_eventbus > Handling hello: Hello
penso /
Last active December 13, 2020 14:52
# Based on Loren finding
# From
find() {
{ LC_ALL=C command find -x "$@" 3>&2 2>&1 1>&3 | \
grep -v -e 'Permission denied' -e 'Operation not permitted' >&3; \
[ $? = 1 ]; \
} 3>&2 2>&1
View gist:e11513b346b99063068ce01bf4ab0af4
#!/usr/bin/env ruby
class Float
def floor2(exp = 0)
multiplier = 10 ** exp
((self * multiplier).floor).to_f/multiplier.to_f
no_vat_price = 1.00
penso / gist:4b7c7f28992c106691e6
Created November 2, 2015 10:00
Run AppCatalyst on boot
View gist:4b7c7f28992c106691e6
Insert in ~/Library/LaunchAgents/com.vmware.appcatalyst.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "">
<plist version="1.0">
View gist:8c054b13c19123574bc1
2015-05-10T08:33:06.341Z 17056 TID-3lork WARN: /home/deploy/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/monitor.rb:185:in `lock'
/home/deploy/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/monitor.rb:185:in `mon_enter'
/home/deploy/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/monitor.rb:209:in `mon_synchronize'
/data/www/faast/shared/bundle/ruby/2.1.0/gems/activerecord-4.0.13/lib/active_record/connection_adapters/abstract/connection_pool.rb:271:in `active_connection?'
/data/www/faast/shared/bundle/ruby/2.1.0/gems/activerecord-4.0.13/lib/active_record/connection_adapters/abstract/connection_pool.rb:293:in `with_connection'
/data/www/faast/releases/20150509081300/app/worker/rss_parser_worker.rb:8:in `perform'
/data/www/faast/shared/bundle/ruby/2.1.0/gems/sidekiq-3.3.3/lib/sidekiq/processor.rb:75:in `execute_job'
/data/www/faast/shared/bundle/ruby/2.1.0/gems/sidekiq-3.3.3/lib/sidekiq/processor.rb:52:in `block (2 levels) in process'
/data/www/faast/shared/bundle/ruby/2.1.0/gems/sidekiq-3.3.3/lib/sidekiq/middleware/chain.rb:127:in `blo
View gist:a5b6b022d60db6f366ca
1) Users::RegistrationsController should create a new user
Failure/Error: expect(assigns(:user).send(key)).to eq(key)
expected: :first_name
got: "cum"
(compared using ==)
@@ -1,2 +1,2 @@
penso / Vagrantfile
Last active June 15, 2019 15:59
Vagrantfile for my local Rails development
View Vagrantfile
# -*- mode: ruby -*-
# vi: set ft=ruby :
# All Vagrant configuration is done below. The "2" in Vagrant.configure
# configures the configuration version (we support older styles for
# backwards compatibility). Please don't change it unless you know what
# you're doing.
Vagrant.configure(2) do |config|
# The most common configuration options are documented and commented below.
# For a complete reference, please see the online documentation at
penso / gist:39eccc756e3efe9ab84c
Last active August 29, 2015 14:10
How to sync icloud coredata?
View gist:39eccc756e3efe9ab84c
2 Devices A and B, they both receive a push notification at the same time,
which triggers a fetch of an object on a remote server, and store the content
inside a coredata icloud enabled DB. The object has a PID stored on the remote
You end up with 2 entries: one fetched on the remote server, one synced
from the other device through coredata sync.
Both devices have different NSManagedID for the same entries (you can't
automatically remove the most recent one based one it), the only thing you
penso / Link removal request
Last active August 29, 2015 14:10
Karrimor asks me to add a nofollow attribute to a link to their website I've included in a blog post I did. Would love to have your comment on that request, why would they ask this?
View Link removal request