Recent Articles
orDocker Multistage Images: Add Node Support to a Non-Node App Container
You should’ve been in a situation where you need nodejs and yarn in your package for building the front end, but you don’t want to go through all steps for installing it in the container. Or, in the case where you’re using a bit older Apline that fits your runtime version and that Alpine doesn’t support the latest Node LTS and the upgrade of the backend requires so more resources.
Proof of Concept: Go-like Implicit Interfaces with Ruby and Sorbet
The implicit interfaces in Golang are my favorite feature in the language. I think they make perfect sense to use with Object-Orientation as I’ve written about in a previous post. I love Ruby, I like the dynamic nature of it and how it relates to the Smalltalk, I was excited when I first heard about sorbet as it introduce the type checking optionally. However, I was worried that it will make the Object-Orientation in Ruby boring just like in C++ or Java.
Patching Vite HMR To Work With Tailwind JIT
During my work at Learnlife, we use React + Vite + Tailwind JIT in our frontend, because we love them! At some point in time, we lost the joy of the fast HMR which was our favorite feature of Vite. We thought it’s a problem with Vite and we tried to revert back to Create React App, but that was never the case, the problem was trickier than we thought. In this article, I will walk you through how we fixed the issue.
OOP Untangled Part 3: Other Languages Worth Mentioning
In the previous articles, we used some well-known languages that were known for the OOP to achieve object orientation according to Alan Kay’s definition. In fact, there are other few some of them are not known for OOP, but we can still achieve object orientation with, which is what we’re discovering in this article.
OOP Untangled Part 2: Object-Orientation and Statically Typed Languages
In the first part, we tried to understand the Object-Orientation according to Alan Kay’s definition, and we gave examples in dynamically typed languages. In this part, we try to implement something similar but in some statically typed languages like Swift and Kotlin and see how different it is from the traditional (i.e. C++) OOP that we used to do with those languages.
On Working Hard And Workaholism
Work more! Work more! You should’ve heard somebody says that before. It might look like good advice to follow. IT IS! If you’re hammering all day to make more widgets to sell them. With all due respect to all careers. However, my point is that not all works are like that. In jobs that require so much mental energy, working more is harmful rather than useful.
Introducing Factory Bakery
Fixtures in Rails are the default way of filling the test database with random data. There are other solutions like factory_bot that use a ruby API for generating the fake objects. However, I needed to go a step further. It should uses column definitions to generate the fake data automatically just like model-bakery for Django. I couldn’t find anything on Rails, so I made one! Meet factory_bakery!
OOP Untangled Part 1: Object-Orientation and Dynamic Languages
If you are a programmer, it means that you are already familiar with the term OOP; if you are not, Object-Oriented Programming (OOP) is a programming paradigm where you write and organize your code in a specific style. However, there are various definitions of the object-orientation, here I am biased to one of Alan Kay’s—the person who coined the term, thus, it will be the definition this article will focus on.