Byla vydána nová verze 3.22.0 grafického vývojového prostředí a platformy Gambas (Wikipedie) založené na interpretru programovacího jazyka Basic s rozšířením o objektově orientované programování. Přehled novinek v poznámkách k vydání. Zdrojové kódy jsou k dispozici na GitLabu.
FreeBSD odstranilo poslední GPL kód ze základního systému. Konkrétně dpv, libdpv, libfigpar a dialog. Instalátor před čtyřmi lety přešel z dialogu na bsddialog.
Sociální síti 𝕏 (dříve Twitter) má dnes 20 let. Pro veřejnost byla zpřístupněna 15. července 2006.
Insula Faktury je open source generátor faktur, který běží přímo ve webovém prohlížeči. Žádná registrace, žádné sledování, žádné omezení. Zdrojové kódy jsou k dispozici na Codebergu.
První Mobile Linux Hackday v Plzni, tj. komunitní setkání věnované Linuxu na mobilních zařízeních, proběhne 24. července od 10:00. Akce je otevřená všem zájemcům – od zvědavců po zkušené vývojáře. Dopoledne proběhnou přednášky Davida Heidelberga a Petra Hodiny o aktuálním stavu mobilního Linuxu: proč vůbec chtít tučňáka v kapse, jaké telefony jsou dnes dobře podporované a co taková podpora obnáší. Po obědě se zaměříme na konkrétní
… více »3D software Blender byl vydán ve verzi 5.2 s prodlouženou podporou. Videopředstavení na YouTube.
SketchForge 3D (GitHub, reddit) je open source 3D editor / CAD běžící ve webovém prohlížeči bez nutnosti účtu nebo cloudového úložiště. Inspirovaný byl Tinkercadem. Doporučena je lokální instalace.
Byla vydána nová verze 11.9 webového prohlížeče Midori (Wikipedie, GitHub). S novým centrem ovládání, pokročilejším blokováním reklam, optimalizací výkonu…
Na Crowd Supply běží kampaň na podporu open source čtečky elektronických knih Open Book Touch. Postavena je na ESP32-S3. Má 4,26palcový dotykový e-papírový displej s rozlišením 480×800 pixelů, podsvícení, slot na microSD kartu. Cena je 149 dolarů a poštovné 12 dolarů. Dodání je plánováno na duben 2027.
Na Humble Bundle běží akce Linux: All the Things by O'Reilly a Picos, HATs, and More by Raspberry Pi Press. Elektronické knihy lze koupit se slevou a současně podpořit organizace Code for America a Raspberry Pi Foundation.
Programming stuff. And stuff.
Po delším googlení jsem narazil na projekt CryoPID, který umí zmrazit proces do ELF binárky na disku (ta pak pokračuje od momentu zmražení). Přeložit to nebylo nic snadné (nadával jsem než se mi to povedlo zprovoznit přes různé hacky).
Binárky a ohackované zdrojáky mají původ v momentálním mercurial tip (7da69201d50e).
Bohužel i386/i686 binárky nemám, protože po překladu v 32bit chrootu nefungovaly. (Starší předkompilované binárky je možné stáhnout ze stránky projektu).
Vzhledem k tomu, že se cryopid linkuje jenom proti libz a glibc, mělo by to fungovat všude. Vyzkoušel jsem to na Gentoo glibc 2.8, Debianu Lenny a Etch. S Debianem problém nebyl, na Gentoo z nějakého důvodu nešlo obnovit zmraženy python2.5 procesy. Python 2.4 a 2.6 byly ok, spíš než na verzi jádra bych to tipoval na verzi knihoven. Segfault od zmraženého python2.5 procesu byl tak hustý, že i gdb lakonicky zahlásilo "Process no longer exists".
Holt CryoPID není dokonalý, ale smekám proti tomu co umí.
Ohackované zdrojáky obsahují copy-and-pastnuté definice maker _syscall2 a _syscall4, které myslím od jádra 2.6.20 nejsou součástí kernel-headers (nebo kernelu samotného). Podobně pro i686 bude nejspíš stačit nadefinovat (copy-and-pastovat syscall kód přes int 0x80). Příliš do kernel developmentu nevidím, pokud víte jak nahradit tyhle makra, neváhejte se ozvat.
Makefile-y ohackovaných zdrojáků obsahují include /usr/src/linux, tudíž pro úspěšný překlad buď musíte mít zdrojáky jádra nebo kompatilní kernel-headers.
Pozn: já používám Komodo IDE remote debugger (dbgp.client, metoda brk), ale klidně by šlo použít třeba na winpdb nebo jiný debugger. Pointa zmražení je, že "odmražený" spuštený proces se rovnou připojí k debuggeru.
#!/usr/bin/env python
import sys
sys.path.append("/opt/Komodo/")
from dbgp.client import brk
import os
import subprocess
import time
class A(object):
def __init__(self, **kwargs):
self.__dict__.update(kwargs)
def __str__(self):
return str([(k, v) for (k, v) in self.__dict__.iteritems()])
a = A(a=1, b=2, c="c")
#Tady je nejaky test kde se zjisti ze se neco rozbilo a nedava smysl.
#Kdyz se neco rozbilo, zavolame fork a freeznem childa
pid = os.fork()
if pid > 0: #parent
argv = ["/home/ondro/bin/cryopid", "-l", "child.cryo", str(pid)]
p = subprocess.Popen(argv, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
l = p.communicate()
p.wait()
print l[0]
print l[1]
print "Freeze finished"
sys.exit(0)
elif pid == 0: #child
time.sleep(5) #chceme se vyhnout race condition nez se proces zmrazi, systemovy semget() by byl lepsi
brk(host="localhost", port=9000)
for i in range(5):
print "Sleeping: ", i
time.sleep(1)
print a
else:
print "Fork failed"
Když vás zajímjí podobné postupy, podívejte se na Checkpointing software.
Tiskni
Sdílej: