Byla vydána nová stabilní verze 7.8 dnes již jedenáctiletého webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 144. Přehled novinek i s náhledy v příspěvku na blogu.
GNU gettext (Wikipedie), tj. sada nástrojů pro psaní vícejazyčných programů, dospěl do verze 1.0. Po více než 30 letech vývoje. Přehled novinek v souboru NEWS.
Chris Kühl (CEO), Christian Brauner (CTO) a Lennart Poettering (Chief Engineer) představili svou společnost Amutable. Má přinést determinismus a ověřitelnou integritu do linuxových systémů.
Byla vydána (𝕏) nová verze 26.1 open source firewallové a routovací platformy OPNsense (Wikipedie). Jedná se o fork pfSense postavený na FreeBSD. Kódový název OPNsense 26.1 je Witty Woodpecker. Přehled novinek v příspěvku na fóru.
Deník TO spustil vlastní zpravodajský webový portál ToHledej.CZ s internetovým vyhledávačem a bezplatnou e-mailovou schránkou. Dle svého tvrzení nabízí 'Zprávy, komentáře, analýzy bez cenzury' a 'Mail bez šmírování a Velkého bratra'. Rozložením a vizuálním stylem se stránky nápadně podobají portálu Seznam.cz a nejspíše je cílem být jeho alternativou. Z podmínek platformy vyplývá, že portál využívá nespecifikovaný internetový vyhledávač třetí strany.
Computer History Museum (Muzeum historie počítačů) zpřístupnilo své sbírky veřejnosti formou online katalogu. Virtuálně si tak můžeme prohlédnout 'rozsáhlou sbírku archivních materiálů, předmětů a historek a seznámit se s vizionáři, inovacemi a neznámými příběhy, které revolučním způsobem změnily náš digitální svět'.
Ruský hacker VIK-on si sestavil vlastní 32GB DDR5 RAM modul z čipů získaných z notebookových 16GB SO-DIMM RAM pamětí. Modul běží na 6400 MT/s a celkové náklady byly přibližně 218 dolarů, což je zhruba třetina současné tržní ceny modulů srovnatelných parametrů.
Národní identitní autorita (NIA), která ovlivňuje přihlašování prostřednictvím NIA ID, MEP, eOP a externích identit (např. BankID), je částečně nedostupná.
Byla vydána nová verze 1.16.0 klienta a serveru VNC (Virtual Network Computing) s názvem TigerVNC (Wikipedie). Z novinek lze vypíchnout nový server w0vncserver pro sdílení Wayland desktopu. Zdrojové kódy jsou k dispozici na GitHubu. Binárky na SourceForge. TigerVNC je fork TightVNC.
Byla vydána nová verze 4.6 (𝕏, Bluesky, Mastodon) multiplatformního open source herního enginu Godot (Wikipedie, GitHub). Přehled novinek i s náhledy v příspěvku na blogu.
print "wow!"
Soubor __main__.py způsobí, že je složka foo nyní "spustitelná". Můžeme tedy zavolat "python2 foo".
Nyní vytvoříme ze složky zip soubor:
python2 -m zipfile -c foo.zip foo/*
Zip soubor je také spustitelný:
python2 foo.zip
Vytvoříme soubor "foo" a do něj zapíšeme shebang:
#!/usr/bin/env python2
Nakonec obsah zipu zapíšeme na konec souboru foo a povolíme spuštení:
cat foo.zip >> foo
chmod +x foo
Voilá, máme spustitelnou binárku! :)
Uvedený postup ukázal David Bezley ve své přednášce Modules and Packages: Live and Let Die! (čas 45min) na konferenci PyCon 2015.
Tiskni
Sdílej:
#!/usr/bin/env php <?php Phar::mapPhar(); include 'phar://myphar.phar/index.php'; __HALT_COMPILER(); ... a tady následuje archiv
python3 -m zipfile -c foo.zip foo/* funguje, kdežto zip foo.zip foo/* ne?
Do zápisku by se pak hodil tenhle odkaz, zmíněn v prezentaci.
Proč ale python3 -m zipfile -c foo.zip foo/* funguje, kdežto zip foo.zip foo/* ne?protože takhle do archivu nacpeš i ten adresář, ale python očekává pouze jeho obsah, tohle by mělo fungovat:
zip -j foo.zip foo/*
Bez tejto vlastnosti by nebolo možné urobiť samorozbaľovacie zip (s príponou .exe).
cat $0 | tail -c +30 | tar xf a pak je přilepený ten tarball. (btw. jak skipnout prvních N bajtů souboru? dd nefunguje a tail -c +N IMHO není podporovaný všude)
S tarom musí človek vedieť presný offset. Na zip postačuje obyčajné unzip subor.exe.
S tarom musí človek vedieť presný offset.Přesně tak. Tyhle prasárny fakt miluju, ještě když je to nakombinovaný s naprosto dementním stahovacím systémem...
Jako mnohem větší prasárna mi přijde, že stáhneš soubor z Internetu po HTTP a ani nezkontroluješ jeho hash.
Nyní vytvoříme ze složky zip soubor:
Že by inspirace Javou?
(JAR)
Nakonec obsah zipu zapíšeme na konec souboru foo a povolíme spuštení:
V Javě není potřeba ani nic takhle hackovat – použije se standardní mechanismus: binfmt_misc.
Vytvoříme si soubor Test.java s obsahem např.:
import java.util.Arrays;
public class Test {
public static void main(String[] args) {
System.out.println(Arrays.toString(args));
}
}
Zkompilujeme a spustíme:
#Zkompilujeme: javac Test.java #Vytvoříme JAR: jar cfe test.jar Test Test.class # nastavíme spustitelný příkaz chmod +x test.jar # spustíme jako běžnou binárku ./test.jar ahoj
binfmt_misc se řídí buď příponou nebo magickým číslem – takže přípona může být libovolná. Viz binfmt_misc: spouštíme javovské programy podobně jako nativní binárky
BTW: pro Python by to mělo fungovat taky:
$ cat /proc/sys/fs/binfmt_misc/python2.7 enabled interpreter /usr/bin/python2.7 flags: offset 0 magic 03f30d0a $ cat /proc/sys/fs/binfmt_misc/python3.4 enabled interpreter /usr/bin/python3.4 flags: offset 0 magic ee0c0d0a
Keďže jar súbory sú normálne zip súbory
Úplně normální ne – sice je tam na začátku taky PK, ale další bajty jsou jiné. Můžeš si to vyzkoušet – příkaz file dokáže rozlišit ZIP a JAR.