Od soboty do úterý probíhá v Hamburku konference 39C3 (Chaos Communication Congress) věnovaná také počítačové bezpečnosti nebo hardwaru. Program (jiná verze) slibuje řadu zajímavých přednášek. Streamy a záznamy budou k dispozici na media.ccc.de.
Byl představen nový Xserver Phoenix, kompletně od nuly vyvíjený v programovacím jazyce Zig. Projekt Phoenix si klade za cíl být moderní alternativou k X.Org serveru.
XLibre Xserver byl 21. prosince vydán ve verzi 25.1.0, 'winter solstice release'. Od založení tohoto forku X.Org serveru se jedná o vůbec první novou minor verzi (inkrementovalo se to druhé číslo v číselném kódu verze).
Wayback byl vydán ve verzi 0.3. Wayback je "tak akorát Waylandu, aby fungoval Xwayland". Jedná se o kompatibilní vrstvu umožňující běh plnohodnotných X11 desktopových prostředí s využitím komponent z Waylandu. Cílem je nakonec nahradit klasický server X.Org, a tím snížit zátěž údržby aplikací X11.
Byla vydána verze 4.0.0 programovacího jazyka Ruby (Wikipedie). S Ruby Box a ZJIT. Ruby lze vyzkoušet na webové stránce TryRuby. U příležitosti 30. narozenin, první veřejná verze Ruby 0.95 byla oznámena 21. prosince 1995, proběhl redesign webových stránek.
Všem čtenářkám a čtenářům AbcLinuxu krásné Vánoce.
Byla vydána nová verze 7.0 linuxové distribuce Parrot OS (Wikipedie). S kódovým názvem Echo. Jedná se o linuxovou distribuci založenou na Debianu a zaměřenou na penetrační testování, digitální forenzní analýzu, reverzní inženýrství, hacking, anonymitu nebo kryptografii. Přehled novinek v příspěvku na blogu.
Vývojáři postmarketOS vydali verzi 25.12 tohoto před osmi lety představeného operačního systému pro chytré telefony vycházejícího z optimalizovaného a nakonfigurovaného Alpine Linuxu s vlastními balíčky. Přehled novinek v příspěvku na blogu. Na výběr jsou 4 uživatelská rozhraní: GNOME Shell on Mobile, KDE Plasma Mobile, Phosh a Sxmo.
Byla vydána nová verze 0.41.0 multimediálního přehrávače mpv (Wikipedie) vycházejícího z přehrávačů MPlayer a mplayer2. Přehled novinek, změn a oprav na GitHubu. Požadován je FFmpeg 6.1 nebo novější a také libplacebo 6.338.2 nebo novější.
Byla vydána nová verze 5.5 (novinky) skriptovacího jazyka Lua (Wikipedie). Po pěti a půl letech od vydání verze 5.4.
Pěkný den (noc),
řeším triviální problém - potřebuji mít možnost voláním programu zjišťovat, zda je v mém mailboxu nový mail. Nic víc. Čekal jsem, že to vyřeším raz dva, a ejhle... biff, xbiff ani newmail mi nevyhovují, chovají se moc "po svém". Já potřebuju jenom zjistit návratovou hodnotu a podle ní vytisknout v promptu něco jako "NEPŘEČTENÝ MAIL". Je to oříšek, nechce se mi cyklem ověřovat časovou známku či velikost mailboxu. comsat je strašně špatně dokumentovaný. Je tu nějaké čisté, prosté řešení, které jsem přehlédnul? Děkuji
#!/usr/bin/env python
import poplib, time, getpass, sys
user = "username"
pop3server = "pop3.seznam.cz"
password = getpass.unix_getpass("Password for "+user+"@"+pop3server+":");
messages_prev = 0
while(1):
try:
M = poplib.POP3(pop3server)
M.user(user)
M.pass_(password)
except poplib.error_proto, detail:
print "Error occured", sys.exc_info()[0], detail
continue
res = M.stat()
messages = res[0]
M.quit()
if (messages != messages_prev):
print time.strftime("%H:%M:%S %d.%m.%Y"),": ", messages, "Messages\a"
messages_prev = messages
time.sleep(120)
a něco podobného se dá udělat i pro IMAP, na což jsem dělal applet: checknewmail.sh #!/bin/sh mtime=`stat -c%Y \$MAIL` atime=`stat -c%X \$MAIL` exit `test $atime -lt $mtime`A potom někde použít:
checknewmail.sh && echo "Máte nový mail"
Nebo si skript může pamatovat, kdy naposledy se díval, jestli je nový mail, a tento čas pak porovnat s nejnovějším mailem. Nevýhoda - zpráva o novém mailu se pokaždé zobrazí jen jednou.
#!/usr/bin/python
from pyinotify import WatchManager, Notifier, EventsCodes, ProcessEvent
import sys, pwd, os, posix
username = pwd.getpwuid(posix.getuid()).pw_name
path = os.path.join('/var/mail', username)
mask = EventsCodes.IN_MODIFY | EventsCodes.IN_CLOSE_WRITE
class mailPE(ProcessEvent):
def __init__(self):
self.was_modified = False
self.was_closed = False
def process_IN_CLOSE_WRITE(self, event):
self.was_closed = True
def process_IN_MODIFY(self, event):
self.was_modified = True
wm = WatchManager()
mbox = mailPE()
notifier = Notifier(wm, mbox)
wm.add_watch(path, mask)
while True:
notifier.read_events()
notifier.process_events()
if mbox.was_closed and mbox.was_modified:
break
Není nutné periodicky zjišťovat změnu něčeho, když tu máme takovou jadernou vymoženost. Proces celou dobu spí, ale přitom je schopen reagovat okamžitě.
Tiskni
Sdílej: