Theodora: Starting an Open Source Project

I’m building an open source rails app aimed at empowering nonprofits to efficiently manage government grants. It’s called Theodora πŸ‘‘. Large nonprofits often have a structure where one adminstrative organization distributes grant funds across multiple smaller nonprofits. This structure is (sort of) similar to how fast food πŸ” chain businesses are affiliates of a central corporate office. This post will share the steps I took toward creating Theodora as an open source project.
Read more β†’

Recursion Excursion

Recursion is the computer science concept of solving a problem where the solution depends on solutions to other instances of the same problem. With recursion, you can take a complex problem with multiple repeating steps, break it down into one small problem, and then feed the solutions of the small problems back into the original function. In order to avoid an infinite loop, you include a base case that signals your function to exit the loop and begin taking all of the solutions to the smaller problems and unwinding them to reach your final solution.
Read more β†’

What is HTTP?

The client needs data from the server the and the server needs a way to present the data to the user on the client. They both need each other. And, if it weren’t for HTTP, they wouldn’t know how to communicate. Communication is a major key in any relationship, so it comes to no surprise that in 1991 Tim Berner’s Lee created the HyperText Transfer Protocol(HTTP) for communication between the client and server.
Read more β†’

Code Review: Where Code Meets People

When I first started considering learning how to program, I asked a developer friend β€œwhat if I contribute some code and unwittingly break something?” The response was β€œthere should be a process in place to prevent that type of thing from happening.” Makes sense. Most fields have some form of this practice: QA, copy editing, fact-checking, and the list goes on. For development, that process is called code review.
Read more β†’

Angular 5: Observable Basics

After working through the Tour of Heroes tutorial in the Angular 5 docs, I wanted to better understand a concept that was new to me: Observable. With that in mind, I started working on my own Tour of Cats 🐱, which I will reference below. For this post, I’m going to focus on how Observable handles async data requests. To get the most out of the post, it would be great if you knew the basic fundamentals of Angular 5.
Read more β†’

React Redux Final Project Recap: Greenthumb Gardens

For my final project, I built an application with a React/Redux frontend and a Rails backend. I created Greenthumb Gardens, which is an app that allows users to search community gardens in NYC and update and view the plants that can be found at each garden. I used the NYC open data API to get information on each garden. Container Components vs. Stateless Components The project required the app to have 2 container components and 5 stateless components.
Read more β†’

Scope and Hoisting: var, let, and const

This post will discuss the difference between var, let, and const in terms of scope and hoisting in JavaScript. Once you understand the pros and cons of each, it makes it easier to interpret errors and avoid bugs. Scope is the current context of execution. The context in which values and expressions are “visible,” or can be referenced. If a variable or other expression is not “in the current scope,” then it is unavailable for use.
Read more β†’

jQuery Front End Project Recap: Static Methods

For this project, I was required to add dynamic features that are possible only through jQuery and a JSON API to my previous Rails app, Socratic. After working through the requirements, I had some class-specific logic that was cluttering my JS files AKA spaghetti code. To clean things up, I moved this logic into the class files by using static methods. What is a static method? According to MDN, static method calls are made directly on the class and are not callable on instances of the class.
Read more β†’

JavaScript Array Methods

JavaScript has data structures called arrays and objects (like hashes in Ruby), and you can operate on these data structures with different methods. There are subtle differences between common methods that might make your head spin if you don’t understand the nitty gritty details. Okay, enough spinning. This post will provide basic explanations for the following JavaScript methods: .forEach(), .map(), .filter(), .find(), and reduce(). forEach() This method executes a callback once for each element in the array.
Read more β†’

Rails App: Nested Forms

Keeping track of how things are supposed to work at work is hard. Nobody likes getting asked the same question over and over, especially ones that probably have answers buried in Slack or old emails. Socratic attempts to solve this problem. This app allows users to post questions and allows multiple users to answer one question. If a particular answer turns out to be most useful, the person who asked the question can mark this answer with a green check mark.
Read more β†’