As of today, if you have a GitHub account (with access to
 Codespaces ), you can start
contributing to sqlc in three minutes. 

 
 Go to kyleconroy/sqlc 
 Click the "Code" dropdown and click "New Codespace" 
 Wait ~75 seconds 
 Run make test 
 Wait ~100 seconds 
 Repeat 
 

 Are Codespaces perfect? Absolutely not. My personal laptop is about 4x…
Ask any Go developer and they will tell you how painful it is to write programs
that talk to SQL databases. Go feels like it isn't even half as productive
compared to working with toolkits like SQLAlchemy , Diesel ,
 Hibernate or ActiveRecord . The existing tools in the Go
ecosystem force application developers to hand-write mapping functions or
litter their code with unsafe…
Determined to go to more concerts this year, I wanted a better way to explore
local shows. I listen to the majority of my music on Spotify, so I decided to
make playlists for each of my favorite venues featuring artists from their
upcoming concerts. 

 Each playlists is updated once a week on Monday. The order is determined
by concert date. Once an artist has performed,…
PEP 594 outlines the plan to
deprecate and remove packages from the Python standard library. If accepted in
its current form, PEP 594 will break 3.8% of all Python 3 packages on PyPI. 

 As of May 2019 there are 3,604 Python 3 packages on PyPI (out of 94,680) that
import packages deprecated by PEP 594. 
 
 total packages: 181225
 valid packages: 178642
python3…
After the outcry from my last post reached Jack himself,
Twitter launched a new export option that includes all your data in a machine
readable format. We did it! 

 Or did we? 

 It turns out Jack didn't read my post. I didn't get a call from the Twitter
executive team. Instead, it was brought to my
attention that the account
export I've been looking for…
Most social networks give you the option of downloading an archive of all data stored in your account. If you live in the European Union, my understanding is that these services are now required to give you access to this data, thanks in part to GDPR. However, the quality of archives varies from service to service. 

 Your Twitter Archive 

 Twitter makes it easy to download an…
Over the years, I've tried many different strategies for isolating individual tests at the database layer. 

 One shared database, but all data is sharded by an account : Works in the short term, but eventually you'll have global tables that aren't scoped to an account. 

 Creating a new database for each test : Can be slow and error prone. Difficult to ensure all connections have…
The humble API client. A deceptively simple piece of software. Make a request and parse a response. Repeat. 

 With the rise of public web services, API clients have become the main integration point. However, many of the Go clients I encounter are obtuse. Here's my guide for writing boring API clients that age well. 

 We'll use the Dropbox Paper API as our example. First, start…
I recently published my first blog post of 2017 . The fact that it was posted exactly one year after my last post was mere coincidence. Looking over the the last six years of my blog, it's hard to really call it a blog at all. 

 
 
 
 Year 
 2011 
 2012 
 2013 
 2014 
 2015 
 2016 
 2017 
 
 

 
 
 Number of Posts 
 0…
As progress ive web apps become more popular, navigation has become fraught with peril. It's common for apps to make tens of requests to render a single page. Parts of the application load one by one until the entire page is finished. Poor network connections and slow endpoints expose intermediate states to users. Asynchronously loaded page elements shift click targets, resulting in a usability…
I've been thinking about a specific problem when writing technical
documentation: code examples. In most cases, code examples are written by hand
in a single language. If you want to add more languages, you'll need to write
more examples. As you write more examples, typos creep in. The code no longer
compiles. How can you fix this problem? I have a couple of ideas. 

…
That isn't to say that Last Week Tonight doesn't report on serious news. It
does, but every segment includes plenty of humor (and usually a dick joke).
Here's what Last Week Tonight would look like if it aired on the Public
Broadcasting Service. 

 

 Why Flickr? YouTube marked it as stolen content. Vimeo has a weekly upload
limit of 500MB. Dropbox will disable…
Wow, I haven’t written a post in a while. 

 This one will need to be really good, then. 

 Huh, my blog sure looks outdated. 

 I can’t write a post with it looking like that. 

 I need to update the design. 

 How do I deploy this thing again? 

 Oh, it’s a full-blown web application. 

 All blogs today use static site generators.…
About a year ago, my friends found out that I had never played Pokemon Red or
Blue. After some prodding, I agreed to play, filling a supposed void in my
childhood. I was on my way to be the best there ever was. 

 Thanks to OpenEMU , playing classic video games is easier
than ever. All you need is a ROM, which are easy to find via Google. They're
even legal if you own the…
Next time you're in the store, grab a random product and look turn it around.
You'll probably see one of these: 

 

 Encoded in that bar code is the product's Global Trade Item Number
(GTIN) . It's 8-14 digits long and almost every product sold in the
world has one of these numbers. They are managed by the GS1 , a
non-profit organization that manages standards for…
Expiring domain names make me sad. Those expiry emails are a constant reminder
that I had an idea I didn't execute on (sometimes for the better). After my
most recent expiry, I thought I'd take a trip through my expired domains and
see what could have been. 

 scrapebook.org 

 I've toyed with the idea of deleting my Facebook account many times, but I'm
always…
About two weeks ago reddit user AZxWildcat submitted this awesome image to the College Football subreddit . 

 

 Instantly after seeing this, I wanted to know more. How often does this happen? What year did it happen the most? When did this first happen? 

 Science Time 

 My initial hypothesis was that circles of parity occur once or twice a season. To test this…
More and more websites are popping up toolbars when you scroll down a certain distance on a page. 

 

 I can't stand these annoying bars, some of which are powered by Apture.com 

 

 I think Annoy. should be added to that list. If you want to block the Apture bar, simply add 
 
127.0.0.1 www.apture.com
 

 to your hosts file (usually…
Just finished up hacking on my submission for the Wufoo API contest. VoiceForms
4000 takes any existing Wufoo form and turns it into a phone survey. The app is
written in Python, runs on App Engine, and uses Twilio for all the phone magic. 

 https://voiceforms4000.appspot.com/ 

 Go ahead and fill one of the sample forms and tell me what you think. 

jQueried is a Safari 5 extension in the same vein as the jQuerify bookmarklet. jQueried adds jQuery to the current webpage, a task which can be very useful for debugging. 

 After finishing my first extension, simple as it is, I am impressed with the simplicity of Safari's extension API. Coupled with Firefox's Jetpack and Chrome's extension system, it looks like the future of browser…

 
 
 

 
 Currently, Apple's stock is at an all time high. A share today is worth over 40 times its value seven years ago. So, how much would you have today if you purchased stock instead of an Apple product? See for yourself in the table below. A huge thanks to everymac.com for the original prices and release dates. All values are calculated using Apple's current stock…
The objective of StarFighter is to fly and blast through asteroids
and space debris, making it to the end of the level with a high score.
The ship is controlled entirely with the mouse. Lasers are fired by clicking
the mouse button. The ship can also launch bombs by holding down the mouse
button and releasing it after at least half a second. The longer the mouse button
is held…
My latest CS184 project is now complete and ready for viewing. We had to take
in Bezier patches and use tessellation to create triangles using OpenGL. But I
know what you really want to see: videos. 

 

 

We were tasked with creating a raytracer. Images are followed by the command line which produced them, as well as the scene file describing the setup. All times were calculated using the linux time program. All images on this page were output using my raytracer. 

 

 

 Three spheres and a Triangle 

 

 
 
 Command: 
 ./raytrace…