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.
Golo Roden zeigt in seinem Video »Jetzt bewiesen: GitHub Copilot stiehlt Code« eindrücklich, dass auch ein LLM gegen Copyright verstoßen kann.
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. ...
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.
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: ...
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); }