Swappy: a fast, customizable anagram generator
I, AKA a ham wrestling mixer!… Wait, I mean “make anagrams with Elixir!”
Swappy is a fast, customizable anagram generation library. You can use it at the command line via mix generate_anagrams, or use it in your own module to, eg, generate anagrams in response to web requests.
Enjoy! :D
Tail Call Optimization in Elixir & Erlang – not as efficient and important as you probably think
I wrote a blog post about the performance of tail-recursive and body-recursive functions in Elixir and Erlang (spoiler alert: body-recursive can be faster!). You might have seen this post before (published a week ago) - but it has since gone through 9 updates including insightful comments from Robert Virding (co-creator of Erlang) and José Valim as well as a new faster tail-recursive implementation. So it might be worth checking out again.
gen_state_machine v1.0.0 released: an Elixir wrapper for OTP 19's gen_statem
OTP 19 is a big step forward for both Erlang and Elixir developers. One exciting new feature is gen_statem, a state machine behavior. State machines are incredibly versatile, and can be used to implement many types of functionality, including network protocols, trading systems, and compilers.
To celebrate the release of OTP 19 this week, I’ve just released v1.0.0 of my fully-documented and community-reviewed Elixir wrapper for gen_statem, gen_state_machine. You can now use gen_statem in your production Elixir apps through an idiomatic Elixir interface!
Check out the documentation for an example of how you can use gen_state_machine in your apps, and you can find the project on GitHub here.
If you’re interested in learning more about gen_statem and gen_state_machine, please join me at Elixir Camp NYC from July 15-17 for my session, “Stately Machines: OTP 19, Elixir, and gen_statem.”
Property Based Testing in Elixir
An introduction to QuickCheck-style property based testing and a walkthrough demonstrating how to use properties to test a quicksort implementation.
https://travispoulsen.com/blog/posts/2016-06-22-Property-Based-Testing-in-Elixir.html
Family Ties Part 8 posted, discussing module attributes and the preprocessor
Posted the eighth of a continuing series of articles on similarities and differences between Erlang and Elixir. This is the first of two articles covering the Erlang preprocessor and its relationship with Elixir features.
http://daniel-azuma.com/blog/2016/06/20/family-ties-8-rise-of-the-preprocessor
Index of previous articles in the series: http://daniel-azuma.com/articles/family-ties/
Composing and mixing Phoenix plugs
Plugs make a serial routing chain, but it’s very easy to mix them arbitrarily. Here’s a cool backdoor example how.
Read more at Phoenix on Rails blog.
Use Elixir in CodeRunner 2
I love to tinker with code snippets in CodeRunner 2 on the Mac as a way to learn and experiment. CodeRunner is a hybrid of a text editor and the Terminal wrapped in a nice GUI. Using Elixir in CodeRunner is easily accomplished as explained in my blog post:
Credo v0.4.5 released
Credo has received an update today:
- Warnings about redeclaring names of Kernel or local functions now only consider functions with arity zero.
- Warnings for operations with constant result now ignore division by 1
- New check: readability/parentheses_in_condition
Bonus: You now get more detailed information on how to configure individual checks:
Use Wit.ai Natural Language Processing in Elixir for bots
When creating bots you have to converse with the users and maintain context of the conversation so you can understand the intent of the users, do the necessary actions. In this tutorial we will see how to use Wit.ai to create conversational models and use them in Elixir.
http://www.zohaib.me/use-wit-ai-natural-language-processing-in-elixir-for-bots/
Screencast: https://www.youtube.com/watch?v=XUNYQ_RA5dw
Cachex v1.2.0 Released! Changelog: https://github.com/zackehh/cachex/releases/tag/v1.2.0
Cachex v1.2.0 has been released with a rough 3x speedup over previous versions. Naturally it’s backwards compatible due to being release on a minor, so feel free to update and give it a go!
CredoCI - A service to check your github PRs with Credo
Some time ago we started developing using Elixir language and we loved it! As usual, we wanted to focus on code logic rather than on code style, so we also started using Credo a great tool to examine elixir code developed by René Föhring (@rrrene) So far so good, but we all make mistakes, and sometimes developers send a pull request without fixing all credo warnings/errors. A few times of this happening was enough proof to consider that we needed a tool to automatically check the code whenever a pull request was created.
We know this type of tools already exist for other languages (Gadget, Hounci), but unfortunately, we did not find one for credo/elixir. As always, if we don’t find something we need, we build it!
So that’s how CredoCI was born. Want to know more about it? Check this out
Build a Reverse Proxy in Phoenix
Getting Elixir into production on an existing project is not always easy. I decided to build a reverse-proxy API in Elixir / Phoenix so that your current production API routes can be moved into Elixir one by one.
Publish-Subscribe in Elixir
Publish-Subscribe is a messaging pattern that works as follows: a group of consumers subscribe to events of a given topic and are notified whenever an event of that topic arrives.
Can we implement Publish-Subscribe in Elixir?
A Language for the Next 10 Years
I wrote an article about my reasons for betting on Elixir as my main language for the next decade.
http://programmingzen.com/2016/06/14/next-programming-language/
Benche and BencheeCSV 0.2.0 released
This past weekend I released new versions of Benchee and BencheeCSV. Main feature is running the benchmarks for a warmup time first, nicer output and adding the standard deviation of ips.
Links:
ElixirStatus & Credo on the ElixirFountain
I had the pleasure of being interviewed by Johnny and we had such a great time!
Can you spot the one time I accidentally fall back into German? :-)
https://soundcloud.com/elixirfountain/elixir-fountain-rene-fohring-2016-06-13
ElixirRuhr Meetup
The next ElixirRuhr meetup will be on June 30th. Doors will open at 18:30, with the talks starting at 19:00. The event will be free, but with a limited amount of space. Please use our Meetup.com page for RSVP!
We are still looking for a speaker. Don’t hesitate to contact us!
Today is the Inaka version 1.0.0 of Aleppo which is available in hex.pm :)
We still migrating our open source tools from Makefile to rebar3.
for the moment, you can find:
