Django Logging, The Right Way
Good logging is critical to debugging and troubleshooting problems. Not only is it helpful in local development, but in production it's indispensable. When reviewing logs for an issue, it's rare to hear somebody say, "We have too much logging in our app." but common to hear the converse. So, with that in mind, let's get started.
python  django  tutorial 
6 weeks ago
One-upping the NES Classic Edition with the Raspberry Pi 3 and RetroPie
An article/tutorial about how to turn a RaspberryPi into a retro gaming "console".
tutorial  retro  gaming 
november 2017
Inter UI font family
Inter UI is a font for highly legible text on computer screens.
font  typography  free 
november 2017
Pythonic code review
A few tricks and tips for reviewing Python code, with examples of things to look out for and built-in types you can use to solve common problems.
advice  python  code_review 
april 2017
40 Key Computer Science Concepts Explained In Layman’s Terms
To make learning more fun and interesting, here’s a list of important computer science theories and concepts explained with analogies and minimal technical terms. It’s like an ultra-fast-track computer science degree program for everyone, just to get you to understand the general concepts.
programming  article 
april 2017
Positioning Elements on the Web
Positioning layouts in CSS was once a very daunting task, and hacks like using tables for the entire layout were quite common. Over the years, the demand for better layout tools has led to steadily better support and techniques. Today we have options, and learning to manage each of these techniques is the key to creating complex layouts that remain easy to change and flexible enough to handle multiple screen sizes.
css  flexbox  tutorial 
april 2017
101 Questions to Ask in One on Ones « Building Customer Driven SaaS Products
So you’re having one on ones with your team. Awesome. It’s an essential element to being a good manager. But are you making the most of them?

Do you come in prepared and ready to make the most of each one or do some go better than others as you wing it half the time? Are you too dependent on them bringing the agenda? Do you ask the same 3-5 questions every time?

This list will help you make the most of each meeting and have a quick reference when you feel your questions may be getting stale or you have a few minutes left in a one on one.
management  advice 
april 2017
Questions for our first 1:1
In the last few years, I’ve had the pleasure of kicking off lots of new reporting relationships with both engineers and engineering managers. Over time, I’ve learned that getting some particular data during an initial 1:1 can be really helpful, as I can refer back to the answers as I need to give a person feedback, recognize them, and find creative ways to support them. Most of these I’ve stolen from some really amazing Etsy coworkers.
management  advice 
april 2017
The Moderately Enthusiastic Programmer
I feel like I’m practically the poster child for the “passionate programmer”. I code for fun, always have. I’m like the stereotype of the guy who’d be programming even if it didn’t pay. I play with new programming languages for the sheer hell of it. I write and speak about the joy of coding, and try my best to pass that joy along to others as best I can.

And yet… I find myself increasingly uncomfortable with the rhetoric of passion in programming.
february 2017
Code examples in Keynote
The last few weeks I've been working on slides for an upcoming talk I'm giving about Elm. One of the most painful parts has been has been formatting code in a way that's both readable and aesthetically pleasing. If you've spent much time in Keynote or PowerPoint, you know there is no magic button for this. Determined to find an easier way, I polled other Double Agents and have aggregated their collective knowledge
january 2017
Packaging a python library
I think the packaging best practices should be revisited, there are lots of good tools now-days that are either unused or underused. It's generally a good thing to re-evaluate best practices all the time.

