57,803 blogs · [ { "id": "01a087b0-36d2-7390-b9f1-050322300cef", "title": "Rolodex: Eit lite nettlesarverktøy for SOME-frigjering", "url": "https://nilsnh.no/2026/07/17/rolodex-eit-lite-nettlesarverkt%C3%B8y-for-some-frigjering/", "published_at": "2026-07-17T17:42:45+00:00" }, { "id": "01a087b0-36d2-7390-b9f1-050322ca9aaa", "title": "FOSDEM 2026: Eit reisebrev frå Brussel", "url": "https://nilsnh.no/2026/02/05/fosdem-2026-eit-reisebrev-fr%C3%A5-brussel/", "published_at": "2026-02-05T00:00:00+00:00" }, { "id": "01a087b0-36d2-7390-b9f1-050323359149", "title": "LLMs: Infinite hype on a finite planet", "url": "https://nilsnh.no/2025/12/30/llms-infinite-hype-on-a-finite-planet/", "published_at": "2025-12-30T00:00:00+00:00" }, { "id": "01a087b0-36d2-7390-b9f1-0503240c22d5", "title": "LinkedIn: Ein slags avinstalleringsguide", "url": "https://nilsnh.no/2025/12/16/linkedin-ein-slags-avinstalleringsguide/", "published_at": "2025-12-16T09:41:47+00:00" }, { "id": "01a087b0-36d2-7390-b9f1-05032427ef77", "title": "Eurovision-klage til NRK", "url": "https://nilsnh.no/2025/12/11/eurovision-klage-til-nrk/", "published_at": "2025-12-11T09:27:08+00:00" }, { "id": "01a087b0-36d2-7390-b9f1-0503246b41d8", "title": "Tekna og Gaza: Frå teiing til standpunkt", "url": "https://nilsnh.no/2025/09/16/tekna-og-gaza-fr%C3%A5-teiing-til-standpunkt/", "published_at": "2025-09-16T00:00:00+00:00" }, { "id": "01a087b0-36d2-7390-b9f1-050325471b84", "title": "Den norske okkupasjons­profitteringa", "url": "https://nilsnh.no/2025/05/15/den-norske-okkupasjonsprofitteringa/", "published_at": "2025-05-15T00:00:00+00:00" }, { "id": "01a087b0-36d2-7390-b9f1-050325bc39a2", "title": "One fine hackathon with Common Lisp", "url": "https://nilsnh.no/2025/04/20/one-fine-hackathon-with-common-lisp/", "published_at": "2025-04-20T11:04:33+00:00" }, { "id": "01a087b0-36d2-7390-b9f1-0503265e491a", "title": "Init Systems: Looking at systemd and Shepherd", "url": "https://nilsnh.no/2025/04/07/init-systems-looking-at-systemd-and-shepherd/", "published_at": "2025-04-07T00:00:00+00:00" }, { "id": "01a087b0-36d2-7390-b9f1-050326e9b87d", "title": "Thoughts on the world and its future", "url": "https://nilsnh.no/2025/03/01/thoughts-on-the-world-and-its-future/", "published_at": "2025-03-01T17:31:50+00:00" }, { "id": "01a087b0-36d2-7390-b9f1-05032784cb0c", "title": "First impressions: Climbing mount Emacs", "url": "https://nilsnh.no/2025/01/26/first-impressions-climbing-mount-emacs/", "published_at": "2025-01-26T00:00:00+00:00" }, { "id": "01a087b0-36d2-7390-b9f1-0503285883e5", "title": "On the purpose of the www-data user", "url": "https://nilsnh.no/2025/01/03/on-the-purpose-of-the-www-data-user/", "published_at": "2025-01-03T00:00:00+00:00" }, { "id": "01a087b0-36d2-7390-b9f1-050328f071bb", "title": "Filesystems are weird", "url": "https://nilsnh.no/2024/11/01/filesystems-are-weird/", "published_at": "2024-11-01T09:58:46+00:00" }, { "id": "01a087b0-36d2-7390-b9f1-050329acaf7f", "title": "God morgon IT-bransje, me må prata om apartheid og folkemord", "url": "https://nilsnh.no/2024/10/30/god-morgon-it-bransje-me-maa-prata-om-apartheid-og-folkemord/", "published_at": "2024-10-30T09:32:07+00:00" }, { "id": "01a087b0-36d2-7390-b9f1-05032a9c856c", "title": "Notatar frå lokallagskonferansen til Palestinakomiteen 2024", "url": "https://nilsnh.no/2024/notatar-fra-lokallagskonferansen-til-palestinakomiteen/", "published_at": "2024-09-26T00:00:00+00:00" }, { "id": "01a087b0-36d2-7390-b9f1-05032b8aa430", "title": "Erfaringar frå bruk av Whisper til teksting av video", "url": "https://nilsnh.no/2024/08/08/erfaringar-fra-bruk-av-whisper-til-teksting-av-video/", "published_at": "2024-08-08T00:00:00+00:00" }, { "id": "01a087b0-36d2-7390-b9f1-05032bee4f7b", "title": "Divesting from Github and going self-hosted", "url": "https://nilsnh.no/2024/07/15/divesting-from-github-and-going-self-hosted/", "published_at": "2024-07-15T00:00:00+00:00" }, { "id": "01a087b0-36d2-7390-b9f1-05032c9ece86", "title": "How I self-host my git projects with Forgejo", "url": "https://nilsnh.no/how-i-self-host-git-projects/", "published_at": "2024-07-15T00:00:00+00:00" }, { "id": "01a087b0-36d2-7390-b9f1-05032d6336b5", "title": "Boknotat: Håp er det du gjør av Hanne Lossius og Marthe Valle", "url": "https://nilsnh.no/2024/07/03/boknotat-hap-er-det-du-gjor-av-hanne-lossius-og-marthe-valle/", "published_at": "2024-07-03T00:00:00+00:00" }, { "id": "01a087b0-36d2-7390-b9f1-05032e1168dd", "title": "Discourse user guide: How to setup two factor authentication (2FA)?", "url": "https://nilsnh.no/2024/06/19/discourse-user-guide-how-to-setup-two-factor-authentication-2fa/", "published_at": "2024-06-19T00:00:00+00:00" }, { "id": "01a087b0-36d2-7390-b9f1-05032e16185f", "title": "Boknotat: Teknodiversitet av Yuk Hui", "url": "https://nilsnh.no/2024/02/07/boknotat-teknodiversitet-av-yuk-hui/", "published_at": "2024-02-07T10:19:37+00:00" }, { "id": "01a087b0-36d3-72eb-a4d2-1bf3aa359866", "title": "Frog and Mouse on Centralized Services", "url": "https://nilsnh.no/2024/01/17/frog-and-mouse-on-centralized-services/", "published_at": "2024-01-17T11:41:30+00:00" }, { "id": "01a087b0-36d3-72eb-a4d2-1bf3aae22d89", "title": "Boknotat: Why I Write av George Orwell", "url": "https://nilsnh.no/2024/01/15/boknotat-why-i-write-av-george-orwell/", "published_at": "2024-01-15T00:00:00+00:00" }, { "id": "01a087b0-36d3-72eb-a4d2-1bf3aafe5127", "title": "Access control design: Avoiding a labyrinth of unknown-unknowns", "url": "https://nilsnh.no/2024/01/14/access-control-design-avoiding-a-labyrinth-of-unknown-unknowns/", "published_at": "2024-01-14T00:00:00+00:00" }, { "id": "01a087b0-36d3-72eb-a4d2-1bf3ab730063", "title": "Boknotat: Hverdagshelter av Eva Joly", "url": "https://nilsnh.no/2023/09/28/boknotat-hverdagshelter-av-eva-joly/", "published_at": "2023-09-28T08:45:40+00:00" }, { "id": "01a087b0-36d3-72eb-a4d2-1bf3ab7d390e", "title": "Celebrating 8 years of self-hosting Mail-in-a-Box", "url": "https://nilsnh.no/2023/09/02/celebrating-8-years-of-self-hosting-mail-in-a-box/", "published_at": "2023-09-02T18:18:29+00:00" }, { "id": "01a087b0-36d3-72eb-a4d2-1bf3ab8ebd86", "title": "Frå Netlife Bergen til Builder Heart", "url": "https://nilsnh.no/2023/07/29/fraa-netlife-bergen-til-builder-heart/", "published_at": "2023-07-29T00:00:00+00:00" }, { "id": "01a087b0-36d3-72eb-a4d2-1bf3abe0b47c", "title": "Guide: Korleis sjå film eller TV med nokon som brukar høyreapparat", "url": "https://nilsnh.no/2023/05/29/guide-korleis-sjaa-film-eller-tv-med-nokon-som-brukar-hoyreapparat/", "published_at": "2023-05-29T00:00:00+00:00" }, { "id": "01a087b0-36d3-72eb-a4d2-1bf3ac7aa966", "title": "Poetry for programmers, an experimental workshop", "url": "https://nilsnh.no/2023/04/17/poetry-for-programmers-an-experimental-workshop/", "published_at": "2023-04-17T00:00:00+00:00" }, { "id": "01a087b0-36d3-72eb-a4d2-1bf3ad383a44", "title": "Var dei siste ti åra med JS-rammeverk bortkasta hype?", "url": "https://nilsnh.no/2023/03/20/var-dei-siste-ti-ara-med-js-rammeverk-bortkasta-hype/", "published_at": "2023-03-20T00:00:00+00:00" }, { "id": "01a087b0-36d3-72eb-a4d2-1bf3ae25b057", "title": "Guide for setup av IPv6-delegering med OpenWRT og Altibox", "url": "https://nilsnh.no/2023/03/01/guide-for-setup-av-ipv6-delegering-med-openwrt-og-altibox/", "published_at": "2023-03-01T00:00:00+00:00" }, { "id": "01a087b0-36d3-72eb-a4d2-1bf3af07b1d4", "title": "Meir fart og mindre snork med CustomEvent i JavaScript", "url": "https://nilsnh.no/2023/02/16/meir-fart-og-mindre-snork-med-customevent-i-javascript/", "published_at": "2023-02-16T06:00:54+00:00" }, { "id": "01a087b0-36d3-72eb-a4d2-1bf3af61bf9f", "title": "PHP er ikkje så halvgale (ikkje så verst)", "url": "https://nilsnh.no/2022/11/10/php-er-ikkje-saa-halvgale/", "published_at": "2022-11-10T17:24:14+00:00" }, { "id": "01a087b0-36d3-72eb-a4d2-1bf3aff32dfe", "title": "Helseklage må bli ein læringsressurs for helsesektoren", "url": "https://nilsnh.no/2022/10/01/helseklage-maa-bli-ein-laeringsressurs-for-helsesektoren/", "published_at": "2022-10-01T10:00:39+00:00" }, { "id": "01a087b0-36d3-72eb-a4d2-1bf3b0dd54e8", "title": "Maksimer brukbarheit og haldbarheit med utleding av komponent-APIer i ReactJS og TypeScript", "url": "https://nilsnh.no/2022/08/17/maksimer-brukbarheit-og-haldbarheit-med-utleding-av-komponent-apier-i-reactjs-og-typescript/", "published_at": "2022-08-17T04:12:11+00:00" }, { "id": "01a087b0-36d3-72eb-a4d2-1bf3b0df0a32", "title": "Deploying over 393000 URLs under 26 seconds using Hugo and Netlify on-demand builders", "url": "https://nilsnh.no/2022/07/21/deploying-over-393000-urls-under-26-seconds-using-hugo-and-netlify-on-demand-builders/", "published_at": "2022-07-21T15:00:06+00:00" }, { "id": "01a087b0-36d3-72eb-a4d2-1bf3b1c88ab6", "title": "Innovating beyond libraries and frameworks", "url": "https://nilsnh.no/2022/04/09/innovating-beyond-libraries-and-frameworks/", "published_at": "2022-04-09T07:04:03+00:00" }, { "id": "01a087b0-36d3-72eb-a4d2-1bf3b2416427", "title": "Building and hosting a workshop on web components", "url": "https://nilsnh.no/2022/03/26/building-and-hosting-a-workshop-on-web-components/", "published_at": "2022-03-26T05:54:55+00:00" }, { "id": "01a087b0-36d3-72eb-a4d2-1bf3b2b98b0f", "title": "Guide: Localizing Sanity CMS with the Intl Input Plugin", "url": "https://nilsnh.no/2021/08/22/guide-localizing-sanity-cms-with-the-intl-input-plugin/", "published_at": "2021-08-22T00:00:00+00:00" }, { "id": "01a087b0-36d3-72eb-a4d2-1bf3b3575bf0", "title": "Accelerate: Ei forfriskande forskingsbasert bok om programvareutvikling", "url": "https://nilsnh.no/2021/07/19/accelerate-ei-forfriskande-forskingsbasert-bok-om-programvareutvikling/", "published_at": "2021-07-19T00:00:00+00:00" }, { "id": "01a087b0-36d3-72eb-a4d2-1bf3b379200d", "title": "Mozilla Festival 2021: Reflections on my first MozFest", "url": "https://nilsnh.no/2021/05/24/mozilla-festival-2021-reflections-on-my-first-mozfest/", "published_at": "2021-05-24T00:00:00+00:00" }, { "id": "01a087b0-36d3-72eb-a4d2-1bf3b438bee3", "title": "Intro til web komponenter i React komponenter: Korleis og kvifor?", "url": "https://nilsnh.no/2020/11/29/intro-til-web-komponenter-i-react-komponenter-korleis-og-kvifor/", "published_at": "2020-11-29T16:33:03+00:00" }, { "id": "01a087b0-36d3-72eb-a4d2-1bf3b439099c", "title": "Discussing software ethics on the podcast Greater Than Code", "url": "https://nilsnh.no/2020/09/27/discussing-software-ethics-on-the-podcast-greater-than-code/", "published_at": "2020-09-27T16:29:47+00:00" }, { "id": "01a087b0-36d3-72eb-a4d2-1bf3b507e60b", "title": "Real Rebels Pay Their Taxes", "url": "https://nilsnh.no/2020/08/14/real-rebels-pay-their-taxes/", "published_at": "2020-08-14T19:53:02+00:00" }, { "id": "01a087b0-36d3-72eb-a4d2-1bf3b5db796e", "title": "The Minimalist Magician's guide on how to format GraphQL queries using Prettier", "url": "https://nilsnh.no/2020/07/11/the-minimalist-magicians-guide-on-how-to-format-graphql-queries-using-prettier/", "published_at": "2020-07-11T06:46:15+00:00" }, { "id": "01a087b0-36d3-72eb-a4d2-1bf3b633ddc8", "title": "Tida renn ut for Smittestopp-appen", "url": "https://nilsnh.no/2020/05/16/tida-renn-ut-for-smittestopp-appen/", "published_at": "2020-05-16T19:25:02+00:00" }, { "id": "01a087b0-36d3-72eb-a4d2-1bf3b66b59e2", "title": "Smittestopp-appen kan bli god butikk", "url": "https://nilsnh.no/2020/05/16/smittestopp-appen-kan-bli-god-butikk/", "published_at": "2020-05-16T18:31:17+00:00" }, { "id": "01a087b0-36d3-72eb-a4d2-1bf3b6aea144", "title": "Om Smittestopp-appen var eit fly så ville eg ikkje satt min fot ombord", "url": "https://nilsnh.no/2020/04/17/om-smittestopp-appen-var-eit-fly-s%C3%A5-ville-eg-ikkje-satt-min-fot-ombord/", "published_at": "2020-04-17T11:54:00+00:00" }, { "id": "01a087b0-36d3-72eb-a4d2-1bf3b6c9c6c4", "title": "Min fyrste rekursive type i Typescript", "url": "https://nilsnh.no/2020/03/23/min-fyrste-rekursive-type-i-typescript/", "published_at": "2020-03-23T19:06:11+00:00" }, { "id": "01a087b0-36d3-72eb-a4d2-1bf3b762cfdd", "title": "Debugging database size, searchindex and revisions table bloat in Craft CMS 3", "url": "https://nilsnh.no/2020/02/09/debugging-database-size-searchindex-and-revisions-table-bloat-in-craft-cms-3/", "published_at": "2020-02-09T10:21:12+00:00" }, { "id": "01a087b0-36d3-72eb-a4d2-1bf3b7cbf0b9", "title": "Adios, finally deleting my Twitter and dev.to accounts", "url": "https://nilsnh.no/2020/01/24/adios-finally-deleting-my-twitter-and-dev.to-accounts/", "published_at": "2020-01-24T03:58:24+00:00" }, { "id": "01a087b0-36d3-72eb-a4d2-1bf3b8746c0f", "title": "Case study: Archiving an old multi-site WordPress instance", "url": "https://nilsnh.no/2020/01/14/case-study-archiving-an-old-multi-site-wordpress-instance/", "published_at": "2020-01-14T00:00:00+00:00" }, { "id": "01a087b0-36d3-72eb-a4d2-1bf3b89ae6ea", "title": "Let us make 2020 a year of empowerment and decentralization", "url": "https://nilsnh.no/2019/12/25/let-us-make-2020-a-year-of-empowerment-and-decentralization/", "published_at": "2019-12-25T14:55:29+00:00" }, { "id": "01a087b0-36d3-72eb-a4d2-1bf3b994b7f6", "title": "Managing the Google Cloud Platform: On deprecation notices and pricing policies", "url": "https://nilsnh.no/2019/11/09/managing-the-google-cloud-platform-on-deprecation-notices-and-pricing-policies/", "published_at": "2019-11-09T19:37:58+00:00" }, { "id": "01a087b0-36d3-72eb-a4d2-1bf3b9a90249", "title": "Case study: Archiving web sites with wget and puppeteer", "url": "https://nilsnh.no/2019/10/06/case-study-archiving-web-sites-with-wget-and-puppeteer/", "published_at": "2019-10-06T20:02:58+00:00" }, { "id": "01a087b0-36d3-72eb-a4d2-1bf3b9fbb1b9", "title": "Why I switched from Ubuntu to Debian: Exiting the shopping mall", "url": "https://nilsnh.no/2019/07/09/why-i-switched-from-ubuntu-to-debian-exiting-the-shopping-mall/", "published_at": "2019-07-09T12:56:46+00:00" }, { "id": "01a087b0-36d3-72eb-a4d2-1bf3bab0ad18", "title": "Confessions of a laptop window shopper", "url": "https://nilsnh.no/2019/06/08/confessions-of-a-laptop-window-shopper/", "published_at": "2019-06-08T20:42:13+00:00" }, { "id": "01a087b0-36d3-72eb-a4d2-1bf3bb4302cf", "title": "How to connect to a MySQL database server over SSL with Node.js", "url": "https://nilsnh.no/2019/05/03/how-to-connect-to-a-mysql-database-server-over-ssl-with-node.js/", "published_at": "2019-05-03T16:52:09+00:00" }, { "id": "01a087b0-36d3-72eb-a4d2-1bf3bb4365e8", "title": "Nils printer e-post, eit påskeprosjekt", "url": "https://nilsnh.no/2019/04/18/nils-printer-e-post-eit-p%C3%A5skeprosjekt/", "published_at": "2019-04-18T18:10:25+00:00" }, { "id": "01a087b0-36d3-72eb-a4d2-1bf3bbb5fbd3", "title": "Sysadventures: Getting started with the Raspberry Pi 3 Model B+", "url": "https://nilsnh.no/2019/04/18/sysadventures-getting-started-with-the-raspberry-pi-3-model-b/", "published_at": "2019-04-18T12:55:25+00:00" }, { "id": "01a087b0-36d3-72eb-a4d2-1bf3bc849259", "title": "How to add the Highcharts Editor to Sanity, or how to insert an octagon shaped block into a hexagon shaped slot?", "url": "https://nilsnh.no/2019/02/23/how-to-add-the-highcharts-editor-to-sanity-or-how-to-insert-an-octagon-shaped-block-into-a-hexagon-shaped-slot/", "published_at": "2019-02-23T16:22:20+00:00" }, { "id": "01a087b0-36d3-72eb-a4d2-1bf3bc89c796", "title": "Ansible+Git: My search for a build server setup that can last years", "url": "https://nilsnh.no/2019/02/09/ansible-git-my-search-for-a-build-server-setup-that-can-last-years/", "published_at": "2019-02-09T18:55:41+00:00" }, { "id": "01a087b0-36d3-72eb-a4d2-1bf3bd173427", "title": "Recipe: Wrapping the default input widget in Sanity CMS", "url": "https://nilsnh.no/2019/01/06/recipe-wrapping-the-default-input-widget-in-sanity-cms/", "published_at": "2019-01-06T17:56:39+00:00" }, { "id": "01a087b0-36d3-72eb-a4d2-1bf3bd5a12b7", "title": "How to create access tokens with domain-wide delegation in GSuite using Node.js", "url": "https://nilsnh.no/2019/01/06/how-to-create-access-tokens-with-domain-wide-delegation-in-gsuite-using-node.js/", "published_at": "2019-01-06T16:23:56+00:00" }, { "id": "01a087b0-36d3-72eb-a4d2-1bf3bd5e1d4d", "title": "Facebook-skandalene har stått i kø i 2018. Kva med å teste noko anna?", "url": "https://nilsnh.no/2018/12/25/facebook-skandalene-har-st%C3%A5tt-i-k%C3%B8-i-2018.-kva-med-%C3%A5-teste-noko-anna/", "published_at": "2018-12-25T00:00:00+00:00" }, { "id": "01a087b0-36d3-72eb-a4d2-1bf3bddd72db", "title": "How to implement domain-wide delegation in GSuite using Node.js", "url": "https://nilsnh.no/2018/12/17/how-to-implement-domain-wide-delegation-in-gsuite-using-node.js/", "published_at": "2018-12-17T22:14:30+00:00" }, { "id": "01a087b0-36d3-72eb-a4d2-1bf3bed24928", "title": "Auth0 OpenID Connect compliant login: How to add app_metadata to id_token using custom claims?", "url": "https://nilsnh.no/2018/12/09/auth0-openid-connect-compliant-login-how-to-add-app_metadata-to-id_token-using-custom-claims/", "published_at": "2018-12-09T17:14:32+00:00" }, { "id": "01a087b0-36d3-72eb-a4d2-1bf3beffe096", "title": "What if you drew a map of the apps you visit?", "url": "https://nilsnh.no/2018/11/19/what-if-you-drew-a-map-of-the-apps-you-visit/", "published_at": "2018-11-19T20:21:47+00:00" }, { "id": "01a087b0-36d3-72eb-a4d2-1bf3bf829b16", "title": "Real Internet with Kodepoeten", "url": "https://nilsnh.no/2018/10/13/real-internet-with-kodepoeten/", "published_at": "2018-10-13T16:22:06+00:00" }, { "id": "01a087b0-36d3-72eb-a4d2-1bf3c0389029", "title": "Measure twice, code once: Hardcoding dangerous scripts", "url": "https://nilsnh.no/2018/08/19/measure-twice-code-once-hardcoding-dangerous-scripts/", "published_at": "2018-08-19T12:14:07+00:00" }, { "id": "01a087b0-36d3-72eb-a4d2-1bf3c084754d", "title": "Debugging complex GraphQL queries with shortlinks to GraphiQL", "url": "https://nilsnh.no/2018/08/04/debugging-complex-graphql-queries-with-shortlinks-to-graphiql/", "published_at": "2018-08-04T13:21:38+00:00" }, { "id": "01a087b0-36d3-72eb-a4d2-1bf3c11e8e96", "title": "Effective Hapi: Lessons learned leveraging the web-server framework", "url": "https://nilsnh.no/2018/07/23/effective-hapi-lessons-learned-leveraging-the-web-server-framework/", "published_at": "2018-07-23T16:18:43+00:00" }, { "id": "01a087b0-36d3-72eb-a4d2-1bf3c1d6fe40", "title": "About me", "url": "https://nilsnh.no/page/about-nils-norman-haukaas/", "published_at": "2018-07-20T20:08:52+00:00" }, { "id": "01a087b0-36d3-72eb-a4d2-1bf3c24e42e8", "title": "Talks given", "url": "https://nilsnh.no/page/talks/", "published_at": "2018-07-20T20:08:52+00:00" }, { "id": "01a087b0-36d3-72eb-a4d2-1bf3c2e55393", "title": "Publiseringsguide for apartheidfrie soner", "url": "https://nilsnh.no/page/afs-guide/", "published_at": "2018-07-20T00:00:00+00:00" }, { "id": "01a087b0-36d3-72eb-a4d2-1bf3c3c1d77c", "title": "How to enable layout mode for Handlebars.js in Hapi.js", "url": "https://nilsnh.no/2018/07/13/how-to-enable-layout-mode-for-handlebars.js-in-hapi.js/", "published_at": "2018-07-13T16:37:37+00:00" }, { "id": "01a087b0-36d3-72eb-a4d2-1bf3c454cd97", "title": "Slow days are nice", "url": "https://nilsnh.no/2018/06/16/slow-days-are-nice/", "published_at": "2018-06-16T19:32:35+00:00" }, { "id": "01a087b0-36d3-72eb-a4d2-1bf3c507ec32", "title": "Hugo: How to add support for responsive images trough image processing and page bundles", "url": "https://nilsnh.no/2018/06/10/hugo-how-to-add-support-for-responsive-images-trough-image-processing-and-page-bundles-3/", "published_at": "2018-06-10T19:39:08+00:00" }, { "id": "01a087b0-36d3-72eb-a4d2-1bf3c51677c0", "title": "How to build command line tools on shifting sands", "url": "https://nilsnh.no/2018/05/27/how-to-build-command-line-tools-on-shifting-sands/", "published_at": "2018-05-26T22:23:35+00:00" }, { "id": "01a087b0-36d4-72aa-97e5-4fb2a5f59321", "title": "mysql-parse og hamstr, to brukervennlege terminalprogram", "url": "https://nilsnh.no/2018/05/21/mysql-parse-og-hamstr-to-brukervennlege-terminalprogram/", "published_at": "2018-05-21T16:42:32+00:00" }, { "id": "01a087b0-36d4-72aa-97e5-4fb2a631b3b3", "title": "Still alive, still social", "url": "https://nilsnh.no/2018/05/19/still-alive-still-social/", "published_at": "2018-05-19T18:28:21+00:00" }, { "id": "01a087b0-36d4-72aa-97e5-4fb2a6dfbbdd", "title": "Leaving Facebook", "url": "https://nilsnh.no/2018/04/04/leaving-facebook/", "published_at": "2018-04-04T09:20:22+00:00" }, { "id": "01a087b0-36d4-72aa-97e5-4fb2a7bc9aed", "title": "Spring cleaning code: Or deleting code that was actually important", "url": "https://nilsnh.no/2018/03/26/spring-cleaning-code-or-deleting-code-that-was-actually-important/", "published_at": "2018-03-26T17:48:05+00:00" }, { "id": "01a087b0-36d4-72aa-97e5-4fb2a7c7c6d4", "title": "How good code dies", "url": "https://nilsnh.no/2018/01/13/how-good-code-dies/", "published_at": "2018-01-13T20:04:04+00:00" }, { "id": "01a087b0-36d4-72aa-97e5-4fb2a8be24cc", "title": "Thunki er lagt ned og ei fin historie ligg igjen", "url": "https://nilsnh.no/2017/07/30/thunki-er-lagt-ned-og-ei-fin-historie-ligg-igjen/", "published_at": "2017-07-30T16:05:05+00:00" }, { "id": "01a087b0-36d4-72aa-97e5-4fb2a902661e", "title": "Besting a time thief using Applescript", "url": "https://nilsnh.no/2017/07/20/besting-a-time-thief-using-applescript/", "published_at": "2017-07-20T20:50:37+00:00" }, { "id": "01a087b0-36d4-72aa-97e5-4fb2a9e6b022", "title": "Craft CMS: How to persist logins in Redis between redeploys", "url": "https://nilsnh.no/2017/07/03/craft-cms-how-to-persist-logins-in-redis-between-redeploys/", "published_at": "2017-07-03T15:17:07+00:00" }, { "id": "01a087b0-36d4-72aa-97e5-4fb2a9fe23e6", "title": "E-commerce for alle penga", "url": "https://nilsnh.no/2017/07/02/e-commerce-for-alle-penga/", "published_at": "2017-07-02T21:16:28+00:00" }, { "id": "01a087b0-36d4-72aa-97e5-4fb2aa6b5a90", "title": "Talking code, breathing air", "url": "https://nilsnh.no/2017/05/22/talking-code-breathing-air/", "published_at": "2017-05-22T20:40:46+00:00" }, { "id": "01a087b0-36d4-72aa-97e5-4fb2aa90dde5", "title": "Ein introduksjon til NAV sine IT-systemer og IT-arkitektur", "url": "https://nilsnh.no/2017/04/09/ein-introduksjon-til-nav-sine-it-systemer-og-it-arkitektur/", "published_at": "2017-04-09T20:29:43+00:00" }, { "id": "01a087b0-36d4-72aa-97e5-4fb2ab753061", "title": "Getting wiser about Craft CMS caching (version 2.6)", "url": "https://nilsnh.no/2017/01/01/getting-wiser-about-craft-cms-caching-version-2.6/", "published_at": "2017-01-01T21:40:33+00:00" }, { "id": "01a087b0-36d4-72aa-97e5-4fb2abb3bf05", "title": "Craft CMS, and the Need for Speed", "url": "https://nilsnh.no/2016/12/30/craft-cms-and-the-need-for-speed/", "published_at": "2016-12-30T20:56:55+00:00" }, { "id": "01a087b0-36d4-72aa-97e5-4fb2abbb0db0", "title": "Haskell, initial thoughts", "url": "https://nilsnh.no/2016/12/28/haskell-initial-thoughts/", "published_at": "2016-12-28T17:19:08+00:00" }, { "id": "01a087b0-36d4-72aa-97e5-4fb2abd95c63", "title": "Sysadventures: Switching from Android to iPhone", "url": "https://nilsnh.no/2016/10/30/sysadventures-switching-from-android-to-iphone/", "published_at": "2016-10-30T16:43:22+00:00" }, { "id": "01a087b0-36d4-72aa-97e5-4fb2ac22db34", "title": "Film til folket", "url": "https://nilsnh.no/2016/10/02/film-til-folket/", "published_at": "2016-10-02T06:51:33+00:00" }, { "id": "01a087b0-36d4-72aa-97e5-4fb2ac5ad09b", "title": "SysAdventures: 18 months of running my own mail server", "url": "https://nilsnh.no/2016/09/18/sysadventures-18-months-of-running-my-own-mail-server/", "published_at": "2016-09-18T20:34:41+00:00" }, { "id": "01a087b0-36d4-72aa-97e5-4fb2ad373c82", "title": "git insticts", "url": "https://nilsnh.no/2016/02/29/git-insticts/", "published_at": "2016-02-29T00:00:00+00:00" }, { "id": "01a087b0-36d4-72aa-97e5-4fb2adb1fb20", "title": "Blood as a debuggable data set", "url": "https://nilsnh.no/2015/12/18/blood-as-a-debuggable-data-set/", "published_at": "2015-12-18T00:00:00+00:00" }, { "id": "01a087b0-36d4-72aa-97e5-4fb2ae5ad0f2", "title": "Lessons learned designing and redesigning an API", "url": "https://nilsnh.no/2015/12/16/lessons-learned-designing-and-redesigning-an-api/", "published_at": "2015-12-16T00:00:00+00:00" }, { "id": "01a087b0-36d4-72aa-97e5-4fb2ae69250b", "title": "Let the junior handle it", "url": "https://nilsnh.no/2015/12/15/let-the-junior-handle-it/", "published_at": "2015-12-15T00:00:00+00:00" } ] posts Claim your blog
Back to nilsnh.no
Blog · corpus.blog/blogs/nilsnh.no/posts

nilsnh.no

nilsnh.no

2026

2025

2024

2023

2022

2021

2020

2019

2018

2017

2016

2015