Anthropic patrně omylem zveřejnil celý zdrojový kód svého CLI nástroje Claude Code prostřednictvím přiloženého sourcemap souboru v npm balíčku. Únik odhalil doposud nijak nezveřejněné funkce jako je například režim v utajení, autonomní agent 'KAIROS', orchestrace multi‑agentů, režim snění nebo dokonce virtuální mazlíček Buddy. Zajímavostí je detekce naštvání uživatele pomocí obyčejného regexpu. Anthropic rychle odstranil sourcemap a vydal opravu, nicméně kopie kódu se již stihly na GitHubu rozšířit mezi prostým lidem.
Copilot automaticky vkládal do pull requestů 'propagační tipy', reklamní text se na GitHubu objevil ve více než jedenácti tisících pull requestech. Po vlně kritiky byla tato funkce zablokována a produktový manažer Tim Rogers připustil, že umožnit Copilotovi upravovat cizí pull requesty bez vědomí autorů byla chyba.
Je 31. března a tedy Světový den zálohování (World Backup Day). Co by se stalo, kdyby Vám právě teď odešel počítač, tablet nebo telefon, který používáte?
Digitální a informační agentura (DIA) přistupuje ke změně formátu důvěryhodného seznamu České republiky z verze TLv5 na verzi TLv6, která nastane 29. dubna 2026 v 00:00 (CET). Ke změně formátu důvěryhodných seznamů členských států (tzv. Trusted Lists) dochází na základě změn příslušné unijní legislativy. Důvěryhodné seznamy se používají v rámci informačních systémů a aplikací zejména pro účely ověřování platnosti elektronických
… více »Rspamd (Wikipedie), tj. open source systému pro filtrování nevyžádané pošty, byl vydán v nové major verzi 4.0.0. Přehled novinek v Changelogu.
SolveSpace (Wikipedie), tj. multiplatformní open source parametrický 2D/3D CAD, byl vydán v nové verzi 3.2. Přehled novinek v Changelogu na GitHubu. Vyzkoušet lze novou oficiální webovou verzi.
Organizátoři Dne IPv6, tradiční akce věnované tématům spojeným s tímto protokolem, vyhlásili Call for Abstracts. Na webu konference mohou zájemci přihlašovat příspěvky o délce 20 nebo 40 minut či 10minutové lighting talky a to až do 30. dubna. Tvůrci programu uvítají návrhy přednášek z akademického i komerčního sektoru, které mohou být technického i netechnického zaměření. Den IPv6 se letos uskuteční 4. června a místem konání bude i
… více »Euro-Office (Wikipedie) je evropský fork open source kancelářského balíku OnlyOffice. Za forkem stojí koalice firem IONOS, Nextcloud, Eurostack, XWiki, OpenProject, Soverin, Abilian a BTactic. Cílem je zajistit digitální suverenitu Evropy a snížit závislost na neevropských platformách. Projekt vznikl mimo jiné v reakci na nedávné uzavření cloudové služby OnlyOffice. OnlyOffice obviňuje Euro-Office z porušení licenčních podmínek. Na možné problémy upozorňuje i Collabora Online. Jednostranná změna licence není v pořádku.
Byly zpracovány a na YouTube zveřejněny videozáznamy jednotlivých přednášek z letošního Installfestu.
Během akce Arduino Days 2026 byl publikován Arduino Open Source Report 2025 (pdf) a oznámeno 7 nových produktů kompatibilních s deskou UNO Q (Arduino USB-C Power Supply, USB-C Cable, USB-C Hub, UNO Media Carrier, UNO Breakout Carrier, Bug Hopper, Modulino LED Matrix).
Protože už delší dobu dělám v PHPku, tak jsem se rozhodnul, že bych zkusil i něco jiného třeba v Pythonu, nebo C.
Chtěl bych si naprogramovat daemona powersave(v případě úspěchu bych ho samozřejmě zveřejnil), který by kontroloval aktivitu myši a klávesnice, prostě nějak jako fungujou gnome-power-manager, nebo kpowersave, aby po určité době něčinnosti spustil skript na uspani PC.
Tyto dva nástroje nepoužívám, protože si nechci na Gentoo instalovat gnome, nebo KDE knihovny. Takze jsem se rozhodnul napsat něco vlastního, ale nevím od čeho se mám odpíchnout, jestli existují nějaké funkce, na zjištění aktivity uživatele, jestli to jde nějak zjistit.
Neaktivitu uživatele lze zjistit např. pomocí fce XScreenSaverQueryInfo, tady máš ukázku v Pythonu, která využívá přímo C knihovny libX11.so a libXss.so.1 (tz. je z toho vidět i jak by se to dělalo přímo v C), get X idle time with python:
#!/usr/bin/python
import ctypes, os
class XScreenSaverInfo(ctypes.Structure):
""" typedef struct { ... } XScreenSaverInfo; """
_fields_ = [('window', ctypes.c_ulong), # screen saver window
('state', ctypes.c_int), # off,on,disabled
('kind', ctypes.c_int), # blanked,internal,external
('since', ctypes.c_ulong), # milliseconds
('idle', ctypes.c_ulong), # milliseconds
('event_mask', ctypes.c_ulong)] # events
class XScreenSaverSession(object):
def __init__( self):
self.xlib = ctypes.cdll.LoadLibrary( 'libX11.so')
self.dpy = self.xlib.XOpenDisplay( os.environ['DISPLAY'])
if not self.dpy:
raise Exception('Cannot open display')
self.root = self.xlib.XDefaultRootWindow( self.dpy)
self.xss = ctypes.cdll.LoadLibrary( 'libXss.so.1')
self.xss.XScreenSaverAllocInfo.restype = ctypes.POINTER(XScreenSaverInfo)
self.xss_info = self.xss.XScreenSaverAllocInfo()
def get_idle( self):
self.xss.XScreenSaverQueryInfo( self.dpy, self.root, self.xss_info)
return self.xss_info.contents.idle / 1000
if __name__ == "__main__":
s = XScreenSaverSession()
print s.get_idle()
Ovšem získanou hodnotu musíš ještě dále zpracovat kvůli chybě v X serveru, viz kpowersave/src/inactivity.cpp:
/*!
* This function workaround a fucking XServer idleTime bug in the
* XScreenSaverExtension, if dpms is running. In this case always the
* current dpms-state time is extracted from the current idletime.
* This mean: XScreenSaverInfo->idle is not the time since the last
* user activity, as descriped in the header file of the extension.
* This result in SUSE bug # and sf.net bug #
*
* Workaround: check if if XServer is in a dpms state, check the
* current timeout for this state and add this value to
* the current idle time and return.
*
* \param _idleTime a unsigned long value with the current ideletime fromm
* XScreenSaverInfo->idle
* \return a unsigned long with the corrected idletime
*/
unsigned long inactivity::workaroundCreepyXServer( unsigned long _idleTime ){
kdDebugFuncOut(trace);
int dummy;
CARD16 standby, suspend, off;
CARD16 state;
BOOL onoff;
Display *dpy = qt_xdisplay();
kdDebug() << "Current idleTime: " << _idleTime << endl;
if (DPMSQueryExtension(dpy, &dummy, &dummy)) {
if (DPMSCapable(dpy)) {
DPMSGetTimeouts(dpy, &standby, &suspend, &off);
DPMSInfo(dpy, &state, &onoff);
if (onoff) {
switch (state) {
case DPMSModeStandby:
kdDebug() << "DPMS enabled. Monitor in Standby. Standby: "
<< standby << " sec" << endl;
// this check is a littlebit paranoid, but be sure
if (_idleTime < (unsigned) (standby * 1000))
_idleTime += (standby * 1000);
break;
case DPMSModeSuspend:
kdDebug() << "DPMS enabled. Monitor in Suspend. Suspend: "
<< suspend << " sec" << endl;
if (_idleTime < (unsigned) ((suspend + standby) * 1000))
_idleTime += ((suspend + standby) * 1000);
break;
case DPMSModeOff:
kdDebug() << "DPMS enabled. Monitor is Off. Off: "
<< off << " sec" << endl;
if (_idleTime < (unsigned) ((off + suspend + standby) * 1000))
_idleTime += ((off + suspend + standby) * 1000);
break;
case DPMSModeOn:
default:
break;
}
}
}
}
kdDebug() << "Corrected idleTime: " << _idleTime << endl;
kdDebugFuncOut(trace);
return _idleTime;
}
def get_idle_worlkaround(self):
dpms=ctypes.cdll.LoadLibrary('libXext.so');
if dpms.DPMSQueryExtension(self.dpy,None,None):
if dpms.DPMSCapable(self.dpy)==1:
standby=suspend=off=state=0;
onoff=False;
dpms.DPMSGetTimeouts(self.dpy,standby,suspend,off);
dpms.DPMSInfo(self.dpy,state,onoff);
print "STATE";
print state;
Co dělám špatně?
Tiskni
Sdílej: