Skip to content

Instantly share code, notes, and snippets.

View briankung's full-sized avatar

Brian Kung briankung

  • Chicago
View GitHub Profile
@briankung
briankung / The Pragmatic Programmer Chapter 1: A Pragmatic Philosophy.md
Last active November 7, 2025 22:04
The Pragmatic Programmer Chapter 1: A Pragmatic Philosophy

A Pragmatic Philosophy

I read the first two chapters of [The Pragmatic Programmer: From Journeyman to Master][pragprog], which are entitled "A Pragmatic Philosophy" and "A Pragmatic Approach," respectively. I'll go through and summarize my thoughts "A Pragmatic Philosophy" first:

The preface of The Pragmatic Programmer begins by explaining the meaning of the word 'pragmatic,' which comes from the greek word pragmaticus, or "skilled in business." I get the feeling that this is the central pivot point around which the rest of the book hinges. Skill and craftsmanship are emphasized from the get-go.

Business needs are also a key element, though I get the feeling that it has less in terms of doing whatever the "business person" says and more to do with contextualizing the job of programming within the context of the greater problem at hand.

The sections in the chapter were broken down as seen below. These are the guiding principles behind the rest of the book.

require "minitest/autorun"
TRAFFIC_TRANSITIONS = {
"red" => "green",
"green" => "yellow",
"yellow" => "red",
}
def is_valid_traffic_sequence(sequence)
sequence.each_cons(2) do |before, after|
@briankung
briankung / The Joel Test: 12 Steps to Better Code.md
Last active April 29, 2025 10:25
The Joel Test: 12 Steps to Better Code

The Joel Test: 12 Steps to Better Code

I just wanted to make note of Joel Spolsky's "highly irresponsible, sloppy test to rate the quality of a software team." It seems like a pretty straightforward and comprehensive litmus test for overall quality of a software team. For your viewing pleasure: [The Joel Test.][joel test]

In short, the steps are:

  1. Do you use source control?
  2. Can you make a build in one step?
  3. Do you make daily builds?
  4. Do you have a bug database?
@briankung
briankung / docker-pry-rails.md
Last active January 2, 2025 05:19
Using pry-rails with Docker

First, add pry-rails to your Gemfile:
https://github.com/rweng/pry-rails

gem 'pry-rails', group: :development

Then you'll want to rebuild your Docker container to install the gems

@briankung
briankung / 00.md
Last active May 14, 2024 19:20
[RFC] Making sense of secure token authentication in Rails

/ be me

/ be working on new Rails API web app

/ ...I can't. I hate this format

...so I was looking up how to do simple, secure authentication in Rails for my super secret project which you definitely can't find by looking at recent activity on my [GitHub account] (Hail [Mammon][[0][zero]]) and realized that I hadn't implemented authentication in Rails in a long time. The closest I'd come to was throwing [Devise] into my app and grumpily remembering to configure the mailer after the fact.

This will seem unrelated, but bear with me: I learned how to calculate interest rates on loans in something like 6th grade. I have since forgotten how to do that without assistance. Much like how I would have been much better prepared to choose a mortgage back then, I would in some ways be much better prepared to figure out authentication a few years ago when I was just starting out in web dev - and had just implemented it from the [Hartl tutorial]. That said, just like how I now know more of what I'm looking for

|Question |ChatGPT Response

@briankung
briankung / Learning Object Oriented Python.md
Last active September 7, 2023 13:24
Learning Object Oriented Python

Learning Object Oriented Python

I wrote this as a guide for a financial analyst friend of mine looking to learn Python. He is already fairly well versed in doing Project Euler problems in Ruby. All italicized text is for the benefit of any other readers, such as yourself.

Each section is divided into a short resource (10 minutes or less), a long resource (days to weeks or more), and a challenge.

~

So what you're looking to do is to be able to recreate financial models in code. And other types of models. This is a noble pursuit.

@briankung
briankung / The Pragmatic Programmer Chapter 4: Pragmatic Paranoia.md
Last active March 8, 2023 22:31
The Pragmatic Programmer Chapter 4: Pragmatic Paranoia

Pragmatic Paranoia

This chapter is about defensive coding practices, both against users of your software and against yourself. Pragmatic Programmers, after all, understand that everyone makes mistakes, even themselves.

Design by Contract

This confused the shit out of me. I wasn't entirely sure what the difference was between a contract and a unit test.

Contracts are introduced in the context of employment contracts. That is, before any work is done, the responsibilities of both parties are defined, as well as the consequences of failing. Contracts in programming are similar. As I mentioned before, I wasn't able to make a strong distinction between contracts and unit tests (given some condition, when some event, then this should happen, though I may be confusing this with [BDD][bdd]). It's all a bit jumbled in my head.