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í
×
    dnes 04:33 | Humor

    Anthropic patrně omylem zveřejnil celý zdrojový kód svého CLI nástroje Claude Code prostřednictvím přiloženého sourcemap souboru v npm balíčku. Únik odhalil doposud nijak nezveřejněné funkce jako je například režim v utajení, autonomní agent 'KAIROS', orchestrace multi‑agentů, režim snění nebo dokonce virtuální mazlíček Buddy. Zajímavostí je detekce naštvání uživatele pomocí obyčejného regexpu. Anthropic rychle odstranil sourcemap a vydal opravu, nicméně kopie kódu se již stihly na GitHubu rozšířit mezi prostým lidem.

    NUKE GAZA! 🎆 | Komentářů: 6
    včera 14:33 | Humor

    Copilot automaticky vkládal do pull requestů 'propagační tipy', reklamní text se na GitHubu objevil ve více než jedenácti tisících pull requestech. Po vlně kritiky byla tato funkce zablokována a produktový manažer Tim Rogers připustil, že umožnit Copilotovi upravovat cizí pull requesty bez vědomí autorů byla chyba.

    NUKE GAZA! 🎆 | Komentářů: 4
    včera 12:55 | Upozornění

    Je 31. března a tedy Světový den zálohování (World Backup Day). Co by se stalo, kdyby Vám právě teď odešel počítač, tablet nebo telefon, který používáte?

    Ladislav Hagara | Komentářů: 4
    včera 12:44 | Upozornění

    Digitální a informační agentura (DIA) přistupuje ke změně formátu důvěryhodného seznamu České republiky z verze TLv5 na verzi TLv6, která nastane 29. dubna 2026 v 00:00 (CET). Ke změně formátu důvěryhodných seznamů členských států (tzv. Trusted Lists) dochází na základě změn příslušné unijní legislativy. Důvěryhodné seznamy se používají v rámci informačních systémů a aplikací zejména pro účely ověřování platnosti elektronických

    … více »
    Ladislav Hagara | Komentářů: 2
    včera 05:00 | Nová verze

    Rspamd (Wikipedie), tj. open source systému pro filtrování nevyžádané pošty, byl vydán v nové major verzi 4.0.0. Přehled novinek v Changelogu.

    Ladislav Hagara | Komentářů: 1
    30.3. 23:11 | Nová verze

    SolveSpace (Wikipedie), tj. multiplatformní open source parametrický 2D/3D CAD, byl vydán v nové verzi 3.2. Přehled novinek v Changelogu na GitHubu. Vyzkoušet lze novou oficiální webovou verzi.

    Ladislav Hagara | Komentářů: 10
    30.3. 18:22 | Pozvánky

    Organizátoři Dne IPv6, tradiční akce věnované tématům spojeným s tímto protokolem, vyhlásili Call for Abstracts. Na webu konference mohou zájemci přihlašovat příspěvky o délce 20 nebo 40 minut či 10minutové lighting talky a to až do 30. dubna. Tvůrci programu uvítají návrhy přednášek z akademického i komerčního sektoru, které mohou být technického i netechnického zaměření. Den IPv6 se letos uskuteční 4. června a místem konání bude i

    … více »
    VSladek | Komentářů: 12
    30.3. 15:00 | Zajímavý software

    Euro-Office (Wikipedie) je evropský fork open source kancelářského balíku OnlyOffice. Za forkem stojí koalice firem IONOS, Nextcloud, Eurostack, XWiki, OpenProject, Soverin, Abilian a BTactic. Cílem je zajistit digitální suverenitu Evropy a snížit závislost na neevropských platformách. Projekt vznikl mimo jiné v reakci na nedávné uzavření cloudové služby OnlyOffice. OnlyOffice obviňuje Euro-Office z porušení licenčních podmínek. Na možné problémy upozorňuje i Collabora Online. Jednostranná změna licence není v pořádku.

    Ladislav Hagara | Komentářů: 27
    30.3. 05:11 | Komunita

    Byly zpracovány a na YouTube zveřejněny videozáznamy jednotlivých přednášek z letošního Installfestu.

    Ladislav Hagara | Komentářů: 0
    30.3. 00:22 | Komunita

    Během akce Arduino Days 2026 byl publikován Arduino Open Source Report 2025 (pdf) a oznámeno 7 nových produktů kompatibilních s deskou UNO Q (Arduino USB-C Power Supply, USB-C Cable, USB-C Hub, UNO Media Carrier, UNO Breakout Carrier, Bug Hopper, Modulino LED Matrix).

    Ladislav Hagara | Komentářů: 1
    Které desktopové prostředí na Linuxu používáte?
     (15%)
     (7%)
     (1%)
     (12%)
     (30%)
     (3%)
     (6%)
     (2%)
     (14%)
     (23%)
    Celkem 1199 hlasů
     Komentářů: 29, poslední včera 11:17
    Rozcestník

    Dotaz: Java

    10.8.2009 15:28 L.A.
    Java
    Přečteno: 402×

    Dobry den, delam program na prohlizeni obrazku. Na zacatku mi nasledujici metoda nacte vsechny obrazky. V seznamu imageNames jsou jmena vsech obrazku v urcite slozce.

    private void loadImages()
        {
            mediaTracker = new MediaTracker(this);
            Toolkit toolkit = Toolkit.getDefaultToolkit();
    
            for (String imageName : imageNames)
                images.add(toolkit.getImage(imageName));
    
            for (int i = 0; i < 10; i++)
                mediaTracker.addImage(images.get(i), i);
    
            try
            {
                for (int i = 0; i<10; i++)
                    mediaTracker.waitForID(i);
            } catch (InterruptedException ex)
            {
                ex.printStackTrace();
            }
        }
    

    Pres mediaTracker.addImage() a mediaTracker.waitForID() nactu a pridam pouze prvnich 10 obrazku - kdybych nacetl vsechny tak zbytecne zaplacam RAM a trvalo by to hoodne dlouho.

    Potom mam metodu pro zobrazeni nasledujiciho obrazku po stisku sipky doprava:

    private void drawNextImage()
        {
            if ((++imageIndex) == images.size())
                imageIndex = 0;
            // ic je Canvas do ktereho obrazek vykresluji
            ic.drawLoadedImage(images.get(imageIndex));
            ...
            mediaTracker.addImage(images.get(imageIndex+10), imageIndex+10);
            try
            {
                mediaTracker.waitForID(imageIndex+10);
            } catch (InterruptedException ex)
            {
                ex.printStackTrace();
            }
    
            if ((imageIndex - 10) >=  0)
                mediaTracker.removeImage(images.get(imageIndex - 10), imageIndex - 10);
        }
    

    V promenne imageIndex je index aktualniho zobrazeneho obrazku. V te metode si tedy pripravim nasledujici jeste nenacteny obrazek, tzn ten na indexu imageIndex+10 a zaroven ten o 10 mist dozadu (pokud je to mozne) odstranim. Mam tedy v pameti nacteno vzdy jen male mnozstvi obrazku, ne vsechny.

    Program testuji v adresari, kde mam 65 fotek, zadna asi 2MB. Prvnich 10 fotek je uz prednactenych, takze se vzdy po stisku sipky doprava zobrazi velmi rychle, u 11. fotky je uz poznat rozdil a vzdy kolem 30. fotky dostanu toto:

    Exception in thread "Image Fetcher 1" java.lang.OutOfMemoryError: Java heap space
            at java.awt.image.DataBufferInt. init (DataBufferInt.java:41)
            at java.awt.image.Raster.createPackedRaster(Raster.java:458)
            at java.awt.image.DirectColorModel.createCompatibleWritableRaster(DirectColorModel.java:1015)
            at sun.awt.image.ImageRepresentation.createBufferedImage(ImageRepresentation.java:230)
            at sun.awt.image.ImageRepresentation.setPixels(ImageRepresentation.java:484)
            at sun.awt.image.ImageDecoder.setPixels(ImageDecoder.java:120)
            at sun.awt.image.JPEGImageDecoder.sendPixels(JPEGImageDecoder.java:97)
            at sun.awt.image.JPEGImageDecoder.readImage(Native Method)
            at sun.awt.image.JPEGImageDecoder.produceImage(JPEGImageDecoder.java:119)
            at sun.awt.image.InputStreamImageSource.doFetch(InputStreamImageSource.java:246)
            at sun.awt.image.ImageFetcher.fetchloop(ImageFetcher.java:172)
            at sun.awt.image.ImageFetcher.run(ImageFetcher.java:136)
    

    Pak mohu jeste dolistovat k cca 40. fotce - to dava smysl, protoze 10 fotek dopredu je prednactenych a pote se fotky uz vubec nezobrazuji. Pro jednoduchost jeste neresim to ze nacitam fotky z indexu, ktery uz neexistuje (je vetsi nebo roven images.size())

    Proto otazka - jak mam tu pamet uvolnovat, abych predesel OutOfMemoryError?

    Odpovědi

    10.8.2009 16:50 cronin | skóre: 49
    Rozbalit Rozbalit vše Re: Java
    Treba zariadit, aby sa nikde nerzali referencie na tie objekty; v Tvojom pripade patrne v objekte MediaTracker. Treba si uvedomit, ze obrazok v programe obsahuje dekomprimovane bitmapove udaje vo formate ARGB a je teda omnoho vacsi ako JPEG/PNG subor na disku.

    Pozri tiez toto:

    http://code.google.com/p/javagems/source/browse/trunk/srcs/gems/easteregg/shower/Shower.java
    10.8.2009 17:48 L.A.
    Rozbalit Rozbalit vše Re: Java

    No prave kvuli tomu, aby se dany objekt obrazku z MediaTrackeru odstranil volam toto:

    mediaTracker.removeImage(image, index);

    K cemu pak ta metoda slouzi? V tom kodu Shower.java jsem nenasel nic co by mi s timto pomohlo, mel jste tam na mysli neco konktretniho?

    10.8.2009 18:01 cronin | skóre: 49
    Rozbalit Rozbalit vše Re: Java
    Skus znizit hranicu 10 obrazkov, ale nastavit vacsi heap pomocou -Xmx; inac povedane, je mozne ze ani tych 10 obrazkov sa do defaultneho heapu nezmesti.
    10.8.2009 18:54 L.A.
    Rozbalit Rozbalit vše Re: Java

    Ok, zkusil jsem tu hranici 10 snizit na 1, takze nacitam pouze jeden obrazek dopredu. Takto to zvladlo 37 fotek (predtim 30) a na 38 zase ta chyba.

    Nechal jsem hranici stale na 1 jeda a program spustil s -Xmx1024m coz by melo programu poskytnout giga pameti, jestli jsem to dobre pochopil - takto to zvladlo 56 fotek, 57 hodila moji oblibenou chybu. Jak je prosim mozny, ze takovy programek na prohlizeni obrazku s predbufferovanim jednoho obrazku sezere 1GB RAM? Jedine prijatelne vysvetleni je asi to, ze ty nactanene obrazky stale zustavaji v pameti, co myslite?

    Doted jsem automatickou spravu pameti v Jave bral jakou velkou vyhodu oproti treba C++, ale nyni mi pekne komplikuje zivot... Nejake navrhy?

    10.8.2009 19:13 cronin | skóre: 49
    Rozbalit Rozbalit vše Re: Java
    Ale do premennej images nacitavas vsetky obrazky...
    10.8.2009 19:58 L.A.
    Rozbalit Rozbalit vše Re: Java

    Tak jsem seznam objektu Image odstranil, obrazky nacitam az v pripade potreby podle seznamu imageNames a vypada to, ze to pomohlo. Ja ten problem porad daval za vinu MediaTrackeru a on az to mohl obycejny seznam objektu Image... zajimave.

    10.8.2009 20:07 cronin | skóre: 49
    Rozbalit Rozbalit vše Re: Java
    Nic zaujimave na tom nieje; ten zoznam jednoducho drzal zive referencie na vsetky objekty Image; akekolvek ich odstranovanie z trackera ich uvolneniu z pamate nemohlo pomoct. Mozem sa Ti zarucit, ze garbage collection v Jave funguje sakramensky dobre.

    Este odporucam pozriet si javadoc k Tookit.getImage() a Image.flush().
    10.8.2009 21:01 moira | skóre: 30 | blog: nesmysly
    Rozbalit Rozbalit vše Re: Java
    No spise nez zajimave je to naprosto normalni :) To, ze jsi odstranil obrazek z MediaTrackeru je sice fajn, ale v kolekci images na ten obrazek porad zustaval odkaz, takze ho GC nemohl odstranit. Jinak to, co se ti prave prihodilo, je typicky priklad "memory leakage" v Jave.
    Překladač ti nikdy neřekne: "budeme kamarádi"

    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.