41554 blogs · [ { "id": "01a0878e-9354-7252-815f-cf893f72dc30", "title": "Ripping DVDs", "url": "https://joakim.uddholm.com/post/ripping-dvds", "published_at": "2026-07-14T19:45:00+00:00" }, { "id": "01a0878e-9354-7252-815f-cf893fd6d8c5", "title": "Fix for BankID on Murena eOS", "url": "https://joakim.uddholm.com/post/fix-for-eos-bankid", "published_at": "2025-11-05T16:06:09+00:00" }, { "id": "01a0878e-9354-7252-815f-cf8940c3f2cd", "title": "Removing uninstallable apps from Android via adb", "url": "https://joakim.uddholm.com/post/removing-uninstallable-apps-from-android-via-adb", "published_at": "2025-06-14T16:06:09+00:00" }, { "id": "01a0878e-9354-7252-815f-cf894193d243", "title": "Setting up keepassxc with yubikey", "url": "https://joakim.uddholm.com/post/setting-up-keepassxc-with-yubikey", "published_at": "2024-04-17T00:27:40+00:00" }, { "id": "01a0878e-9354-7252-815f-cf8942164487", "title": "Resetting HP M15w", "url": "https://joakim.uddholm.com/post/resetting-hp-m15w", "published_at": "2023-10-15T14:20:54+00:00" }, { "id": "01a0878e-9354-7252-815f-cf8942eec086", "title": "Claiming a microsoft shorturl for an easy phish", "url": "https://joakim.uddholm.com/post/claiming-a-microsoft-shorturl-for-an-easy-phish", "published_at": "2023-03-09T19:55:03+00:00" }, { "id": "01a0878e-9354-7252-815f-cf89437495ba", "title": "Bitbucket CSRF on SSH Add Key Endpoint via superdomain cookie", "url": "https://joakim.uddholm.com/post/bitbucket-csrf-on-ssh-add-key-endpoint-via-superdomain-cookie", "published_at": "2023-02-17T17:44:25+00:00" }, { "id": "01a0878e-9354-7252-815f-cf8944220262", "title": "kms.nhp.gov.in rooted via syncthing", "url": "https://joakim.uddholm.com/post/kms-nhp-gov-in-rooted-via-syncthing", "published_at": "2023-02-09T19:29:10+00:00" }, { "id": "01a0878e-9354-7252-815f-cf8944c67c8a", "title": "Quick way to scrape websites", "url": "https://joakim.uddholm.com/post/quick-way-to-scrape-websites", "published_at": "2022-02-05T12:07:29+00:00" }, { "id": "01a0878e-9354-7252-815f-cf89459ea9c8", "title": "Python Logging Cheatsheet", "url": "https://joakim.uddholm.com/post/python-logging-cheatsheet", "published_at": "2021-08-29T13:34:14+00:00" }, { "id": "01a0878e-9354-7252-815f-cf89463d0b74", "title": "Exfiltrating Past CSP Directives", "url": "https://joakim.uddholm.com/post/exfiltrating-past-csp-directives", "published_at": "2021-08-04T19:07:00+00:00" }, { "id": "01a0878e-9354-7252-815f-cf89464f2cba", "title": "Revoking a PGP Key from MIT's Key Server", "url": "https://joakim.uddholm.com/post/revoking-a-pgp-key-from-mit's-key-server", "published_at": "2021-01-05T12:18:19+00:00" }, { "id": "01a0878e-9354-7252-815f-cf89471496f6", "title": "Yubikey OpenPGP Setup for SSH and Commit Signing", "url": "https://joakim.uddholm.com/post/yubikey-openpgp-setup-for-ssh-and-commit-signing", "published_at": "2021-01-04T16:04:12+00:00" }, { "id": "01a0878e-9354-7252-815f-cf8947f33549", "title": "Setting up RAID1 with mdadm", "url": "https://joakim.uddholm.com/post/setting-up-raid1-with-mdadm", "published_at": "2020-05-07T10:54:04+00:00" }, { "id": "01a0878e-9354-7252-815f-cf894884d85f", "title": "Setting up Thinkpad dockd", "url": "https://joakim.uddholm.com/post/setting-up-the-thinkpad-dock", "published_at": "2020-04-04T13:20:51+00:00" }, { "id": "01a0878e-9354-7252-815f-cf8948fef267", "title": "Setting up Brother DS620 on Linux", "url": "https://joakim.uddholm.com/post/setting-up-brother-ds620-on-linux", "published_at": "2020-02-14T23:02:26+00:00" }, { "id": "01a0878e-9354-7252-815f-cf89496da279", "title": "Replacing Cronjobs with Systemd Timers", "url": "https://joakim.uddholm.com/post/replacing-cronjobs-with-systemd-timers", "published_at": "2020-02-02T14:54:29+00:00" }, { "id": "01a0878e-9354-7252-815f-cf894a644e3e", "title": "Github Docker Packages Username Fix", "url": "https://joakim.uddholm.com/post/github-docker-packages-username-fix", "published_at": "2019-11-19T20:57:25+00:00" }, { "id": "01a0878e-9354-7252-815f-cf894a6f00d0", "title": "Reverting to a Previous Kernel", "url": "https://joakim.uddholm.com/post/reverting-to-a-previous-kernel", "published_at": "2019-10-05T11:15:16+00:00" }, { "id": "01a0878e-9354-7252-815f-cf894aad08fa", "title": "Recovering a RAID 1 Drive in Linux", "url": "https://joakim.uddholm.com/post/recovering-a-raid-1-drive-in-linux", "published_at": "2019-08-17T20:02:19+00:00" }, { "id": "01a0878e-9354-7252-815f-cf894ba1a1d4", "title": "Veracrypt Cheatsheet", "url": "https://joakim.uddholm.com/post/veracrypt-cheatsheet", "published_at": "2019-07-04T16:27:17+00:00" }, { "id": "01a0878e-9354-7252-815f-cf894bc10f6f", "title": "PulseAudio cheatsheet", "url": "https://joakim.uddholm.com/post/pulseaudio-cheatsheet", "published_at": "2019-06-29T16:10:15+00:00" }, { "id": "01a0878e-9354-7252-815f-cf894bc9a6a9", "title": "Webhotel using traefik, docker and ssh", "url": "https://joakim.uddholm.com/post/webhotel-using-traefik-docker-and-ssh", "published_at": "2019-05-06T20:33:25+00:00" }, { "id": "01a0878e-9354-7252-815f-cf894cb3ec85", "title": "How to add custom alert sounds to Gnome (Ubuntu 18.04)", "url": "https://joakim.uddholm.com/post/adding-custom-alert-sounds-to-ubuntu-18.04", "published_at": "2019-03-18T01:46:58+00:00" }, { "id": "01a0878e-9354-7252-815f-cf894cf78511", "title": "Quick EC2 IPv6 Tutorial", "url": "https://joakim.uddholm.com/post/quick-ec2-ipv6-tutorial", "published_at": "2019-02-20T21:47:54+00:00" }, { "id": "01a0878e-9354-7252-815f-cf894d8126da", "title": "How to copy a MongoDB Database", "url": "https://joakim.uddholm.com/post/how-to-copy-a-mongodb-database", "published_at": "2019-01-28T21:25:02+00:00" }, { "id": "01a0878e-9354-7252-815f-cf894e48c2b8", "title": "Terraforming S3 Policies to an EC2 IAM Role", "url": "https://joakim.uddholm.com/post/terraforming-s3-policies-to-an-ec2-iam-role", "published_at": "2019-01-10T05:13:01+00:00" }, { "id": "01a0878e-9354-7252-815f-cf894eefa521", "title": "What I Learned Last Year at Work", "url": "https://joakim.uddholm.com/post/what-i-learned-last-year-at-work", "published_at": "2018-12-29T20:18:24+00:00" }, { "id": "01a0878e-9354-7252-815f-cf895077a6b0", "title": "A Microservices Guideline", "url": "https://joakim.uddholm.com/post/a-microservices-guideline", "published_at": "2018-11-07T15:55:13+00:00" }, { "id": "01a0878e-9354-7252-815f-cf894fd6ab31", "title": "Linux Services Cheatsheet", "url": "https://joakim.uddholm.com/post/linux-services-cheatsheet", "published_at": "2018-11-07T15:38:05+00:00" }, { "id": "01a0878e-9354-7252-815f-cf8950cb5075", "title": "A hacky way to disable express-jwt expiry for development", "url": "https://joakim.uddholm.com/post/a-hacky-way-to-disable-express-jwt-expiry-for-development", "published_at": "2018-10-05T22:52:36+00:00" }, { "id": "01a0878e-9354-7252-815f-cf8950d8e99e", "title": "A small Golang webservice Dockerimage", "url": "https://joakim.uddholm.com/post/a-small-golang-webservice-dockerimage", "published_at": "2018-09-24T22:03:19+00:00" }, { "id": "01a0878e-9354-7252-815f-cf89519d2ff6", "title": "IMAP Tools for migrating email accounts", "url": "https://joakim.uddholm.com/post/imap-tools-for-migrating-email-accounts", "published_at": "2018-06-29T09:29:15+00:00" }, { "id": "01a0878e-9354-7252-815f-cf8952454184", "title": "Tagging docker images differently based on git branch", "url": "https://joakim.uddholm.com/post/tagging-docker-images-differently-based-on-git-branch", "published_at": "2018-05-29T17:58:34+00:00" }, { "id": "01a0878e-9354-7252-815f-cf895274c138", "title": "CI/CD CV", "url": "https://joakim.uddholm.com/post/ci-cd-cv", "published_at": "2018-05-21T12:37:00+00:00" }, { "id": "01a0878e-9354-7252-815f-cf895319ce68", "title": "Working locally with Docker containers", "url": "https://joakim.uddholm.com/post/working-locally-with-docker-containers", "published_at": "2018-03-19T06:33:43+00:00" }, { "id": "01a0878e-9354-7252-815f-cf89536e3646", "title": "Custom Application Launchers in Linux", "url": "https://joakim.uddholm.com/post/custom-application-launchers-in-linux", "published_at": "2018-03-05T19:01:28+00:00" }, { "id": "01a0878e-9354-7252-815f-cf8953aa1702", "title": "Graphing the Ferryman Problem", "url": "https://joakim.uddholm.com/post/graphing-the-ferryman-problem", "published_at": "2018-02-24T14:55:12+00:00" }, { "id": "01a0878e-9354-7252-815f-cf89541b0df2", "title": "Stored XSS via Swish Transaction", "url": "https://joakim.uddholm.com/post/stored-xss-via-swish-transaction", "published_at": "2017-01-31T04:38:39+00:00" }, { "id": "01a0878e-9354-7252-815f-cf895460db25", "title": "tamperfree", "url": "https://joakim.uddholm.com/post/tamperfree", "published_at": "2016-10-30T16:48:59+00:00" }, { "id": "01a0878e-9354-7252-815f-cf89547e5f98", "title": "Easier Authentication for your Mobile Apps", "url": "https://joakim.uddholm.com/post/easier-authentication-for-your-mobile-apps", "published_at": "2016-07-09T01:56:22+00:00" }, { "id": "01a0878e-9354-7252-815f-cf89557d73d1", "title": "Setting up a Tor hidden service", "url": "https://joakim.uddholm.com/post/setting-up-a-tor-hidden-service", "published_at": "2015-10-14T19:58:14+00:00" }, { "id": "01a0878e-9354-7252-815f-cf89561b284d", "title": "Revisiting the Free Wifi on Destination Gotland", "url": "https://joakim.uddholm.com/post/revisiting-the-free-wifi-on-destination-gotland", "published_at": "2015-08-03T17:04:39+00:00" }, { "id": "01a0878e-9354-7252-815f-cf8956a4163e", "title": "Teaching", "url": "https://joakim.uddholm.com/post/teaching", "published_at": "2015-04-21T17:34:00+00:00" }, { "id": "01a0878e-9354-7252-815f-cf8956cdffba", "title": "Url Secrets", "url": "https://joakim.uddholm.com/post/url-secrets", "published_at": "2015-04-17T22:15:36+00:00" }, { "id": "01a0878e-9354-7252-815f-cf89571d2663", "title": "Apache HTTPS Configuration", "url": "https://joakim.uddholm.com/post/apache-https-configuration", "published_at": "2015-02-24T16:48:36+00:00" }, { "id": "01a0878e-9354-7252-815f-cf8957506f04", "title": "Rolling my own Certificate Authority", "url": "https://joakim.uddholm.com/post/rolling-my-own-certificate-authority", "published_at": "2015-02-23T18:38:45+00:00" }, { "id": "01a0878e-9354-7252-815f-cf89582d51d0", "title": "SSLStrip", "url": "https://joakim.uddholm.com/post/sslstrip", "published_at": "2015-01-24T02:05:54+00:00" }, { "id": "01a0878e-9354-7252-815f-cf8958de4ecf", "title": "Ettercap, Arpspoof and DNSSpoof Examples", "url": "https://joakim.uddholm.com/post/ettercap-arpspoof-and-dnsspoof-examples", "published_at": "2015-01-21T21:28:37+00:00" }, { "id": "01a0878e-9354-7252-815f-cf89598e9734", "title": "Enumerating Cinema Tickets", "url": "https://joakim.uddholm.com/post/enumerating-cinema-tickets", "published_at": "2014-12-05T22:29:05+00:00" }, { "id": "01a0878e-9354-7252-815f-cf895a096bea", "title": "Android mmssms.db", "url": "https://joakim.uddholm.com/post/android-mmssms-db", "published_at": "2014-10-22T20:34:28+00:00" }, { "id": "01a0878e-9354-7252-815f-cf895ae16a69", "title": "Sandboxing SFTP users", "url": "https://joakim.uddholm.com/post/sandboxing-sftp-users", "published_at": "2014-10-08T21:02:02+00:00" }, { "id": "01a0878e-9354-7252-815f-cf895bdcda80", "title": "One.com CSRF and XSS", "url": "https://joakim.uddholm.com/post/one-com-csrf-and-xss", "published_at": "2014-09-19T20:03:07+00:00" }, { "id": "01a0878e-9354-7252-815f-cf895cbeee28", "title": "FitBit CSRF and XSS", "url": "https://joakim.uddholm.com/post/fitbit-csrf-and-xss", "published_at": "2014-09-19T18:52:29+00:00" }, { "id": "01a0878e-9354-7252-815f-cf895d8fb8b2", "title": "My Running", "url": "https://joakim.uddholm.com/post/my-running", "published_at": "2014-07-05T13:37:28+00:00" }, { "id": "01a0878e-9354-7252-815f-cf895df0ac28", "title": "Bypassing Authentication to a Paid Wifi Hotspot", "url": "https://joakim.uddholm.com/post/bypassing-authentication-to-a-paid-wifi-hotspot", "published_at": "2014-06-26T17:33:02+00:00" }, { "id": "01a0878e-9354-7252-815f-cf895e0a4a1b", "title": "MD5 Length Extension Attack", "url": "https://joakim.uddholm.com/post/md5-length-extension-attack", "published_at": "2014-06-21T18:53:56+00:00" }, { "id": "01a0878e-9354-7252-815f-cf895ea24ed7", "title": "MTG: Small AngularJS project", "url": "https://joakim.uddholm.com/post/mtg-small-angularjs-project", "published_at": "2014-06-20T11:06:15+00:00" }, { "id": "01a0878e-9354-7252-815f-cf895f19aa98", "title": "AuthorizeAttribute", "url": "https://joakim.uddholm.com/post/authorizeattribute", "published_at": "2014-05-31T12:25:01+00:00" }, { "id": "01a0878e-9354-7252-815f-cf895fff8c3d", "title": "label clickjacking and javascriptless csrf", "url": "https://joakim.uddholm.com/post/label-clickjacking-and-javascriptless-csrf", "published_at": "2014-05-27T20:33:29+00:00" }, { "id": "01a0878e-9354-7252-815f-cf8960bc9525", "title": "Web Timing Attacks, Continued", "url": "https://joakim.uddholm.com/post/web-timing-attacks-continued", "published_at": "2014-05-12T13:37:20+00:00" }, { "id": "01a0878e-9354-7252-815f-cf8960d22330", "title": "Getting timing output from CSRF exploits", "url": "https://joakim.uddholm.com/post/getting-timing-output-from-csrf-exploits", "published_at": "2014-05-08T16:58:31+00:00" }, { "id": "01a0878e-9354-7252-815f-cf8961c6e401", "title": "QR Codes as Password Storage?", "url": "https://joakim.uddholm.com/post/qr-codes-as-password-storage", "published_at": "2014-04-19T23:08:33+00:00" }, { "id": "01a0878e-9354-7252-815f-cf8962522fb1", "title": "Predicting .NET Guid.NewGuid()", "url": "https://joakim.uddholm.com/post/predicting-net-guid-newguid", "published_at": "2014-04-09T18:51:30+00:00" }, { "id": "01a0878e-9354-7252-815f-cf896273cbfc", "title": "First Post", "url": "https://joakim.uddholm.com/post/first-post", "published_at": "2014-04-01T21:43:08+00:00" } ] posts Claim your blog
Back to joakim.uddholm.com
Blog · corpus.blog/blogs/joakim.uddholm.com/posts

joakim.uddholm.com

joakim.uddholm.com

2026

2025

2024

2023

2022

2021

2020

2019

2018

2017

2016

2015

2014