Ephes Blog

Miscellaneous things. Mostly Weeknotes and links I stumbled upon.


Weeknotes 2022-03-14

, Jochen
Still working on the sqlmodel removal from fastdeploy and adding some kind of software architecture:
  • Fetching the deploy steps for a service now works again
  • The cli commands work again with the new application architecture
  • All api endpoints work again
  • All the e2e frontend tests work again
So, it's nearly done. There's probably a new release next week. This whole thing took about 3 weeks (working only in my spare time). That's a bit more than I would have expected, but new things which were not planned got added too (async db support for example). Well, it's probably a good idea to have smaller chunks of work, but that is difficult to do if you rewrite lots of infrastructure stuff. My current rationalization for my time being well spent goes like this: As long as it is helping me shifting costs from marginal to fixed, additional effort is fine.

Maybe this bot can help me preventing further doomscrolling.


Things I Learned

Articles

Misc

Youtube

Books

Twitter

Software 

Podcasts


Weeknotes 2022-03-07

, Jochen

*Doomscrolling intensivies*

But there has been some progress on the removal of sqlmodel from fastdeploy task (this issue keeps getting bigger, and it was a slow work week) as well:

  • While I'm introducing an own unit of work pattern and rewriting lots of the database stuff anyway, I thought: Well, maybe switching to asyncpg and having the whole database layer async would be not a lot more additional work. This is now done.
  • Rewrote the auth module, because I wanted to get rid of all fastAPI dependencies. The code now looks much nicer, too.
  • Syncing service configurations from filesystem is now also possible again (I have to admit writing things like an AbstractFilesystem class bring me quickly to the point of reconsidering my lifestyle choices).

Things I Learned

  • You can use PYTHONPATH=$(pwd) in a Procfile to start jupyter lab/notebooks that keep the project root in pythonpath
  • You can use session.expunge(object) to be able to use mapped python objects after a sqlalchemy session is closed (yeah, I'm just beginning to use sqlalchemy)

Youtube

  • My Voice Over Chain | I often get mocked for being nerdy about audio quality. Well, maybe go and mock this guy instead (or learn something from him and improve your recordings).
  • Have Single-Page Apps Ruined the Web? | Transitional Apps with Rich Harris, NYTimes | Great video. Until a few months ago I would have completely agreed. But seeing what is possible with libraries like htmx I'm currently feeling more like: "Holy shit, SPAs are dead!". And I don't trust this whole notion of "Just use this sparkling framework X and your code will automatically deployed on an edge CDN node in a V8 vm and everything will be like magic". I like things to be simple, not complicated and magic. The reason for that is: I know that my own interest in keeping my stuff running is much greater than the interest of some bored bigcorp ops staff. Even kubernetes is far too complicated from my point of view. If something goes wrong, I want to be able to fix it. But maybe kubernetes or netlify or fly makes things possible that I need and could not do by myself? My opinion on that is: hell no.
  • Putin, die Ukraine und danach? | Mit offenen Karten Spezial Ukraine | ARTE | Good signal-to-noise ratio

Twitter

Software 

  • pgcli | Postgres command line client with syntax highlighting

Podcasts


Weeknotes 2022-02-28

, Jochen
Last week we recorded a podcast episode without an identifiable main topic, but it was fun anyway :).

Made some progress on removing sqlmodel from fastdeploy. Found a way to wrap pytest test in a transaction so that it could be rolled back after each test, leaving the database in pristine condition after each test. This was not as easy as expected. Found a working example at the end of the transaction documentation of sqlalchemy. And since it's even possible to pass data back from tests to fixtures via markers, it should be possible to mark single tests to run against sqlite or a fake in memory repository.

No streams but intense doomscrolling. Let's see if I'm able to change that next week.


Articles

Youtube

Twitter

Discussions

Software 

Podcasts


Weeknotes 2022-02-21

, Jochen

Did not much programming progress last week and no streams. But I did some infrastructure work to migrate fastdeploy from a very "how to do this with fastAPI"-style backend to a more "Architecture Patterns with Python"-style one. Maybe it's because of the research I did for our latest podcast episode about fastAPI or just mundane yak shaving, I don't know. And as always it's amusing/painful/sad to watch my confidence going from "ok, I've read the book, no big deal" to "omg, I've got no clue about anything" pretty quickly while trying to implement it. Doing things is quite different from reading a book and believing you have now a solid understanding and will be able to do things. I suspect it's even worse when you try to write a book/teach about things you thought you know well enough. Let's hope I never have to find out.

Articles

Youtube

Twitter

Software 

Podcasts


Weeknotes 2022-02-14

, Jochen

Renamed castle to pdcst. Found out castle was not available anymore when I tried to upload it to PyPI and wondered about the error message. Delusion level: solipsist. Added some issues to the GitHub repo to make it easier for other people to help me. Or to remind my future self of things I failed to do. Let's find out :).

Managed to record and produce a podcast episode about FastAPI. This is our second episode containing some advertisement. Found out that I feel much better talking about a topic when I'm at least a little bit prepared. Problem: preparation takes time.

Revived a hibernating bookmarking project I started a few years ago together with Claudio. Seems like it could benefit from some htmx magic and I set up a CD-pipeline using fastdeploy which didn't take much time and was quite easy - as it should be.

Articles

Youtube

Miscellaneous

Software 

Podcasts