Update to PredicateSigil
Light update to one of my favorites. Before, we could do this:
iex> import PredicateSigil
...> Enum.filter([1,2,3,4], ~p(3))
[3]
# ~p(3) === fn 3 -> true; _ -> false end
But sometimes the awesome Enum and Stream APIs don’t have the negated version of what you want - so now you can also:
iex> Enum.take_while([1,2,3,4], ~p(!3))
[1,2]
# ~p(!3) === fn 3 -> false; _ -> true end
How to unit test the content we're uploading
In my newest blog post I show how to leverage Elixir processes’ messaging system to test the content of the files we’re uploading.
Check it out here: https://www.elvismelkic.com/unit-test-upload-content/
hackney 1.17.0 has been released #erlang #elixirlang
Happy to announce the new stable release of hackney :) Enjoy!
Overview:
hackney is an HTTP client library for Erlang.
Changes:
- fix SSL compatibility with erlang OTP 23
- handle empty trailers
- fix race condition in connection pool
- fix memory leak in connection pool
- IDNA update to unicode 13.0.0
- fix build on macosx with OTP >= 20.1
- fix network Location on redirect
- produce uppercase hexadecimal in URLS
- pool queue count metric is now named queue_count
- miscellaneous fixes in documentation
Possible breaking changes:
- The pool queue count metric is now named queue_count. You should update your dashboard to reflect it.
- Possible breaking changes when producing uppercase hexadecimal in urls. This changes the behaviour of urlencode and pathencode to produce uppercase hexadecimal to comply with the RFC3986 which may affect systems using URL as signature or in an hash.
Source repository:
https://github.com/benoitc/hackney
Install from the hex.pm package repository:
How we discovered a 7-year old performance issue in Elixir
In this post, we will explore how in our efforts to optimize an internal service, we stumbled upon a performance problem that has lived in the Elixir codebase for seven years.
https://code.tubitv.com/how-we-discovered-a-7-year-old-performance-issue-in-elixir-99080bdce9a1
ElixirTalk - Ep. 166 w/ Sean Stavropoulos, CTO at Boulevard
We’re back after a hiatus on our irregularly posted podcast! Chris and Desmond are back in the hot seat, this time joined by CTO and co-founder at Boulevard, Sean Stavropoulos where we hear all about the founding of Boulevard and their early adoption of Elixir and GraphQL.
https://soundcloud.com/elixirtalk/episode-166-feat-sean-stavropoulos
Elixir Wizards S5E3 Simon Glenn-Gregg on Building an Election Results Prototype in Elixir
Latest episode of Elixir Wizards is out today! Check it out here: https://smartlogic.io/podcast/elixir-wizards/s5e3-glenn-gregg/
Imageflow Elixir bindings, along with ergonomic Elixir-style API
I just released the first working version of imageflow_ex, a package that provides FFI bindings to imageflow, a Rust-based tool that offers extremely fast image processing (https://www.imageflow.io/benchmarks/)
I also include a higher-level API resembling Elixir Streams
Check it out on Github: https://github.com/naps62/imageflow_ex
ThinkingElixir 026: Elixir in Higher Ed with Jonathan Allen
In episode 26 of Thinking Elixir, we talk with Jonathan Allen, an instructor at a Utah college, who taught Elixir to his Distributed Computing students. He tells how he got Elixir into the classroom, how it went, and how we in the professional community can influence Elixir in education, and much more!
Using Event Sourcing and CQRS with Incident - Part 2
Event Sourcing and CQRS are great design patterns for some domains. The Incident library will help implement them without compromising other parts of your application.
This is the second post of a series of posts that I will present the usage of Incident.
Check it out: https://pedroassumpcao.ghost.io/using-event-sourcing-and-cqrs-with-incident-part-2/
Elixir Wizards S5E2 Randall Thomas on Learning Elixir and Why Community Matters
Latest episode of Elixir Wizards is out today! Check it out here: https://smartlogic.io/podcast/elixir-wizards/s5e2-thomas/
Event Sourcing and CQRS library Incident version 0.6.0 released
The version 0.6.0 handles race condition scenarios and other improvements. Check it out: https://hex.pm/packages/incident
Wallaby v0.28.0 released!
https://github.com/elixir-wallaby/wallaby
v0.28.0 (2020-12-8)
Breaking
-
Browser.assert_text/2andBrowser.assert_text/3now return the parent instead oftruewhen the text was found.
Fixes
- File uploads when using local and remote selenium servers.
Improvements
-
Added support for touch events
-
Wallaby.Browser.touch_down/3 -
Wallaby.Browser.touch_down/4 -
Wallaby.Browser.touch_up/1 -
Wallaby.Browser.tap/2 -
Wallaby.Browser.touch_move/3 -
Wallaby.Browser.touch_scroll/4 -
Wallaby.Element.touch_down/3 -
Wallaby.Element.touch_scroll/3
-
-
Added support for getting Element size and location
-
Wallaby.Element.size/1 -
Wallaby.Element.location/1
-
ThinkingElixir 025: Improving developer experience with Marlus Saraiva
In episode 25 of Thinking Elixir, we talk with Marlus Saraiva about his work creating Broadway, Surface, and ElixirSense! All of which work to improve the developer experience in Elixir! We start with Broadway, a library that makes working with GenStage even easier. We learn about his project Surface that brings a more react-like component model to LiveView. We then talk about his work on ElixirSense and ElixirLS which are used by editors to give code completion and documentation help. He covers where he thinks web development went wrong and what he thinks Elixir can do to improve it. We also cover where things may go with Surface and ElixirLS in the future, and much more!
Top 5 Elixir Skills for Junior Developers to Learn in 2021
Are you looking for your first job in Elixir? Check our list of Top 5 Elixir Skills for Junior Developers that will be relevant in 2021.
5 Phoenix open source projects to study
Read about Phoenix open source projects you can use to study Elixir/Phoenix code.
Planetary Scale Rust and Golang by Embedding WebAssembly in Elixir
Explore embedding high-performance Rust and Go web-assembly apps in Elixir: https://dev.to/hansonkd/planetary-scale-rust-and-golang-by-embedding-webassembly-in-elixir-45cm
Improving EventStore performance by 2x to 4x+
We recently improved EventStore’s performance by 2x to 4x+ (depending on network conditions) and blogged about it here: https://moosecode.nl/blog/event_store_optimized
UX with LiveView: Wiktionary III / Parser via Code = Data
In the part 3 of the language learning LiveView app series, I finalized the first version of the Wiktionary article parser. We don’t yet extract everything we want to, but we have an extensible parser now.
In the end, I arrived at a custom control flow approach via first-class functions / code is data technique, that simplified the parser logic significantly.
I will pause this series during December, since I’m doing Advent of Code streams in Rust now, but I’ll be back with more Wiktionary, LiveView, and parsing fun in January!
Reserved Backward Compatibility
One small step towards backward compatibility, one giant leap for mankind. Blogged on reserved fields and backward compatibility.
Link.
