Edvard Rejthar na blogu zaměstnanců CZ.NIC představil svou aplikaci SlideRshow (GitHub). Funguje jako prohlížeč fotek, ale i jako jejich organizér a prezentátor. Neinstaluje se, běží přímo v prohlížeči. Bez serveru. Offline.
Kermit, tj. protokol pro přenos souborů, vznikl před 45 lety. Při této příležitosti byla po 15 letech od vydání poslední stabilní verze 9.0.302 vydána nová stabilní verze 11 implementace C-Kermit. S podporou IPv6.
První verze konverzního nástroje Pandoc byla vydána před 20 lety. Jeho autor John MacFarlane při tomto výročí rekapituluje jednotlivé etapy vývoje a přidávání nových funkcí – rozšíření nejen Markdownu a podporu mnoha dalších formátů.
Srpen přinesl nejen další spalující vedro, ale také Virtuální Bastlírnu s neméně žhavými novinkami. Využijte tedy předpovědi na deštivý čtvrteční večer a od 20:00 se připojte online k tomuto neformálnímu setkání kutilů, techniků a vědců, kde se strahovskými bastlíři proberete nejzajímavější věci, na které jste narazili za poslední měsíc. Pokud jde o novinky, řeč zcela jistě přijde na systém INDX pro tiskárny Průša, který na konci
… více »Firma T-Mobile blokovala „dezinformační web“ AC24 bez toho, aniž by k tomu měla závazný pokyn orgánů veřejné moci. Píše to ve svém rozsudku Městský soud v Praze, který po čtyřech letech uzavřel kauzu blokace zmíněného webu. Operátor musí uhradit škodu ve výši 35 tisíc korun. Advokát společnosti T-Mobile se snažil i u odvolacího senátu argumentovat tím, že firma jednala v dobré víře, když na stránky omezila přístup poté, co ji k tomu vyzvalo
… více »Padla obžaloba v bitcoinové kauze. Státní zástupkyně chce pro Blažka 6,5 roku vězení, pro Titze 8 let.
Z aktuálních globálních statistik společnosti Statcounter: na desktopu má Linux celosvětově podíl 7,53 % (USA 11,92 %, Česko 4,31 %, Slovensko 4,36 %) a Firefox celosvětově podíl 6,51 % (USA 10,86 %, Česko 11,07 %, Slovensko 13,61 %).
Na GitHubu byl publikován seznam 55 kritických bezpečnostních chyb v SQLite s přiřazenými CVE čísly. JFrog Security informuje, že se jedná jenom o AI slop, části kódu na které CVE odkazují, v daných verzích vůbec neexistují. Upozorňuje také, že čísla CVE jsou přiřazována bez ověřování.
Příspěvek na blogu Google Security popisuje, jak tým Chrome Security využívá umělou inteligenci k zásadnímu zrychlení a zlepšení procesu odhalování, třídění a opravování bezpečnostních chyb v prohlížeči Chrome. Díky AI byla nalezena kritická chyba, která byla v kódu přes 13 let. Ve verzích Chrome 149 a 150 bylo opraveno více chyb než v předchozích 23 verzích dohromady.
Firmy v EU musí počínaje dnešním dnem označovat obsah vytvořený umělou inteligencí. Znamená to povinnost informovat uživatele, že člověk komunikuje s chatbotem či jiným systémem AI. Rovněž obrázky, audia či videa, které jsou vytvořené nebo zmanipulované pomocí umělé inteligence a které mohou působit jako autentické, musejí být jasně označeny jako uměle vytvořené.
$(info [$(THIS_MAKEFILE)])
.PHONY: all html plain_files static rsync_upload help more_help clean clean_all
all: html
html: $(TARGETS) $(BUILD_DIR)/.nav_dir.nav generated.mk
$(BUILD_DIR)/.nav_dir.nav: $(DIRNAVS)
generated.mk: $(THIS_MAKEFILE) $(BUILD_DIR)/.nav_dir.nav
když smažu $(BUILD_DIR)/.nav_dir.nav a dám "make all", tak se mi generated.mk nezbuduje:
$ rm build/.nav_dir.nav
$ make all
[Makefile]
build/.nav_dir.nav
=== html ===
=== all ===
$
teprve až když to dám podruhé
$ make all
[Makefile]
=== generated.mk ===
[Makefile]
compile_rst: input output build file_5
compile_rst: input output build directory_2/subdirectory_5 file_5
compile_rst: input output build directory_2/subdirectory_5 file_2
....
=== html ===
=== all ===
$
Já si myslím, že když chybí ten build/.nav_dir.nav a dám přebudovat all, které závisí na html, které závisí na generated.mk, který závisí na tom build/.nav_dir.nav, tak by se měl přebudovat hned na poprvé
Make si to nemyslí. Kde dělám chybu? Jak ji opravit?
Řešení dotazu:
THIS_MAKEFILE=Makefile BUILD_DIR=build TARGETS=target .PHONY: all html plain_files static rsync_upload help more_help clean clean_all all: html html: $(TARGETS) $(BUILD_DIR)/.nav_dir.nav generated.mk $(BUILD_DIR)/.nav_dir.nav: $(DIRNAVS) mkdir -p $(BUILD_DIR)/ touch $(BUILD_DIR)/.nav_dir.nav generated.mk: $(THIS_MAKEFILE) $(BUILD_DIR)/.nav_dir.nav touch generated.mk target: touch targeta chová se tak, jak očekáváš:
❯ make touch target mkdir -p build/ touch build/.nav_dir.nav touch generated.mk ❯ rm -r build ❯ make mkdir -p build/ touch build/.nav_dir.nav touch generated.mkVětšinou to jde vyčíst z
make --debug resp. make --debug=all
# .SECONDARY: bez targetu ponecha VSECHNY intermediate fily a nesmaze je (pokud se je podari vyrobit)
# Define the .SECONDARY target to keep intermediate files
.SECONDARY:
Ve skutečnosti to sice ty intermediate files sice zachová a nemaže, pokud už je jednou vytvoří (což bylo cílem), ale pokud je něco intermediate file a něco jiného ho potřebuje, ale to něco jiného se stejně bude přebudovávat, tak se ten intermediate file vůbec nemusí tvořit (a to je ten problém).
https://www.gnu.org/savannah-checkouts/gnu/make/manual/html_node/Special-Targets.html:
.SECONDARY can be used to avoid redundant rebuilds in some unusual situations. For example: Suppose hello.bin is up to date in regards to the source files, but the object file hello.o is missing. Without .SECONDARY make would rebuild hello.o then rebuild hello.bin even though the source files had not changed. By declaring hello.o as .SECONDARY make will not need to rebuild it and won’t need to rebuild hello.bin either. Of course, if one of the source files were updated then all object files would be rebuilt so that the creation of hello.bin could succeed. .SECONDARY with no prerequisites causes all targets to be treated as secondary (i.e., no target is removed because it is considered intermediate).Ve skutečnosti tam mělo být
.NOTINTERMEDIATE Prerequisites of the special target .NOTINTERMEDIATE are never considered intermediate files. See Chains of Implicit Rules. .NOTINTERMEDIATE with no prerequisites causes all targets to be treated as not intermediate. If the prerequisite is a target pattern then targets that are built using that pattern rule are not considered intermediate.Tak jsem to opravil a už to dělá co má :) Já to používám na vytváření statických stránek na web a mám tam spoustu těch mezilehlých souborů pro urychlení zpracování (seznamy souborů používajících nějaký tag, nějakého autora, v nějakém adresáři ... a často se kvůli takovému mrňavému souboru musí zpracovat naprosto věechny zdrojáky, aby se zjistilo, že se to použije jen v jediném případě), takže když se jednou vytvoří, tak je chci zachovat tak dlouho, dokud je není nutno změnit. A jak jsem se koukal, tak se se mnou tenhle špatný překlad/miskoncepce táhne minimálně od roku 2003 ... Takže ještě jednou díky :)
Tiskni
Sdílej: