Month: February 2019
-
Gradle: what is a task, and how can I make a task depend on another task?
In an insane world, Gradle sometimes seems like the sanest choice for building a Java or Kotlin project. But what on Earth does all the stuff inside build.gradle actually mean? And when does my code run? And how do you make a task? And how do you persu…
-
Python Async basics video (100 million HTTP requests)
I found something difficult in Python, which was a bit of a first, so I wrote a whole blog series about it, and now a whole video: Slides: Python Async Basics slides Blog posts: asyncio basics, large numbers in parallel, parallel HTTP requests, addin…
-
Code your way out of a paper bag
I attended nor(DEV):con, a tech conference in Norwich, last week. I gave a 45 minute talk which I called “Code your way out of a paper bag”. A majority of my recent talks involve getting out of, and once into, a paper bag. I’ve used this as a vehicle…
-
Code your way out of a paper bag
I attended nor(DEV):con, a tech conference in Norwich, last week. I gave a 45 minute talk which I called “Code your way out of a paper bag”. A majority of my recent talks involve getting out of, and once into, a paper bag. I’ve used this as a vehicle…
-
Clean git blame history
Place the following in a command file, run it within your repo: #!/bin/sh git filter-branch –env-filter ‘ an=”$GIT_AUTHOR_NAME” am=”$GIT_AUTHOR_EMAIL” cn=”$GIT_COMMITTER_NAME” cm=”$GIT_COMMITTER_EMAIL” if [ “$GIT_AUTHOR_EMAIL” = “timp@paneris.o…
-
Clean git blame history
Place the following in a command file, run it within your repo: #!/bin/sh git filter-branch –env-filter ‘ an=”$GIT_AUTHOR_NAME” am=”$GIT_AUTHOR_EMAIL” cn=”$GIT_COMMITTER_NAME” cm=”$GIT_COMMITTER_EMAIL” if [ “$GIT_AUTHOR_EMAIL” = “timp@paneris.o…
-
Keybase chat bot in 10 lines of bash
I’ve been getting very excited about keybase.io recently, not least because it offers secure conversation, and you can have bots. I wrote a quick bot to simulate Arnold Schwarzenegger which I thought I’d share to demonstrate how easy it is. It is based…
-
Performance of Java 2D drawing operations (part 3: image opacity)
Series: operations, images, opacity Not because I was enjoying it, I seemed compelled to continue my quest to understand the performance of various Java 2D drawing operations. I’m hoping to make my game Rabbit Escape faster, especially on the Raspberry…
-
Performance of Java 2D drawing operations (part 2: images)
Series: operations, images, opacity In my previous post I examined the performance of various drawing operations in Java 2D rendering. Here I look at some specifics around rendering images, with an eye to finding optimisations I can apply to my game Ra…
-
CppOnSea
CppOnSea 2019 Phil Nash organised a new conference, CppOnSea, this year. I was lucky enough to be accepted to speak, so attended to two conference days, but not the workshops. There were three tracks, along with a beginners track, run by Tri…
-
CppOnSea
CppOnSea 2019 Phil Nash organised a new conference, CppOnSea, this year. I was lucky enough to be accepted to speak, so attended to two conference days, but not the workshops. There were three tracks, along with a beginners track, run by Tri…
-
Performance of Java 2D drawing operations (part 1: types of operation)
Series: operations, images, opacity I want to remodel the desktop UI of my game Rabbit Escape to be more convenient and nicer looking, so I took a new look at game-loop-style graphics rendering onto a canvas in a Java 2D (Swing) UI. For more on images,…