Skip to content

Instantly share code, notes, and snippets.

View tsloughter's full-sized avatar

Tristan Sloughter tsloughter

View GitHub Profile
%% ~/.erlang runs too late to effect the regular `erl` shell
%% but will result in `rebar3 shell` using `.rebar3/` for history
application:set_env(kernel, shell_history, enabled).
application:set_env(kernel, shell_history_path, ".rebar3").

Exports given by prettypr:

-export([block_fragment/1, format/1, new/2,
     promised_stream_id/1, read_binary/2, to_binary/1,
     to_frame/4]).

becomes

signature <<"7f7a6b9d538e1ecec4a9c9bb1680b074b8a5348a45398445f38943dbb143617ddb66df4e505e9bbc8eef75de4d1621463358a81bc699975f61514da13fb12fcde3d82e5b849dada58405a123e1988776e04f535598bf20868042f328f93166b077114e86a9cf4c73b08b2e76b689f2828865fbd25af41c56e22caccd4d7e7d9b0f03b02001a5b9f39fc328f9afb5c9b45da8447ef79fe6f3425b5d716fd0bb3b6c34ddb97934c11ab35963cb3a74fd080a4d944b049da37ad0271fa02aa814d599110bb0af76b64d121052ecf3011c9f6c13fba30e323020e992d596917395c320ee01505a14c8138aa6c58eba80ca9ff09ee06ba4f3803cc1c87e80f39b3615">>
key {'RSAPublicKey',2103656186816426464993556206589111958056075894398729511101995302874238480403340092592121959263220416662739875673467702811200467754813898662686868405148362442960944306793709578482356491108531022965489887106091509759178338067185313780570855593455147124474536498547378447079959944465118270307701218020100430546289604281386243108482839869300393703941544734307761762030516493824969319740500745997315064697736981745163387435715739016977771518090331906285215620944972761770834310144
{ok, {{_, 200, _}, _, Signature}} = httpc:request(get, {Url, [{"User-Agent", rebar_utils:user_agent()}]}, [], [{sync, true}], rebar),
{ok, Data} = file:read_file(TmpFile),
[RsaPublicKey] = public_key:pem_decode(?PUBLIC_KEY),
Key = public_key:pem_entry_decode(RsaPublicKey),
public_key:verify(Data, sha512, Signature, Key)
### Keybase proof
I hereby claim:
* I am tsloughter on github.
* I am tsloughter (https://keybase.io/tsloughter) on keybase.
* I have a public key whose fingerprint is 7C9E EE1C CC28 58E1 CC8E B9BA C702 BA41 86F9 3DCF
To claim this, I am signing this object:
@tsloughter
tsloughter / e.md
Last active November 4, 2016 01:59
Erlang/OTP libraries/modules replaced by third party projects

I'm looking to collect information on why certain functionality found in Erlang/OTP is usually handled instead by a third party library in people's projects.

This could be bugs, missing functionality, poor interface, performance, etc.

Examples off the top of my head that need expanding on are:

  • httpc
  • httpd
  • http_uri
ERLFLAGS= -pa $(CURDIR)/.eunit -pa $(CURDIR)/ebin -pa $(CURDIR)/deps/*/ebin
PROJECT_PLT=$(CURDIR)/.project_plt
# =============================================================================
# Verify that the programs we need to run are installed on this system
# =============================================================================
ERL = $(shell which erl)
ifeq ($(ERL),)
(add-to-list 'load-path (file-truename "<PATH>/projmake-mode"))
(require 'projmake-mode)
(defun projmake-mode-hook ()
(projmake-mode)
(projmake-search-load-project))
(add-hook 'erlang-mode-hook 'projmake-mode-hook)
connect pn' manager isReconnect = do
let req = buildSubscribeRequest pn' "0"
eres <- try $ httpLbs req manager
case eres of
Right res ->
case decode $ responseBody res of
Just (ConnectResponse ([], t)) -> do
liftIO (if isReconnect
then onReconnect subOpts
else onConnect subOpts)
src/Network/Pubnub.hs:59:15:
Could not deduce (GHC.Exception.Exception e0)
arising from a use of `try'
from the context (FromJSON b)
bound by the type signature for
subscribe :: FromJSON b =>
PN -> SubscribeOptions b -> Maybe UUID -> IO (Async ())
at src/Network/Pubnub.hs:53:14-84
or from (monad-control-0.3.2.2:Control.Monad.Trans.Control.MonadBaseControl
IO (t IO),