Byla vydána verze 1.91.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.
Ministerstvo průmyslu a obchodu vyhlásilo druhou veřejnou soutěž v programu TWIST, který podporuje výzkum, vývoj a využití umělé inteligence v podnikání. Firmy mohou získat až 30 milionů korun na jeden projekt zaměřený na nové produkty či inovaci podnikových procesů. Návrhy projektů lze podávat od 31. října do 17. prosince 2025. Celková alokace výzvy činí 800 milionů korun.
Google v srpnu oznámil, že na „certifikovaných“ zařízeních s Androidem omezí instalaci aplikací (včetně „sideloadingu“) tak, že bude vyžadovat, aby aplikace byly podepsány centrálně registrovanými vývojáři s ověřenou identitou. Iniciativa Keep Android Open se to snaží zvrátit. Podepsat lze otevřený dopis adresovaný Googlu nebo petici na Change.org.
Byla vydána nová verze 18 integrovaného vývojového prostředí (IDE) Qt Creator. S podporou Development Containers. Podrobný přehled novinek v changelogu.
Cursor (Wikipedie) od společnosti Anysphere byl vydán ve verzi 2.0. Jedná se o multiplatformní proprietární editor kódů s podporou AI (vibe coding).
Google Chrome 142 byl prohlášen za stabilní. Nejnovější stabilní verze 142.0.7444.59 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 20 bezpečnostních chyb. Za nejvážnější z nich bylo vyplaceno 50 000 dolarů. Vylepšeny byly také nástroje pro vývojáře.
Pro moddery Minecraftu: Java edice Minecraftu bude bez obfuskace.
Národní identitní autorita, tedy NIA ID, MeG a eOP jsou nedostupné. Na nápravě se pracuje [𝕏].
Americký výrobce čipů Nvidia se stal první firmou na světě, jejíž tržní hodnota dosáhla pěti bilionů USD (104,5 bilionu Kč). Nvidia stojí v čele světového trhu s čipy pro umělou inteligenci (AI) a výrazně těží z prudkého růstu zájmu o tuto technologii. Nvidia již byla první firmou, která překonala hranici čtyř bilionů USD, a to letos v červenci.
Po Canonicalu a SUSE oznámil také Red Hat, že bude podporovat a distribuovat toolkit NVIDIA CUDA (Wikipedie).
Jak vhodně pracovat s hodnotami výčtů v některých typech kolekcí? Tento text nabízí jedno z možných řešení.
Výčtové typy (anglicky enumerated types, enumerations, enums) používám k velmi rozsáhlé škále činností, nejčastěji k indikaci stavu, typu apod. Dříve, než byly výčtové typy v jazyku Java uvedeny, se používaly především (celo)číselné konstanty, čehož je dokladem např. třída javax.swing.SwingConstants.
Používání čísel má několik nevýhod. Zaprvé není dáno, že je nutné používat konstanty, takže kdokoli může předávat literály a kompilátor ani nemukne — a pokud někdo změní hodoty konstant, mohou si vývojáři drbat hlavy, kde se stala chyba… Zadruhé je problematická kontrola validity čísla, protože musí (nebo by měla) být řešena při každém předání (aby někdo nepředal např. vyšší číslo atd.).
Toto všechno výčtové typy řeší. A řeší toho mnohem víc. A proto je tak rád používám. Někdy je také potřebuji umístit do kolekce; nejčastěji je používám jako klíče v mapách.
Mnoho lidí k tomu používá objekty tříd jako HashMap nebo LinkedHashSet, což je velká škoda, neboť existují i kolekce navržené přímo pro výčtové typy. Moc se o nich neví, a já jsem přesvědčen, že to souvisí s faktem, že v tutoriálu jsou zmíněny spíše méně než více.
Abych byl konkrétní, jedná se o množinu (implementuje Set) EnumSet a mapu (implementuje Map) EnumMap. Obě kolekce by údajně měly být velmi výkonné (rychlé), dokonce prý „téměř jako pole“. Hlavní ale jsou speciální vlastnosti a funkce zaměřené na výčtové typy.
Třída EnumSet representuje množinu hodnot výčtového typu (to znamená, že její velikost může být nula až počet hodnot výčtového typu). Dokumentace slibuje velmi pravděpodobný (avšak ne zaručený) vyšší výkon, než poskytuje HashSet. Základní operace by navíc měly pracovat v konstantním čase.
Třída EnumSet je abstraktní; její instance se vytvářejí pomocí několika továrních metod (neexistují podtřídy). Navíc má třída parametr E extends Enum<E>, který typově omezuje prvky množiny.
Potřebujete-li, aby byla množina inicializována všemi hodnotami výčtu, použijte metodu allOf (jako argument je nejsnažší předat literál třídy):
static <E extends Enum<E>> EnumSet<E> allOf(Class<E> type)
Můžete vytvořit také prázdnou množinu:
static <E extends Enum<E>> EnumSet<E> noneOf(Class<E> type)
Možná budete chtít inicializovat určitým rozsahem hodnot. Hodnoty výčtu jsou v takovém pořadí, v jakém byly definovány (což mě obvykle diskvalifikuje, protože já je tvrdohlavě řadím v abecedním pořádku, nikdy ne dle významu). Jedná se o metodu range (přidají se i krajní hodnoty):
static <E extends Enum<E>> EnumSet<E> range(E firstElement, E lastElement)
Lze také provést inicializaci určitými hodnotami:
static <E extends Enum<E>> EnumSet<E> of(E element),static <E extends Enum<E>> EnumSet<E> of(E element1, E element2),static <E extends Enum<E>> EnumSet<E> of(E element1, E element2, E element3),static <E extends Enum<E>> EnumSet<E> of(E element1, E element2, E element3, E element4),static <E extends Enum<E>> EnumSet<E> of(E element1, E element2, E element3, E element4, E element5),static <E extends Enum<E>> EnumSet<E> of(E element, E... elements).Nakonec můžeme inicializovat jinými kolekcemi:
static <E extends Enum<E>> EnumSet<E> copyOf(EnumSet<E> element) — inicializace všemi prvky předané množiny,static <E extends Enum<E>> EnumSet<E> copyOf(Collection<E> collection) — inicializace všemi prvky předané kolekce (omezení jsou popsána v dokumentaci),static <E extends Enum<E>> EnumSet<E> complementOf(EnumSet<E> set) — inicializace všemi prvky neobsaženými v předané množině.Do kolekce EnumSet nelze přidat hodnotu null. Pokud se o to pokusíte, budete odměněni příslušnou výjimkou.
Třída EnumMap představuje mapu, v níž jsou klíčem hodnoty výčtu (null nelze použít). Dokumentace opět slibuje vyšší (ale opět nezaručený) výkon než EnumMap.
Třída EnumMap má dva parametry: K extends Enum<K>, který representuje typ klíčů mapy, a V representující typ hodnot.
Objekty lze vytvářet pomocí veřejných konstruktorů:
EnumMap(Class<K> keysType) — vytvoření prázdné mapy, jejíž typ klíčů je předán,EnumMap(EnumMap<K, ? extends V> map) — inicializace všemi prvky předané mapy,EnumMap(Map<K, ? extends V> map) — inicializace všemi prvky předané mapy (omezení jsou popsána v dokumentaci).EnumMap nenabízí žádné zvláštní metody.
        Tiskni
            
                Sdílej:
                 
                 
                 
                 
                 
                 
            
    
 30.12.2010 18:55