I assume here that your package is to be tested on multiple Python versions, with different combinations of dependency versions, settings etc.
python  advice 
january 2017
Google's Python Class
Welcome to Google's Python Class -- this is a free class for people with a little bit of programming experience who want to learn Python. The class includes written materials, lecture videos, and lots of code exercises to practice Python coding. These materials are used within Google to introduce Python to people who have just a little programming experience.
programming  tutorial  python 
december 2016
Microservices – Please, don’t
I’m going to cover a few of the major fallacies and “gotchas” of the Microservices movement, coming from someone who worked at a company that also got swept up in the idea that breaking apart a legacy monolithic application was going to save the day. While I don’t want the takeaway of this blog post to be “Microservices == Bad”, ideally anyone reading this should walk away with a series of issues to think about when deciding if the move to a Microservice based architecture is right for them.
architecture  design  programming 
december 2016
Practical Guide to Securing macOS
This is a collection of thoughts on securing a modern Apple Mac computer using macOS (formerly OS X) 10.12 "Sierra", as well as steps to improving online privacy.
december 2016
Hero Patterns
A collection of repeatable SVG background patterns for you to use on your digital projects.
svg  patterns  design 
october 2016
The Terminal •
OS X Terminal tricks and tips from Craig Hockenberry.
shell  tips  article 
september 2016
Linux Performance Analysis in 60,000 Milliseconds
At Netflix we have a massive EC2 Linux cloud, and numerous performance analysis tools to monitor and investigate its performance. These include Atlas for cloud-wide monitoring, and Vector for on-demand instance analysis. While those tools help us solve most issues, we sometimes need to login to an instance and run some standard Linux performance tools.
devops  linux 
september 2016
Screencasts for programmers
Looking for top-notch screencasts? You are on the right page.`
list  programming 
september 2016
Miguel Grinberg - Flask at Scale - PyCon 2016
Do you think that because Flask is a micro-framework, it must only be good for small, toy-like web applications? Well, not at all! In this tutorial I am going to show you a few patterns and best practices that can take your Flask application to the next level.
python  video  talk 
september 2016
MIT 6.001 Structure and Interpretation, 1986
This course introduces students to the principles of computation. Upon completion of 6.001, students should be able to explain and apply the basic methods from programming languages to analyze computational systems, and to generate computational s...
programming  class  video 
september 2016
Design Principles Behind Smalltalk
The Smalltalk-80 system marks our fifth time through this cycle. In this article, I present some of the general principles we have observed in the course of our work. While the presentation frequently touches on Smalltalk "motherhood", the principles themselves are more general and should prove useful in evaluating other systems and in guiding future work.
programming  design 
september 2016
Understanding Python metaclasses
None of the existing articles [1] give a comprehensive explanation of how metaclasses work in Python so I'm making my own.
python  programming 
august 2016
On Kindness
Just a simple deeper dive into one of @rgladwell's tweets and what he meant by it. Good lessons in here.
august 2016
Game Programming Patterns
Game Programming Patterns is a collection of patterns I found in games that make code cleaner, easier to understand, and faster.

This is the book I wish I had when I started making games, and now I want you to have it.
game_programming  patterns 
august 2016
Collision detection for dummies
This article is a kind of companion article to Physics engines for dummies and talks about the act of actually detecting a collision between two shapes.

This article assumes the reader has a basic grasp of maths and geometry.
physics  game_programming 
august 2016
Physics engines for dummies
This time i'm going to talk about the basic components that make up a physics engine and how to put them together; this tutorial is aimed at programmers who have a basic grasp of maths and geometry but would like to step into the world of simulation.
game_programming  physics 
august 2016
How Physics Engines Work
This article will guide you through the essential physics of game engines. This is not an A-Z “how-to” guide. I’ve left out some major optimization and implementation details; a single article can only cover so much. My true goal is to point you in the right direction and teach the concepts that you’ll need to build upon later. The next step is up to you. I hope you’ll use this article as a springboard and go write your own game engine, researching advanced concepts in the process.
game_programming  physics 
august 2016
Best Practices for Designing a Pragmatic RESTful API
Your data model has started to stabilize and you're in a position to create a public API for your web app. You realize it's hard to make significant changes to your API once it's released and want to get as much right as possible up front. Now, the internet has no shortage on opinions on API design. But, since there's no one widely adopted standard that works in all cases, you're left with a bunch of choices: What formats should you accept? How should you authenticate? Should your API be versioned?
api  rest  opinion 
august 2016
Building with Make
If you are working with web and hybrid applications, you need a build tool. Transpiling code, bundling assets, minifying scripts, and optimizing images are some of the tasks that you perform frequently, and having a decent build system in place saves you a lot of time.
make  programming 
august 2016
My First 10 Minutes On a Server - Primer for Securing Ubuntu
My First 5 Minutes on a Server, by Bryan Kennedy, is an excellent intro into securing a server against most attacks. We have a few modifications to his approach that we wanted to document as part of our efforts of externalizing our processes and best practices. We also wanted to spend a bit more time explaining a few things that younger engineers may benefit from.
linux  security  server  tutorial 
june 2016
My First 5 Minutes On A Server; Or, Essential Security for Linux Servers
Server security doesn’t need to be complicated. My security philosophy is simple: adopt principles that will protect you from the most frequent attack vectors, while keeping administration efficient enough that you won’t develop “security cruft”. If you use your first 5 minutes on a server wisely, I believe you can do that.
linux  security  tutorial 
june 2016
In Python, it's all about the attributes
What are Python attributes, and how are they different from instance/class variables?
python  tutorial 
june 2016
Concurrency in Go, Part II
In Part I of this series, we covered the basics of concurrency in Go: the differences between concurrency and parallelism, and how to implement goroutines, channels, and buffered channels in Go. Armed with those building blocks, we can work on some more sophisticated concurrency patterns by introducing synchronization.
go  tutorial 
june 2016
An Intro to Concurrency Patterns in Go
If you’re curious about the basic concurrency patterns in Go, we’ll cover what concurrency is, and then go over a couple examples to help you understand the pattern. We won’t talk about some of the more in-depth topics around concurrency, like the sync library, using mutexes, etc. Instead, we’ll focus on the building blocks to help you get started.
go  tutorial 
june 2016
Entry-level, synchronous & transactional event sourcing
Event sourcing is an approach in which changes to application state are persistently stored as a stream of immutable events. This is in contrast to typical CRUD applications, where only the "current" state is stored and mutated when commands come into the system.
cqrs  events 
june 2016
The Software Developer’s Library
A treasure trove of books for people who love code. Curated by Eric Elliott.
list  programming 
june 2016
Unintuitive Things I’ve Learned about Management (Part 2)
And yet, despite management being — like parenting— a certain kind of black art with no hard and fast rules, of course there are better and worse managers. A better manager gets better results. You can’t always measure this in weeks, months, or even sometimes years, but it eventually emerges clear as daylight.
june 2016
Unintuitive Things I’ve Learned about Management (Part 1)
And yet, despite management being — like parenting— a certain kind of black art with no hard and fast rules, of course there are better and worse managers. A better manager gets better results. You can’t always measure this in weeks, months, or even sometimes years, but it eventually emerges clear as daylight.
june 2016
Building remote-first teams
A kind of how-to guide for successfully running a remote-first team.
tutorial  remote 
june 2016
Good logging practice in Python
Logging is important for system developing, debugging and running. When a program crashes, if there is no logging record, you have little chance to understand what happened. For example, when you are writing a server, logging is necessary.
programming  python 
june 2016
Running a meetup
A meetup is usually divided into a couple of phases: Before, Arrival, Main and Goodbye. To easily see what there’s to do, the format of this post is slightly different than the others. It’s not so much discussions but more of a check list for each of the phases, so you don’t forget anything.
may 2016
How to Deploy Software
Whenever you make a change to your codebase, there's always going to be a risk that you're about to break something. No one likes downtime, no one likes cranky users, and no one enjoys angry managers. So the act of deploying new code to production tends to be a pretty stressful process. It doesn't have to be as stressful, though
deployment  programming  devops 
may 2016
Cron Best Practices
However, like many older Unix tools, cron(8)‘s simplicity has a drawback: it relies upon the user to know some detail of how it works, and to correctly implement any other safety checking behaviour around it. [...] There are a few ways to make the way you use cron(8) more robust if you’re in a situation where keeping track of the running job is desirable.
cron  linux  best_practices 
may 2016
Apache vs Nginx: Practical Considerations
Apache and Nginx are the two most common open source web servers in the world. Together, they are responsible for serving over 50% of traffic on the internet. Both solutions are capable of handling diverse workloads and working with other software to provide a complete web stack.

While Apache and Nginx share many qualities, they should not be thought of as entirely interchangeable. Each excels in its own way and it is important to understand the situations where you may need to reevaluate your web server of choice. This article will be devoted to a discussion of how each server stacks up in various areas.
apache  nginx 
march 2016
SSH: Best practices at Aris' Blog - Computers, ssh and rock'n roll
I noticed that many people were not aware of some basic features of OpenSSH. I will attempt to give a few advises, prioritized in feasibility order, and with graphical annotations.
devops  linux  security  tutorial  ssh  server 
february 2016
Neat Algorithms - Paxos
This is an explanation and demonstration of an extraordinarily neat algorithm called Paxos. Paxos is a family of algorithms for teaching a whole bunch of decidedly unreliable processes to reliably decide on stuff. More formally: it allows a group of unreliable processors to deterministically and safely reach consensus if some certain conditions can be met, while ensuring the group remains consistent if the conditions can’t be met.
algorithms  reference 
february 2016
The Linux Firewall
There are several firewall applications for Linux, but what you may not realize is that, at the heart of all these programs is a single all-mighty application that is built right into the Linux Kernel: iptables. This is the Linux firewall. No matter which program you use to configure your firewall under Linux, it ultimately all comes down to iptables. All that these other programs do is configure it.
linux  security  tutorial 
february 2016
Game Programming Patterns
Game Programming Patterns is a collection of patterns I found in games that make code cleaner, easier to understand, and faster.
game  programming  patterns  design 
february 2016
Rooms and Mazes: A Procedural Dungeon Generator
Well, I finally got some time to think about my roguelike again and today, I’m here to… keep you hanging. Alas, you are at the mercy of my wandering attention span! Instead of game loops, today we’re going to talk about possibly the most fun and challenging part of making a roguelike: generating dungeons!
game  programming 
february 2016
The Feynman Lectures on Physics
Caltech and The Feynman Lectures Website are pleased to present this online edition of The Feynman Lectures on Physics. Now, anyone with internet access and a web browser can enjoy reading a high quality up-to-date copy of Feynman's legendary lectures.
ebook  physics  lecture 
january 2016
Awk in 20 Minutes
Awk is a tiny programming language and a command line tool. It's particularly appropriate for log parsing on servers, mostly because Awk will operate on files, usually structured in lines of human-readable text.
programming  tutorial  unix 
january 2016
Postgres full-text search is Good Enough!
The search has become an important feature and we've seen a big increase in the popularity of tools like elasticsearch and SOLR which are both based on lucene. They are great tools but before going down the road of Weapons of Mass Search, maybe what you need is something a bit lighter which is simply good enough!
postgres  database  search  tutorial 
january 2016
Choosing an HTTP Status Code — Stop Making It Hard
A visual decision tree for how to choose the proper HTTP response code for (almost) any given situation.
api  http  rest  reference 
january 2016
The Complete Guide to Securing Amazon Web Services
Welcome to the complete guide to securing Amazon Web Services. As I was researching how to secure my AWS resources, I realized there isn’t a one-stop guide for securing every piece of AWS. I’ve compiled from around the web (including great resources from Amazon,, and others) to build this guide.

This guide will be updated as new services arise, configuration changes occur, or other things happen that require an update to the guide.
aws  security  tutorial 
january 2016
Very simple 'git push' workflow to deploy code on your own server
This technique isn't new. In fact, it's far from it. Around 2013, everyone seemed to be using this (or some variant of it) to deploy simple projects. But since then, it seems to have quiet down a bit. That's a shame, because it's super easy to use.
git  deployment  software 
january 2016
Smash TV on Vimeo
Modern electronic mixes set to visuals made from found video of the 80s and 90s
video  mix  music 
november 2015
PostgreSQL on the Command Line
I’ve been using PostgreSQL on a daily basis for the last four years. While I initially resorted to GUI applications to interact with databases, I now exclusively use the built-in command line tools, allowing me to work more efficiently while sticking to my preferred tools.
postgres  database  tutorial 
november 2015
Postgres Guide
We here are very big fans of Postgres as a database and believe it is often the best database for the job. For many though, working with and maintaining Postgres involves a steep learning curve. This guide is designed as an aid for beginners and experienced users to find specific tips and explore tools available within Postgres.
database  guide  sql 
october 2015
Charging By the Project or the Hour
What are you worth? How much do you charge for the wonderful work that you do? How do you communicate your value to your clients? Do you quote an hourly rate, and then present a tally of hours and expenses at the end of a project? That's typical of many IPs, who find this the simplest way to charge their clients. Or do you quote an up-front, flat rate for a project? This eliminates the sphincter-tightening moment at the end of the job when you present your bill. You run the risk, however, of seriously undercharging if the project turns out to be more complicated than you thought it would be.
freelance  advice 
october 2015
Tips for Scaling Web Apps
This blog post is a short list of things you can do, on basically any web project, to improve performance, scalability, and cost.
advice  web  performance 
october 2015
The anatomy of a Go project
There are a lot of resources about getting started in Go and places where a beginner can play around and become comfortable with the language. This tutorial is about taking the next steps: building robust projects that are fully documented, tested, and usable by the Go community.
tutorial  programming 
august 2015
How do roguelikes generate levels?
I think a large part of Brogue’s appeal lies in its level generation, which creates tight spaces full of interesting environmental detail, with traps to avoid, chasms to fall into, and a strange ASCII beauty. I spoke to the game’s creator, Brian Walker, about what his design goals for those levels are, how you balance a game you can’t predict, and the exact process by which the game creates those levels.
game  article  interview 
august 2015
JavaScript: The Right Way
This is a guide intended to introduce new developers to JavaScript and help experienced developers learn more about its best practices. Despite the name, this guide doesn't necessarily mean "the only way" to do JavaScript. We just gather all the articles, tips, and tricks from top developers and put it here. Since it comes from exceptional folks, we could say that it is "the right way", or the best way to do so.
javascript  reference  programming  js  tutorial 
july 2015
Sound Tests and Audio Test Tones
Our Sound Tests will help you to intuitively benchmark your audio Equipment and loudspeakers, your listening environment and room Acoustics or your Hearing without any other device required. In these tests, your ears will be your best judge.
may 2015
PyFormat: Using % and .format() for great good!
Python has had awesome string formatters for many years but the documentation on them is far too theoretic and technical. With this site we try to show you the most common use-cases covered by the old and new style string formatting API with practical examples.
python  tips  programming 
april 2015
The Ultimate Frontend Build Too: make
At Rdio, we've used one-off, hand-spun scripts to build our frontend for years. I decided we needed to fix this recently and dove into finding some build tool that could make our builds consistent and fast. I wanted something blessed by the frontend community as there is a bit of code we're looking to open source in the coming months, but after several failed attempts I became convinced that all the frontend specific build tools are less mature and less flexible than tools that have existed for decades. I reached for trusty old make, and now I don't know why I started with anything else.
build  make  programming 
march 2015
Debugging your Python code with pdb
[...] python has a neat debugging feature (like most other languages) which comes in very handy [...]. This guide is quick tutorial which will hopefully make your life easier.
python  tutorial 
march 2015
Most common git screwups/questions and solutions
I was looking to learn a bit more about the parts of git I’ve not ventured into yet. What better way that looking the most common ways people screw them up and how to fix the resulting problems! Here’s a short list, compiled from my own experience and issues I’ve come across on the Internet.
git  tips 
march 2015
SQLAlchemy and You
Without doubt are most new Python web programmers these days chosing the Django framework as their gateway drug to Python web development. As such many people's first experience with a Python ORM (or maybe an ORM altogether) is the Django one. When they are later switching to something else they often find SQLAlchemy unnecessarily complex and hard to use. Why is that the case?
python  sqlalchemy  orm 
february 2015
On the role of CTO
I get asked frequently to define the role of CTO, and I thought I would share some of my thoughts.
blog  business 
february 2015
25 Tips for Intermediate Git Users
As someone who’s always felt fairly comfortable in Git, I thought sharing some of the nuggets I learnt with the community might help someone to find an answer without needing to do lots of research.
git  programming  tips 
january 2015
How PAPER Magazine’s web engineers scaled Kim Kardashian’s back-end (SFW)
A description of how Paper Magazine handled the rush of traffic from publishing nude photos of Kim Kardashian.
web  architecture  article 
january 2015
“Merge pull request” Considered Harmful
An alternative to using Github's "Merge Pull Request" button that gives you a more linear, readable history.
article  tutorial  git  github 
january 2015
Robert Penner's Easing Functions
A collection of swappable functions that add flavor to motion.
javascript  library  animation 
december 2014
Building your own personal cloud with sovereign (Part 1)
This is a series of two posts which will outline how to set up this system on a cloud server (explaining what each part does), then how to set up all the software on your home machine to take advantage of it all.
server  tutorial 
december 2014
Running Processes
I keep suffering a lack of decent process supervision mechanisms provided by operating systems I use. [...] This post describes alternatives I’ve found to help relieve my suffering, but has ended up exceedingly long.
unix  reference  linux  os_x 
december 2014
Hacker's Guide to Setting up Your Mac
Hackers obsess over automation. We want robots to do the grunt work so we can focus on the fun stuff. One area that's ripe for automation that hasn't seen much attention lately is setting up your computer.
homebrew  mac  tutorial 
december 2014
Static Web Apps - A Field Guide
This guide will introduce you to the world of static web applications and offer solutions to common challenges encountered while building them.
html  web  reference  web_app 
december 2014
SEO advice: url canonicalization
Before I start collecting feedback on the Bigdaddy data center, I want to talk a little bit about canonicalization, www vs. non-www, redirects, duplicate urls, 302 “hijacking,” etc. so that we’re all on the same page.
web  seo 
october 2014
A Software Developer's Guide to HTTP Part I - Resources
In this series of articles, we'll look at HTTP from a software developer's perspective. Having a solid understanding of HTTP can help you write better web applications and web services. It can also help you debug applications and services when things go wrong. We'll be covering all the basics including resources, messages, connections, and security as it relates to HTTP.
http  reference  web 
october 2014
Google Web Fonts Typographic Project
There are over 640 Google web fonts available for free. Problem is, most don’t work well when applied to typical webpage (desktop) layouts and it’s not easy to find typefaces that work well together. This collaborative, ongoing project helps provide typographic inspiration for using Google’s web fonts for web applications.
august 2014
« earlier      
advice ajax algorithms animation anti-pattern apache apc api app application architecture art article aws backbone backup bah bars bash best_practices bitters blog book booze build bundle business cheat_sheet class clients cms cocktails code_review coderfaire coffee college command command_line compost continuous_integration cookbook courses cqrs cron css data data_structures database deployment design design_pattern desktop devops diagram dj django doctrine documentary documentation ebook editor email emergency essay events example exercise extension fashion feminism fitness flexbox font fonts framework free freelance gadget game game_programming gaming garden git github gmail go google guide headphones health helicopter hg homebrew hosting html html5 http icons ie interview irc java javascript jquery js json learning lecture less library life line linux liquor list logic mac magento make management markdown mathematics maven media_temple meetup mercurial microframework mit mix mongdb mongodb monitoring motivation music mysql networking nginx nosql oauth open open_source opinion orm os os_x oss patterns pdf performance photography photoshop php physics plan plugin polyfill postgres presentation privilege process programming project puppet python quake3 queue rabbitmq recipes redis reference regex remote rest retro rfc ringtones ruby saas safari sass scala script search security seo server service shell silex simple software source spec sql sqlalchemy ssh story svg symfony symfony2 symfonylive talk testing textmate theme tips tool tumblr turorial tutorial twig twitter typography ui ui_element unix version_control video vim wallpaper watches web web_app web_design whiskey wii wireframe work x xss

Copy this bookmark: