Articles

Build Your Developer Brand post-mortem

Published on:

I did a post-mortem for Build Your Developer Brand (which I gave last Friday). I wanted to share this review openly in case anyone is interested in my thoughts.

Setting up Windows for web development

Published on:

After a [horrible experience][1] with my 2018 Macbook, I decided it was time to buy a Windows device as my backup machine. I chose to use Windows as a backup because:

  1. Mac is expensive!
  2. My old Mac is a goner
  3. I need a Windows computer for accessibility testing (NVDA + Firefox combination anyone?)

I ended up buying a Surface Laptop 3.

Setting up Windows was harder than I imagined. It was especially hard because I wanted this Windows machine to mirror everything I do on Mac.

In this series of articles, I'll explain everything I did to configure my new Windows machine. This should help you out if you're switching from Mac to Windows.

A Simple CLI for Convertkit

Published on:

When I need to check a person's details on Convertkit, I need to log in to Convertkit and search for the person's email address. This process takes time, energy, and clicks.

I'm not in the state to check a website when I'm doing work. I want to find the person's information quickly and get stuff done.

So I created a command line interface for [Convertkit][1].

Element.focus vs aria-activedescendant

Published on:

When you build JavaScript components, you need to manage focus for both keyboard users and screen readers. The WAI-ARIA specs say there are two ways to manage focus:

  1. Using element.focus and tabindex
  2. Using aria-activedescendant

Which should you use and why?

I did in-depth research on these two methods and I'd like to share my findings in this article. Take a seat and grab some popcorn because it's going to be a long article.

Overcoming my panic towards accessibility

Published on:

Accessibility is a big part of JavaScript. If you build anything with JavaScript, you need to make them accessible.

I've been afraid of touching accessibility for a few years now. This fear magnified when I began writing the accessibility lessons for [Learn JavaScript][1].

Today, I want to share with you why I became afraid of accessibility, and how I overcame this fear.

Installing MongoDB on Mac (Catalina and non-Catalina)

Published on:

I had to reconfigure my Macbook after sending it for repairs. During the reconfiguration period, I noticed the instructions I linked to in ["Setting up a local MongoDB connection"][1] were outdated.

Here's an updated version on how to install MongoDB on a Mac.

Designing Learn JavaScript's course portal

Published on:

Learn JavaScript is my flagship JavaScript course. It helps people go from knowing nothing about JavaScript to becoming a professional JavaScript developer.

Today, I want to share with you how I designed Learn JavaScript's course portal.

<Image src="/assets/2020/ljs-portal/login.png" alt="Learn JavaScript login page." />

Getting keyboard-focusable elements

Published on:

If you create JavaScript widgets, one of the key parts to accessibility is managing focus.

To manage focus, you need to find keyboard-focusable elements.

Multi-line gradient links

Published on:

When I saw the CSS Tricks redesign, I was hooked. I loved the links with gradients. I told myself I'm going to use gradient links for my next project.

That's what I did for Learn JavaScript's course portal. The links look like this:

<Image src="/assets/2020/multi-line-gradient/link.gif" alt="Blue color link with blue underline. When hovered, the text has an orange to yellow gradient; underline becomes solid orange." /> I want to share what I learned about creating gradient links

Year-end review: 2019

Published on:

2019 has ended. Once again, I want to conduct my year-end review in public. This time, in a lot more depth and rawness compared to the previous years.

Mongoose 101: Population

Published on:

MongoDB documents have a size limit of 16MB. This means you can use subdocuments (or embedded documents) if they are small in number.

For example, Street Fighter characters have a limited number of moves. Ryu only has 4 special moves. In this case, it's okay to use embed moves directly into Ryu's character document.

<Image src="/assets/2019/mongoose-population/ryu.png" alt="Ryu's document." /> But if you have data that can contain an unlimited number of subdocuments, you need to design your database differently.

One way is to create two separate models and combine them with populate.

Mongoose 101: Working with subdocuments

Published on:

You learned how to use Mongoose on a basic level to create, read, update, and delete documents in the [previous tutorial][1]. In this tutorial, we'll go a step further into subdocuments

Mongoose 101

Published on:

Mongoose is a library that makes MongoDB easier to use. It does two things:

  1. It gives structure to MongoDB Collections
  2. It gives you helpful methods to use

In this article, you'll learn how to use Mongoose on a basic level.

What to do if you're struggling with a Bootcamp

Published on:

Bootcamps are fast-paced learning environments.

Most people who enroll in a Bootcamp do quite well when it comes to HTML and CSS. But many people struggle with JavaScript. Some even get depressed about programming because they can't understand JavaScript.

If you're one of these people, I want to let you know that you're not alone. I receive emails from people like yourself occasionally.

Here's one I received from Seth.

<Image src="/assets/2019/bootcamp/seth.png" alt="Email says: I joined this coding bootcamp mid August and I was so much green to programming. I was really motivated and have been having so much interest in programming for quite a while now. I have been learning Javascript since I enrolled and I have grasped a little concept but right now I feel like QUITING, AM GIVING UP on coding. I don't feel the motivation anymore like I no longer get what the facilitator is saying. I really dont feel being in that bootcamp anymore. " />

Understanding Homebrew

Published on:

Homebrew is a package manager for Mac OS. It lets you download binaries, packages, and applications with a single command.

In this article, I want to explain how to use Homebrew.