Kategorie: Programování

  • Navrhl jsem přidat 2 nové operátory do Kotlinu

    Jednou ze skvělých věcí, kterou na Kotlinu miluju, je i jeho otevřenost a komunita. Máš nějaký opravdu dobrý či rozumný nápad, co by se ještě dalo na Kotlinu vylepšit? Zkonzultuj svůj návrh na Kotlin Slacku, anebo ho rovnou zareportuj! I když přijít na něco, v čem by již tak geniálně navržený jazyk mohl být ještě lepší, není vůbec jednoduché, anebo to alespoň překračuje mou současnou představivost, občas se může stát, že na něco člověk přijde … a … (a to je hlavní) může to mít!

    Dokážete si představit, že byste něčeho takového docílili třeba v Javě? (myšleno v rozumném čase dodání) Haha … kdo již někdy zakusil, jakým způsobem funguje support Oraclu, asi se nyní zasmál se mnou.

    No, každopádně současné inc() a dec() operátory, které jsou v Kotlinu volány pomocí ++ a -- fungují pouze v immutable módu, tedy pouze pro proměnné deklarované jako var. Narazil jsem na use-case, kde by se to hodilo mít i v mutable stylu pro val. A tak byl stvořen tento proposal a uvidíme, jestli to vyjde 🙂 , viz: https://youtrack.jetbrains.com/issue/KT-31612

  • Android bude Kotlin-first

    Teprve 10h starý článek, co se mi čte tak hezky, že jsem se rozhodl ho sem (pro vás anglicky-mluvící) nasdílet. Doslova cítím tu lásku a jsem skoro až dojat, jako fanoušek Karla Gotta, který nedávno objevil nový duet s jeho dcerou.

    Kotlin ušel za tu dobu pěkný kus cesty a nezbývá mu než popřát, ať mu to tempo vydrží. Jsem zvědav, jakými dalšími featurami překvapí a teď jsem si i uvědomil, co se častých releasů (ve srovnání s tím, co se Java snaží dohnat) týče, tak je fajn, že při každém dalším z nich nemusím přeinstalovat celé JDK.

    Ještě bych si dovolil citovat 2 odstavce od Chet Haase z níže odkazovaného článku:

    We’re announcing that the next big step that we’re taking is that we’re going Kotlin-first.

    We understand that not everybody is on Kotlin right now, but we believe that you should get there.

  • Advent of Code v Kotlinu (Den 12.)

    V tento den mi chvíli (no, trochu déle) trvalo, než jsem vůbec pochopil zadaní první části, kterou jsem pak zvládl docela v pohodě. Ale pro část B jsem si již zašel pro radu na Kotlin Slack, kde trik spočíval v tom, že již po cca 100 iteracích se pattern usadí a přírůstky rostlin začnou být konstantní, což nám umožní všechny zbývající iterace vynechat úplně a výsledek jednoduše dopočítat.

  • Advent of Code v Kotlinu (Den 11.)

    Den 11. byl opět performance peklo 🙂 . Jelikož jsem neznal “Summed-area table” algoritmus, pokusil jsem se přijít s něčím vlastním, což nebylo zdaleka tak efektivní, ale doběhlo to! (naštěstí se správným výsledkem):

  • Advent of Code v Kotlinu (Den 10.)

    Další z ne-úplně lehkých dnů. Nyní již bylo zapotřebí trochy odhadu a víry, že se člověk vydal správnou cestou 🙂 .

  • Advent of Code v Kotlinu (Den 9.)

    Den 9., ačkoliv se jevil jednoduše, zákeřnost jeho zadání přišla záhy 🙂 . První část jsem ještě zvládl sám, ale v části druhé jsem měl již perfomance problém. Ačkoliv se mi mé první řešení podařilo zrychlit až 25x, stále to bylo velmi málo. A tak jsem musel zvolit zcela jiný přístup, kde jsem se musel inspirovat řešením ostatních na Kotlin Slacku, což nakonec rychle vedlo ke kýženému cíli:

  • Advent of Code v Kotlinu (Den 8.)

    Den 8. byl oproti včerejšku docela v pohodě 🙂 . Zde je mé řešení:

  • Advent of Code v Kotlinu (Den 7.)

    Den 7. byl opět jeden z drsnějších, ale nakonec se podařilo 🙂 .

  • Advent of Code v Kotlinu (Den 6.)

    V den 6. jsem se pokusil zaměřit se na rychlost řešení, namísto čistého kódu, abych odhadl, jestli bych měl vůbec šanci dostat se do Top 100 v leaderboardu. No, trvalo mi to něco přes 40 min, kde se mi u toho málem roztopil mozek 🙂 . Takže na to prdím, neb to mi za to nestojí … zde je moje řešení pro den 6. a příště se navrátím zpět k důmyslnosti a čistotě řešení samotného:

  • Advent of Code v Kotlinu (Den 4. a 5.)

    Zatímco 4. den byl docela masakr, kde mě totálně vypekla knihovna JodaTime – z nějakého důvodu převedla javovský Date špatně, 5. už byl o něco lepší, nicméně výkonnostně nic moc 🙂 (chtělo by to optimalizovat na úkor čitelnosti).