Skip to content

Instantly share code, notes, and snippets.

View josh-works's full-sized avatar

Josh Thompson josh-works

View GitHub Profile

Learning is cool.

Learning how to learn is a super power.

Lets look at the lense of learning a new language:

At the most tactical level, we would be studying the language itself. Reading a children's book in the target language, or making and studying flashcards.

At a higher level, we would be considering how we can best study the language. Flash cards? Reading children's books in the foreign language? Passive or active learning? etc.

On Learning

topics: {
      DEEP WORK:
        protect and cultivate (limited) attention,
        ear plugs,
        skeptical of music,
        examine your own process,
 downtime,
@josh-works
josh-works / turing_prep_starting_mod_1.md
Last active July 18, 2018 21:55
An opinionated guide of how to use your time between finishing the prework, and starting Turing.
@josh-works
josh-works / benchmark_double_inject.md
Last active April 13, 2018 17:45
ruby, benchmarking, double_inject

Double inject. What does it mean?

i want to know how long it takes to do some stuff. I've got some code like this:

def count_stuff(list)
  list.inject([]) do |results, item|
    results << get_results_from_something_else(values)
  end.flatten.uniq

I needed a URL validator - it needed to check that URL's had HTTP or HTTPS at the beginning. I initially wrote a "before save" action, but didn't like it cluttering up my model. I found a reference to basically "monkey patching" Rail's default Validator class, so that's what I did!

# concerns/url_validator.rb
require 'uri'

class UrlValidator < ActiveModel::Validator

  def validate(record)
    if record.url?

Better workflow (leads to) better questions (leads to) better jobs

We'll cover two things:

  1. Have a great workflow
  2. Ask great questions

Workflow

From Regis, who will cover the "workflow" portion of the spike

On cleaner controllers

A few days ago, I worked on a project that was mostly about serving up basic store data (modeled after Etsy) to an API.

We had a few dozen end-points, and all responses were in JSON.

Most of the action happened inside of our controllers, and as you might imagine, our routes.rb file was bananas.

One of the instructors made an exceptionally simple suggestion, I was embarrassed to not have seen it.

in .psqlrc, I've got:

\set PROMPT1 '\n%[%033[1;31;40m%] ➤ %[%033[32m%]psql%033[36m%]%/ %[%033[K%]%[%033[0m%]\n\n%[%033[1;33m%]%#%[%033[0m%] '
\set PROMPT2 '%[%033[1;33m%]%##%[%033[0m%] '
\timing
\set HISTSIZE 2000


\set alldata 'SELECT * FROM '

TL;DR

I'd like to alias awesome_print + the _ command in rails console to pp. In other words, I'd like pp[return] to function the same as ap _[return].

Context

As I'm spending more and more time in a rails console session, I'd like to be able to use awesome print to regularly evaluate objects.

I know I can enter ap _ at any time to return the prior object in awesome_print's sweet formatting, but I want to map ap _ to pp.

it takes six keystrokes (including return) to hit ap _, but only three for pp. The problem is, I couldn't figure out a way to alias this inside of my .irbrc.