abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 04:55 | Zajímavý software

    Microsoft zveřejnil na GitHubu zdrojové kódy MS-DOSu 4.0 pod licencí MIT. Ve stejném repozitáři se nacházejí i před lety zveřejněné zdrojové k kódy MS-DOSu 1.25 a 2.0.

    Ladislav Hagara | Komentářů: 12
    včera 17:33 | Nová verze

    Canonical vydal (email, blog, YouTube) Ubuntu 24.04 LTS Noble Numbat. Přehled novinek v poznámkách k vydání a také příspěvcích na blogu: novinky v desktopu a novinky v bezpečnosti. Vydány byly také oficiální deriváty Edubuntu, Kubuntu, Lubuntu, Ubuntu Budgie, Ubuntu Cinnamon, Ubuntu Kylin, Ubuntu MATE, Ubuntu Studio, Ubuntu Unity a Xubuntu. Jedná se o 10. LTS verzi.

    Ladislav Hagara | Komentářů: 12
    včera 14:22 | Komunita

    Na YouTube je k dispozici videozáznam z včerejšího Czech Open Source Policy Forum 2024.

    Ladislav Hagara | Komentářů: 2
    včera 13:22 | Nová verze

    Fossil (Wikipedie) byl vydán ve verzi 2.24. Jedná se o distribuovaný systém správy verzí propojený se správou chyb, wiki stránek a blogů s integrovaným webovým rozhraním. Vše běží z jednoho jediného spustitelného souboru a uloženo je v SQLite databázi.

    Ladislav Hagara | Komentářů: 0
    včera 12:44 | Nová verze

    Byla vydána nová stabilní verze 6.7 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 124. Přehled novinek i s náhledy v příspěvku na blogu. Vypíchnout lze Spořič paměti (Memory Saver) automaticky hibernující karty, které nebyly nějakou dobu používány nebo vylepšené Odběry (Feed Reader).

    Ladislav Hagara | Komentářů: 0
    včera 04:55 | Nová verze

    OpenJS Foundation, oficiální projekt konsorcia Linux Foundation, oznámila vydání verze 22 otevřeného multiplatformního prostředí pro vývoj a běh síťových aplikací napsaných v JavaScriptu Node.js (Wikipedie). V říjnu se verze 22 stane novou aktivní LTS verzí. Podpora je plánována do dubna 2027.

    Ladislav Hagara | Komentářů: 0
    včera 04:22 | Nová verze

    Byla vydána verze 8.2 open source virtualizační platformy Proxmox VE (Proxmox Virtual Environment, Wikipedie) založené na Debianu. Přehled novinek v poznámkách k vydání a v informačním videu. Zdůrazněn je průvodce migrací hostů z VMware ESXi do Proxmoxu.

    Ladislav Hagara | Komentářů: 0
    včera 04:11 | Nová verze

    R (Wikipedie), programovací jazyk a prostředí určené pro statistickou analýzu dat a jejich grafické zobrazení, bylo vydáno ve verzi 4.4.0. Její kódové jméno je Puppy Cup.

    Ladislav Hagara | Komentářů: 0
    24.4. 22:44 | IT novinky

    IBM kupuje společnost HashiCorp (Terraform, Packer, Vault, Boundary, Consul, Nomad, Waypoint, Vagrant, …) za 6,4 miliardy dolarů, tj. 35 dolarů za akcii.

    Ladislav Hagara | Komentářů: 14
    24.4. 15:55 | Nová verze

    Byl vydán TrueNAS SCALE 24.04 “Dragonfish”. Přehled novinek této open source storage platformy postavené na Debianu v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    KDE Plasma 6
     (73%)
     (9%)
     (2%)
     (16%)
    Celkem 782 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    Rozcestník
    Štítky: není přiřazen žádný štítek


    Vložit další komentář
    26.10.2021 17:12 Mayhem
    Rozbalit Rozbalit vše Re: The simple custom shell
    Co s tim jako? Stringy natvrdo, jejich delky natvrdo, uchylny coding style (nepouzivani zavorek dokonce i u cyklu)...
    26.10.2021 17:42 debianův fanoušek
    Rozbalit Rozbalit vše Re: The simple custom shell
    Haters gona hate.
    27.10.2021 07:39 Rustêj
    Rozbalit Rozbalit vše Re: The simple custom shell
    To neni hejt ale konstruktivni kritika. Program bezi v nekonecne smycce - zly pattern. Dva krat includuje stejne hacko :) Memset s bufferem? To je potencialni dira a memleak. Proste smazat a prepsat do Rustu bude nejlepsi.
    27.10.2021 08:05 KKK
    Rozbalit Rozbalit vše Re: The simple custom shell
    Rust je meme.
    27.10.2021 18:11 turboPackal
    Rozbalit Rozbalit vše Re: The simple custom shell
    Pro mne za mne at je i tahounem okamurovy kampane. Kdyz je lepsi jak C, hlavne v sprave pameti tak co resis ?
    27.10.2021 18:55 KKK
    Rozbalit Rozbalit vše Re: The simple custom shell
    Rusthead fanatiky.
    27.10.2021 21:58 turboRaku
    Rozbalit Rozbalit vše Re: The simple custom shell
    Rust fanatici neexistuji, jsou proste slechta a na c-plebs hledi s despektem. Fanatici jsou Perliste, ti dokazou deseti extatickymi zpusoby ospevovat nejdokonalejsi jazyk na zemi, ktery je tak dokonaly ze na nej uz 10 let nikdo nesahnul ale bude jeste jeden ultimatni zvany Raku. Ale az v roce 2048.
    29.10.2021 10:15 Mayhem
    Rozbalit Rozbalit vše Re: The simple custom shell
    Javistum je jedno, becauseWeKnowWeAreBetter(We.THE_BEST);
    29.10.2021 18:40 Svētlo
    Rozbalit Rozbalit vše Re: The simple custom shell
    Blbost. Javiste jsou vesmes rozumni lide a vedi, ze java neni zadny zazrak. Ale da se s ni hezky vydelat tak jsou pragmaticti. Pres den javuji v korporatu a vecer rustuji open source :-) Inu uz i Linus jde s dobou a casti kernelu se zacnou delat v rustu.
    27.10.2021 09:53 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: The simple custom shell
    Memset s bufferem? To je potencialni dira a memleak.

    Mohl byste tuhle myšlenku nějak objasnit? Samozřejmě by čistší bylo

            memset(buffer, 0, sizeof(buffer));
    

    nebo raději rovnou

            char buff[BUFF_LEN] = {};
    

    nebo

            char buff[BUFF_LEN] = "";
    

    ale jak z inicializace lokální proměnné uděláte memleak, to bych si docela rád poslechl.

    Asi je to profesionální deformace, ale spíš mi vadí ten samotný nápad mít takhle velkou proměnnou na stacku.

    27.10.2021 11:04 johnyK | skóre: 2 | blog: uxblog
    Rozbalit Rozbalit vše Re: The simple custom shell
    mít takhle velkou proměnnou na stacku.
    napr. u funkce, ktera pise do logu a jako parametr dostane vetsi text se s ti neco udelat musi.

    Co pouzivate potom. Static, malloc, extern ?

    Ja pouzivam static uvnitr funkce a priznam se, ze jsem vlastne nikdy nezkousel, kde se to uklada :-) , ja jsem si myslel, ze tyhle permanentni veci by mely skoncit v datovem segmentu, ale jisty si vlastne nejsem. Vi to nekdo na 100%? Co pouzit kdy?
    27.10.2021 11:24 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: The simple custom shell
    Záleží na konkrétní situaci, ale většinou bych upřednostnil dynamickou alokaci, tj. malloc() apod. V jádře je vzhledem k velikosti stacku tlak na šetření hodně velký, ale ani v userspace není dobré si představovat, že je stack nekonečný. Resource limit na velikost stacku (ulimit -s) sice bývá něco jako 8 MB, ale to je pro všechny thready dohromady, takže u multithreadových programů běžně používám stack o velikosti 64 KB nebo dokonce 16 KB - a pak už si rozmyslíte, jestli tak velkou část zaplácnout nějakým bufferem.
    27.10.2021 18:19 Rustêj
    Rozbalit Rozbalit vše Re: The simple custom shell
    Kdyz uz bastlis v Ccku tak si neco precti o alokaci pameti, jedine dynamicka je bezpecna. I staticka je delana pres pointry a kdyz ti tam nekdo natriska 1000 emoji tak ani Kernighan s Richiem nebudou vedet kam ta pamet ustreli kamarade. Dej na mou radu, prepis to do Rustu a tohle resit pak nemusis.
    27.10.2021 20:04 johnyK | skóre: 2 | blog: uxblog
    Rozbalit Rozbalit vše Re: The simple custom shell
    kdyz se v nejake funkci misto stovek lokalnich definec nejakych bufferu udelaji malloc-y, a ta funkce se milionkrat vyvola, tak to ma dve vyhody:

    - je mozne si jit udelat kafe, protoze to trochu trva

    - to kafe je mozno si ohrat hned na tom procesoru

    Kdyz se navic ty malloc-y trochu parametrizujou, tak je mozno takovy program nasadit jako memtest utilitu ...

    at zije Rust a vsechny moderni programy

    P.S. jeste takovou PERLicku:

    my dodavame programy do firmy, ktera se nachazi v obci Rust a kolega kdysi delal nekolik excelovych zpracovani pro mestsky urad v obci Perl. Je zajimave, ze pro radu programu existuje obec, ktera se zrovna tak jmenuje :-)
    27.10.2021 20:35 jiwopene | skóre: 31 | blog: Od každého trochu…
    Rozbalit Rozbalit vše Re: The simple custom shell
    my dodavame programy do firmy, ktera se nachazi v obci Rust a kolega kdysi delal nekolik excelovych zpracovani pro mestsky urad v obci Perl. Je zajimave, ze pro radu programu existuje obec, ktera se zrovna tak jmenuje :-)
    + ještě Kotlin a Java.

    Lua, Saint-Python, Cobol, Fortran, Scala, C++, Ruby, …
    .sig virus 3.2_cz: Prosím, okopírujte tento text do vaší patičky.
    27.10.2021 21:52 Rustêj
    Rozbalit Rozbalit vše Re: The simple custom shell
    S necim si to pletes. Jak malloc tak memset ma svou alokacni rezii, ktera je (z hlediska OS) temer stejna. Tebou popisovany pripad je blbost uz sama o sobe, nikdo by to takhle nedelal a pouzil by globalnejsi store. A v Perlu jim vypust pythona :-)
    Heron avatar 27.10.2021 22:22 Heron | skóre: 53 | blog: root_at_heron | Olomouc
    Rozbalit Rozbalit vše Re: The simple custom shell
    Když je tu tolik Rustařů, nechcete o tom napsat nějaký motivační / bootovací článek? Používám golang, jsem s ním spokojený, dokonce už jsem si zvykl na hroznou syntax, ale tak nějak cítím, že vlastně chci rust, ale s jednoduchostí golangu / pythonu.

    Golang je super v několika věcech. Jedna statická binárka. Crosscompilace v základu (vůbec ty tools jsou navržené dobře). Na widlích pomocí dvou příkazů udělám binárky pro freebsd i linux. Velmi snadný koncept paralelizace. Kanály jsou tak nějak přesně to, co chci. Statické a silné typování. Rád vytvářím specifické typy a k nim metody (i když syntaxe func receiver je teda hrozná). Automatická správa paměti.

    Teď odvrácená strana. Výkon rustu je 3x větší (což je mi vlastně jedno, před dvěma lety jsem to měl v pythonu), ale proč si ho nevzít. Rust má skvělý borrow checker. Resp. celý systém varování kompilátoru. Tohle mne zaskočilo asi nejvíc, golang má statickou silnou kontrolu a přes to mu zjevné věci unikají. Nějak jsem se tomu vyhnul, ale jednou to přijde. (Ve skutečnosti největší problém, na který jsem na počátku narážel bylo to, kdo a kdy má uzavírat channel. Někde jsem viděl, že rust compiler dokáže detekovat deadlock už během kompilace.)

    Největší problém rustu vidím v komplikované cross compilation. Možná se to pohlo, nemám čas to sledovat. Vůbec nevím, jak je to se standardní knihovnou. Vždy se, pokud je to možné, vyhýbám externím závislostem. Jasně, driver pro databázi tak nějak potřebujete vždy. Knihovnu pro escape sekvence pro barvičky v terminálu importovat nechci. (To si ji raději napíšu sám.)

    Potom syntax. Moc se mi nelíbí to označování mut, move, (borrow) apod. Podle mého názoru by si to měl vyřešit compiler. V golangu je garabge collector, všechno se by default kopíruje (bohužel i pointery) a kdo chce, může používat reference (ale zase, každou proměnnou označovat hvězdičkou... prostě ta syntax je divná).
    28.10.2021 10:07 jiwopene | skóre: 31 | blog: Od každého trochu…
    Rozbalit Rozbalit vše Re: The simple custom shell
    Co se týče cross-kompilace, tak mám s Rustem celkem dobré zkušenosti (asi letošní březen) – nainstaloval jsem toolchain (kompilátor + std + …), zkompiloval pro armv7 (na amd64) a fungovalo to.

    Jinak jsem v opačné situaci – používám Rust, ale neustále si říkám, že bych měl zkusit Golang.

    move s Vámi soublasím – to by měl řešit spíš kompilátor. Na druhou stranu, proti let mut/mut nic nemám (pořád hezčí než const v C++) – alespoň si v tom musím udělat jasno předem. (Kotlin má val (jako let) a var (jako let mut) a tam mě to spíš obtěžuje, zčásti protože si tato klíčová slova jsou tak podobná, že se snadno spletou.)
    .sig virus 3.2_cz: Prosím, okopírujte tento text do vaší patičky.
    Heron avatar 28.10.2021 12:50 Heron | skóre: 53 | blog: root_at_heron | Olomouc
    Rozbalit Rozbalit vše Re: The simple custom shell
    Ano, ten koncept, že je všechno immutable a je nutné označit mutable se mi líbí víc, než naopak psát const a potom na to někde zapomenout.
    29.10.2021 17:24 Martin Tůma | skóre: 39 | blog: RTFM | Praha
    Rozbalit Rozbalit vše Re: The simple custom shell
    Asi je to profesionální deformace, ale spíš mi vadí ten samotný nápad mít takhle velkou proměnnou na stacku.

    Mě teda spíš vadí to, že má takhle velkej buffer, když do něj čte maximálně 4 byty... Víc commandů za sebou to neumí, zbytek načteného bufferu stejně zahazuje. Kdyby tam měl odpovídající - 4 bytovej buffer - tak si ho dovedu na stacku klidně představit i v kernelu :-). Celkově bych to nazval jako "céčko od ne-céčkaře" (vyloženě z toho čiší neznalost základních principů, jako co je v C string a jak je reprezentovaný, co je stream a jak funguje standardní vstup, ...). Nějak takhle asi vypadaj moje programy v pythonu ;-).

    Každý má právo na můj názor!
    vlastikroot avatar 1.11.2021 12:08 vlastikroot | skóre: 24 | blog: vlastikovo | Milevsko
    Rozbalit Rozbalit vše Re: The simple custom shell

    Asi je to profesionální deformace, ale spíš mi vadí ten samotný nápad mít takhle velkou proměnnou na stacku.

    Podle me 1000 bytu je mala promena, pokud se bavime o platforme, kde nejmensi velikost pridelene pameti na stack je jedna stranka (takze da se rict kazda platforma s MMU). Pokud uz je stack naalokovany, je to nejefektivnejsi metoda, jak ziskat docasnou pamet - jen se navysi stack pointer (proto ma alloca obcas svuj smysl, treba kod llvm je toho plny).
    We will destroys the Christian's legion ... and the cross, will be inverted
    1.11.2021 12:39 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: The simple custom shell
    Podle me 1000 bytu je mala promena, pokud se bavime o platforme, kde nejmensi velikost pridelene pameti na stack je jedna stranka (takze da se rict kazda platforma s MMU).

    A taková proměnná vám zabere čtvrtinu té stránky, to je docela dost, aby se nad tím vývojář aspoň řádně zamyslel. Nemluvě o tom, že v civilizovaném programu těch 1000 nebude natvrdo zadrátovaná konstanta, čímž se problém posouvá na novou úroveň. (Viz např. čistka VLA v jádře pár let zpátky.)

    proto ma alloca obcas svuj smysl, treba kod llvm je toho plny

    Snad jsou aspoň trochu prozíravější než autor resolveru v glibc, který také miluje alloca(), ale bohužel má malou představivost ohledně toho, jak velká může být odpověď nebo kolik IPv6 adres může host používat, takže ten zásobník tu a tam přeteče…

    vlastikroot avatar 1.11.2021 18:25 vlastikroot | skóre: 24 | blog: vlastikovo | Milevsko
    Rozbalit Rozbalit vše Re: The simple custom shell
    To jakoze ten glibc resolver dokaze vyzrat ten defaultni nekolikamegovy stack ? :-D Nebo se jedna o nejaky nedefaultni runtime?
    We will destroys the Christian's legion ... and the cross, will be inverted
    1.11.2021 19:10 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: The simple custom shell
    V tom případě, který jsem řešil, to stačilo to na přetečení stacku v nějaké javové aplikaci. Velikost byla IIRC 256 KB a podle všeho to byl default, nijak s jeho velikostí nehýbali.
    26.10.2021 18:10 z_sk | skóre: 34 | blog: analyzy
    Rozbalit Rozbalit vše Re: The simple custom shell
    Co s tim jako?
    Reakce na tohle: https://www.abclinuxu.cz/poradna/linux/show/473630
    debian.plus@protonmail.com
    Gréta avatar 26.10.2021 18:44 Gréta | skóre: 36 | blog: Grétin blogísek | 🇮🇱==❤️ , 🇵🇸==💩 , 🇪🇺==☭
    Rozbalit Rozbalit vše Re: The simple custom shell

    jaktože to jakoby má jenom 23 zobrazení ale už 12 hlasů :D

    26.10.2021 19:18 z_sk | skóre: 34 | blog: analyzy
    Rozbalit Rozbalit vše Re: The simple custom shell
    Zo začiatku bol v náhľade o blogu aj kód, teraz už nie je.
    debian.plus@protonmail.com
    Gréta avatar 26.10.2021 19:19 Gréta | skóre: 36 | blog: Grétin blogísek | 🇮🇱==❤️ , 🇵🇸==💩 , 🇪🇺==☭
    Rozbalit Rozbalit vše Re: The simple custom shell
    26.10.2021 20:24 Bherzet | skóre: 19 | blog: Bherzetův blog
    Rozbalit Rozbalit vše Re: The simple custom shell
    A (skoro) všechny pozitivní. Od té doby průměr klesá.
    27.10.2021 12:02 _
    Rozbalit Rozbalit vše Re: The simple custom shell
    Zbytečné:
    while(1)
            if(loop()==1)
                break;
    Stačí naspat:
    while(loop() != 1)
    nebo == 0, ale to může mít jiný význam v závislosti na tom, jaké hodnoty vracíš.
    Gréta avatar 27.10.2021 17:22 Gréta | skóre: 36 | blog: Grétin blogísek | 🇮🇱==❤️ , 🇵🇸==💩 , 🇪🇺==☭
    Rozbalit Rozbalit vše Re: The simple custom shell

    while(!loop());

    29.10.2021 07:59 Mayhem
    Rozbalit Rozbalit vše Re: The simple custom shell
    Hlavne pouzivani cisel jako pravdivostnich mi prijde prasarna v dobe, kdy mame stdbool.h. Take vracet cislo je prasarna, kdyz v stdlib mame EXIT_*..
    29.10.2021 08:53 bul
    Rozbalit Rozbalit vše Re: The simple custom shell
    EXIT* jsou jen konstanty pro cisla :) Nekdo ma pamet na vyrazy, nekdo zas na cisla. Ve vysledne binarce to bude stejne.
    29.10.2021 10:12 Mayhem
    Rozbalit Rozbalit vše Re: The simple custom shell
    Ja vim, ale radeji vidim true/false a EXIT_* nez return 0/1, while(1), atd. Pro citelnost kodu mi to prijde zasadni. O globalni promenne, literalech natvrdo, delkach na tvrdo, zavorkach, mega polech na stacku, atd. radeji pomlcim. Pak ma to cecko nejak vypadat, kdyz zacatecnici vidi toto a povazuji to za normu.
    29.10.2021 10:13 Mayhem
    Rozbalit Rozbalit vše Re: The simple custom shell
    Na druhou stranu, nechci hanet autora kodu. Pokud mu jeho dilo plni ucel a nepada, pak je vsechno v poradku. Priste uz napise kod jiste citelneji.
    29.10.2021 18:43 sojovy uherak
    Rozbalit Rozbalit vše Re: The simple custom shell
    Ale my nehanime autora. My delame code review tomu paskvilu co vyprodukoval, to je rozdil :-)
    1.11.2021 15:38 Aleš Kapica | skóre: 51 | blog: kenyho_stesky | Ostrava
    Rozbalit Rozbalit vše Re: The simple custom shell
    … radeji vidim true/false a EXIT_* nez return 0/1, while(1), atd.
    Souhlasím. Mám také raději „ukecanější” kód ze kterého je jasné co se kdy děje, než rébusy, u kterých lze návratovou hodnotu snadno zaměnit. Číselné hodnoty využívám jako návratovou hodnotu jen tam, kde potřebuji odchytnout konkrétní místo.

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.