vulgární Nick            
             | blog: Takže já jsem jedinej, kdo čůrá do vany?
        30.12.2010 18:55
vulgární Nick            
             | blog: Takže já jsem jedinej, kdo čůrá do vany?
            
         30.12.2010 18:56
vulgární Nick            
             | blog: Takže já jsem jedinej, kdo čůrá do vany?
        30.12.2010 18:56
vulgární Nick            
             | blog: Takže já jsem jedinej, kdo čůrá do vany?
            
         31.12.2010 02:22
________________             | skóre: 5
             | blog: _
        31.12.2010 02:22
________________             | skóre: 5
             | blog: _
            
         31.12.2010 11:23
vulgární Nick            
             | blog: Takže já jsem jedinej, kdo čůrá do vany?
        31.12.2010 11:23
vulgární Nick            
             | blog: Takže já jsem jedinej, kdo čůrá do vany?
            
         31.12.2010 11:25
vulgární Nick            
             | blog: Takže já jsem jedinej, kdo čůrá do vany?
        31.12.2010 11:25
vulgární Nick            
             | blog: Takže já jsem jedinej, kdo čůrá do vany?
            
        Pozor - vynos ministra informaci - od teto chvile se zakazuje psat
do komentaru blogu, tykajicich se programovacich jazyku,
jakekoliv dojmy nebo srovnani s jinymi jazyky.
Vyjimku maji pouze komentare, podlozene vlastni disertacni praci,
pripadne ty, schvalene vrchim censorem se sprostym nickem
 30.12.2010 20:16
