As websites started to get more complex and the need for user interactivity grew in demand, one of the early problems of the web was its unidirectional nature. Users were able to retrieve information, but sending messages, and let alone interact with each other in real time, was a very difficult challenge.

Image for post
Image for post
Credit: sulmanweb.com

The early web implemented a few solutions in the form of java applets, complete programs that run inside a web page, but that were also slow and resource intensive. Then came polling through javascript, which requested the server for any changes every few seconds and refreshed accordingly, but…


Image for post
Image for post

I’ve been working on my React+Rails skills, but a few days ago, I noticed something that bothered me. So far I managed to build a few small applications that render images, but all of those images were already on the server as part of the application assets. What if I want to build an Image board or an Instagram clone?

I decided to take a look at it and the solution, as always, turned out to be a pretty simple one. It involves the use of ActiveStorage, which is a built-in solution introduced by rails 5.2 that offers a simplified…


Image for post
Image for post
credit: wordpress.org

I love Medium. The exposure is great and the community is amazing, but I also need a space where I can post my resume, projects and contact information. I also wanted to mirror my Medium posts over there, so that’s why I went with WordPress.

Of all the tools and frameworks out there, you had to choose WordPress. Why?

Aside from the fact that there’s absolutely wrong with WordPress, the reasons were, for the most part, circumstancial. My site was originally developed in Jekyll, but as a broke engineer, I only had a Namecheap hosting account and $20 for a domain.

The problem is Namecheap’s shared plan doesn’t support Ruby apps, so I was…


Image for post
Image for post

The last time we talked about Arch Linux, I walked you through the install process. However, while your system is totally usable, there are still a few things we have to do, so we’re far from being done.

Stop Windows from messing up the system clock

This is a subtle, but very annoying problem and can drive you insane if you don’t realize what’s going on. Let’s say you live in an area that has a time zone of GMT-4 and it’s 2PM in your local time. This means that in a GMT area it’s 6PM, so that’s a no brainer, right?

So you set the time to…


A while ago, I wrote an article about how awesome it is to run Linux. Since then, a few people have asked me for a quick guide on how to do it. I use the Arch Linux wiki myself, but I find it intimidating for newcomers, so I decided to write a simplified guide. You will need two flash drives, a computer capable of UEFI booting and secure boot disabled.

What is dual booting?

Dual booting refers to the practice of having two or more operating systems living on your computer and choosing which one you’ll be working with for the current session. None…


Image for post
Image for post
Credit: Chih-Yu Lin

One of the very early blocks for new React developers is the use of class components. Specifically, the use of the this keyword might prove confusing. Aside from that, the use of class components leads to a lot of boilerplate code that does little to help the readability of our code.

This is why functional components were introduced to React. They allow us to accomplish the same functionality while at the same time reducing the need to write so much boilerplate code. So a component can go from this:

import React, { Component } from 'react'class myComponent extends Component…


Image for post
Image for post
Credit: Émille Perron @ Unsplash

If you’ve ever struggled to deploy your Rails and Ract apps to Heroku, this post is for you. Usually, the problems when deploying arise from the fact that despite we did extensive planning, we didn’t account for Heroku’s requirements, and now we’re trapped in a sea of logs and unmet dependencies. Also, Rails and React are sometimes built as separate apps, which requires two of the five app slots that Heroku offers for free accounts. Wouldn’t it be nice if we could deploy with no issues and just use one slot per app? Let’s do it!

To start with, start…


Image for post
Image for post

I was trying to come up with an idea for an app until I thought “I wish there was an app that gave you to APIs to mash for a new app,” and that there was my new app idea. I was well aware of some lists of public APIs, but I wanted something more random. I wanted something that gave me a random pair for me to see if they’re a good match for a new app. On the other hand, I was always curious about Nokogiri, so I set up this small project to try it out. …


Image for post
Image for post
Image credit: howtoraspberrypi.com

I was working on my desktop computer the other day and my wife came in for a video conference. Since my keyboard is pretty noisy, she asked me to leave the room, so I had to push my code to a github repo so I could grab my laptop and pull from the other room. The problem is I’m very self conscious about my code and I don’t like to push incomplete code, especially from a project that is in a very early stage of development.

I ended up pushing to GitHub and then deleting the repo after cloning it…


Image for post
Image for post

If you’re new to the series, click here for part 1, part 2, part 3 and part 4. Our API is ready so it’s time for a quick frontend, but first, let’s take care of a few issues we left unsolved and make it do a little more. This is going to be a longer post so I won’t explain every change in depth as often as in the previous parts. I will show you all the scss code, but I’m not going to explain them either.

Updating the user seed file

Our seed file worked at first, but then we were copying hashes from…

John Fajardo

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store