Kotlin by JetBrains
Kotlin by JetBrains
  • Видео 375
  • Просмотров 3 639 070
Reinventing Ticket Sales with Pretix | Talking Kotlin 133
In this episode of Talking Kotlin, Hadi Hariri and Sebastian Aigner chat with Raphael Michel, the founder of pretix, an open-source ticketing system. Raphael shares his fascinating journey, from building pretix to solve a conference ticketing problem to becoming a full-fledged company with a global reach.
The conversation dives into the complexities of event ticketing, the challenges of the pandemic, and the surprising new markets pretix entered, like managing access for public swimming pools in Berlin.
Throughout the episode, Raphael discusses how Kotlin plays a crucial role in pretix's development. He talks about using Kotlin for various components, including Android apps, desktop applica...
Просмотров: 1 029

Видео

A Walk in the Lindenmayer Fractal Forests with a Kotlin Notebook | Maia Grotepass
Просмотров 1,2 тыс.13 часов назад
Recording brought to you by American Express. americanexpress.io/kotlin-jobs Some pieces of Kotlin code are better discovered through exploration. Code for a Lindenmayer system (Lsystem) is an example of this. These systems can generate beautiful organic looking fractal structures. A few small tweaks cause unexpected variety: perfect for experimentation. Kotlin Notebooks are especially suited f...
Lifecycles, Coroutines and Scopes | Alejandro Serrano Mena
Просмотров 4,7 тыс.15 часов назад
Recording brought to you by American Express. americanexpress.io/kotlin-jobs Structured concurrency is one of the key ideas in the Kotlin language, ensuring correct and intuitive cancellation and supervision of jobs. In this talk we look at how these ideas translate when coroutines are introduced in other frameworks with their own lifecycles, like Spring services or Android applications. Anothe...
Kotlin Multiplatform Libraries Evolution | Stanislav Erokhin
Просмотров 1,8 тыс.18 часов назад
Recording brought to you by American Express. americanexpress.io/kotlin-jobs In 2023, we released a stable version of KMP, but are not stopping there. We continue to evolve Kotlin as a technology for multiplatform development. The core part of this technology is klib’s - a special binary format for KMP libraries. We will start with an overview of the current state of klib’s, including: • How th...
Developer first Gradle builds - Sterling Greene, Paul Merlin
Просмотров 2,6 тыс.20 часов назад
Recording brought to you by American Express. americanexpress.io/kotlin-jobs In the ever-evolving landscape of software development, the efficiency of build systems plays a pivotal role in project success. Part of our vision for Gradle is to deliver an elegant and extensible declarative build language that allows developers to describe any kind of software in a clear and understandable way. Our...
AI and Kotlin: A Perfect Mix | Vladislav Tankov
Просмотров 2,5 тыс.22 часа назад
Recording brought to you by American Express. americanexpress.io/kotlin-jobs Dive into the latest advancements in AI coding assistance and see how JetBrains AI is changing the Kotlin programming in your IDE. Is OpenAI “all you need” today or does custom Language Models offer superior quality? What really drives effective code generation: the context window or the size of the model? And is there...
DataFrame: Kotlin's Innovative Approach to Data Structures | Roman Belov
Просмотров 6 тыс.День назад
Recording brought to you by American Express. americanexpress.io/kotlin-jobs We'll talk about Dataframe - a library and a data structure that can help to read, write, generate, transform and organize data for displaying or plotting. It supports not only flat data structures but also hierarchical ones and thus can represent CSV, JSON or even subgraphs of objects in memory. While dataframes are u...
Compose UI for... a Light Switch | Jake Wharton
Просмотров 10 тыс.День назад
Recording brought to you by American Express. americanexpress.io/kotlin-jobs It runs on Android, iOS, desktop, and the web, but in this talk we'll cover how to get Compose UI running on a smart light switch built on embedded Linux. Follow along as we journey through the process of discovering the device backdoor, figuring out how to run custom software, standing up Kotlin and Compose UI for emb...
Write your own Kotlin lint checks! | Tor Norbye
Просмотров 2,9 тыс.День назад
Recording brought to you by American Express. americanexpress.io/kotlin-jobs Android Lint is a static analysis tool which supports analyzing Kotlin code, Java code, and soon, KMP. With 500 built-in checks, it ships with Android Studio and runs in the code editor and as part of the build system and is therefore used by millions of developers. But it's not only used to analyze Android apps and th...
Kotlin Multiplatform Alchemy: Making Gold out of Your Swift Interop | Pamela Hill
Просмотров 3,4 тыс.День назад
Recording brought to you by American Express. americanexpress.io/kotlin-jobs Now that Kotlin Multiplatform has reached Stable, the technology is ready to be adopted and deployed into production. However, one aspect frequently causes irritation in the mobile use case: Kotlin/Swift interoperability. This issue often leads to compromise on one or both sides, with solutions that are not idiomatic i...
Kotlin + Power-Assert = ❤️ | Brian Norman
Просмотров 4,8 тыс.День назад
Recording brought to you by American Express. americanexpress.io/kotlin-jobs Kotlin 2.0 will ship with a new, experimental, compiler plugin that enables power-assert style diagrams on assert calls. But I hear you asking: What are power-assert diagrams? How do I use this compiler plugin? What about other function calls? Well have I got answers for you! Join me to see how the power-assert compile...
Have your Serverless Kotlin Functions and Eat Them Too | Andrew O'Hara
Просмотров 3,2 тыс.День назад
Recording brought to you by American Express. americanexpress.io/kotlin-jobs It’s a sad reality that JVM functions have poor cold-start performance on serverless platforms, like AWS Lambda. You may have been tempted to compile your jar to a native image, or to pay extra to keep your functions warm. You may have decided that serverless is only suited to asynchronous tasks without latency require...
Free the world from wasteful scheduling with Timefold AI | Geoffrey De Smet
Просмотров 2,1 тыс.День назад
Recording brought to you by American Express. americanexpress.io/kotlin-jobs Timefold Solver is an open source library to optimize planning and scheduling problems. It's the continuation of OptaPlanner. The world is full of planning problems, such as vehicle routing, employee rostering, maintenance scheduling, job shop scheduling and school timetabling. They are “NP-hard”. That’s math speak for...
Tap it! Shake it! Fling it! Sheep it! - The Compose Gesture Animations Dance! | Nicole Terc
Просмотров 2,5 тыс.День назад
Recording brought to you by American Express. americanexpress.io/kotlin-jobs Let's have fun with animations, gestures and sensors! Using Compose Multiplatform, we'll go over how to create animations using gestures and sensor events for Android & iOS. We'll cover some basics like how to get the device motion and position information, how to track gestures in the screen, and how you can combine t...
Simplifying Kotlin Build Configuration with Amper | Márton Braun
Просмотров 4,7 тыс.14 дней назад
Simplifying Kotlin Build Configuration with Amper | Márton Braun
Evolving Compose Multiplatform on iOS and Beyond | Sebastian Aigner
Просмотров 5 тыс.14 дней назад
Evolving Compose Multiplatform on iOS and Beyond | Sebastian Aigner
Why we can't have nice things in Kotlin | Vsevolod Tolstopyatov
Просмотров 11 тыс.14 дней назад
Why we can't have nice things in Kotlin | Vsevolod Tolstopyatov
KotlinConf’24 Keynote Snippets: Upcoming Language Features
Просмотров 2 тыс.14 дней назад
KotlinConf’24 Keynote Snippets: Upcoming Language Features
Kotlin Language Features in 2.0 and Beyond - Michail Zarečenskij
Просмотров 15 тыс.14 дней назад
Kotlin Language Features in 2.0 and Beyond - Michail Zarečenskij
Finding Developer Joy with KMP | KotlinConfersations'24
Просмотров 2,3 тыс.14 дней назад
Finding Developer Joy with KMP | KotlinConfersations'24
Hacking Sony Cameras with Kotlin | KotlinConfersations'24
Просмотров 2,6 тыс.21 день назад
Hacking Sony Cameras with Kotlin | KotlinConfersations'24
Kord: Deep Dive into the Discord API | Talking Kotlin #132
Просмотров 2,4 тыс.21 день назад
Kord: Deep Dive into the Discord API | Talking Kotlin #132
Google Summer of Code with Kotlin Foundation | KotlinConfersations'24
Просмотров 83721 день назад
Google Summer of Code with Kotlin Foundation | KotlinConfersations'24
Annyce Davis on Kotlin Multiplatform & Leadership | KotlinConfersations'24
Просмотров 90221 день назад
Annyce Davis on Kotlin Multiplatform & Leadership | KotlinConfersations'24
Exploring Kotlin Multiplatform with KMP Contest Winners | KotlinConfersations'24
Просмотров 2,4 тыс.21 день назад
Exploring Kotlin Multiplatform with KMP Contest Winners | KotlinConfersations'24
Ross Tate on Programming Languages & Kotlin's Success | KotlinConfersations'24
Просмотров 1,2 тыс.28 дней назад
Ross Tate on Programming Languages & Kotlin's Success | KotlinConfersations'24
Exploring JetBrains AI with Vladislav Tankov | KotlinConfersations'24
Просмотров 1,1 тыс.28 дней назад
Exploring JetBrains AI with Vladislav Tankov | KotlinConfersations'24
Arrow 2.0 and Concurrency Secrets with Simon Vergauwen | KotlinConfersations'24
Просмотров 3,8 тыс.Месяц назад
Arrow 2.0 and Concurrency Secrets with Simon Vergauwen | KotlinConfersations'24
Solving Real-Life Scheduling Problems with AI and Kotlin | KotlinConfersations'24
Просмотров 2,1 тыс.Месяц назад
Solving Real-Life Scheduling Problems with AI and Kotlin | KotlinConfersations'24
Creative Coding Insights with Edwin Jacobs | KotlinConfersations'24
Просмотров 1,8 тыс.Месяц назад
Creative Coding Insights with Edwin Jacobs | KotlinConfersations'24

