Ephes Blog

Miscellaneous things. Not sure what to put here, yet.


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

More

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

More

Weeknotes 2022-02-07

- Jochen

Got podcast deployment progress showing with htmx \o/ using the standard HTTP-API without WebSockets in cast-registry. This is not bad at all. Apart from that, I spent most of my spare time (as if I had a lot of this...) on creating a new command-line podcast client called castle. I'm not sure why I did it - I just wanted to answer an email and demonstrate something simple in a notebook. And then I couldn't stop writing it. Maybe it turns out to be useful for something or a bad digression, we'll see.

I didn't record any programming streams this week, but we published the first python podcast episode including advertisement.


Articles

Books

Papers

Software 

Podcasts

More

Weeknotes 2022-01-31

- Jochen

Worked on using the new deployment context feature of fastdeploy to automate deploying cast_hosting instances for my podcast hosting SaaS. It finally worked and the hardest part of this was getting the traefik config right. If users can choose domain names by themselves, you have to use wildcard certificates. This means that you have to use an API key for your DNS provider allowing traefik to manipulate DNS records for the dnsChallenge, which is the only one supporting wildcard DNS. But then you still have to get both this part and your httpChallenge based certificates to work well together. Ok, here's the static config part that made traefik work for me.

Additionally, I did two programming streams last week, which is an improvement. And then there was an interesting discussion on the PyDDF telegram channel about automatic speech recognition. I haven't looked at this topic since mid-2019 and wow, a lot is going on there. Maybe it's even possible to train an asr model for german just by using existing labeled training data like the Mozilla common voice dataset plus lots of unlabeled audio data (podcasts maybe?).


Articles

Useful Websites

YouTube

Twitter

Papers 

Software 

Podcasts

More

Weeknotes 2022-01-24

- Jochen
Didn't record any programming streams last week, let's see how it'll work out in the next one.

For my podcast hosting SaaS. I need a way to deploy a new podcast. All the Unix user, database, and config file creation can be handled via fastdeploy, but there's one pretty scary part: Someone on the internet types stuff like a domain name into a web form and I have to use this user input in deployment scripts running as root on my infrastructure. For example, let's assume I'll just start an ansible playbook and pass this user input as `ansible-playbook podcast.yml --extra-vars "fqdn=foobar.example.com"` in a shell command line. It's easy to see how this might go wrong. After first using a temporary file I found out how to use sudo with environment variables. So I'm now using an environment variable to pass the user input and then validating it in the deploy script using pydantic. The start-deployment endpoint now takes an additional optional DeploymentContext which gets passed like this to the script starting the deployment process. Maybe it's not perfect but safe enough for me to stop worrying :) (probably famous last words).
 

Articles

Useful Websites

Twitter

 

Books 

 

Software 

Podcasts

More