Graham King
Solvitas perambulum
RustPerformance / optimizationLinux / UnixAssemblyEngineering blogs
- Posts
- 256 from 20 Oct 2005 to 23 Aug 2025
- Posting
- now and then
- Kind
- personal blog
- Feed
- https://darkcoding.net/index.xml
2025 6
2024 4
2022 12
- Linux: What can you epoll?
- Underrust: Multiple Return Values
- Overthinking Leetcode's Two Sum with SIMD
- Underrust: What is the cost of sync::Once?
- Underrust: Does it matter what type (u8, u32, ...) I use?
- The Underrust: Rust's assembly output
- A very small Rust binary indeed
- A random number you already have: The stack address
- Return Value Optimization in Rust
- Rust atomics on x86: How and why
- Rust is also C
- epoll: The API that powers the modern internet
2021 4
2020 5
2019 1
2018 3
2017 2
2016 2
2015 17
- How Ada Lovelace solved problems
- Facebook’s code quality problem
- Decrypt your HTTPS traffic with mitmproxy
- OSCON 2015: Impressions
- GopherCon 2015: Favorite talks
- We are Equality
- Building shared libraries in Go: Part 2
- Building shared libraries in Go: Part 1
- How memory is allocated
- Go: Slice search vs map lookup
- Software engineering practices
- How I read job postings
- Go: The price of interface{}
- Science fiction: Ancillary Sword
- Quotes from veteran software engineers
- Raw sockets in Go: Link layer
- Continuous Delivery: my notes
2014 8
2013 18
- Go: How slices grow
- My setup: Hardware
- Kinesis Advantage after four months
- Realtime Conf 2013: Favorite talks
- WordPress Black Hat SEO dissected
- Quote: Look well to each step
- What if everyone worked remotely?
- How GPG works: Encrypt
- Online upgrades in Go
- Quote of the day: Bruce Schneier
- SSH and OpenPGP keys
- Co-located teams are a business risk
- We are all polyglots
- Rust: What I learnt so far
- PyCon 2013: My two favorite talks
- Chapter books for a three / four year old
- Google World
- Keyword arguments in C
2012 21
- How will you measure your life? – book notes
- Why I prefer Android to iOS
- Tools for Change, Social Change Conference 1995 notes
- David Suzuki on television
- Resident and Virtual memory on Linux: A short example
- What is WebRTC? Post on LincolnLoop’s blog
- John Cleese – Take micro creativity retreats
- Does success at high school predict success in life?
- Democracy at work
- What is SPDY? Post on Lincoln Loop’s blog
- Optimize for motivation: Post on Lincoln Loop’s blog
- Go: Targeting a different architecture #golang
- Finally understanding Unicode and UTF-8
- Go @ Vancouver Polyglot Unconference
- Ward Cunningham quotes
- Code coverage in django with ‘coverage’ and ‘django-jenkins’
- In-memory key-value store in C, Go and Python
- Go after four months #golang
- Who we are. Why we do it.
- Miami Vice: Off-duty
- In Go, is your terminal a console or a pipe? isatty golang
2011 20
- Proxy socket.io and nginx on the same port, over SSL
- Pretty command line / console output on Unix in Python and Go Lang
- On why hackers don't work on large teams
- Machiavelli on Occupy Wall Street
- Ad-blocking your iPad
- Finding memory leaks in Python with objgraph
- DjangoCon 2011: Psychology for your webapp
- Hostage Negotiation 101
- Cleaning up old git branches
- Profiling Django for CPU bound apps
- Unicode in Python 2: Decode in, encode out
- git: Resolving 'git gc' error: cannot lock ref
- The death of Sean Hoare, whistleblower
- Contributing to Django: quickstart
- Kobo eReader Touch on Ubuntu Linux
- Django class-based views are easy
- My experience with django-mptt
- Improved Ubuntu notifications: gnome-stracciatella-session
- Elizabeth Yin: You don't need a programmer, you need a market survey
- Running a Tor relay / node / server on Ubuntu
2010 21
- No managers, no meetings: Why working from home is so much more productive
- lintswitch: Automatically run pylint / jslint on your code
- GNU Screen basics quick reference
- Psychology for your webapp at BarCamp 2010
- Quote: We want Freedom, not Ping-Pong tables
- Question: Income Distribution
- Research Papers Archive
- Quote of the day: Materialism
- Behaviour Change Toolkit
- Kathy Sierra: Give your users super-powers
- A quote from Richard Stallman
- Notes from O'Reilly's Website Optimization
- You'd be happier without your television. Sell it on Craigslist.
- Scientific proof: You need to get rid of that TV
- Television and your brain maps
- Open up your WiFi
- Setting up Monit on Ubuntu
- Setting up Munin on Ubuntu
- Restarting MySQL master-master replication
- Treating the common cold
- Predictably Irrational, by Dan Ariely
2009 29
- Influence, by Robert Cialdini
- How we know what isn’t so, by Thomas Gilovich
- Memcached: List all keys
- Guy Kawasaki's 10-20-30 presentation rule
- I'm on identi.ca and Twitter
- Social psychology in sales copy: Good copy writing
- Choosing a message queue for Python on Ubuntu on a VPS
- Quote of the day – monkeys
- On cellphone use in cars
- Django dynamic forms and formsets
- How and Why to extend Firefox in Javascript
- Unix shared directory permissions: GUID and umask
- Legal 1 Usability 0
- OpenTTD: Trains and signals for beginners – a tutorial
- Quote of the day: Why racists have bad graphic design
- Speaking at Open Web Vancouver 2009 in June
- Micro-Zooids: A story
- Turn on debug output in SVN
- Migrating from Picasa to GIMP
- What is the point of LinkedIn?
- Foxden – your life on one page
- Quote of the day: Congressman Mike Honda
- Eddit: Reddit without the Rrrr!
- Flex internals: Setting a button label
- Choosing the best Flex book – Flex book reviews
- Math Dodger: A Flash game
- Javascript objects: And what is this?
- Easy object-oriented Javascript the Python way
- This is me
2008 18
- Linux on a potato
- On the American automobile industry
- Dan Gardner on fear
- Plebis.Net. Speak your mind.
- Internet Explorer not sending NTLM authentication
- Keithnote
- MySQL quick reference
- Using Ekiga softphone on Ubuntu Linux on a Thinkpad
- Passenger airlines will charge by volume and weight
- A quote from Seth Godin
- Host your own Internet
- Clay Shirky at Web 2.0 Expo – just watch it
- Finally an explanation to mod_python: (Re)importing module 'django.core.handlers.modpython'
- The fine line between populism and racism
- Wine grapes from least to most tannins
- Quote of the day
- AJAX, IE6 and System error: -1072896658
- Technologies for better web based applications: XMPP, Flex, and more
2007 10
2006 24
- Factual entertainment
- Printing Word And PDF files from Python
- Wine grapes
- Wine notes
- 10 ways to kill a pig
- carriagereturn.org
- Halliburton solves global warming
- Markdown quick reference
- Why your company needs a feed reader on every desktop
- Timestream: Where does the time go ?
- Amazon cuts negative reviews
- Firefox Sage extension – beginning development
- Sage – the graham patch
- Shaun Inman – "10 reasons why you need to build an API"
- Tom Coates – Native to a Web of Data
- Javascript credit card generator fix
- Types of question
- Cal Henderson – Building Flickr
- Joshua Schacter – del.icio.us – Things we've learned
- Why you need a cluster
- Goodbye mod_jk hello mod_proxy
- Javascript and PHP credit card generator
- Fire
- Fatigue
2005 31
- Juse
- Creativity
- Free credit cards
- JavaWorld unit testing article
- When thieves fall out
- CVV numbers
- Luhn formula
- Irregular warfare
- Sea power
- Land warfare
- International law and the use of force
- What is strategy
- Financial Glossary
- Derivatives
- Finance basics
- GUI design
- Get It Done
- Decider Protocol
- Advice
- A short history of Christianity
- Michael Jackson
- Credit card numbers
- Credit card generator
- Laws should expire
- Prawn / Shrimp garden
- Pedestrian crossing
- Anti-gravity platform
- Cat stroker
- Dog Rentals
- Office Mum
- Amusing feedback