Комментарии

  • @demo1330
    @demo1330 17 часов назад

    kord is really nice but needs the docs updated badly

  • @Heksapoda
    @Heksapoda 22 часа назад

    Is it mean that Activity initiate a Thread and exist until the Activity destroyed then other components could use that Thread to do asynchronous job?

  • @landsman737
    @landsman737 День назад

    what a hack

  • @clurigaconrad
    @clurigaconrad День назад

    One of the more interesting talks of the conference!

  • @aniruddhasen8801
    @aniruddhasen8801 День назад

    I was with you in the first half . . . but when you started adding `LoggerContext`, `NotificationContext`, adding more objects to the `main()` function, and then extracting the logging call to a separate context received function . . . I started to think, _". . . Honestly, at this point, I don't mind adding the logger and notification sender as parameters to my function."_ If the point of this is to simplify code, then you've definitely missed the runway. *Edit:* Though, I'm still wrapping my head around 'em, the transaction & JSON examples helped clarify & justify the use of context receivers. More exploration, investigation, deeper inspection, consideration, and contemplation is definitely needed (from my end, that is).

  • @evgeniyemelyanov7281
    @evgeniyemelyanov7281 День назад

    Great explanation, thanks!

  • @MaxWeninger
    @MaxWeninger День назад

    So now you can do what you can do with Jupyter notebooks in Python for years? :)

    • @kyay10
      @kyay10 День назад

      But with static typing, MUCH BETTER IDE help, a way faster language, and all of the JVM libraries available to you

  • @swankidelic
    @swankidelic День назад

    Wonderful talk. Combines code, math and art so gracefully. Really shows how notebooks make code into an artistic tool of expression.

  • @ilyaglaz7632
    @ilyaglaz7632 День назад

    Very impressive!

  • @cslesin5750
    @cslesin5750 День назад

    when math comes to code I am like 🤯

  • @user-eb9kg4kn7h
    @user-eb9kg4kn7h 2 дня назад

    Finally, an argument for people sticking with Spok (which is waaaaay too magical) and it's assertion messages

  • @aungkhanthtoo7678
    @aungkhanthtoo7678 2 дня назад

    Great talk!

  • @LarryGarfieldCrell
    @LarryGarfieldCrell 2 дня назад

    The live demo gods were not kind today...

  • @khaqim4148
    @khaqim4148 3 дня назад

    What is it about?

  • @MixwellSidechains
    @MixwellSidechains 3 дня назад

    Bravo. I loved your presentation!!

  • @MixwellSidechains
    @MixwellSidechains 3 дня назад

    Jetbrains and all fellow developers. Can we have at least 1 or 2 libraries that are goto libraries (even if they can be endorsed by Jetbrains or up voted by the community) for various things. If they can be open source that would be great since everyone would contribute to the same library. It's not practical to have a dozen of libraries that access the camera for all KMP platforms with some having better features than others. I've seen that with Flutter, there are too many gibberish libraries fighting for prominence. It's nice to have a standard or 1 or 2 choices, it's great for community support. For example for KMP persistence we have Room Library or the MongoDB one. Two is enough.

  • @toshempire8296
    @toshempire8296 3 дня назад

    Am flutter developer what are the benefits of KMP

  • @sanglin9387
    @sanglin9387 3 дня назад

    in our new project - we stick to few naming . yes we know a lot of existing table column and those pojo / poco is a mess up

  • @SB-gc8wf
    @SB-gc8wf 3 дня назад

    Serious question. Why should I actually use another programming language when everything I want to express in it is declarative? Wouldn't it be easier to use one of the many available configuration languages? Please don't get me wrong. So far, I have been very satisfied with Kotlin as the Gradle DSL, but I am finding that everything is becoming too abstract. As a developer, I ideally want to set up my build once and then focus on my domain-specific work. Unfortunately, in recent years, I have seen many of my developer colleagues turn away from Gradle in frustration. Gradle is too complex and often just gets in the way. Unfortunately, there is no reasonable alternative. Maven, on the other hand, is too rigid and poorly documented. I believe the approach shown in this presentation is wrong. It should be less abstract and much more transparent.

  • @nulljeroka
    @nulljeroka 3 дня назад

    Great video

  • @lesbiangunshow990
    @lesbiangunshow990 3 дня назад

    First lol

  • @roudikk
    @roudikk 4 дня назад

    I thought Amper was suppose to be the next build system for kotlin projects?

    • @schlaubi
      @schlaubi 4 дня назад

      Like decorative Gradle, Amper is an experiment, also they have different goals, Amper mainly tries to be a KMP build tool, whilst hardly supports more types

  • @kienvu4690
    @kienvu4690 4 дня назад

    Imagine how an AI lint tool could do

  • @krellin
    @krellin 4 дня назад

    i hate gradle, as soon as there is a sane replacement that is not made in a joke of a language i'll dump it right away the amount of times that common sense things didnt work and i had to spend unreasonable amount of time just to settle for a hack is crazy

    • @lppedd
      @lppedd 4 дня назад

      This was the same sentiment I had when I did not have enough experience with Gradle. The only way to master Gradle is to read its documentation start to finish and to use it daily, experimenting. I lead devops now and I get to mess with multiple build systems, and let me tell you that Gradle is actually pretty neat compared to other solutions. Most devs are used to *dependency management* tools, and so they see Gradle just as a dependency manager. That's where the biggest issue is.

    • @schlaubi
      @schlaubi 4 дня назад

      Yeah like 5 yrs ago, when I first touched Gradle and the Kotlin DSL was brand new. i very much hated it, a lot has changed and improved since then and after understanding how it works I started to love it, any other build system started to become a limiting factor for me. Many people yell at Gradle for being complicated, but it's really not once you spend some time to understand it, Gradle gives you the flexibility of makefiles but is way easier to use

    • @Mglunafh
      @Mglunafh 4 дня назад

      I wish gradle had a better learning materials for the complete beginners. When i started learning it, the first page of introduction was about tasks, "hey, let's create a task which prints helloworld, then another task, then chain them" or smth this basic, and the second or third page was full blown ass java build project with buildscripts / plugins / dependencies, bunch of options, and all these concepts, objects, tasks or whatever it is came out of absolutely nowhere! Where to look at the task structure, task options, how to inspect execution graph, how to mangle it -- no easy answers, you are for all intents and purposes forced to copy-paste this code for your starting java project as an act of faith. They explain how this build process works, but i could imagine they would just state "gradle hires magical gnomes that carry your files around" and beginners wouldn't disprove it without digging around an unknown amount of time. Gradle is a powerful tool, but without learning it resembles a giant leaky abstraction, and it takes a lot of time and frustration to unlock Gradle potential, at least i didn't find an efficient way -- would appreciate a lot if anybody shares one! -- only a thorny path of trial and error. Oh, and thank god they introduced kotlin DSL, messing with groovy was unbearable!

  • @aliakbarmostafaei
    @aliakbarmostafaei 4 дня назад

    Great! Yet another new thing to learn / migrate to in Android dev.

  • @juan-ramonsanchis-alberich2509
    @juan-ramonsanchis-alberich2509 5 дней назад

    Congratulations. Very clear explanation, that give a clear strategy on how to work with AI for practical programming code. Thank you.

  • @RicochetRita
    @RicochetRita 5 дней назад

    Here is a solution to the repeated path problem: 1. Make rectangle mutable: val rectangle = rectangleRaw.trimIndent() .split(" ") .map { it.toMutableList() } .toMutableList() 2. Change the search() function to pass & mark the visited path: fun search(x: Int, y: Int, word: String, path: MutableList<MutableList<Char>>) { if (word !in prefixes) return if (word in dictionary) println(word) path[y][x] = path[y][x].lowercaseChar() <----- for ((dx, dy) in directions) { val xNew = x + dx val yNew = y + dy val letter = rectangle.getOrNull(yNew)?.getOrNull(xNew) ?: continue if (path[yNew][xNew].isLowerCase()) continue <----- search(xNew, yNew, word + letter, path) } // Unmark the current position (backtracking) path[y][x] = path[y][x].uppercaseChar() <------ } 3. Use rectangle as the initial (unvisited) path, inside the nested loops: search(x, y, rectangle[y][x].toString(), rectangle)

  • @rassidm
    @rassidm 5 дней назад

    Hi james..where can we find the source code of the presentation examples?

  • @Nick-yd3rc
    @Nick-yd3rc 6 дней назад

    It’s amazing I can perform my dataframe workloads in Kotlin. Kudos to the Moonshots team. 🎉 That said, I wish the focus weren’t only to reach and showcase feature parity with Pandas, Polars, Spark, data.table, R, xtensor, DataFrame.jl, etc., but to also provide reproducible benchmarks, along the lines of chbench, and compare to single-node DuckDB as well. In addition, a problem I have to deal with sometimes is that there are inconsistent ecosystems around the existing dataframe libraries and it’s hard to reuse code directly, without an API wrapper. I can use Spark in the JVM languages or Python, I can use DuckDB from anywhere, I can integrate R with Python and C++ and Python and C#. Polars gives me Python and Rust. All ecosystems begin reproducing the basic data science functionality, including plotting, cue in Kandy, which looks beautiful indeed. And JVM is a prime runtime system for data science. I’m all for it, I love Kotlin, but all of that already exists, why would I want to learn and depend on a new API? Performance? Distributable? Concurrent access? Fewer bugs? Better integrations? When is this a favorable option? Is it intended primarily for Ktor workloads, not for data science workloads? How does it perform on columnar vs row-wise access? In-memory only? Storage, alignment, orientation? Reads vs writes? Reentrant RW locks? Just off the top of my head.😅

  • @skarloti
    @skarloti 6 дней назад

    Some time ago I tried to use this library for huge datasets (billion rows) like CSV and Json Lines, but despite being able to stream it it didn't work well. Has anyone done actual samples? However, this is important if you decide to train a large language model.

  • @skarloti
    @skarloti 6 дней назад

    42:19 In this part in production it is promising, but I also injected a scheme in Kotlin 1.x and classes are automatically generated!

  • @landerlyoung9570
    @landerlyoung9570 6 дней назад

    Really awesome, true geek! Very enjoyed to watch this.

  • @khalidhamid7448
    @khalidhamid7448 6 дней назад

    This is unbelievably complex task.

  • @kkulkim4193
    @kkulkim4193 6 дней назад

    💜

  • @Noxafurry
    @Noxafurry 6 дней назад

    On the production part: it looks cool, but wouldn't having a network request (I assume) lead to non-stable build, also does it mean that build will heavily rely on an internet connection? If I am right, it doesn't sound production-like :(

    • @JolanRensen
      @JolanRensen 6 дней назад

      It's indeed not production ready, by far :) we're still thinking about how to implement this responsibly and suggestions are welcome! (But it certainly shows the power of the new compiler plugins, doesn't it? :D )

  • @petuska
    @petuska 6 дней назад

    I'm now very curious what the budget for this was. It was unexpectedly high quality, better than some of the marvels recently!

  • @Noxafurry
    @Noxafurry 6 дней назад

    It would be nice to see an example where one JSON field couldn't be typed. Let's say we have a collection of objects and some field in them while having the same name has different types in different objects. The solution with Any is obvious, but could this type be converted into a sealed class holder for example?

    • @JolanRensen
      @JolanRensen 6 дней назад

      Actually that's a difficult case, because in JSON, fields of objects can be undefined. You cannot know if two objects are actually two different types or just two versions of the same one (at least not without a json schema) So currently, in Dataframe by default, if you read an array of objects, they will be seen as one type and for properties existing in one object, in the other they will be read as nulls. Mismatching primitives will become the common super type.

  • @luishenriquegomescamilo2790
    @luishenriquegomescamilo2790 6 дней назад

    Amazing!

  • @iRYO400
    @iRYO400 6 дней назад

    Awesome 🎉 Liked to watch it

  • @kienvu4690
    @kienvu4690 6 дней назад

    At first I thought wait can we just simply adb install an.apk , but I looked a second time and see it's Wharton 😂

  • @kienvu4690
    @kienvu4690 6 дней назад

    I'm curious what's that FunSwitch() stuff do

  • @hamidmahmoodi6690
    @hamidmahmoodi6690 6 дней назад

    Wonderful!

  • @MarianVarga-wr1rl
    @MarianVarga-wr1rl 7 дней назад

    When I try this with SpringBoot 3 and Java 21, the Java sources are not compiled.

  • @jalalokbi2875
    @jalalokbi2875 7 дней назад

    Impressive.

  • @wlockuz4467
    @wlockuz4467 7 дней назад

    Am I the only one that's concerned about something as simple as a switch running Linux, that too with unprotected root access, and worse network access.