Elixir Blog Posts

Hey all,

I’m once again digging back into the world of Bitcoin development. After working my way through part of Mastering Bitcoin, I decided to write a Base58Check encoder in Elixir and write about the process. Check out the article, and let me know what you think.

I’ve got another article coming down the pipe about generating private keys and transforming them into public addresses entirely with the tools provided by Elixir/Erlang. I’m excited about it.

3 Likes

Prepare and release your Elixir open source package like a pro

Every time I’m releasing an Elixir open source package, I find myself re-assembling the same list of actions that lead to a properly managed and professional looking release. This guide aims to put all these actions into approachable, ordered list of how to get your open source up and running.

5 Likes

Hey all,

I’m still on the Bitcoin train. This week I wrote a post on using Elixir to generate Bitcoin private keys and translating them into shareable public keys. It’s pretty amazing that Elixir (well, mostly Erlang) ships with everything required to do this out of the box.

Check out the article, and let me know what you think.

7 Likes

I think this is a great example of the rich depth and power of core Erlang. It also highlights how Elixir can help turn that into something elegant. This is a great blog post and I’m sorry the forum only lets me give it 1 like.

Elixir just reduced the implementation complexity to nearly nothing and the blog post reduced the conceptual complexity to nearly nothing. Thank you Elixir and ElixirForum!

PS: Thanks for reading all those cryptography papers, Pete. :slight_smile:

3 Likes

Thanks @CptnKirk! That means a lot.

2 Likes

This stuff may be old news to most people here, but I wrote a brief intro to the Elixir AST.

Let me know if you have any feedback.

4 Likes

My first blog post about Elixir!

I’d be glad to get your feedback :slight_smile:

6 Likes

Looks like a great learning article, I like how you built it up over time based on what you wanted done and issues experienced. :slight_smile:

3 Likes

Recently I wrote about optimizations that make binary parsing be twice as fast: Binary parsing optimizations in Elixir.

8 Likes

I wrote about a fun, but largely impractical code execution vector for Elixir/Phoenix! Unexpected Code Execution

3 Likes

String.to_atom(type)

/me twitches

I really hope sobelow or credo flags these… ^.^;

1 Like

Sobelow does! And from scanning tons of Phoenix apps I can tell you… it’s a surprisingly common practice :frowning:

Mostly in render conn, String.to_atom(x), but occasionally in Map access as well.

2 Likes

OMG what?! Why would people use that?! o.O

2 Likes

I’m still digging into Bitcoin stuff. The Mastering Bitcoin book is an endless sea of inspiration for cool things to build in Elixir.

This week I published another article that digs into using Elixir to generate vanity Bitcoin addresses and makes an exciting detour into parallelizing a CPU-bound algorithm across all cores of your machine using Elixir’s Task.async_stream. Trust me, it’s exciting.

6 Likes

I wrote a blog post demonstrating how to set up a simple dynamic website using Elixir. Apart from the stated purpose, this help in understanding how Plug library inside Phoenix work.

http://hotpyn.com/2018/02/04/php-elixir/

The github demo is available here.

Feel free to comment.

2 Likes

I’d be interested to see how a solution like this that leverages Streams and Task.async_stream would compare to one that leverages Flow and GenStage.

3 Likes

Yeah, that would be interesting. I don’t really know much at all about Flow or GenStage. It crossed my mind to use them for this, but I reached for the tools I knew. Maybe I’ll do a comparison in the future.

1 Like

I just finished a quick post about using Protobuf(protocol buffers) with exprotobuf.

5 Likes

Hey guys, just published the (long overdue) second part of my blog post about testing: https://medium.com/onfido-tech/the-not-so-magic-tricks-of-testing-in-elixir-2-2-acdd0368572b

Feedback is, as always, welcome :wink:

3 Likes

I spent a little time this week diving into property testing. I used StreamData to property test a Base58Check encoder (that we built in a previous article) against an external, command line oracle. StreamData made the whole process amazingly simple, and I can definitely see myself using property testing much more in the future.

2 Likes