abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 22:44 | Nová verze

    Programovací jazyk Python byl vydán v nové major verzi 3.15.0. Podrobný přehled novinek v aktualizované dokumentaci.

    Ladislav Hagara | Komentářů: 0
    včera 22:33 | Zajímavý projekt

    BIGWORDS.PAGE je open-source webová aplikace, která po otevření odkazu v prohlížeči vykreslí přes celou obrazovku jednoduché informační sdělení. Zpráva i její nastavení jsou uložené v části URL za znakem #, například odkaz https://bigwords.page/#abclinuxu zobrazí jako velký bílý nápis 'abclinuxu' na černém pozadí. Obsah odkazu lze upravovat i vestavěným editorem, ten umožňuje nastavovat formátování a vizuální efekty textu, časovače, QR kódy a obrázky. Zdrojový kód je dostupný pod licencí MIT na GitHubu.

    ❗Červivý Hřib krade❗ | Komentářů: 7
    včera 11:55 | Upozornění

    V neděli 11. října proběhne rotace klíče kořenové zóny. Podruhé v historii. Ondřej Filip na blogu CZ.NIC: "Pokud je pro Vás DNS protokol spíše výzva, ale přesto spravujete nějakou síť či DNS resolver, zkuste si jednoduchý test, který připravila firma Cloudflare na této adrese. Obzvláště zbystřit byste měli, pokud uvidíte nějaká červená políčka."

    Ladislav Hagara | Komentářů: 13
    včera 09:55 | IT novinky

    Vláda Spojených států se rozhodla vyřadit americkou softwarovou společnost Microsoft a několik dalších velkých technologických podniků z programu, který umožňuje kvalifikovaným zahraničním pracovníkům získat povolení k trvalému pobytu. Oznámila to včera administrativa amerického prezidenta Donalda Trumpa. Opatření zdůvodnila rozsáhlým zneužíváním programu, který je dlouhodobě terčem kritiky ze strany Trumpových příznivců, neboť prý znevýhodňuje americké pracovníky.

    Ladislav Hagara | Komentářů: 11
    včera 09:44 | IT novinky

    Datové centrum největší ruské technologické společnosti Jandex v Rjazaňské oblasti se stalo cílem dronového útoku a zastavilo provoz. Jandexu se někdy přezdívá „ruský Google“. Provozuje nejoblíbenější internetový vyhledávač v Rusku nebo aplikace pro objednávky jídla a taxi. Využívají jej desítky milionů lidí v rusky mluvících zemích.

    Ladislav Hagara | Komentářů: 11
    včera 09:33 | Nová verze

    Francouzská společnost Mistral AI představila Mistral Large 4 (interně přezdívaný 'le Chonk', volně přeloženo 'pořádný macek'), 'open-weight multimodální hybridní instruct-and-reasoning model s architekturou granulárního MoE, nativně podporující více jak 160 jazyků'. Model má přes jeden bilión parametrů, z nichž při práci využívá 49 miliard, kontextové okno o délce milion tokenů a obrazový enkodér o 1,6 miliardách parametrů.

    … více »
    ❗Červivý Hřib krade❗ | Komentářů: 2
    včera 03:22 | Nová verze

    Svobodný multiplatformní herní engine Bevy napsaný v Rustu byl vydán ve verzi 0.20. Díky 227 přispěvatelům.

    Ladislav Hagara | Komentářů: 0
    včera 03:11 | Komunita

    Simon Long oznámil Raspberry Pi Desktop pro PC a Mac s Intelem postavený na aktualizovaném Debianu 13 Trixie. S klientem Raspberry Pi Connect pro vzdálenou správu. Ke stažení je vedle Raspberry Pi OS pro Raspberry Pi.

    Ladislav Hagara | Komentářů: 1
    8.10. 21:33 | Zajímavý projekt

    ESP32-C3 adblock přemění lacinou vývojovou desku ESP32‑C3 na samostatný DNS blokovač nejenom reklamních domén, minimalistickou alternativu k populárnímu Pi-hole. ESP32-C3 adblock místo objemných názvů domén ukládá jejich 40-bitové FNV-1a hashe do flash paměti, které pak binárně prohledává, kontrola jedné domény trvá přibližně 10 milisekund. Blocklist pojme až 537 tisíc domén a lze jej spravovat přes webové rozhraní. Projekt zatím

    … více »
    ❗Červivý Hřib krade❗ | Komentářů: 0
    8.10. 21:00 | Zajímavý software

    ArtCraft je sada open source aplikací pro práci s obrázky a videi "inspirovaných" aplikacemi od Adobe. Napsaných v Rustu. Pro MacOS, Windows i Linux. Běží také ve webovém prohlížeči. Aktuálně se jedná o 7 aplikací: PhotoCraft (Photoshop), VectorCraft (Illustrator), FilmCraft (Premiere Pro), LightCraft (Lightroom), PdfCraft (Acrobat), EffectCraft (After Effects) a DesignCraft (InDesign). Zdrojové kódy jsou k dispozici na GitHubu.

    Ladislav Hagara | Komentářů: 9
    Které desktopové prostředí na Linuxu používáte?
     (9%)
     (7%)
     (4%)
     (21%)
     (29%)
     (8%)
     (5%)
     (2%)
     (14%)
     (20%)
    Celkem 2823 hlasů
     Komentářů: 31, poslední 13.8. 00:27
    Rozcestník

    Dotaz: Nelogicke chovani v perlu

    27.11.2009 23:48 Mr.S1lent.cz
    Nelogicke chovani v perlu
    Přečteno: 506×
    Zdravim, mam tu jeden zahadny problem, nad kterym dumam uz asi cely den...

    Zde je cast DB modulu: http://www.pastebin.cz/27127 a zde priklad volani metody _view: http://www.pastebin.cz/27128

    a ted problem - do terminalu mi to vypise hodnotu pouze u test1, avsak test2 - 4 zustavaji empty, vypisy z Dumperu jsou konstantni, vedel by nekdo, kde muze byt chyba? Me absolutne nic nenapada, nechapu, jak se to takhle vubec muze chovat....

    Řešení dotazu:


    Odpovědi

    28.11.2009 00:54 buff | skóre: 10 | blog: buff
    Rozbalit Rozbalit vše Re: Nelogicke chovani v perlu
    Problém je IMHO v tom whilu. Ten první while to projede nakonec a ty další už vrací false v první iteraci. Potřeboval bys vyresetovat ten prstíček, co ukazuje na aktuální řádek.
    28.11.2009 00:57 buff | skóre: 10 | blog: buff
    Rozbalit Rozbalit vše Re: Nelogicke chovani v perlu
    Snad seek? Hope it helps. Zkus, mně se to zkoušet nechce ;-)
    28.11.2009 07:32 pht | skóre: 48 | blog: pht
    Rozbalit Rozbalit vše Re: Nelogicke chovani v perlu
    Doporučuju ty věci dávát dohromady s dotazem a ne na pastebin. Za 2 roky až někdo na tohle náhodou narazí, tak už nepochopí co se řešilo.

    Takže:
    sub new {
        my ( $pkg, $db ) = @_;
        my $self = bless {}, $pkg;
        $self->{_db} = "db/$db.db";
        open( $self->{_dbhandler}, $self->{_db} ) or die "DB $db.db not open\n";
        return $self;
    }
    sub _view {
        my ( $self, $arg ) = @_;
        my $dbhandler = $self->{_dbhandler};
        while ( my $line = <$dbhandler> ) {
            if ( $line =~ /( *)$arg( *)\=( *)'(.*?)';( *)/ ) {
                return $4;
            }
        }
        return undef;
    }
    $self->{_db} = new TAI::DB( 'status' );
    print Dumper( $self->{_db} );
    print "test1: " . $self->{_db}->_view( 'task' ) . "\n";
    print Dumper( $self->{_db} );
    print "test2: " . $self->{_db}->_view( 'task' ) . "\n";
    print Dumper( $self->{_db} );
    print "test3: " . $self->{_db}->_view( 'task' ) . "\n";
    print "test4: " . $self->{_db}->_view( 'task' ) . "\n";
    No a k tomu dotazu, myslím si to co ostatní: soubor projíždíte po řádkách, takže nebude vracet v každém volání totéž. Dá se to řešit různě, ale myslím, že děláte tu celou věc trochu přes ruku, co přesně má být účelem toho kódu?
    In Ada the typical infinite loop would normally be terminated by detonation.
    28.11.2009 17:14 Mr.S1lent.cz
    Rozbalit Rozbalit vše Re: Nelogicke chovani v perlu
    Ucelem toho kodu - modulu - je vytvorit takovy obsluhovac souborů, ktere mi slouzi jako text/plan uloziste - datazabaze pouzivam jen tehdy, pokud je to nevyhnutelne nutne, tudiz to resim takhle. Podle vasich reakci usuzuju, ze si ten filehandler "pamatujue", kde naposledy skoncil a pote projizdeni souboru po radku pokracuje prave od toho mista, je to tak? :-) Jinak uz jdu na study toho seek, moc dekuji, verim, ze mi to pomuze vyresit problem :-))
    28.11.2009 17:30 Mr.S1lent.cz
    Rozbalit Rozbalit vše Re: Nelogicke chovani v perlu
    Tak, problem je vyresen, seek mi opravdu pomohl :-) Moc dekuji - tady neslo o to, ze bych nevedel, kde hledat, ale ja nevedel, co hledat, jeste jednou diky :-))
    28.11.2009 18:03 Nick
    Rozbalit Rozbalit vše Re: Nelogicke chovani v perlu
    No vidíš. A příště nenadávej na Perl a hledej nejdřív problém mezi klávesnicí a židlí :-)
    29.11.2009 20:13 pht | skóre: 48 | blog: pht
    Rozbalit Rozbalit vše Re: Nelogicke chovani v perlu
    No, možností jak tohle udělat je hodně a upřímně seek je jeden z těch méně šťastných.

    Nejjednodušší je dát open/close do rutiny _view, čili pokaždé soubor otevřít, najít řádek a potom ho zavřít. Je to stejně efektivní jako seek, ale čistější a robustnější vůči přepisu/smazání souboru.

    Další možnost je v konstruktoru soubor kompletně přečíst a uložit si páry klíč=hodnota (pokud chápu dobře, tak ten soubor má takovou strukturu) do hashe a ve _view pouze vracet hodnoty z hashe. Případně dodělat něco jako reload, kterej to načte na požádání znova. Tento přístup je nesporně efektivnější co se týče počtu čtení souboru.

    Třetí možnost je se porozhlédnout po CPANu, co například Config::Tiny a další?

    Jinak, databáze není nevyhnutelně špatná věc.

    Ještě pár postřehů k tomu kódu:
    if ( $line =~ /( *)$arg( *)\=( *)'(.*?)';( *)/ ) {
                return $4;
            }
    
    je lépe zapsat jako
    if ( $line =~ /\A\s*\Q$arg\E\s*\=\s*'(.*?)';\s*\Z/ ) {
                return $1;
            }
    
    (použití \s pro prázdné znaky, \A ... \Z pro ohraničení a \Q ... \E pro quotování proměnné. BTW regexp pro načtení celého souboru by mohl vypadat asi takto nějak
    my %config;
    open (my $soubor, '<', 'soubor.txt');
    {
        unset $/;
        %config = (<$soubor> =~ /^\s*(\Q$arg\E)\s*\=\s*'(.*?)';\s*?/xmsg);
    }
    
    Místo return undef; je kratší (a správnější) použít jen return;.

    Místo open...or die je modernější metoda use autodie.
    In Ada the typical infinite loop would normally be terminated by detonation.

    Založit nové vlákno • Nahoru

    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.