overworked and volunteer maintainers

Although Randy Bias’s article, titled “Avoiding a Geopolitical Open Source Apocalypse”, is a bit dated — it was published in October 2024 — it remains relevant. The piece appears on thenewstack.io and provides useful food for thought about cooperation between East and West for a shared, secure open-source ecosystem. Some think that open source software is generally more secure, but is it? Open source software mainly made in the West has well-documented security issues of its own, due in part to its heavy reliance on overworked and volunteer maintainers. Securing open source software requires time, energy and diligence. Unfortunately, many projects are very thinly resourced and lack the expertise required to look for security risks diligently. ...

December 17, 2024 · 1 min · 133 words

Who would pay

Dylan Patel writes for Google “We Have No Moat, And Neither Does OpenAI” This recent progress has direct, immediate implications for our business strategy. Who would pay for a Google product with usage restrictions if there is a free, high-quality alternative without them? And we should not expect to be able to catch up. The modern internet runs on open source for a reason. Open source has some significant advantages that we cannot replicate. ...

May 8, 2023 · 1 min · 91 words

Open Source

From the outside, open source often looks like a technical concept. A license here, a repository there, a few lines of source code, publicly visible. But look closer and you’ll see: it’s about much more than software. It’s about freedom. And about sharing. I’m not a developer in the classic sense. I’ve never overseen major projects or designed complex software architectures. But over the years I’ve written many small scripts, sometimes in PHP, sometimes in Python or Perl. I’ve built websites with WordPress, written HTML and CSS, tried things out and discarded them. Never aiming for perfection, but always wanting to create something that works — for me, and sometimes for others. ...

March 31, 2023 · 2 min · 355 words

IMG Quest

Here’s a small tool recommendation: IMG Quest, an open-source API for creating Open Graph images. Via the URL you can include a title, subtitle, color scheme, and an image. The website shows how simple it is. The text was automatically translated from German into English. The German quotations were also translated in sense.

January 3, 2023 · 1 min · 53 words

Apple Store Notifier

Apple announced new products a few days ago. As always, stock in the stores is limited. If you’re smart, you check online whether the product you want is available at your local Apple Store. If you’re lazy, use the following Python script to automate that. Note: Pushover is required. #!/usr/bin/env python3 import requests import os import time def fetch_availability(product_number, store_id): payload = { "store": store_id, "little": False, "mt": "regular", "parts.0": product_number, "fts": True, } url = "https://www.apple.com/de/shop/fulfillment-messages" r = requests.get(url, params=payload) data = r.json() stores = data["body"]["content"]["pickupMessage"]["stores"] store = next(store for store in stores if store["storeNumber"] == store_id) avail = store["partsAvailability"][product_number] return { "store_name": store.get("storeName"), "available": avail.get("pickupDisplay") != "ineligible", "store_pickup_quote": avail.get("storePickupQuote"), "pickup_search_quote": avail.get("pickupSearchQuote"), "pickup_display": avail.get("pickupDisplay"), } def assemble_availability_text(product_number, store_ids): avail_text = "" for store_id in store_ids: avail = fetch_availability(product_number, store_id) avail_text += f'{avail["store_name"]}: {avail["store_pickup_quote"]}\n' return avail_text def create_file_if_not_exists(filepath): if not os.path.exists(filepath): with open(filepath, "w") as f: f.write("") def do_it(part_no, store_ids, **kwargs): availability_text = assemble_availability_text(part_no, store_ids) create_file_if_not_exists("/tmp/cache.txt") with open("/tmp/cache.txt", "r+", encoding="utf-8") as f: if f.read() == availability_text: print("No Changes", flush=True) else: print("Changes detected", availability_text, flush=True) if kwargs["pushover_enabled"] == "1": requests.post( "https://api.pushover.net/1/messages.json", data={ "token": kwargs["pushover_token"], "user": kwargs["pushover_user"], "message": availability_text, "title": "CHANGES DETECTED", }, headers={"Content-Type": "application/x-www-form-urlencoded"}, ) f.truncate(0) f.seek(0) f.write(availability_text) if __name__ == "__main__": while True: do_it( os.environ["MONITORED_PART_NO"], os.environ["MONITORED_STORES"].split(","), pushover_enabled=os.environ["PUSHOVER_ENABLED"], pushover_token=os.environ["PUSHOVER_TOKEN"], pushover_user=os.environ["PUSHOVER_USER"], ) time.sleep(int(os.environ["POLLING_DELAY_SECONDS"])) The script is in the repository dprandzioch/apple-store-notifier on GitHub. ...

March 19, 2022 · 2 min · 243 words