I’ve been once again trying to understand programming in a way that feels grounded. My manager suggested that solidifying first principles could be my ticket, and gave me a challenge: Nand2Tetris.

Nand2Tetris is a self paced project in which the learner creates a simple computer(in a hardware simulator) from small modules — chips.

I have endeavored upon the first chapter and corresponding tasks. Wow were they fun!

First, I learned about boolean logic and logic gates and the HDL(Hardware Description Language) I’d be using. Then I learned how to use the hardware simulator.

Hardware simulator

Then I was tasked with implementing the…

I went to a Ruby hacknight the other night! There, I spent an hour and a half pair-debugging what turned out to be a painfully simple issue.

The issue I was having:

I needed to generate a migration: rails generate migration add_product_url_to_wishlists. But when I would type that into the terminal, I would get the following error:

The answer is definitely in this error message 🤦‍♀

Other behavior:

  • rails console produced the same error as the generate migration command.


  • rails server ran successfully.

I should mention that my view of the error message was not as it looks above. I have, before now, kept the terminal text large…

“Black and Blue: The Invisible Man and the Masque of Blackness” Artist: Zak Ové

In an attempt to learn more, faster, I’m changing the style of these posts a little. I’ll be sharing notes, rather than creating micro tutorials of what I’ve learned each day.

  • Action Pack: the Controller and View Rails component.
  • We generate dynamic content in our views with Embedded Ruby (erb).
  • Ruby is an object oriented programming language.
  • Local variables, method names and method parameters should all start with a lower case letter or underscore.
  • Instance variables begin with an @.
  • Use underscores to separate words.
  • Class names are capitalized and CamelCased.
  • Symbols are string literals magically made into constants.
  • Everything…

“Black and Blue: The Invisible Man and the Masque of Blackness” Artist: Zak Ové

Today I created a store application called depot:

What happens in the depot?

  • Buyer can browse items, select items to purchase, supply info to make an order.
  • Seller can keep inventory of items to sell, determine orders that are ready to ship and those which have already been shipped.

What do I do to prepare (after writing out user stories)?

  • Draw out user flows.
  • Draw out data diagram.
  • Create the Rails project using the command, rails new depot.
  • Create the database migration, model, controller, views, and helper for products using the command, rails generate scaffold Product title:string description:text image_url:string price:decimal.

In two previous blog posts, we’ve written a smart contract using the Solidity programming language and compiled the smart contract to prepare it for deployment. Now we’ll test the code using the Mocha testing framework.

If you’re unfamiliar with Mocha, take a look at the Mocha docs and/or spend some time with this tutorial.

In addition to Mocha, we’ll use Ganache and Web3. Ganache will provide us with a set of unlocked accounts we will use in our local testing environment. In this case “unlocked” means that there is no need to use a public or private key to access…

The tiny “Hello World” app has two pages that link to each other. It works!

Now to break it so I can see why it works.

First I added a typo in the code:

I changed Time.now()(a Ruby method on a Time object) to Time.know()(a nonsense method on a Time object).

In the browser, the following appeared

I have this tiny “Hello world” app.

It has one page.

Now I will give it another page.

Each page will correspond with a separate view. For this new page I will use a new action method (goodbye) which will be in the same controller I’ve been working with(say_controller.rb).

New action method. Same controller. Here we go.

I add html to goodbye.html.erb so that it will show “Goodbye”. That’s fine but I’d really like to add links between both pages, too.

For links I will use a helper method!

link_to() creates a hyperlink to an action.

So in my hello.html.erb

Today was review day. This is all pertaining to my tiny “Hello World” app.

Here’s how it werks:

  • The user (in this case, me) navigates to a URL (http://localhost:3000/say/hello).
  • Rails matches the route pattern which it split into two parts (on slashes) and analyzed.
  • The say part of the URL is taken as the controller name and Rails creates an instance of the SayController class.
  • The hello part of the URL identifies an action. Rails invokes the method of that name in the controller.
  • The hello method creates a new Time object and saves it in the @time instance variable.

“Helo wirld I am smol”

Today, I learned about adding dynamic data to my “Hello World” app.

A Rails app, like any other web app, is associated with a URL. When someone points to the URL, they’re communicating with the application code.


I navigated to http://localhost:3000/say/hello and I saw the following:

Let’s Move

First thing! Here’s the video of the movement as promised in the blog post before this:

What I haven’t mentioned in previous posts is that while learning JavaScript last year, I noticed similarities between code and choreographed movement.

For example:

I liked to compare functions to phrases of movement. In dance, we’ll have a phrase of movement, let’s say it’s 1 minute long. And the way we know to begin that phrase is because we hear a musical cue, or see a movement cue, or hear a vocal cue. …

Morgan Fogarty

I’m just a girl, standing in front of some code, asking it to love her.

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