Sign in

Fredrik Sjöstrand

@fronkan.bsky.social
69 followers 142 following 66 posts

Software engineering, ML and data in general, but python in particular! very occasional blogging at: fronkan.hashnode.dev. Storing code at: github.com/Fronkan.

PostsRepliesMedia
Fredrik Sjöstrand @fronkan.bsky.social · 01/05/2026
Obsidian for markdown and support for mermaid together with a coding agent has been absolutely wonderful for creating timeplans. The agent pulling data from multiple excel files and creating a unified plan. Also having it update the mermaid Gant charts as people fire off new things in meetings
000
Fredrik Sjöstrand @fronkan.bsky.social · 07/10/2025
While I built multiple applications and packages at home and work, this is the first time I pushed something to pypi!🥳 It was inspired by this episode of @pythonbytes.fm: pythonbytes.fm/episodes/sho... Where Michael said someone should build a package based on a blog post covered. Well here we go!
pythonbytes.fm
010
Fredrik Sjöstrand @fronkan.bsky.social · 07/10/2025
Testionary (test-dictionary) is a tiny package that provides a dictionary subclass that allow you to track which keys has been accessed and modified. Available on pypi.org/project/test... github.com/Fronkan/test...
github.com
GitHub - Fronkan/testionary: Inspectable dictionaries for testing in Python
Inspectable dictionaries for testing in Python. Contribute to Fronkan/testionary development by creating an account on GitHub.
000
Fredrik Sjöstrand @fronkan.bsky.social · 18/06/2025
I think this is a really good point from @jamellebouie.net. I find outsourcing the formation of my view on a topic to an LLM a scary proposition. This is also why I'm a bit wary around coding assistants. When am I outsourcing so much of my thinking that it impacts my understanding of the problem?
010
Fredrik Sjöstrand @fronkan.bsky.social · 03/06/2025
Here is an image of the editor I live coded in 7 minutes using #textual with it's own source code open.
A terminal window with a text editor. It has a directory tree to the left and a syntax highlighted python file to the right.
010
Fredrik Sjöstrand @fronkan.bsky.social · 03/06/2025
I'm currently trying to internalise this:
010
Fredrik Sjöstrand @fronkan.bsky.social · 03/06/2025
A post based on a lightning talk I had at work a while ago at this point. I live coded a text editor with syntax highlighting in 7 minutes, using Python and Textual. fronkan.hashnode.dev/writing-a-te...
fronkan.hashnode.dev
000
Fredrik Sjöstrand @fronkan.bsky.social · 03/06/2025
While I have published any blog posts in quite a while, I have been drafting a few posts. I hope to start pressing publish a bit more.
100
Fredrik Sjöstrand @fronkan.bsky.social · 31/05/2025
Passing this note along for others. I wrote down some thoughts on how to write better workarounds through comments and tesring a couple of years ago, fronkan.hashnode.dev/tips-tricks-....
fronkan.hashnode.dev
041
Fredrik Sjöstrand @fronkan.bsky.social · 28/05/2025
Thanks to @willmcgugan.bsky.social and the textualize team for this time. Textual seems to be a TUI library that is second to none, python or otherwise. I'm sad that the company didn't work out, but glad that you gave it a go as textual made me fall in love with the terminal applications
willmcgugan.github.io
What’s next?
Some years ago I had the opportunity to work fulltime on project of mine. This was at a time where I fully intended to take a year off, but being able to make a living off a project of your own creati...
2123
Fredrik Sjöstrand @fronkan.bsky.social · 07/05/2025
Well, maybe it's more the immutability 🤔
000
Fredrik Sjöstrand @fronkan.bsky.social · 07/05/2025
When writing elixir, it still feels strange to code without for loops
000
Fredrik Sjöstrand @fronkan.bsky.social · 01/05/2025
Seeing PEP-735, Dependency Groups, included in the latest version pip makes me really happy! With both uv and pip supporting them I'm pretty sure I can move away completely from requirements.txt 🥳
peps.python.org
PEP 735 – Dependency Groups in pyproject.toml | peps.python.org
This PEP specifies a mechanism for storing package requirements in pyproject.toml files such that they are not included in any built distribution of the project.
000
Fredrik Sjöstrand @fronkan.bsky.social · 25/04/2025
I would generally agree with this perspective on LLMs. To me the aggressive stance against there usefulness looks more like a counter reaction against the hype. Are they as useful as the hype-side tries to tell you, absolutely not. Are they useless, also no.
030
Fredrik Sjöstrand @fronkan.bsky.social · 02/04/2025
With everything going on and the virality of bad news it's easy to miss the progress happening. Like a person had a mechanical heart for 100 days as a temporary solution until getting a heart transplant. Even being discharged from hospital during that time 🤯 youtu.be/f7cuOS7nmDY?...
youtu.be
Man Survives 100 Days With Titanium Heart Transplant
YouTube video by ColdFusion
010
Fredrik Sjöstrand @fronkan.bsky.social · 01/04/2025
😂
000
Fredrik Sjöstrand @fronkan.bsky.social · 01/04/2025
After listening to the latest episode of Developer Voices (pod.link/developer-vo...), I installed Nixos in WSL. It looks quite interesting. Also, I love how I can run both ubuntu and Nixos in WSL at the same time.
pod.link
Developer Voices
Deep-dive discussions with the smartest developers we know, explaining what they're working on, how they're trying to move the industry forward, and what we can learn from them.You might find the solu...
010
Fredrik Sjöstrand @fronkan.bsky.social · 28/03/2025
Tried out asdf yesterday, mainly to manage erlang and elixir. Feels like it would have been nice if plugins could manage build dependencies for you. Copy-pasting the install commands from the readme obviously wasn't hard, but increased the friction slightly
000
Fredrik Sjöstrand @fronkan.bsky.social · 21/03/2025
Beside the changing table we have a box of baby socks. I found 3 socks, non of which where equal to the others. Looking around I found another one, which obviously didn't match the other 3. I gave up and started on a new pair, guess I will find 5 non-matching socks the next time ¯⁠\⁠_⁠(⁠ツ⁠)⁠_⁠/⁠¯
000
Fredrik Sjöstrand @fronkan.bsky.social · 20/03/2025
I am very annoyed by LLMs highjacking the term AI
000
Fredrik Sjöstrand @fronkan.bsky.social · 15/03/2025
Been vim-curios for a while. Seems like #neovim with Kickstart(github.com/nvim-lua/kic...) is what I needed to get going😁
github.com
GitHub - nvim-lua/kickstart.nvim: A launch point for your personal nvim configuration
A launch point for your personal nvim configuration - nvim-lua/kickstart.nvim
000
Fredrik Sjöstrand @fronkan.bsky.social · 14/03/2025
"follow and pin" might be the bluesky equivalent of YouTubes "subscribe and ring the bell". Likeing it will put it in your liked list, but if really want to see it you should pin it as well.
000
Fredrik Sjöstrand @fronkan.bsky.social · 14/03/2025
Not doing much serveless stuff, but it sounds interesting. I have been playing around with duckdb for some larger than memory data and it's been pretty great. Was running queries over piles of parquet files 😁
020
Fredrik Sjöstrand @fronkan.bsky.social · 14/03/2025
I checked out the repo and I would say that pyproject.toml or setup.cfg is the preferred way to configure setuptools now a days. Generally, using static information instead of a build script makes packages safer and more easily introspected. Personaly, I prefer pyproject.toml as it's standardized
110
Fredrik Sjöstrand @fronkan.bsky.social · 14/03/2025
I would for example use `pyproject.toml` for the package information rather than `setup.cfg` and defently avoid `setup.py`. `setup.py` is powerful but we try to use static information now a days. Pyproject.toml is the latest and most standardised way, making it easier to try other build systems.
000
Fredrik Sjöstrand @fronkan.bsky.social · 14/03/2025
Now a day's we have a lot of options for building packages, but, for a long time setuptools was more or less the only option. It's been around for a long time and things has changed quite a bit during that time. So if you use it, just make sure to see what current practice is.
100
Fredrik Sjöstrand @fronkan.bsky.social · 13/03/2025
Built a few packages using setuptools but never published anything to pypi. Just company internal stuff. I don't know how uv shakes things up but, previously I have heard good things about flit (flit.pypa.io/en/latest/in...) for pure python packages.
flit.pypa.io
Flit 3.11.0 — Flit 3.11.0 documentation
100
Reposted by Fredrik Sjöstrand
Mike Ginn @shutupmikeginn.bsky.social · 08/03/2025
its amazing how chatgpt knows everything about subjects I know nothing about, but is wrong like 40% of the time in things im an expert on. not going to think about this any further
126187644575
Reposted by Fredrik Sjöstrand
Savannah Ostrowski @savannah.dev · 09/03/2025
🐍 Calling all Python data engineers! I’m looking to chat with Python developers working in data engineering—whether you’re building pipelines, wrangling data, or just figuring things out as you go. Details 👇
54413
Reposted by Fredrik Sjöstrand
pytest.org @pytest.org · 23/02/2025
Hi everyone, Just to announce that the handle bsky.app/profile/nico... is not Bruno, but an impersonator. That account has already been reported. Bruno can be reached at bsky.app/profile/soli....
bsky.app
51412
Fredrik Sjöstrand @fronkan.bsky.social · 22/02/2025
This is absolutely mind-blowing! 🤯
010
Fredrik Sjöstrand @fronkan.bsky.social · 21/02/2025
Python is a "language for consenting adults". We tell you with a single leading underscore that you shouldn't touch it and trust that you understand the implied risk of using it.
000
Fredrik Sjöstrand @fronkan.bsky.social · 21/02/2025
The leading double underscore will cause name mangling, a feature that is nice for avoiding naming conflicts when doing inheritance. In practice I very rarely see this used. It's slightly more annoying to get to because of it but it's not private in any strict sense.
100
Fredrik Sjöstrand @fronkan.bsky.social · 21/02/2025
Came across a poll on linked-in on how to create private fields and methods in Python. Almost 50% of the over 1100 respondents picked __my_var. The technically correct answer of "private, what do you mean private?" didn't exist 🧐 and _my_var, what I believe is industry practice was way lower 🤔
100
Fredrik Sjöstrand @fronkan.bsky.social · 21/02/2025
I didn't have time to finish advent of code last year, but I have now picked it up again. Its nice to have some coding challenges to think about while on parental leave 🧑🏼‍💻
000
Fredrik Sjöstrand @fronkan.bsky.social · 07/01/2025
Day 1 of parental leave and things are going very well. First time having her in the stroller while shoveling snow and it went flawlessly 😄 And with a path cleared, we could take a walk with the stroller for the afternoon nap 😴
010
Fredrik Sjöstrand @fronkan.bsky.social · 04/01/2025
This is probably a pretty good tip for me 😅 Although I don't have nearly as much time to write nowadays, that draft folder has been growing. And published content sort of hasn't
000
Fredrik Sjöstrand @fronkan.bsky.social · 20/12/2024
Haha, same here! 😊 Best of luck!
000
Fredrik Sjöstrand @fronkan.bsky.social · 19/12/2024
It feels quite strange to have only two days of work, this being the last at the office, left before my 7 month parental leave. I also realised I haven't been away from work or education longer than like 2 months since I was 6 🫢
000
Fredrik Sjöstrand @fronkan.bsky.social · 12/12/2024
I really enjoy hacking together small automation tools for non-programers that solves some annoying problem 👨🏼‍💻
000
Fredrik Sjöstrand @fronkan.bsky.social · 07/12/2024
I don't know if it's by coincidence or the all-knowingness of the algorithm. But this video popped up in my feed and I really resonated with it. "Complexity homeostasis" is an interesting idea and feels like a valuable concept youtu.be/czzAVuVz7u4?...
youtu.be
Why Can't We Make Simple Software? - Peter van Hardenberg
YouTube video by Handmade Cities
000
Reposted by Fredrik Sjöstrand
Seth Larson @sethmlarson.dev · 06/12/2024
Legitimate supply-chain attack affecting Python package "Ultralytics" abused multiple levels of GitHub Actions shell injection vulnerabilities in workflows to publish malware to PyPI.
4177
Fredrik Sjöstrand @fronkan.bsky.social · 05/12/2024
I felt like I was guided through todays #adventofcode. From the start I knew what bart 2 would be, but the problem felt difficult. So I focused on doing that part and when I came to the second part I could see the solution very clearly. Just build out from the checking code and problem solved 😊
010
Fredrik Sjöstrand @fronkan.bsky.social · 04/12/2024
Well, then I should write up the correct way to use the recursive operator in yq to replace values in nested YAML. Because it got it wrong and it would be nice if it gets it right when I, inevitably, have to ask it again 😅
010
Fredrik Sjöstrand @fronkan.bsky.social · 03/12/2024
Here we go! #adventofcode
020
Fredrik Sjöstrand @fronkan.bsky.social · 02/12/2024
Although, it was for sure the wrong move in this case 😅 Breaking it out, for sure was the correct abstraction and I knew it. I just thought it would be fine 😛
010
Fredrik Sjöstrand @fronkan.bsky.social · 02/12/2024
I just want to add that this doesn't make me a die hard fan of DRY (Don't repeat yourself). While generally pretty good advice, it can also lead to you implementing the wrong abstractions. This often manifest in functions with different modalities. I personally like WET (Write everything twice)
110
Fredrik Sjöstrand @fronkan.bsky.social · 02/12/2024
Me in the middle of solving #adventofcode: "I will just copy-paste and change this code, that will be much quicker" Me when debugging my solution: "Damn it, I missed to fix this in both places"
010
Fredrik Sjöstrand @fronkan.bsky.social · 02/12/2024
Tackar tackar 😊
010
Fredrik Sjöstrand @fronkan.bsky.social · 02/12/2024
Accidentally woke up early today, so 2/2 days on #adventofcode. This is going way better than expected 😁
020