Should I write my blog in Rails?

As developers we love to create our own software. We tend to reach out to custom built software by default. Building software is what we do and we prefer to have "total control over our tools". We specially gravitate towards this approach in the early stages of our journey. We use it as an excuse to learn and get better. And, even though it is a good reason to write a blog (or any piece of software for that matter), I don't think it's a good reason to write our own blog (or a client's site). [Read More]

Passing default arguments

Have you ever needed to set a default for an argument when defining a class? Say we have a Product class that has a Category. class Category attr_reader :name def initialize(name: "General") @name = name end end class Product attr_reader :name, :category def initialize(name: , category: ) @name = name @category = category end end # => "General" The category can be passed in as an argument on the initialize method or be set to the default category if it doesn't. [Read More]

Lineage of a Ruby Class

The other day I was writing some code in which I needed to know if a specific class was a descendant of another class. I've done a similar thing with Ruby objects in the past, but never with classes, and I think I'll start from there. If we want to know if a Ruby object's class is a descendant of the Vehicle class, we can simply ask it if it is a Vehicle Vehicle = Class. [Read More]

Why do I stream?

Recently I started a Twitch channel where I've streaming different things, like learning or re-learning technologies. My intention for the channel is to provide some value by recording myself learning and/or programming. I don't have many views and followers so far. This is probably due to a couple of reasons: I haven't really cultivated an audience I'm really new to streaming I don't promote the channel enough I don't have a fixed schedule And, probably the biggest, I'm not a great entertainer. [Read More]

Moving my blog to Hugo

If you're one of the 8 people that's visited my blog since it's creation, you probably noticed that it has changed. That's because I'm using Hugo how. Hugo is a static site generator written in Go (language I've never used in my life). The main thin that drove me to try it out is that it allows writing posts and pages directly using org-mode (among other formats such as Markdown as well). [Read More]

Smarter rails server command

Some time ago I added the following line to my .zshrc (and .bashrc as well): alias rs='rails server -b 0.0.0.0' This gave me an easy to use and easy to remember way to start my rails server when working on a Ruby on Rails project. I have several of these two-word aliases spread across my configuration files and I love them. But recently I started working on a project that uses Foreman to run the server and several other niceties. [Read More]

Call a function interactively from another function in Emacs

The Silver surfer (ag) Linux tool is the fastest way to find where a word or phrase appears in the files on a directory. I've been using ag in two ways from inside Emacs. The ag-mode package, that asks me to input a search term and the root directory where I want it to search and then it performs the search. Via projectile, that allows me to search on a whole project without the extra step of inserting the root dir. [Read More]

Defining keybindings on the fly in Emacs

This is not a trick nor a hidden capability in Emacs, but it's something I never thought of using until about a mont ago. In our Emacs configuration, we can define keybindings either global (for use everywhere) or local (for use inside the current buffer) and we do it using global-set-key. I've mentioned this multiple times in this blog. Here's an example of how you'd use it (global-set-key (kbd "H-s") 'save-buffer) But I recently came to the realization that global-set-key is an interactive function, which means that you can invoke it as any command in Emacs, via M-x (or similar). [Read More]

Naming my macros in Emacs

I love using macros in Emacs, they help me speed up several tasks in a regular basis. Writing a macro is a relative easy thing to do and a topic for another article. What I want to talk about today is how and why you could name a macro. If you don't know what a macro is, the concept is simple, it's a sequence of actions that can be recorded and reused later. [Read More]

Splitting a Ruby Array in equal parts

I'm working on a personal project that involves calendars. One of the features I wanted was to be able to print a calendar like this: | Mon | Tue | Wed | Thu | Fri | Sat | Sun | |-----+-----+-----+-----+-----+-----+-----| | 1 | 2 | 3 | 4 | 5 | 6 | 7 | | 8 | 9 | 10 | 11 | 12 | 13 | 14 | | 15 | 16 | 17 | 18 | 19 | 20 | 21 | | 22 | 23 | 24 | 25 | 26 | 27 | 28 | For that I needed to split a 28-ish Array into 4 or 5 rows (weeks). [Read More]