Home
Blog
I scanned every package on PyPi and found 57 live AWS keys
6 Jan 2023
AWS may have broken your Cloudfront API for nearly a month
20 Nov 2022
Infosys leaked FullAdminAccess AWS keys on PyPi for over a year
15 Nov 2022
Visualizing how S3 deletes 1 billion objects with Athena and Rust
14 Sept 2022
CVE-2022-0329 and the problems with automated vulnerability management
29 Jan 2022
Benchmarking Rustpython With Criterion
14 Dec 2020
Managing Rust bloat with Github Actions
23 Apr 2020
Distributing malware with Google images, service workers and vegan Twitter bots
15 Dec 2019
Django Docker Box is now an official Django project!
17 Oct 2019
Testing my dotfiles with Github actions
12 Oct 2019
I hope I hate this code one day
28 Sept 2019
Europython 2019 Talk - Rewriting the Django autoreloader
22 Sept 2019
Redesigning my blog
21 Sept 2019
Creating an index of Apple Watch/MacOS/iOS features per-country
4 Jun 2019
XCat 1.0 released or: XPath injection issues are severely underrated
9 Dec 2018
Invited to join the Django software foundation
2 Dec 2018
Using bulk update in Django 2.2
4 Oct 2018
Queryset.explain() released in Django 2.1
1 Aug 2018
Filtered aggregates lands in Django 2.0!
12 May 2018
How not to make an april fools joke
8 Apr 2018
Suggestions added to Django manage.py
24 Feb 2018
Goodby Simple, hello Gatsby
16 Jan 2018
Counting Pizza with Python
28 Jul 2016
Syntax highlighting and CSS support added to wordinserter
26 Jul 2016
Segfaulting Python with afl-fuzz
6 Mar 2016
Scraping websites with Cyborg
4 Jan 2016
HtmlToWord is now WordInserter
24 May 2015
HP Support Solutions Framework Security Issue
11 Apr 2015
Dell System Detect RCE vulnerability
23 Mar 2015
Simple 2
13 Dec 2014
Exploiting XPath injection vulnerabilities with XCat
25 Jul 2014
A test RSS feed service
1 Apr 2014
2 years of blogging
6 Mar 2014
Opera is really nice
13 Feb 2014
Submitting a patch to Python’s lxml library
9 Jan 2014
University Presentation
27 Nov 2013
Hack things, acquire clothing.
22 Nov 2013
Restricting Thrift clients to specific IP addresses with Twisted
11 Nov 2013
Adding tail-call optimization to Python
15 Oct 2013
My Uni's timetable system sucks, so I built a better one.
11 Oct 2013
Purchasing a £30,000 numberplate for the price of a bus ticket
7 Oct 2013
Breaking out of secured Python environments
25 Sept 2013
Inspecting .NET applications with ILSpy
19 Sept 2013
Automatically inline Python function calls
1 Aug 2013
SSDs are awesome, buy one.
25 Jul 2013
Displaying a processes output on a web page with Websockets and Python
15 Jul 2013
Profiling Django templates with Django-Debug-Toolbar
18 Apr 2013
More holes than swiss cheese
11 Apr 2013
Just how slow are Django templates?
13 Mar 2013
Finding fried chicken with C-Sharp, Mono and ServiceStack
2 Mar 2013
HtmlToWord
18 Feb 2013
Adding mobile support to Simple
22 Sept 2012
Parsing Wikipedia database dumps with C-sharp and Postgres (6 degrees of Wikipedia)
12 Sept 2012
Transplanting/Replacing Django child instances without deleting the parent
31 Aug 2012
Using Python metaclasses to make awesome Django model field choices
13 Aug 2012
In favour of ORM's
14 May 2012
Making a film recommendation site by cheating
8 May 2012
Creating a URL shortening service with Django
20 Apr 2012
Using a custom SQLAlchemy Users model with Django
13 Apr 2012
Draconian internet filters
12 Apr 2012
Simple.
29 Mar 2012