Friedrich Ewald My Personal Website


  • Predictable hash function

    The hash method in python produces different results for the same object on each different Python run. This is meant as a security feature to prevent predictable hash values. For testing, this can be disabled by setting the environment variable PYTHONHASHSEED to 0. The hash value for a given key will then always be the same.


  • OpenAI API price reduction

    OpenAI just reduced their prices, starting September 1 2022 on midnight UTC. For the DaVinci model, the price is cut by around two thirds.

    Model Before On Sept 1
    Davinci $0.06 / 1k tokens $0.02 / 1k tokens
    Curie $0.006 / 1k tokens $0.002 / 1k tokens
    Babbage $0.0012 / 1k tokens $0.0005 / 1k tokens
    Ada $0.0008 / 1k tokens $0.0004 / 1k tokens
    Davinci Embeddings $0.6 / 1k tokens $0.2 / 1k tokens
    Curie Embeddings $0.06 / 1k tokens $0.02 / 1k tokens
    Babbage Embeddings $0.012 / 1k tokens $0.005 / 1k tokens
    Ada Embeddings $0.008 / 1k tokens $0.004 / 1k tokens
    This is a significant reduction. I am curious if that means that Dall-E 2 will follow this example in the near future.

  • Secure Sidekiq with BasicAuth

    I am using Sidekiq for background processing for my website Every Podcast. One of the background jobs is loading new episodes from known feeds. Because this relies on external resources, many things that are out of my control can go wrong. To isolate the individual fetch and potential errors, I automatically create a job for every single podcast update. This obviously leads to a lot of jobs. Sidekiq comes with a UI that allows me to monitor the job queue, find dead jobs and see the throughput.

    Continue reading

  • Visualizations by Aaron Koblin

    Beautiful visualizations and projects by Aaron Koblin. Through this I discovered the flight patterns, generated with the processing framework which is now on my list to try out. I meant to post this some time ago and recently found it in my “drafts” folder.

  • Fast feed processing in Ruby and Rails

    While working on my current project, everypodcast, I needed to implement an RSS feed parser, mostly for iTunes RSS feeds. Initially I went with the builtin RSS package from the standard library. When reading a lot of large XML feeds, I noticed that parsing those feeds takes anywhere from 0.5 to over 30 seconds. At the same time the process was using a 100% CPU. After some searching I found Feedjira. With this, it now takes on average 0.5 seconds and at most 1.5 seconds to parse even the longest feeds. Furthermore it has dedicated support for different types of RSS feeds, I highly recommend it.

    Continue reading

Page: 15 of 28