GitHub Copilot stiehlt Code

Golo Roden zeigt in seinem Video »Jetzt bewiesen: GitHub Copilot stiehlt Code« eindrücklich, dass auch ein LLM gegen Copyright verstoßen kann.

1. August 2023 · 1 Minute · 21 Wörter

Apple Store Notifier

Apple hat vor einigen Tagen neue Produkte angekündigt. Wie immer sind die Artikel in den Stores nur bedingt vorrätig. Wer schlau ist, schaut online, ob das gewünschte Produkt im örtlichen Apple Store vorrätig ist. Wer faul ist, nutzt dazu das folgende Python Script, um das automatisiert zu machen. Achtung Pushover wird vorausgesetzt. #!/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"])) Das Script liegt im Repository dprandzioch/apple-store-notifier auf GitHub. ...

19. März 2022 · 1 Minute · 228 Wörter

Ghost Bookmarklet

Nach meinem Wechsel von Grav zu Ghost muss ich den einen oder anderen Artikel nochmal anpassen. Damit ich schnell vom Frontend ins Backend wechseln kann, habe ich mir ein supersimples Bookmarklet geschrieben. Einfach folgenden Code als Lesezeichen speichern. javascript:window.location.href=window.location.href+'/edit'; Nachdem man auf das Lesezeichen klickt, wechselt der Browser auf http://DEINEBLOG.URL/edit und sofern du eingeloggt bist, kannst du den Artikel direkt bearbeiten.

23. Dezember 2021 · 1 Minute · 61 Wörter

Dropbox auf Uberspace

Dieses Blog und weitere Dienste hoste ich bei Uberspace.de. Vor einigen Jahren konnte man den Dropbox-Client im eigenen Benutzerkonto installieren. Seitdem Uberspace auf CentOS 7 gewechselt ist, geht das leider nicht mehr. Vor einigen Wochen erfuhr ich von Maestral, einem Dropbox-Client eines Drittanbieters. Zuerst müssen wir die Software pip aktualisieren. Das geht ganz einfach mit folgendem Befehl: python3 -m pip install --upgrade pip --user Jetzt können wir Maestral installieren, das geht ähnlich einfach: ...

30. September 2021 · 2 Minuten · 362 Wörter

CSS Brighter

Wie Matsuko, finde ich Videos manchmal ebenfalls zu dunkel, wenn ich abends Netflix oder YouTube schaue. In der Regel stelle ich dann den Bildschirm heller, ich würde aber lieber nur das Video heller stellen. Mit dem folgenden Codeschnipsel kann man genau das tun. /* Brighter Netflix and YouTube videos */ video[src^="blob:https://www.netflix.com/"], video[src^="blob:https://www.youtube.com/"] { filter: brightness(1.4); }

6. August 2020 · 1 Minute · 56 Wörter