Posts
Chrome development
- Break helper 1.3 released - 02 August 2011
- Break helper 1.2 released - 11 May 2011
- Break helper updated to 1.1 - 09 April 2011
- Break Helper 1.0 is up - 03 April 2011
Php
- The Strategy Pattern: Design Patterns - 16 March 2014
- Setting up PHP5 with Nginx through FastCGI - 01 May 2012
- Nginx with PHP (FCGI) - A lightweight web server - 22 January 2012
- Combining multiple MySQL UPDATEs - 05 October 2011
- Launching "No Time To Explain" beta - 12 June 2011
- Rasmus Lerdorf on PHP Performance [Talk] - 14 April 2011
Site optimization
- Rasmus Lerdorf on PHP Performance [Talk] - 14 April 2011
Computers
- Free Unlimited Airport WiFi - 28 January 2012
- Free classes you might want to attend - 16 August 2011
- Disable Nvidia Optimus enabled graphics card - 08 May 2011
- Disabling Intel Turbo Boost - 30 April 2011
Linux
- Disabling Nvidia Optimus enabled card on Ubuntu 12.04 - 29 April 2012
- Fixing Skype "P2P connect failed" on Ubuntu 11.10 - 11 March 2012
- Tmux - a Terminal multiplexer - 09 January 2012
- Disable Nvidia Optimus enabled graphics card - 08 May 2011
Android
- Setting up remote debugging for Google Chrome on Android - 30 July 2013
- My first Android Java application - AcceleroDroid - 21 May 2011
Android development
- My first Android Java application - AcceleroDroid - 21 May 2011
Java
- My first Android Java application - AcceleroDroid - 21 May 2011
Game development
- Launching "No Time To Explain" beta - 12 June 2011
Books
- My engineering and management reading list of 2020 - 26 December 2020
- The Clean Coder: A Code of Conduct for Professional Programmers - 26 September 2016
- Review - Version Control by Example by Eric Sink - 31 July 2011
- The Pragmatic Programmer - 29 June 2011
Programming
- Debugging TLA+ specifications with state dumps - 02 January 2019
- Experimenting with TLA+ and PlusCal 3: Throttling multiple senders - 19 December 2017
- Experimenting with TLA+ and PlusCal 2: Throttling - 11 November 2017
- Experimenting with formal methods: TLA+ and PlusCal - 08 November 2017
- Setting up remote debugging for Google Chrome on Android - 30 July 2013
- The Factory Pattern: Design Patterns - 07 July 2013
- Compute hamming distance of byte arrays in Scala - 07 July 2013
- "Functional Programming Principles in Scala" online Coursera course - 27 June 2013
- Stripe Capture The Flag: Web Edition - 25 August 2012
- The Singleton Pattern - Design Patterns - 22 May 2012
- The Observer Pattern - Design Patterns - 03 May 2012
- Learning programming languages with Koans - 20 March 2012
- Tmux - a Terminal multiplexer - 09 January 2012
- Combining multiple MySQL UPDATEs - 05 October 2011
- Break helper 1.3 released - 02 August 2011
- Review - Version Control by Example by Eric Sink - 31 July 2011
- Solving Euler problems Part 4 (Final part) - 23 July 2011
- Solving Euler problems Part 3 - 23 July 2011
- Solving Euler problems Part 2 - 22 July 2011
- Solving Euler problems - 30 June 2011
- The Pragmatic Programmer - 29 June 2011
Python
- Learning programming languages with Koans - 20 March 2012
- Test driving Django: installation and configuration - 14 August 2011
- Solving Euler problems Part 4 (Final part) - 23 July 2011
- Solving Euler problems Part 3 - 23 July 2011
- Solving Euler problems Part 2 - 22 July 2011
- Solving Euler problems - 30 June 2011
Puzzles
- Solving Euler problems Part 4 (Final part) - 23 July 2011
- Solving Euler problems Part 3 - 23 July 2011
- Solving Euler problems Part 2 - 22 July 2011
Version control
- Review - Version Control by Example by Eric Sink - 31 July 2011
Courses
- "Functional Programming Principles in Scala" online Coursera course - 27 June 2013
- Learning programming languages with Koans - 20 March 2012
- Free classes you might want to attend - 16 August 2011
Mysql
- Combining multiple MySQL UPDATEs - 05 October 2011
Optimization
- Combining multiple MySQL UPDATEs - 05 October 2011
Tools
- Expanding Your Toolset #2: Grunt - The Javascript Task Runner - 07 March 2014
- Expanding Your Toolset: Bower - Package Management For The Web - 26 February 2014
- Free Unlimited Airport WiFi - 28 January 2012
- Tmux - a Terminal multiplexer - 09 January 2012
Nginx
- Nginx with PHP (FCGI) - A lightweight web server - 22 January 2012
Applications
- Fixing Skype "P2P connect failed" on Ubuntu 11.10 - 11 March 2012
Learning
- Learning to read Dotsies - a new way of reading - 31 March 2012
- Learning programming languages with Koans - 20 March 2012
Misc
- Learning to read Dotsies - a new way of reading - 31 March 2012
Web development
- Supercharging your (Wordpress) website with Cloudflare - 01 September 2013
- Setting up remote debugging for Google Chrome on Android - 30 July 2013
- Javascript variable scope and variable hoisting - 20 July 2012
- Setting up PHP5 with Nginx through FastCGI - 01 May 2012
- Switching from Wordpress to Octopress - 08 April 2012
Ruby
- Switching from Wordpress to Octopress - 08 April 2012
Ubuntu
- Remapping Caps Lock key to Control in Ubuntu 12.10 - 28 January 2013
- Enable Skype icon on Unity notification panel on Ubuntu 12.04 LTS - 06 May 2012
- Remapping Unity hotkeys for Ubuntu 12.04 LTS - 30 April 2012
- Disabling Nvidia Optimus enabled card on Ubuntu 12.04 - 29 April 2012
Unity
- Enable Skype icon on Unity notification panel on Ubuntu 12.04 LTS - 06 May 2012
- Remapping Unity hotkeys for Ubuntu 12.04 LTS - 30 April 2012
Productivity
- Taking notes with Vim and Guake - 28 August 2016
- Blocking time consuming sites on Linux - 02 May 2012
Design patterns
- The Strategy Pattern: Design Patterns - 16 March 2014
- The Factory Pattern: Design Patterns - 07 July 2013
- The Singleton Pattern - Design Patterns - 22 May 2012
- The Observer Pattern - Design Patterns - 03 May 2012
Chrome
Javascript
- Expanding Your Toolset #2: Grunt - The Javascript Task Runner - 07 March 2014
- Expanding Your Toolset: Bower - Package Management For The Web - 26 February 2014
- Javascript variable scope and variable hoisting - 20 July 2012
Arduino
- Easy Arduino Bluetooth Communication with JY-MCU Bluetooth module - 18 December 2015
- Measuring temperature with DS18B20 temperature sensor - 06 September 2015
- Distance sensing with ultrasonic sensor and Arduino - 08 August 2012
Sensors
- Measuring temperature with DS18B20 temperature sensor - 06 September 2015
- Distance sensing with ultrasonic sensor and Arduino - 08 August 2012
Hacking
- Stripe CTF 2.0 Write-Up And Solutions - 01 September 2012
- Stripe Capture The Flag: Web Edition - 25 August 2012
Vim
- Embedding images in Markdown with VIM - 22 September 2012
Memory
- Memorising PI to 100 digits - 19 March 2013
Numbers
- Memorising PI to 100 digits - 19 March 2013
Scala
Functional programming
Deployment
- Automated code deployment with Fabric - 25 August 2013
Automated deployment
- Automated code deployment with Fabric - 25 August 2013
Performance
- Supercharging your (Wordpress) website with Cloudflare - 01 September 2013
Package management
- Expanding Your Toolset: Bower - Package Management For The Web - 26 February 2014
Automation
- Expanding Your Toolset #2: Grunt - The Javascript Task Runner - 07 March 2014
Communication
- Easy Arduino Bluetooth Communication with JY-MCU Bluetooth module - 18 December 2015
Projects
- Sending Arduino sensor data via Bluetooth to a Python app - 09 May 2020
- Overcomplicating meal planning with the Z3 Constraint Solver - 12 April 2020
- Creating the always rising Shepard tone with Sonic-Pi - 20 January 2020
- Building a Reinforcement Learning bot for Bubble Shooter with Tensorflow and OpenCV - 06 August 2019
- How to build parallel and isolated browser game agents for Reinforcement Machine Learning - 05 August 2019
- How to solve a puzzle game with Python and Z3 Theorem prover - 11 February 2019
- Adding controls and bot logic - Part 3 of Solving Puzlogic puzzle game with Python and OpenCV - 10 November 2018
- Adding basic vision - Part 2 of Solving Puzlogic puzzle game with Python and OpenCV - 10 November 2018
- Solving Puzlogic puzzle game with Python and OpenCV: Part 1 - 16 September 2018
- Plotting WordPress downloads with Pandas and Matplotlib - 24 June 2017
- Tracking market activity with InfluxDB - 01 January 2017
- Break Helper 1.6 update - 26 December 2016
Computer vision
- Automating basic tasks in games with OpenCV and Python - 10 February 2018
Competition
- Google Code Jam 2018: Qualification round results - 08 April 2018
- Google Code Jam 2018: Practice session results - 01 April 2018
Security
- Certbot renewal of Let's Encrypt certificate fails with "Failed authorization procedure" on CloudFlare - 03 June 2018