41554 blogs · [ { "id": "01a087a0-e625-729f-bcf2-ee62be2ce266", "title": "It's tough to be creative", "url": "https://www.martinhaagen.se/posts/its_tough_to_be_creative/", "published_at": "2025-11-02T15:16:52+00:00" }, { "id": "01a087a0-e625-729f-bcf2-ee62bf1aec27", "title": "Back to the stage - talking about code", "url": "https://www.martinhaagen.se/posts/back_to_the_stage-talking_about_code/", "published_at": "2025-10-26T18:55:41+00:00" }, { "id": "01a087a0-e625-729f-bcf2-ee62bfa23ea8", "title": "Book: Test-Driven Development with Java", "url": "https://www.martinhaagen.se/posts/test-driven_development_with_java/", "published_at": "2025-10-25T13:33:16+00:00" }, { "id": "01a087a0-e625-729f-bcf2-ee62bff88e74", "title": "Supply chain attacks against npm packages", "url": "https://www.martinhaagen.se/posts/supply_chain_attacks_against_npm_packages/", "published_at": "2025-10-05T15:02:52+00:00" }, { "id": "01a087a0-e625-729f-bcf2-ee62c0d5babf", "title": "The IndieWeb Brings Back Old Memories", "url": "https://www.martinhaagen.se/posts/the-indieweb-brings-back-old-memories/", "published_at": "2025-07-03T12:23:39+00:00" }, { "id": "01a087a0-e625-729f-bcf2-ee62c13618db", "title": "The Trip From Rome", "url": "https://www.martinhaagen.se/posts/the-trip-from-rome/", "published_at": "2025-06-28T19:33:39+00:00" }, { "id": "01a087a0-e625-729f-bcf2-ee62c2269ca1", "title": "We Are All Nuts", "url": "https://www.martinhaagen.se/posts/we-are-all-nuts/", "published_at": "2025-06-21T16:08:44+00:00" }, { "id": "01a087a0-e625-729f-bcf2-ee62c228a65c", "title": "Sweden Rock 2025", "url": "https://www.martinhaagen.se/posts/sweden-rock-2025/", "published_at": "2025-06-08T12:18:20+00:00" }, { "id": "01a087a0-e625-729f-bcf2-ee62c2bb7e02", "title": "What you can do to stop AI bots from stealing your content", "url": "https://www.martinhaagen.se/posts/what-you-can-do-to-stop-ai-bots/", "published_at": "2025-06-05T10:18:42+00:00" }, { "id": "01a087a0-e625-729f-bcf2-ee62c2f33f79", "title": "Power effectiveness per programming language", "url": "https://www.martinhaagen.se/posts/power-effectiveness-per-programming-language/", "published_at": "2025-06-01T09:18:39+00:00" }, { "id": "01a087a0-e625-729f-bcf2-ee62c37001d0", "title": "Looking into LEGO Serious Play", "url": "https://www.martinhaagen.se/posts/looking-into-lego-serious-play/", "published_at": "2025-05-29T09:11:05+00:00" }, { "id": "01a087a0-e625-729f-bcf2-ee62c3eda6c3", "title": "myConf – the value of making people talk", "url": "https://www.martinhaagen.se/posts/myconf-the-value-of-making-people-talk/", "published_at": "2025-05-27T12:53:01+00:00" }, { "id": "01a087a0-e625-729f-bcf2-ee62c48e6390", "title": "Building a New Laptop from Framework", "url": "https://www.martinhaagen.se/posts/building-a-new-laptop-from-framework/", "published_at": "2024-07-28T09:11:05+00:00" }, { "id": "01a087a0-e625-729f-bcf2-ee62c57c84cb", "title": "The end of privacy-enhancing browser plugins?", "url": "https://www.martinhaagen.se/posts/the-end-of-privacy-enhancing-browser-plugins/", "published_at": "2023-11-26T09:11:05+00:00" }, { "id": "01a087a0-e625-729f-bcf2-ee62c618b64e", "title": "What if your HTTPS traffic was not secure?", "url": "https://www.martinhaagen.se/posts/what-if-your-https-traffic-was-not-secure/", "published_at": "2023-11-18T20:23:17+00:00" }, { "id": "01a087a0-e625-729f-bcf2-ee62c65dafc9", "title": "Ship30for30 a challenge to become a better digital writer", "url": "https://www.martinhaagen.se/posts/ship30for30_a_challenge_to_become_a_better_digital_writer/", "published_at": "2022-01-11T05:39:22+00:00" }, { "id": "01a087a0-e625-729f-bcf2-ee62c6880b56", "title": "How to Take Smart Notes by Sönke Ahrens", "url": "https://www.martinhaagen.se/posts/how-to-take-smart-notes-by-sonke-ahrens/", "published_at": "2021-06-06T07:01:57+00:00" }, { "id": "01a087a0-e625-729f-bcf2-ee62c73bb84c", "title": "Drive by Daniel Pink", "url": "https://www.martinhaagen.se/posts/drive-by-daniel-pink/", "published_at": "2021-05-02T18:52:51+00:00" }, { "id": "01a087a0-e625-729f-bcf2-ee62c7780835", "title": "How I used ffmpeg to create time-laps videos on my Mac", "url": "https://www.martinhaagen.se/posts/how-i-used-ffmpeg-to-create-time-laps-videos-on-my-mac/", "published_at": "2020-01-14T05:00:23+00:00" }, { "id": "01a087a0-e625-729f-bcf2-ee62c81d54f5", "title": "The SELF journal – a review", "url": "https://www.martinhaagen.se/posts/the-self-journal-a-review/", "published_at": "2019-11-14T20:51:18+00:00" }, { "id": "01a087a0-e625-729f-bcf2-ee62c8f70870", "title": "The Pomodoro Technique", "url": "https://www.martinhaagen.se/posts/the-pomodoro-technique/", "published_at": "2019-09-21T13:57:18+00:00" }, { "id": "01a087a0-e625-729f-bcf2-ee62c9f19d04", "title": "What is Mastodon", "url": "https://www.martinhaagen.se/posts/what-is-mastodon/", "published_at": "2019-09-02T20:10:22+00:00" }, { "id": "01a087a0-e625-729f-bcf2-ee62cacd7615", "title": "Getting Emacs and Spacemacs on the Mac", "url": "https://www.martinhaagen.se/posts/getting-emacs-and-spacemacs-on-the-mac/", "published_at": "2019-08-12T20:17:30+00:00" }, { "id": "01a087a0-e625-729f-bcf2-ee62cbaeb576", "title": "Adding YubiKey 2FA to WordPress", "url": "https://www.martinhaagen.se/posts/adding-yubikey-2fa-to-wordpress/", "published_at": "2019-07-30T06:28:12+00:00" }, { "id": "01a087a0-e625-729f-bcf2-ee62cc3657ed", "title": "The desktop was not ready for Linux", "url": "https://www.martinhaagen.se/posts/the-desktop-was-not-ready-for-linux/", "published_at": "2019-07-24T06:48:26+00:00" }, { "id": "01a087a0-e625-729f-bcf2-ee62cc61372e", "title": "Social Media Strike!", "url": "https://www.martinhaagen.se/posts/social-media-strike/", "published_at": "2019-07-02T06:57:54+00:00" }, { "id": "01a087a0-e625-729f-bcf2-ee62cc7e35ad", "title": "Thoughts from the GTD Summit 2019", "url": "https://www.martinhaagen.se/posts/thoughts-from-the-gtd-summit-2019/", "published_at": "2019-06-25T07:08:14+00:00" }, { "id": "01a087a0-e625-729f-bcf2-ee62cd36a4a0", "title": "Ungoogleing the blog", "url": "https://www.martinhaagen.se/posts/ungoogleing-the-blog/", "published_at": "2019-06-11T07:20:41+00:00" }, { "id": "01a087a0-e625-729f-bcf2-ee62cd7c6879", "title": "Lets go old school", "url": "https://www.martinhaagen.se/posts/lets-go-old-school/", "published_at": "2019-05-28T07:40:26+00:00" }, { "id": "01a087a0-e625-729f-bcf2-ee62cde96b1a", "title": "Braintoss - capture everything", "url": "https://www.martinhaagen.se/posts/braintoss-capture-everything/", "published_at": "2019-05-14T07:52:51+00:00" }, { "id": "01a087a0-e625-729f-bcf2-ee62ce11279f", "title": "To root or not to root", "url": "https://www.martinhaagen.se/posts/to-root-or-not-to-root/", "published_at": "2019-04-30T08:00:44+00:00" }, { "id": "01a087a0-e625-729f-bcf2-ee62ce8fa465", "title": "Getting GNU Linux back on the desktop", "url": "https://www.martinhaagen.se/posts/getting-gnu-linux-back-on-the-desktop/", "published_at": "2019-04-21T08:14:41+00:00" }, { "id": "01a087a0-e625-729f-bcf2-ee62cee8cff3", "title": "Goodbye and thanks for all the likes", "url": "https://www.martinhaagen.se/posts/goodbye-and-thanks-for-all-the-likes/", "published_at": "2019-03-17T08:27:00+00:00" }, { "id": "01a087a0-e625-729f-bcf2-ee62cfcd73f8", "title": "Dreamforce 18 at 9000km distance", "url": "https://www.martinhaagen.se/posts/dreamforce-18-at-9000km-distance/", "published_at": "2018-10-01T08:34:29+00:00" }, { "id": "01a087a0-e625-729f-bcf2-ee62d03724c1", "title": "The Month of the Chatbot", "url": "https://www.martinhaagen.se/posts/the-month-of-the-chatbot/", "published_at": "2018-03-18T08:50:55+00:00" }, { "id": "01a087a0-e625-729f-bcf2-ee62d0811f57", "title": "The Top Five Chrome Extensions for Salesforce", "url": "https://www.martinhaagen.se/posts/the-top-five-chrome-extensions-for-salesforce/", "published_at": "2017-03-15T08:53:53+00:00" }, { "id": "01a087a0-e625-729f-bcf2-ee62d098b795", "title": "Back to the blog", "url": "https://www.martinhaagen.se/posts/back-to-the-blog/", "published_at": "2017-03-08T09:05:59+00:00" }, { "id": "01a087a0-e625-729f-bcf2-ee62d0fd63e9", "title": "Dreamforce 14 is over", "url": "https://www.martinhaagen.se/posts/dreamforce-14-is-over/", "published_at": "2014-10-17T09:08:10+00:00" }, { "id": "01a087a0-e625-729f-bcf2-ee62d1c67ed4", "title": "Mocking and testing outbound web service calls in Salesforce", "url": "https://www.martinhaagen.se/posts/mocking-and-testing-outbound-web-service-calls-in-salesforce/", "published_at": "2014-09-05T09:14:50+00:00" }, { "id": "01a087a0-e625-729f-bcf2-ee62d2a2de5f", "title": "Mass abort Queued APEX Jobs", "url": "https://www.martinhaagen.se/posts/mass-abort-queued-apex-jobs/", "published_at": "2014-07-13T09:24:32+00:00" }, { "id": "01a087a0-e625-729f-bcf2-ee62d303c917", "title": "Dreamforce 2014 sessions", "url": "https://www.martinhaagen.se/posts/dreamforce-2014-sessions/", "published_at": "2014-07-06T09:28:31+00:00" }, { "id": "01a087a0-e625-729f-bcf2-ee62d3eba1ad", "title": "Introducing forceGOAuth", "url": "https://www.martinhaagen.se/posts/introducing-forcegoauth/", "published_at": "2014-06-28T09:31:10+00:00" }, { "id": "01a087a0-e625-729f-bcf2-ee62d407ce36", "title": "Talk: force.com Migration strategies and GIT", "url": "https://www.martinhaagen.se/posts/talk-force-com-migration-strategies-and-git/", "published_at": "2014-04-17T09:35:04+00:00" }, { "id": "01a087a0-e625-729f-bcf2-ee62d4974c68", "title": "Simplify the usage of Custom Settings", "url": "https://www.martinhaagen.se/posts/simplify-the-usage-of-custom-settings/", "published_at": "2014-01-29T09:39:10+00:00" }, { "id": "01a087a0-e625-729f-bcf2-ee62d4f3cd90", "title": "Mavens Mate Sublime Plugin for force.com", "url": "https://www.martinhaagen.se/posts/mavens-mate-sublime-plugin-for-force-com/", "published_at": "2014-01-16T09:48:21+00:00" }, { "id": "01a087a0-e625-729f-bcf2-ee62d5a063f3", "title": "force com cli", "url": "https://www.martinhaagen.se/posts/force-com-cli/", "published_at": "2013-12-26T09:55:34+00:00" }, { "id": "01a087a0-e625-729f-bcf2-ee62d600f7e1", "title": "Dreamforce 13 - presentation", "url": "https://www.martinhaagen.se/posts/df13-presentation/", "published_at": "2013-11-23T10:02:18+00:00" }, { "id": "01a087a0-e625-729f-bcf2-ee62d66748d6", "title": "About the blog", "url": "https://www.martinhaagen.se/about/", "published_at": null }, { "id": "01a087a0-e625-729f-bcf2-ee62d755b61c", "title": "Archive", "url": "https://www.martinhaagen.se/archive/", "published_at": null }, { "id": "01a087a0-e625-729f-bcf2-ee62d7da8f7f", "title": "Privacy Policy", "url": "https://www.martinhaagen.se/privacy/", "published_at": null } ] posts Claim your blog
Back to martinhaagen.se
Blog · corpus.blog/blogs/martinhaagen.se/posts

martinhaagen.se

martinhaagen.se

2025

2024

2023

2022

2021

2020

2019

2018

2017

2014

2013

Undated