Ryan Moelter

30 Followers
38 Following
222 Posts
Indie app developer working on Heypenny during the day, portrait photographer at golden hour. Previously at Headspace, Wealthfront.
Heypennyhttps://heypenny.money
Personal sitehttps://ryanmoelter.com
GitHubhttps://github.com/ryanmoelter
Blueskyhttps://bsky.app/profile/ryanmoelter.com

Here is another slow expression to demonstrate the disjunction pruning optimization I talked about earlier.

Suppose you declare a variable of implicitly unwrapped optional type:

var x: Int! = ...

The value of x is stored like an ordinary optional "Int?", but a reference to x from inside an expression is presented as a disjunction---the type of the reference is either "Int", or "Int?". If both lead to a solution, we favor the "Int?" choice; otherwise, we get the "Int" choice, and the compiler then lowers the reference to a runtime check.

Now, consider this expression:

let result = x + x + x + x + x + x

It takes the Swift 6.3 compiler a third of a second to type check this expression, and now its instant with recent main snapshots. What changed?

@hossainkhan This looks better for browsing and sending large files/folders, but if you need something that works wirelessly, I really like Blip! https://blip.net/
Blip is the fastest way to send files

Send big files with no size limits, at full quality, across platforms, directly to other people and devices

Blip

There are two problems in computer science:

1. We could do this better
2. We should not do this at all

I published a new article, "Introducing the Experimental Styles API in Jetpack Compose".

It introduces the Styles API as a new way to define interactive, stateful Compose UI with automatic animations and efficient style application.

https://doveletter.skydoves.me/preview/articles/compose-styles

Introducing the Experimental Styles API in Jetpack Compose

Explore the new experimental Styles API in Jetpack Compose. Learn how to create reusable, composable styling patterns for your Android UI components.

Dove Letter
@svenjacobs @LeonOmelan I'll second the suggestion of fastlane, it's what I use to publish my app and I've had very few issues with it. I run it in GitHub actions personally

@botteaap This python script might help! It runs per-file though, so using gradle to format is slow. We use ktfmt at work to format things, and while our CI runs this through gradle, our pre-commit hook runs the ktfmt jar locally. We check the jar into the repo (in git lfs I think) to keep it in sync.

https://github.com/hallettj/git-format-staged

GitHub - hallettj/git-format-staged: Git command to transform staged files using a formatting command

Git command to transform staged files using a formatting command - hallettj/git-format-staged

GitHub

When you email issues to Obsidian Entertainment (the video game company) their AI support hallucinates and tells you to email Obsidian (the note-taking company) instead.

The perils of trusting an LLM with your customer support.

The write-up of my new graph layout algorithm for SpiderMonkey is finally live.

We built a custom layout algorithm for JS and WASM that follows the structure of the source code. No more spaghetti nightmares from Graphviz, and thousands of times faster.

https://spidermonkey.dev/blog/2025/10/28/iongraph-web.html

Who needs Graphviz when you can build it yourself?

Exploring a new layout algorithm for control flow graphs.

SpiderMonkey JavaScript/WebAssembly Engine

yeeeessss
YEESSSS

more batshit like this

https://bogdanthegeek.github.io/blog/projects/vapeserver/

Hosting a WebSite on a Disposable Vape

Someone's trash is another person's web server.

BogdanTheGeek's Blog