vulgární Nick            
             | blog: Takže já jsem jedinej, kdo čůrá do vany?
        30.12.2010 20:16
vulgární Nick            
             | blog: Takže já jsem jedinej, kdo čůrá do vany?
            
         30.12.2010 20:47
vulgární Nick            
             | blog: Takže já jsem jedinej, kdo čůrá do vany?
        30.12.2010 20:47
vulgární Nick            
             | blog: Takže já jsem jedinej, kdo čůrá do vany?
            
        long nebo pole longů a pár bitových operací.)
             30.12.2010 22:09
vulgární Nick            
             | blog: Takže já jsem jedinej, kdo čůrá do vany?
        30.12.2010 22:09
vulgární Nick            
             | blog: Takže já jsem jedinej, kdo čůrá do vany?
            
         30.12.2010 22:18
vulgární Nick            
             | blog: Takže já jsem jedinej, kdo čůrá do vany?
        30.12.2010 22:18
vulgární Nick            
             | blog: Takže já jsem jedinej, kdo čůrá do vany?
            
        EnumSet) a mapy (EnuMap), podívejte se do dokumentace. Where's the point?
             30.12.2010 19:21
vulgární Nick            
             | blog: Takže já jsem jedinej, kdo čůrá do vany?
        30.12.2010 19:21
vulgární Nick            
             | blog: Takže já jsem jedinej, kdo čůrá do vany?
            
         30.12.2010 22:06
vulgární Nick            
             | blog: Takže já jsem jedinej, kdo čůrá do vany?
        30.12.2010 22:06
vulgární Nick            
             | blog: Takže já jsem jedinej, kdo čůrá do vany?
            
         31.12.2010 00:43
vulgární Nick            
             | blog: Takže já jsem jedinej, kdo čůrá do vany?
        31.12.2010 00:43
vulgární Nick            
             | blog: Takže já jsem jedinej, kdo čůrá do vany?
            
        Tento blogpost je pro profi javistu jako jste vy celkem nezajimavy.To je lež, mně se ten blogpost líbí a považuji ho za zajímavý.
Na druhou stranu clanek o CouchDB byl prinosem pro zacatecniky v dane problematice.Nevím, školy nemám, ale tento blogpost je sám o sobě (pro Java programmera) poměrně triviální, nicméně ukazuje něco, co je poměrně málo známé. A článek o CouchDB se mi líbí. Nicméně ho považuju za stejně odborný (i když je samozřejmě rozsáhlejší) jako tento blogpost. Podle mě jste blázen, nebo reagujete na špatný komentář / špatnou osobu.
EnumSetu a EnumMapě tolik lidí neví? To nežeru. Podobně napsaný článek např. o CyclicBarrier nebo CountDownLatch (to je to první, na co jsem si vzpomněl: spousta lidí nezná z java.util.concurrent nic než Atomic* a Concurrent*, a jsou i tací, co neznají ani to) bych považoval za mnohem zajímavější.
             31.12.2010 01:05
vulgární Nick            
             | blog: Takže já jsem jedinej, kdo čůrá do vany?
        31.12.2010 01:05
vulgární Nick            
             | blog: Takže já jsem jedinej, kdo čůrá do vany?
            
        Srsly, tenhle blogpost je dobře napsaný, o tom žádná, ale fakt oTo by ses divil, kolik lidí netuší že existuje něco jiného nežEnumSetu aEnumMapě tolik lidí neví?
ArrayList a HashMap  Nebo tuší, ale zhruba na stejné úrovni jako že existuje Zanzibar.
Nebo tuší, ale zhruba na stejné úrovni jako že existuje Zanzibar.
             31.12.2010 17:11
vulgární Nick            
             | blog: Takže já jsem jedinej, kdo čůrá do vany?
        31.12.2010 17:11
vulgární Nick            
             | blog: Takže já jsem jedinej, kdo čůrá do vany?