Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za duben (YouTube).
Provozovatel čínské sociální sítě TikTok dostal v Evropské unii pokutu 530 milionů eur (13,2 miliardy Kč) za nedostatky při ochraně osobních údajů. Ve svém oznámení to dnes uvedla irská Komise pro ochranu údajů (DPC), která jedná jménem EU. Zároveň TikToku nařídila, že pokud správu dat neuvede do šesti měsíců do souladu s požadavky, musí přestat posílat data o unijních uživatelích do Číny. TikTok uvedl, že se proti rozhodnutí odvolá.
Společnost JetBrains uvolnila Mellum, tj. svůj velký jazykový model (LLM) pro vývojáře, jako open source. Mellum podporuje programovací jazyky Java, Kotlin, Python, Go, PHP, C, C++, C#, JavaScript, TypeScript, CSS, HTML, Rust a Ruby.
Vývojáři Kali Linuxu upozorňují na nový klíč pro podepisování balíčků. K původnímu klíči ztratili přístup.
V březnu loňského roku přestal být Redis svobodný. Společnost Redis Labs jej přelicencovala z licence BSD na nesvobodné licence Redis Source Available License (RSALv2) a Server Side Public License (SSPLv1). Hned o pár dní později vznikly svobodné forky Redisu s názvy Valkey a Redict. Dnes bylo oznámeno, že Redis je opět svobodný. S nejnovější verzí 8 je k dispozici také pod licencí AGPLv3.
Oficiální ceny Raspberry Pi Compute Modulů 4 klesly o 5 dolarů (4 GB varianty), respektive o 10 dolarů (8 GB varianty).
Byla vydána beta verze openSUSE Leap 16. Ve výchozím nastavení s novým instalátorem Agama.
Devadesátková hra Brány Skeldalu prošla portací a je dostupná na platformě Steam. Vyšel i parádní blog autora o portaci na moderní systémy a platformy včetně Linuxu.
Lidi dělají divné věci. Například spouští Linux v Excelu. Využít je emulátor RISC-V mini-rv32ima sestavený jako knihovna DLL, která je volaná z makra VBA (Visual Basic for Applications).
Revolut nabídne neomezený mobilní tarif za 12,50 eur (312 Kč). Aktuálně startuje ve Velké Británii a Německu.
Drew DeVault v příspěvku Hello world na svém blogu porovnává programy Hello world napsané v různých programovacích jazycích. Vedle velikosti se zaměřuje na počet systémových volání. Reakce ohledně programovacího jazyka Go.
Tiskni
Sdílej:
Vysrali se na to
Hello World test vůbec nic neřeší a netřeba z něj dělat jakékoliv závěry.
+1
Na druhou stranu, staticky linkované binárky nemám moc rád a nevím, proč by běžné malé programy/binárky měly mít jednotky nebo dokonce desítky mega. Statické linkování má svoje využití, ale nerad bych, aby z toho byl obecný trend a každá aplikace si tahala svoje závislosti zabalené do jednoho velkého blobu.
Něco jiného je ten „magický“ kód, který se přibalí i k dynamicky linkované binárce, aby udělal nějaké inicializace, a nad kterým se autor článku tak podivuje/pohoršuje (mluví o tom jako o „crap“ a „shit“). Tohle většinou nějaké opodstatnění a rozumný důvod má, akorát ho autor nevidí, když píše jen Hello world.
Na druhou stranu, staticky linkované binárky nemám moc rádJá taky ne a toto je jedna z věcí, která se mi na golangu příčí. Na druhou stranu se to pokusili obejít velmi snadnou a rychlou kompilací, kdy přímo součástí kompilačních toolsů je nástroj na automatické potahání všech závislostí. Takže update binárky v případě bezpečnostního update knihovny je velmi snadný. Na druhou stranu chápu, proč se k tomu golang uchýlil.
proč by běžné malé programy/binárky měly mít jednotky nebo dokonce desítky mega.Otázkou je, co to je "běžný malý program". Gitea určitě není běžný malý program. Už jsme na to narazili v diskusi o Clicku, prostě pomocí dvou řádků přidáš programu kompletní CLI + JSON. To nejsou malé komponenty. V Go si naimportuješ balíček http a třeba json nebo xml nebo něco a máš kompletní http server a nepotřebuješ k tomu webserver pro fcgi nebo wscgi iface, ta výsledná 11MB binárka už je kompletní služba, která krom kernelu nic dalšího nepotřebuje. Takže to, co se na první pohled může zdát veliké je ve výsledku vlastně mnohem menší, než stávající řešení. A dívám se na to i jako admin (a to teda zejména), vůbec se mi nelíbí stávájící pojetí kontejnerů jako "schovka na bordel", kdy někteří vývojáři používají typicky docker jako kontejner, kam si schovají všechny svoje závislosti a knihovny a potom nutí docker jako jediné správné řešení na spouštění jejich appek. Trochu se zapomnělo na to, že OS poskytuje oddělení procesů, uživatelů apod a že služba vůbec nemusí běžet jako kontejner, ale může to být klidně lokální proces. A golang se do tohodle docela dobře trefuje. Jedna binárka, stačí spustit jako kterýkoliv jiný proces s potřebnými omezeními a oprávněními a je z toho služba. Kontejner netřeba.
Network connectivity must not be required during build – the build must be possible completely offline. All dependencies must be downloadable and documented including secure hashes or preferably cryptographic signatures.
Pak je ale otázka, jak moc ten překládací systém proti tomuhle bude člověku házet klacky pod nohy, ať už úmyslně nebo jenom nedotažeností oproti automatickému stažení z internetu.Tak jistě. V golangu není rozdíl mezi tím, když si stáhneš ten balíček samostatně (s cílem na něm třeba pracovat nebo si jej zkomplikovat jako samostatných program) a tím, když jej použiješ v importech jako součást tvého projektu. Stáhne se totéž. Stejně jako v pythonu je mnoho modulů současně i samostatný program a lze jej použít jako knihovnu ve vlastním programu.
A druhá - kolik lidí to skutečně bude dělat - tj. ověřovat, že opravdu stáhli to, co chtěli, ať už automaticky nebo neTak tohle nezáleží na konkrétním jazyku ani nástroji. Každý jazyk má nějak bohatou standardní knihovnu a ke každému jazyku si můžeš dotáhnout cizí kód.
což je ale samozřejmě univerzální problém všech těchhle systémů, jak věci udělat co nejjednodušší pro vývojáře, přestože to může být na úkor něčeho jinéhoAno, a to mě jako admina sejří na různých distribučních platformách, snad každý jazyk má nějakou (CPAN, PyPi, PECL, úplně do extrému to dotáhl NPM, kde může každý cokoliv a navíc to může i smazat, takže při dalším update ta site přestane pro jistotu fungovat) a je těžké přesvědčit vývojáře, že by měl dávat přednost standardní knihovně, potom balíčkům ve standardním repositáři distribuce a až potom eventuálně sáhnout do balíčkovače té které platformy. Bohužel v různých tutorial videích "jak za 10minut udělat vlastní youtube" se to náhodným stahováním z githubu jen hemží a někteří lidé jsou přesvědčení, že toto je jediná správná cesta.
And hidden therein is my actual point: complexity. There has long been a trend in computing of endlessly piling on the abstractions, with no regard for the consequences. The web is an ever growing mess of complexity, with larger and larger blobs of inscrutable JavaScript being shoved down pipes with no regard for the pipe’s size or the bridge toll charged by the end-user’s telecom. Electron apps are so far removed from hardware that their jarring non-native UIs can take seconds to respond and eat up the better part of your RAM to merely show a text editor or chat application.
prave kompilator (pripadne linker) ma zaridit to, ze se pouzije a do binarky vlozi jen to co je treba.
V zásadě bych souhlasil, ale jde o to, že když 99 % programů psaných v daném jazyce potřebuje funkcionalitu/vlastnosti X, Y a Z, tak nemá moc smysl optimalizovat pro to 1 % Hello world příkladů, které tyto funkcionality či vlastnosti nepotřebují.
Ono udělat kompilátor/linker tak, aby byl natolik flexibilní, že dokáže vygenerovat optimální binárky pro všechno od Hello world příkladů po rozsáhlé aplikace, je dost obtížné.
Většina jazyků má nějak definovanou svoji cílovou skupinu a typické využití a pro ně se snaží optimalizovat. Nikdo neoptimalizuje pro Hello world příklady.
Optimalne umim prohodit trebas obsah dvou registru aniz bych potreboval treti. Tohle ale kompilator typicky delat nebude.Jsi frajer, ale tohle kompilator delat nebude, protoze to ma opravdu k optimalnimu kodu (na dnesnich procesorech) daleko. Prohozeni obsahu dvou registru bez tretiho vyzaduje tri provazane operace ALU, coz neni uplne levna zalezitost, pricemz by ALU mezi tim mohla jit pouzit na vypocty, ke kterym je urcena. Na druhou stranu, vyuziti tretiho registru v podstate znamena, ze se v ramci registr renaming uvnitr procesoru jen zmeni mapovani logickych registru na fyzicke, tj. nic se nikam nepresouva.
a^=b^=a^=b;Jestli to poničí flagy opravdu netuším.
Pokud soucvet pretece, tak se to cele posere.Ty jo, tak se součtem jsem to snad ještě neviděl. Normálně se na to používá XOR. Ale jinak fakt se to se součtem rozbije i když máš aritmetiku s bezpečnými overflows? (a to nejspíš máš, protože to vyžaduje C)
zavery se z toho prave delat daji pomerne obsahlyNedají. Hello world je tak primitivní příklad, že ve skutečnosti nehovoří nic o ničem. A dá se to říct i opačně, pokud někdo chce programovat cosi na úrovni hello world a použije k tomu třeba Javu a potom nadává, že k "jednomu řádku" musí mít i 200MB JRE, tak je to jen jeho chyba a jeho špatný výběr technologie. K Hello World navíc ani nepotřebuje počítač a může to generovat TTL logika nebo rovnou zadrátovaný signál v monitoru.
Ze mozna i nasobne slozitejsi aplikace nebude i nic vetsi znamena totiz proste to, ze tvurci kompilatoru nekde neco hodne posrali, protoze prave kompilator (pripadne linker) ma zaridit to, ze se pouzije a do binarky vlozi jen to co je treba.Co má nebo nemá za úkol kompilátor toho kterého projektu je věcí jeho tvůrců.
o ktery navic autor nemuze mit ani paru, protoze ho ani ve snu nenapadne, ze by tam neco takoveho bylo.To je ovšem jeho chyba, že si neprostuduje specifikaci jazyka, který si vybral. Navíc když je to tak známá věc objevující se ve všech debatách (a každého začátečníka trkne).
Smutny, kdyz si clovek uvedomi, ze se do par kB vpohode vejde cely system.Chápu tě, ale stěžuješ si na nesprávném místě. Inspirativní přednáška. Jinak pokud ti opravdu leží na srdci velikost go binárek (o čemž teda pochybuju) tak se to dá stripnout, vypnout debug apod.
aplikace zabiraj TBFakt jo? Jsem si nevšiml. Moje distribuce na disku se pořád vejde do 2GB stejně jako před 15 lety. (A z toho je 350MB locale, což teda vůbec nevím, proč tady je.) Jediné, co zabírá víc jsou data a tam to dává smysl a je to vlastně chtěné (ne to, že zabírají místo na disku, ale to, s jakým rozlišením jsme schopni je pořizovat a zobrazovat).
Co hur casto i naopak, tam kde by vyuziti ram smysl davalo prozmenu soudruzi vyvojari vubec neuvazujou nad tim, ze ledackdo v PC muze mit i vic nez (dnes) 4/8GB ram (gamesa zurive chroupajici na disku/ssd, zabirajici 2GB a ani tuk navic, pricemz by si vpohode mohla vzit 60GBAno. Memory management některých programů je ... fascinující.
Hello world je tak primitivní příklad, že ve skutečnosti nehovoří nic o ničem.
Kdyby to bylo jenom o "Hello world", tak by to bylo v pohodě, bohužel stejný princip je ve světě zažraný úplně všude, a to horizontálně i vertikálně. I takové Raspberry PI je hardware s poměrně brutálním výkonem, jenomže pro "moderní" aplikace je to zcela na prd, protože je to zadušené hromadou balastu. Na druhou stranu na každé úrovni od "Hello world" až po browser určitě existuje nějaká přednáška, článek nebo aspoň mailová diskuse, kde se vysvětluje, že ten "bulky" přístup je vlastně pro danou věc nejvíc nejoptimálnější a jakékoli zlepšení není možné, protože by to bylo vlastně už jenom horší.
Tohle by stálo za článek nebo zápisek do blogu :-)
Pro Intel je tohle a to je boží.Jestli je toto bozi, tak nevim, co je pak Agner Fog. ;-]
pro go toto je anglicky nebo česky?
... Since the number puzzle was written in Pascal, it had to link with the Pascal run-time, which dragged in lots of extra code that wasn't used. This made the Puzzle over 6K bytes long, even though most of it was just the run-time. ... It only took a few hours on Saturday to recode it in assembly language, and get it down to the required 600 bytes, since it no longer had to link with the bulky Pascal code. ...
Pozor, ten článek je dost mizerný, viz komentáře na lobste.rs.