Po po téměř roce vývoje od vydání verze 5.38 byla vydána nová stabilní verze 5.40 programovacího jazyka Perl (Wikipedie). Do vývoje se zapojilo 75 vývojářů. Změněno bylo přibližně 160 tisíc řádků v 1 500 souborech. Přehled novinek a změn v podrobném seznamu.
Uroš Popović popisuje, jak si nastavit Linux na desce jako Raspberry Pi Zero, aby je šlo používat jako USB „flešku“.
Andreas Kling oznámil, že jelikož už se nevěnuje nezávislému operačnímu systému SerenityOS, ale výhradně jeho webovému prohlížeči Ladybird, přičemž vyvíjí primárně na Linuxu, SerenityOS opustí a Ladybird bude nově samostatný projekt (nový web, repozitář na GitHubu).
Po dvou měsících vývoje byla vydána nová verze 0.13.0 programovacího jazyka Zig (GitHub, Wikipedie). Přispělo 73 vývojářů. Přehled novinek v poznámkách k vydání.
Na čem aktuálně pracují vývojáři GNOME a KDE? Pravidelný přehled novinek v Týden v GNOME a Týden v KDE.
Před 70 lety, 7. června 1954, ve věku 41 let, zemřel Alan Turing, britský matematik, logik, kryptoanalytik a zakladatel moderní informatiky.
NiceGUI umožňuje používat webový prohlížeč jako frontend pro kód v Pythonu. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.
Open source platforma Home Assistant (Demo, GitHub, Wikipedie) pro monitorování a řízení inteligentní domácnosti byla vydána ve verzi 2024.6. Z novinek lze vypíchnout lepší integraci LLM (OpenAI, Google AI, Ollama) nebo podporu Matter 1.3.
IKEA ve Spojeném království hledá zaměstnance do své nové pobočky. Do pobočky v počítačové hře Roblox. Nástupní mzda je 13,15 liber na hodinu.
Alyssa Rosenzweig se v příspěvku na svém blogu Vulkan 1.3 na M1 za 1 měsíc rozepsala o novém Vulkan 1.3 ovladači Honeykrisp pro Apple M1 splňujícím specifikaci Khronosu. Vychází z ovladače NVK pro GPU od Nvidie. V plánu je dále rozchodit DXVK a vkd3d-proton a tím pádem Direct3D, aby na Apple M1 s Asahi Linuxem běžely hry pro Microsoft Windows.
Jako bych slyšel ironii ... ale máš pravdu ...
less --follow-name
tail -f
) program
https://klogg.filimonov.dev anebo
https://glogg.bonnefon.org/index.html
Programy tail, more a všechny ostatní metody nesplňovaly moje požadavky ( nebo neumím číst man a google ).Nebýval kdysi tohle portál pro fanoušky linuxu?
import os import time class TailFIterator: """ Text file iterator, which yields new lines added to the file, like tail -F. It can detect when the file descriptor was changed (logrotated) or the file was truncated (also used by logrotate). You can overload: .on_file_not_found() To change behaviour when the file was followed, but was deleted in the process (logrotated). Standard behaviour is to wait 5 seconds, try again forever. See also .file_not_found_counter for details. .on_no_changes_detected() To decide what to do when no change was detected. Default is to wait 1s. """ def __init__(self, file_path: str, file_mode: str = "rt"): self.file_size = 0 self.file_path = file_path self.file_mode = file_mode self.inode_number = os.stat(file_path).st_ino self.logfile = open(file_path, self.file_mode) self.file_not_found_counter = 0 def __iter__(self): while True: try: size = self._get_current_size() self.file_not_found_counter = 0 except FileNotFoundError as e: self.file_not_found_counter += 1 self.on_file_not_found(self.file_not_found_counter, e) continue if size > self.file_size: self.logfile.seek(self.file_size) for line in self.logfile: yield line self.file_size = self.logfile.tell() # in case the .truncate() was called elif size < self.file_size: self._check_and_handle_logrotate() self.file_size = 0 continue if self._check_and_handle_logrotate(): continue self.on_no_changes_detected() def _get_current_size(self) -> int: return os.stat(self.file_path).st_size def _check_and_handle_logrotate(self) -> bool: current_file_info = os.stat(self.file_path) current_inode_number = current_file_info.st_ino if current_inode_number != self.inode_number: self.inode_number = current_file_info.st_ino self.logfile = open(self.file_path, self.file_mode) self.file_size = 0 return True def on_file_not_found(self, file_not_found_counter: int, exception): if file_not_found_counter > 5: raise exception time.sleep(5) def on_no_changes_detected(self): time.sleep(1)(Psal jsem kdysi pro jeden starší projekt co běžel někde kam jsem nechtěl tahat závislosti).
Děkuji za fakt šikovné podněty ... I komentátorům vašeho příspěvku... Zvlášť Jenda musel prohrabávat staré (.. co - prastaré) archivy, aby našel prastarý kód ( i když podle syntaxe možná zase tak prastarý není, ale stejně) ... fakt dík :)Je to několik let staré, prohledávat jsem nemusel, mám v notionu složku se snippety kam si házím použitelné věci a různé ukázky.
\b(ERROR|INFO|WARN)\b
Výhoda je, že to nebude matchovat třeba information nebo terror.
Escape HTML - například <1> by se měla změnit na <1> , jinak to může být hezký námět nat code injection
S těmi newline a načítáním nového souboru - bude tam nějaká komplexita navíc, neboť match či přidání nového řádku by se mělo dít jenom v případech, kdy se dokončilo načtení aspoň jednoho řádku. To jenom detail, když už to tak komplikuju.
Tiskni Sdílej: