👋 Hi, I'm Yos.
Navigating the idea maze and building onchain
Here’s my recent writing.
Most of us have a pet project graveyard. It could be software where we spent considerable time coming up with the perfect name, created a Github repo, purchased a domain name, and saw partway through but never quite finished. The project may have began strong, but came to a halt because more pressing work came up; or because we simply lost interest. In the end, nothing gets launched. Have you experienced this?
Having unused domain names is a clear…
Continue reading →If you’re working with a framework (like Rails, Django, Sinatra, or Flask), learning to use it is just scratching the surface. Be rigorous. Go deeper. Learn how it works.
Let’s take a close look at real-world uses of metaprogramming.
Metaprogramming is the writing of computer programs with the ability to treat programs as their data. It means that a program could be designed to read, generate, analyse and/or transform other programs, and even modify itself while running.
We’ll deconstruct how…
Continue reading →I seem to be building APIs left and right, so in this post, we’ll build a RESTful API with Ruby.
Let’s start with some theory on REST and RESTful APIs. Then, we’ll work through building an API which supports the following:
- API Namespacing
- API Versioning
- API Request Authentication and API Keys
- Object serialization + caching
- HATEOAS
In Part 2, we will go into more detail on documentation, security, optimization, and testing.
Continue reading →In this post, we’ll be taking a close look on how to avoid the proverbial ‘Ball of Mud’ in object-oriented design. Specifically, we’ll be refactoring fat Rails models using ActiveSupport::Concerns.
Continue reading →
Static program analysis is the analysis of computer software that is performed without actually executing programs (analysis performed on executing programs is known as dynamic analysis). The term is usually applied to the analysis performed by an automated tool, with human analysis being called program understanding, program comprehension, or code review. – More on Static Analysis
Have you ever wondered how QA services such as Codeclimate and New Relic measures your code quality? They use the Brakeman static analyser.
Continue reading →I had the pleasure of attending this year’s Red Dot Ruby Conference, a locally organized tech conference for Ruby developers.
RedDotRubyConf is the largest Ruby conference in South East Asia - a two day single-track event that brings together renowned international and local speakers.
I’ve learned tremendously from the speakers, most of which were prominent OSS (open source software) and core Ruby contributors such as Koichi Sasada (Ruby core team) and Aaron Patterson (Top Rails contributor.) Here, I will outline…
Continue reading →
Airtime is a video chat app that connects to your Facebook account and then connects you to other Airtime users who have similar interests, or are located geographically close to you.
Continue reading →I spent two days in Google’s Singapore office for a series of workshops, and in this post, I’d like to write (in freeform) about the things I’ve learned from the program.
Continue reading →I was at this year’s Python Conference. This post summarizes what I learned.
Continue reading →In this post, I’d like to outline how to create and manage virtual environments each with its own, independent set of dependencies with the following packages:
- pip, A tool for installing and managing Python packages in the Python Package Index
- virtualenv, A tool for creating isolated Python environments containing their own copy of python, pip, and other packages
- virtualenvwrapper, A set of convenient enhancements to virtualenv
virtualenvwrapper is a set of extensions to Ian Bicking’s virtualenv tool. The extensions…
Continue reading →