41554 blogs · [ { "id": "01a087a4-4a53-7150-a8e1-01a6fe5fa03f", "title": "AI agents belong in prison", "url": "https://metallapan.se/blog/2026-04-27-agent-in-prison/", "published_at": "2026-04-20T00:00:00+00:00" }, { "id": "01a087a4-4a53-7150-a8e1-01a6ff1bfff2", "title": "Giving Your AI a Memory: Building a Local Knowledge Base with pgvector and MCP", "url": "https://metallapan.se/post/giving-your-ai-a-memory/", "published_at": "2026-03-15T00:00:00+00:00" }, { "id": "01a087a4-4a53-7150-a8e1-01a6ff571cd1", "title": "Cleaning sensitive data from test (PG) databases", "url": "https://metallapan.se/post/datamask/", "published_at": "2021-05-05T00:00:00+00:00" }, { "id": "01a087a4-4a53-7150-a8e1-01a6fff1cca5", "title": "Creating a one-file Windows service in Python with pywin32 and PyInstaller", "url": "https://metallapan.se/post/windows-service-pywin32-pyinstaller/", "published_at": "2020-12-05T23:00:00+00:00" }, { "id": "01a087a4-4a53-7150-a8e1-01a700406704", "title": "New homepage, new URL for Bitsynchub", "url": "https://metallapan.se/post/new-homepage-new-url-for-bitsynchub/", "published_at": "2020-11-10T18:13:10+00:00" }, { "id": "01a087a4-4a53-7150-a8e1-01a70067f2d4", "title": "Provisioning Elasticsearch and Kibana with Terraform", "url": "https://metallapan.se/post/provisioning-elasticsearch-and-kibana-with-terraform/", "published_at": "2020-10-25T11:37:30+00:00" }, { "id": "01a087a4-4a53-7150-a8e1-01a701381195", "title": "What I wish recruiters would do", "url": "https://metallapan.se/post/what-i-wish-recruiters-would-do/", "published_at": "2020-10-25T11:16:47+00:00" }, { "id": "01a087a4-4a53-7150-a8e1-01a70180fdc1", "title": "Another kind of nomad?", "url": "https://metallapan.se/post/another-kind-of-nomad/", "published_at": "2017-07-16T22:00:00+00:00" }, { "id": "01a087a4-4a53-7150-a8e1-01a7025c0a53", "title": "BitSyncHub Open Sourced", "url": "https://metallapan.se/post/bitsynchub-open-sourced/", "published_at": "2016-01-12T23:00:00+00:00" }, { "id": "01a087a4-4a53-7150-a8e1-01a702addde4", "title": "Slides and videos from Stockholm Automation Nights #1", "url": "https://metallapan.se/post/slides-and-videos-from-stockholm-automation-nights-1/", "published_at": "2015-09-19T22:00:00+00:00" }, { "id": "01a087a4-4a53-7150-a8e1-01a7032b52bc", "title": "PyCon Sweden – get your ticket while it’s hot!", "url": "https://metallapan.se/post/pycon-sweden-get-your-ticket-while-its-hot/", "published_at": "2015-03-18T23:00:00+00:00" }, { "id": "01a087a4-4a53-7150-a8e1-01a70358b9ca", "title": "PyCon Sweden Call For Proposals – Less Than a Week Left", "url": "https://metallapan.se/post/pycon-sweden-call-for-proposals-less-than-a-week-left/", "published_at": "2015-02-09T23:00:00+00:00" }, { "id": "01a087a4-4a53-7150-a8e1-01a703bb08aa", "title": "Call for Proposals: PyCon Sweden 2014!", "url": "https://metallapan.se/post/call-for-proposals-pycon-sweden-2014/", "published_at": "2014-02-19T23:00:00+00:00" }, { "id": "01a087a4-4a53-7150-a8e1-01a7049ea816", "title": "Basic Python course in Karlskona", "url": "https://metallapan.se/post/basic-python-course-in-karlskona/", "published_at": "2014-02-16T23:00:00+00:00" }, { "id": "01a087a4-4a53-7150-a8e1-01a70501f0fb", "title": "Embedding Jython in Java Applications", "url": "https://metallapan.se/post/embedding-jython-in-java-applications/", "published_at": "2014-01-01T23:00:00+00:00" }, { "id": "01a087a4-4a53-7150-a8e1-01a705cb695e", "title": "I accidentally the server", "url": "https://metallapan.se/post/i-accidentally-the-server/", "published_at": "2013-12-12T23:00:00+00:00" }, { "id": "01a087a4-4a53-7150-a8e1-01a705da4601", "title": "BitSynchHub now supports git, gitapi released, new hgapi version", "url": "https://metallapan.se/post/bitsynchhub-now-supports-git-gitapi-released-new-hgapi-version/", "published_at": "2013-09-11T22:00:00+00:00" }, { "id": "01a087a4-4a53-7150-a8e1-01a705fed07d", "title": "Synchronize Bitbucket to Github automatically", "url": "https://metallapan.se/post/synchronize-bitbucket-to-github-automatically/", "published_at": "2013-07-23T22:00:00+00:00" }, { "id": "01a087a4-4a53-7150-a8e1-01a70650099c", "title": "See you in Florence this summer?", "url": "https://metallapan.se/post/see-you-in-florence-this-summer/", "published_at": "2013-04-02T22:00:00+00:00" }, { "id": "01a087a4-4a53-7150-a8e1-01a706a77169", "title": "Batteries included: Download, unzip and parse in 13 lines", "url": "https://metallapan.se/post/batteries-included-download-unzip-and-parse-in-13-lines/", "published_at": "2013-03-30T23:00:00+00:00" }, { "id": "01a087a4-4a53-7150-a8e1-01a70769f261", "title": "WGS-84 distance calculations at the speed of C", "url": "https://metallapan.se/post/wgs-84-distance-calculations-at-the-speed-of-c/", "published_at": "2013-02-20T23:00:00+00:00" }, { "id": "01a087a4-4a53-7150-a8e1-01a707fd9b8b", "title": "pyRest part 5: You can actually use this", "url": "https://metallapan.se/post/pyrest-part-5-you-can-actually-use-this/", "published_at": "2013-02-10T23:00:00+00:00" }, { "id": "01a087a4-4a53-7150-a8e1-01a70847f380", "title": "pyRest part 4: Separating the parts", "url": "https://metallapan.se/post/pyrest-part-4-separating-the-parts/", "published_at": "2012-12-19T23:00:00+00:00" }, { "id": "01a087a4-4a53-7150-a8e1-01a708fe5e54", "title": "pyRest part 3: Routing and responsibilities", "url": "https://metallapan.se/post/pyrest-part-3-routing-and-responsibilities/", "published_at": "2012-12-13T23:00:00+00:00" }, { "id": "01a087a4-4a53-7150-a8e1-01a70900ee19", "title": "pyRest part 2: Hooking the API", "url": "https://metallapan.se/post/pyrest-part-2-hooking-the-api/", "published_at": "2012-12-08T23:00:00+00:00" }, { "id": "01a087a4-4a53-7150-a8e1-01a709e749ad", "title": "Simple REST-ful (-ish) exposure of Python APIs", "url": "https://metallapan.se/post/simple-rest-ful-ish-exposure-of-python-apis/", "published_at": "2012-12-05T23:00:00+00:00" }, { "id": "01a087a4-4a53-7150-a8e1-01a70a4f1620", "title": "Sending non-valid names as arguments", "url": "https://metallapan.se/post/sending-non-valid-names-as-arguments/", "published_at": "2012-11-01T23:00:00+00:00" }, { "id": "01a087a4-4a53-7150-a8e1-01a70a5d3b7d", "title": "See me on an island!", "url": "https://metallapan.se/post/see-me-on-an-island/", "published_at": "2012-09-15T22:00:00+00:00" }, { "id": "01a087a4-4a53-7150-a8e1-01a70ace3ad5", "title": "You should send a presentation proposal to PyCon", "url": "https://metallapan.se/post/you-should-send-a-presentation-proposal-to-pycon/", "published_at": "2012-09-04T22:00:00+00:00" }, { "id": "01a087a4-4a53-7150-a8e1-01a70ad3f6b4", "title": "Using the AST to hack constants into Python", "url": "https://metallapan.se/post/using-the-ast-to-hack-constants-into-python/", "published_at": "2012-07-25T22:00:00+00:00" }, { "id": "01a087a4-4a53-7150-a8e1-01a70b92d70a", "title": "EuroPython impressions", "url": "https://metallapan.se/post/europython-impressions/", "published_at": "2012-07-13T22:00:00+00:00" }, { "id": "01a087a4-4a53-7150-a8e1-01a70c91544e", "title": "You deserve practice", "url": "https://metallapan.se/post/you-deserve-practice/", "published_at": "2012-04-22T22:00:00+00:00" }, { "id": "01a087a4-4a53-7150-a8e1-01a70d20626d", "title": "Version 1.2.0 of hgapi released", "url": "https://metallapan.se/post/version-1-2-0-of-hgapi-released/", "published_at": "2012-04-12T22:00:00+00:00" }, { "id": "01a087a4-4a53-7150-a8e1-01a70dedf655", "title": "Protocol specifications written in Python", "url": "https://metallapan.se/post/protocol-specifications-written-in-python/", "published_at": "2012-03-28T22:00:00+00:00" }, { "id": "01a087a4-4a53-7150-a8e1-01a70e89a3eb", "title": "PyCon 2012 – the other stuff", "url": "https://metallapan.se/post/pycon-2012-the-other-stuff/", "published_at": "2012-03-21T23:00:00+00:00" }, { "id": "01a087a4-4a53-7150-a8e1-01a70f5f33fb", "title": "[rant] Dare to show your code", "url": "https://metallapan.se/post/rant-dare-to-show-your-code/", "published_at": "2012-03-01T23:00:00+00:00" }, { "id": "01a087a4-4a53-7150-a8e1-01a70f89dbc5", "title": "Python Closures and Decorators (Pt. 2)", "url": "https://metallapan.se/post/python-closures-and-decorators-pt-2/", "published_at": "2012-02-29T23:00:00+00:00" }, { "id": "01a087a4-4a53-7150-a8e1-01a710415243", "title": "Python Closures and Decorators (Pt. 1)", "url": "https://metallapan.se/post/python-closures-and-decorators-pt-1/", "published_at": "2012-02-28T23:00:00+00:00" }, { "id": "01a087a4-4a53-7150-a8e1-01a711007861", "title": "Blaag using Genshi, greedy bloggers adding ads, and demographics. Also ranting.", "url": "https://metallapan.se/post/blaag-using-genshi-greedy-bloggers-adding-ads-and-demographics-also-ranting/", "published_at": "2012-02-26T23:00:00+00:00" }, { "id": "01a087a4-4a53-7150-a8e1-01a71191f574", "title": "Python API to git: gitapi", "url": "https://metallapan.se/post/python-api-to-git-gitapi/", "published_at": "2012-02-20T23:00:00+00:00" }, { "id": "01a087a4-4a53-7150-a8e1-01a712095bf5", "title": "Why Python is important for you", "url": "https://metallapan.se/post/why-python-is-important-for-you/", "published_at": "2012-02-10T23:00:00+00:00" }, { "id": "01a087a4-4a53-7150-a8e1-01a712319860", "title": "Using Python to get rid of .doc", "url": "https://metallapan.se/post/using-python-to-get-rid-of-doc/", "published_at": "2012-02-06T23:00:00+00:00" }, { "id": "01a087a4-4a53-7150-a8e1-01a7125a8f17", "title": "Mercurial in Python 3: promoting hgapi", "url": "https://metallapan.se/post/mercurial-in-python-3-promoting-hgapi/", "published_at": "2012-01-18T23:00:00+00:00" }, { "id": "01a087a4-4a53-7150-a8e1-01a71302fee6", "title": "What’s the point of properties in Python?", "url": "https://metallapan.se/post/whats-the-point-of-properties-in-python/", "published_at": "2012-01-14T23:00:00+00:00" }, { "id": "01a087a4-4a53-7150-a8e1-01a713959d92", "title": "hgapi 1.1.0", "url": "https://metallapan.se/post/hgapi-1-1-0/", "published_at": "2011-12-28T23:00:00+00:00" }, { "id": "01a087a4-4a53-7150-a8e1-01a7144c0629", "title": "Jenkins", "url": "https://metallapan.se/post/jenkins/", "published_at": "2011-12-27T23:00:00+00:00" }, { "id": "01a087a4-4a53-7150-a8e1-01a715307022", "title": "Problem exist between chair and keyboard", "url": "https://metallapan.se/post/problem-exist-between-chair-and-keyboard/", "published_at": "2011-12-27T23:00:00+00:00" }, { "id": "01a087a4-4a53-7150-a8e1-01a71544be8b", "title": "Autohook updated", "url": "https://metallapan.se/post/autohook-updated/", "published_at": "2011-12-20T23:00:00+00:00" }, { "id": "01a087a4-4a53-7150-a8e1-01a7159a11c7", "title": "Tools for better Python", "url": "https://metallapan.se/post/tools-for-better-python/", "published_at": "2011-12-19T23:00:00+00:00" }, { "id": "01a087a4-4a53-7150-a8e1-01a715ba0484", "title": "On useless testing", "url": "https://metallapan.se/post/on-useless-testing/", "published_at": "2011-12-17T23:00:00+00:00" }, { "id": "01a087a4-4a53-7150-a8e1-01a715c87f67", "title": "Styling", "url": "https://metallapan.se/post/styling/", "published_at": "2011-12-17T23:00:00+00:00" }, { "id": "01a087a4-4a53-7150-a8e1-01a716978fb5", "title": "Progress is made", "url": "https://metallapan.se/post/progress-is-made/", "published_at": "2011-12-16T23:00:00+00:00" }, { "id": "01a087a4-4a53-7150-a8e1-01a7176e3611", "title": "RSS support is go!", "url": "https://metallapan.se/post/rss-support-is-go/", "published_at": "2011-12-16T23:00:00+00:00" }, { "id": "01a087a4-4a53-7150-a8e1-01a717bc774f", "title": "It’s alive!", "url": "https://metallapan.se/post/%EF%BB%BFits-alive/", "published_at": "2011-12-15T23:00:00+00:00" } ] posts Claim your blog
Back to metallapan.se
Blog · corpus.blog/blogs/metallapan.se/posts

metallapan.se

metallapan.se

2026

2021

2020

2017

2016

2015

2014

2013

2012

2011