Enumerating New Ideas
Welcome to the Lapidary Lemur Mailing List! A recurring Ruby rundown from the mind of Brandon Weaver (@keystonelemur) about what he's been working on, reading, thinking about, and shipping.
We took last week off due to weather complications in the midwest, but will resume our regular posting.
Recent Content
What I've written or shipped lately
Understanding Ruby (Series)
A new series on fundamental and foundational concepts in programming Ruby, meant as a more introductory text. Frequently I find myself hunting down references on specific subjects to hand to those I'm teaching, and this series reflects the more frequent topics I've seen brought up.
This round we have a lot of new content on Enumerable, one of the most powerful concepts in Ruby:
- Understanding Ruby - Enumerable - Intro and Interfaces
- Understanding Ruby - Enumerable - Transformations
- Understanding Ruby - Enumerable - Predicate Conditions
- Understanding Ruby - Enumerable - Searching and Filtering
- Understanding Ruby - Enumerable - Sorting and Comparing
- Understanding Ruby - Enumerable - Counting
- Understanding Ruby - Enumerable - Grouping
- Understanding Ruby - Enumerable - Combining
- Understanding Ruby - Enumerable - Iterating and Taking
- Understanding Ruby - Enumerable - Coercion
Why that many parts? The original one-part article was weighing in around 40 minutes and that's not ideal.
The next posts that I have planned will cover YARDoc, Classes, Modules, Set, Struct, Methods, and a few other subjects, but not necessarily in that order.
YARDoc will be a more continuous subject, but I will avoid posting on that until I have a structure that makes sense.
The Reading List
Books, articles, tutorials, and other content I've been reading lately
Kotlin - Arrow
Occasionally I experiment with other languages, and Kotlin is one that feels more natural coming from Ruby. The others in that family for me are languages like Javascript, Crystal, Elixir, and Rust. Anyways, Arrow.
Arrow is a functional programming library which feels similar to Scalaz and Cats from the Scala community.
I may eventually write on this if there's enough interest as Ruby is not the only language I know.
Ruby GC Collection Deep Dive: Tri-Color Mark and Sweep
By Jemma Issroff
To start with, if you're not following Jemma on Twitter do so now. She's more recently been writing a lot on GC and more advanced topics, and has a really great ability to explain those complicated subjects in more approachable ways. It would not be surprising to me in the near future to see her become a major presence in the community.
The Thinking Corner
Musings, what I'm planning next, and what's to come
RailsConf Scholars and Guides Program
An exceptionally valuable program offered for both RubyConf and RailsConf that connects scholars (newer members of the community) with guides (more established members of the community) to help them get connected, find talks to attend, and ask questions about the Ruby community in general.
If you've been around for a bit consider becoming a mentor, I've been doing it for the last few years and love meeting new members of the community.
If you're new you should apply for a scholarship! I look forward to meeting you.
Languages Outside of Ruby and Javascript
My top two languages by a long-shot are Ruby and Javascript, with Javascript being the weaker. On occasion I'll pursue another language, especially one that's relevant at work, to expand my horizons.
Currently those languages I'm interested in are:
- Kotlin - The good parts of Scala without some of the more negative ones that make Ruby expressiveness look tame.
- Elixir - Ruby flavored Erlang. With the advent of Ractors and other message passing actor paradigms and reactive programming, hotwire, pattern matching, and other topics there's a lot to learn from Elixir.
- Rust - I don't think low level. C and C++ make very little sense to me intuitively, but considering my affinity for Functional Programming perhaps Rust is a good vehicle for getting there.
RuboCop and Autocorrect
RuboCop has a lesser known feature: Autocorrection.
It's exceptionally powerful, especially for larger codebases that migrate code between versions. What if Ruby could automatically transition the code for you?
I'm considering doing a series on this later too as I've gotten a significant amount of use from these ideas at work.