Video Games With Good Stories
Posted on September 29, 2018
(Last modified on June 10, 2026)
| Thomas Nelson
Alright, so in general video games have really really bad writing in them. And a lot of them can get away with that, because they’re still fun. But there are quite a few video games that actually manage to have good stories. Here’s a list of some that I’ve played.
- Arcanum: Of Steamworks & Magicka Obscura
- Bastion
- Bioshock
- Chrono Trigger
- Golden Sun 1 & 2
- Her Story
- Persona 5
- Planescape: Torment
- Portal
- Puzzle Agent
- The Stanley Parable
- Thomas Was Alone
- To The Moon
- Transistor
- Vampire the Masquerade: Bloodlines
- The Witcher series (especially the 2nd and 3rd games)
- The Wolf Among Us
- The World Ends With You
Programming Articles and Talks
Posted on September 18, 2018
(Last modified on June 10, 2026)
| Thomas Nelson
Here’s a collection of talks or articles that I really enjoy.
Joe Duffy describes the error model in an experimental programming language that he worked on. Starts off by describing different ways that programming languages give programmers to express and deal with errors. He discusses the pros and cons of each strategy, and then goes on to describe how they designed around those problems to create something truly unique.
[Read More]
Books I Love
Posted on September 15, 2018
(Last modified on June 10, 2026)
| Thomas Nelson
I can expand more or add to this list later, but here’s a quick list of books I love:
- Albert Camus - The Fall
- Aldous Huxley - Brave New World
- Aldous Huxley - Island
- Daniel Keyes - Flowers for Algernon
- David Foster Wallace - Infinite Jest
- Douglas Adams - The Hitchhiker’s Guide to the Galaxy
- Ernest Hemingway - A Farewell to Arms
- F. Scott Fitzgerald - The Great Gatsby
- Franz Kafka - Metamorphosis
- George Orwell - 1984
- George Orwell - Animal Farm
- George Orwell - Homage to Catalonia
- H.P. Lovecraft - The Colour Out of Space
- Hermann Hesse - Steppenwolf
- J.D. Sallinger - The Catcher in the Rye
- J.K. Rowling - Harry Potter series
- J.R.R. Tolkien - The Hobbit
- John Green - Looking For Alaska
- John Steinbeck - In Dubious Battle
- John Steinbeck - Of Mice and Men
- Kurt Vonnegut - Cat’s Cradle
- Kurt Vonnegut - Mother Night
- Lewis Carrol - Alice’s Adventures in Wonderland and Through the Looking Glass
- Mark Z. Danielewski - House of Leaves
- Neil Gaiman - The Ocean at the End of the Lane
- Orson Scott Card - Ender’s Game
- Orson Scott Card - The Worthing Saga
- Oscar Wilde - The Portrait of Dorian Gray
- Philip K. Dick - Ubik
When to Use Programming Languages
Posted on August 30, 2018
(Last modified on June 10, 2026)
| Thomas Nelson
Java
- Willing to take a small speed decrease in order to have a much better time programming than C/C++
- Need to interface with <
Obscure Technology>. Because Java probably has a library for it
Kotlin
- Want/need to use Java libraries but want to feel modern
Groovy
- I want to write a version of Java that gets rid of everything good about Java while keeping all of the bad
C
- Need the maximum amount of speed possible
C++
- Need the maximum amount of speed possible while also having the maximum number of language features that don’t fit together
Javascript
- Need to write something quick for the browser
Typescript
- Need to write something large for the browser
Python
- Short scripts, one-offs
- Want to have a good time programming while not caring about speed or ease of refactoring
Go
- Want the power of concurrency, but don’t want to actually learn concurrency
Clojure
- Want/need to use Java libraries but are a hipster
- Rich Hickey is my spirit animal
- Seriously though, Clojure is really good for processing data. It has a lot of functions in the standard library for manipulating lists and maps. It’s my tool of choice when working with large JSON files.
Rust
- I’m a sub and I want my compiler to be the dom
Haskell
- Want to prove that all those years of mathematics were useful
- Want to feel superior to the plebs that can’t understand your beautiful monads
OCaml
- Want to use a high-level language but am intimidated by Haskell
- Want a functional language with the opportunity to use imperative programming without having to wrap all values in a ThisIsImpureDontLetItContaminateThePurity monad
PHP
Tips
Posted on July 11, 2018
(Last modified on June 10, 2026)
| Thomas Nelson
Best Practices
Everything is Code
Advantages:
- Copy paste! Easily take concepts from one project and use them in another
- Source control. See who changed what why.
- Rebuilding. If you have everything in source control, it becomes way easier to rebuild in case of a disaster.
- Editing. You know what computers are really good at? Manipulating text. Take advantage of that by expressing everything as text.
And by everything, I mean EVERYTHING that you possibly can. Jenkins jobs, server configuration, Spinnaker pipelines. All of these things can be expressed in text form.
[Read More]