Large fascist the size of a small fascist leaves MN.
Large fascist the size of a small fascist leaves MN.
We're done being Minnesota Nice to ICE. Get the fuck out of our city.
A Rounds update?!
β‘ The Kotlin Power-assert is now available for πͺΆ Maven!
The plugin makes debugging easier with detailed failure messages and no extra libs needed. Enable it in the <plugin> section of `kotlin-maven-plugin` in your `pom.xml`.
Read more in the docs π https://kotl.in/wtpugg
Blogged - Kotlin: Emerging Patterns with Context Parameters
rakhman.info/blog/kotlin-...
#programming #dev @kotlinlang.org
Speaking of slides, for DroidCon NYC, I presented "(Re)creating Magic(Move) with Compose"! I talked about how I've been writing all of my presentations recently with Compose, but still wanted MagicMove from Keynote. A fun talk exploring diff algorithms of all things: deck.bnorm.dev/dcnyc25
For KotlinConf, I presented "Writing Your Third Kotlin Compiler Plugin". This talk was about much of my current (and future!) work in the Kotlin compiler. A recording is already available: youtu.be/9P7qUGi5_gc and I've made my slides available as well: deck.bnorm.dev/kc25.
I had the wonderful opportunity to speak at two conferences recently: KotlinConf and DroidCon NYC!
As a speaker, it's always fun to share something I'm passionate about with people. And as an attendee, chatting with all the fantastic developers in these communities is just the best!
Droidcon NYC schedule for Stage 1 showing the first 3 talks: "You're Not an Android Developer Anymore" by Stacy Devino, "KMP with non-Kotlin languages" by Jake Wharton, and "(Re)creating Magic(Move) with Compose" by Brian Norman.
Current schedule for Droidcon NYC stage 1: Keynote, Jake, and then me.
*gulp*
That's not intimidating at all...
*I'm* speaking at Droidcon NYC?
About *Compose*?
Who approved this?!
nyc.droidcon.com/brian-norman/
And it includes beta support for context parameters!
Animated VectorPainter: gist.github.com/bnorm/d326ab...
Pulled the SVG from the website, ran it through a converter to Compose, and then manually added the animation. Animated values are based on a Transition, so it is all synced with the presentation as a child transition.
Omg, I love this π I think this convinced me to try it!
Really amazing showcase of alternative use-cases for Compose and #Kotlin power assert at the same time πππ
If you donβt know about power assert check it out here, kotlinlang.org/docs/power-a...
Not from this weekend, but I have to brag about this slide: I defined a list of code samples which are each highlighted by Storyboard using an ANTLR parser, and each transition is completely automatic thanks to a "MagicText" Composable.
LaunchedEffect to loop though samples and done.
This weekend's Storyboard project: prototyping a presentation companion website which allows sending live reactions that rise from the bottom right of the slide. I also get a count of each reaction type for the last 15 seconds in the assistant window.
It's kinda dumb ...
... but I love it so much!
For my project this weekend, I implemented a slider so I can seek through the animations of my slides. This is thanks to Storyboard being built on top of SeekableTransitionState.
A palette cleanser for your timeline today: Introducing Metro!
Metro is a compiler-plugin-based dependency injection framework that draws heavy inspiration from Dagger, Anvil, & Kotlin-Inject.
www.zacsweers.dev/introducing-...
I think the exciting thing for both frameworks is that it's all Compose when you get to the slide content. What libraries you use from there is completely up to you! I avoid integrating my utilities directly with Storyboard, because I want someone else to build something better I can use instead!
Compose hot-reload is *so* easy to integrate. The only complexity happens if you want to preserve presentation position when slide/step count changes. But if you are just fiddling with the content of slides, there's nothing special you should need to do.
I just had one of the coolest calls in quite some time with @bnorm.dev. We wanted to talk about a potential issue, but then drifted into him explaining his project, github.com/bnorm/storyboard, to me.
I wish he had shown me this before I started preparing for my next talk. π€―π₯
I've actually seen it! I think we started on our projects around the same time? But I was pretty much done with my first presentation when you announced it. They are quite similar, but do have a few key differences which I think are useful. Maybe comes down to preference?
Oh hey, look! PeekSource. I wrote that too!
What a trip down memory lane. These were some of my first open source contributions. Can't say enough good things about @swank.ca, @egorand.dev, and Jake. They welcomed an absolute newbie and mentored him in the ways of open source. Thank you!
Open source is so cool!
7 years ago I made a big change to UTF-8 processing in okio. I moved on to other things. Meanwhile, kotlinx-io copies a lot of code from okio (with approval, nothing shaddy). I then join the Kotlin team. Today I found the same code I wrote for okio, comments and all.
Wild.
We know that publishing a library to Maven Central is a nontrivial quest. Take this guide to aid you on your journey!
www.jetbrains.com/he...
Today I created a webpage with an embedded presentation that follows an active one. Thinking about using this to reveal additional content as the presentation progresses. Though maybe this would just be too distracting?
But look at that awesome animation! (Stolen from the KotlinConf website...)
Wanted to share a project I've been working on for the last year: github.com/bnorm/storyboard
It's a library for building presentations in #kotlin and Compose! I've built a couple presentations using it, and I'm really excited about the potential!
Want to know something cool? The multiple output values for interactive scripts is thanks to the same code transformation behind Power-Assert. That's how it can display a before and after result. So cool to see that technology find its way into unexpected places!