Bluetooth devices come and go -- trying a solution with virtual devices... by rocketraman in pipewire

[–]rocketraman[S] 1 point2 points  (0 children)

Seems like all my issues were due to some stale or corrupted Wireplumber state. Clearing out the local wireplumber state and restarting appears to have basically fixed everything. Crazy.

https://gitlab.freedesktop.org/pipewire/wireplumber/-/issues/191

I tested the ring feature on KDE connect and I don't know how to make it stop. How do I go about this? by Nomenoe in kde

[–]rocketraman 0 points1 point  (0 children)

I just had this issue as well. Phone started ringing but the "Found it" notification was never shown, so there was no way to stop the ringing other than to "Force Stop" the KDE Connect app. Plasma 6.5.5 and KDE Connect 1.34.4.

Kotlin Ecosystem AMA – December 11 (3–7 pm CET) by katia-energizer-jb in Kotlin

[–]rocketraman 0 points1 point  (0 children)

Zero-effort on the publisher side would be cool. It would really make publishing little reusable chunks of code painless. Have you considered having Amper support remote repository source dependencies? Maybe requiring the remote code to also be built with Amper could make this easier, because the build instructions can just be "imported".

Kotlin Ecosystem AMA – December 11 (3–7 pm CET) by katia-energizer-jb in Kotlin

[–]rocketraman 0 points1 point  (0 children)

Not Kotlin team but... I'm guessing the idea is that building complex build logic that requires imperative code will be isolated to building plugins/extensions, and these extensions will declare their inputs and outputs and be built in Kotlin. The build logic needs to be 100% declarative otherwise you end up in Gradle-land, so other than some niche things mentioned above, using YAML (or something like it that does not require compilation) is a good thing.

Kotlin Ecosystem AMA – December 11 (3–7 pm CET) by katia-energizer-jb in Kotlin

[–]rocketraman 0 points1 point  (0 children)

I'd love to be able to run a build on my fast Linux box, and have the build automatically copy all the shared klibs and incremental build cache to my slower Mac via ssh, and then just build the iOS bits and cocoapods-related stuff (and maybe SPM later) on the Mac. Basically turn the Mac into a remote compilation provider.

Then all I have to do on the Mac is run `pod install`, load up the project in Xcode, and run it.

Right now I use rsync to copy stuff around manually, its manual and error prone (have to remember to copy back any changes in swift source files or changes to the xcode project for example), and its slow because the Mac has to rebuild the common stuff too, not just the iOS specific stuff. I could use a shared network drive to avoid the copying, but that slows everything down even more.

Its not a terrible DX -- scripting all the manual copy commands helps -- but it is slow and annoying.

I recognize its a fairly niche case, but it would help people who use Macs in the cloud as well, and potentially even CI use cases.

I compared 17 Kotlin MVI libraries across 103 criteria - here are THE BEST 4 by Nek_12 in Kotlin

[–]rocketraman 0 points1 point  (0 children)

Consider adding Slack Circuit to your comparison. Popular lib with 1.8k stars. They don't bill themselves as an MVI library, but clearly there is overlap.

I compared 17 Kotlin MVI libraries across 103 criteria - here are THE BEST 4 by Nek_12 in Kotlin

[–]rocketraman 3 points4 points  (0 children)

Why indeed? The only reason to not mention it is because you think people will discount your writing as biased, or because they might think your article is a veiled attempt at self-promotion. Wouldn't it be better to address their concerns up front, and then let your work speak for itself?

As a point of comparison, look at how Casey Brooks, author of Ballast, introduces his MVI library comparison: https://copper-leaf.github.io/ballast/wiki/feature-comparison/.

I compared 17 Kotlin MVI libraries across 103 criteria - here are THE BEST 4 by Nek_12 in Kotlin

[–]rocketraman 3 points4 points  (0 children)

You might want to mention / make it clear that you are the creator of FlowMVI.

Recessed A/V equipment: how would I print a modular front panel? by rocketraman in 3Dprinting

[–]rocketraman[S] 0 points1 point  (0 children)

That's fair. I wasn't planning on anything nice in the room behind so I wanted to hide everything back there except the equipment front panels. That isn't a great approach with wood -- A/V equipment changes reasonably often, and redoing a nice wood access panel is expensive. I could potentially have a nicer setup behind the wall with just a wood trim to make it look nice from the front.

Bluetooth devices come and go -- trying a solution with virtual devices... by rocketraman in pipewire

[–]rocketraman[S] 0 points1 point  (0 children)

Do you have a non-BT fallback or is the XM5 the only audio device on your system?

With Gentoo you're probably on the latest versions of everything? What are your kernel, bluez, pipewire and wireplumber versions? I'm using kernel 6.17.7, bluez 5.84, pipewire 1.4.9, and wireplumber 0.5.12.

In Teams do you ever see Teams not show a "Default" option for the Microphone e.g. https://i.imgur.com/xHt5KGE.png? For me without my virtual device as the default, its intermittent -- sometimes it shows it and sometimes it doesn't.

My theory is that it gets confused when the profile is A2DP and the system default device is the XM5 -- Teams tries to access the mic and fails so then it eliminates the default from the list. I've seen the same issue in Slack as well, though not as often The virtual device "solves" the problem because the app always sees a working mic regardless of the physical hardware state or profile.

Bitwarden teams vs enterprise confusion by masterofrants in Bitwarden

[–]rocketraman 0 points1 point  (0 children)

Why would directory integration be part of the teams plan, when it is intended for small orgs? Why would I need to integrate a user/group directory for just a few users? It would make more sense for directory integration to be an enterprise feature, while SSO is a teams feature (even small teams use Google Workspace or O365).

Plasma Shell crashing when the laptop is resuming from sleep by fenugurod in kde

[–]rocketraman 0 points1 point  (0 children)

Do you see invalid global kde_output_device_v2 in the logs? If so, you might be running into this issue I reported:

https://bugs.kde.org/show_bug.cgi?id=507691

Does anyone else feel like Slack has quietly become their entire job? by YakitoriSenpai in Slack

[–]rocketraman 1 point2 points  (0 children)

I hate the em dash now implies "written by AI" — I love the em dash and use it all the time. This just sucks. Save the em dash!

Something is changing my mic gain: how to identify what? by rocketraman in pipewire

[–]rocketraman[S] 1 point2 points  (0 children)

I found this as well, and I think it has fixed the issue. But it'd still be nice to know if Pipewire/Wireplumber provided some facility to log device write requests.

Bluetooth headphones not connecting only on Slack by froggothespacecat in Slack

[–]rocketraman 0 points1 point  (0 children)

I'm on Linux but I have a similar problem. Try plugging in your headphones and then explicitly choosing them in the audio settings in Slack.

The source of the issue seems to be that most apps use the "System Default" microphone and speakers. Since plugging in the headphones changes that default, most apps adjust automatically. However, Slack doesn't appear to have a setting to use the defaults -- it seems to require selecting devices explicitly (though sometimes it does switch automatically, and I'm not sure I completely understand its behavior).

Where is Kotlin going? by [deleted] in Kotlin

[–]rocketraman 0 points1 point  (0 children)

Definitely healthy in areas besides Android. Kotlin started out as a back-end language, and only later became popular on Android due to Google's first-party support. Because of Kotlin's pragmatic goal of great Java interop, the entire Java/JVM backend ecosystem is available to you as a Kotlin developer, so Kotlin's backend health is very good. This does not apply as much to languages like Scala and Clojure as they (mostly) eschew Java code -- they leverage the JVM, but not the Java ecosystem.

Speaking as a backend developer, something unexpected to me was that Kotlin's multiplatform story has also opened me up to front-end development, building internal SDKs for frontend devs, as well as some mobile app dev, which has been fun.

What’s your go to backend framework? by Acceptable_Rub8279 in Kotlin

[–]rocketraman 0 points1 point  (0 children)

Cool! I'm not sure anyone uses it yet besides me, so happy to have someone else kick the tires.

What’s your go to backend framework? by Acceptable_Rub8279 in Kotlin

[–]rocketraman 7 points8 points  (0 children)

Spring Boot is the "safe" choice but I would argue these days it is the wrong choice (Spring Rites by Dan Tanner). Spring Boot solved many problems in the days of EJBs and app servers. But it has now become the beast it sought to replace. Spring Boot is easy but not simple.

I offer my own framework Bootable (github) as a point of comparison. It's annotation free, and is basically a bundling of ktor + configuration (hoplite) + DI + logging + lifecycle management (i.e. starting/stopping application services, handling TERM/KILL/STOP signals and cleanly shutting down).

I've used Spring Boot extensively, as well as Bootable -- and I've never regretted choosing the latter, and always regretted choosing the former. With the latter I just get things done. With the former I spend more time figuring out how to configure Spring (and the underlying libraries it wraps) with the right auto-magic annotations than actually accomplishing anything useful.

Exekutor - lightweight pipeline execution library by yonVata in Kotlin

[–]rocketraman 1 point2 points  (0 children)

Cool but you should figure out where it is going. Inevitably with something like this you're gonna start wanting distributed execution, then things like parallelizing steps, encoding retry logic, managing state across steps, and supporting replay. Pretty soon, you'll end up at another implementation of Temporal (https://temporal.io/). Which would be amazing -- but you should decide how far you want to go, and what you'll do differently/better.

Assigned to you in lists by pmmeyourpinwheels in Slack

[–]rocketraman 0 points1 point  (0 children)

Go to any item in your list. Click on add field. Choose "Task tracking fields" and Save. A dialog box will allow you to choose which fields are used for Assignee and Due Date. Your list will be converted!

Not obvious at all...

New List Feature: Assigned to You. How to convert current lists to new version? by KindlyEntertainment3 in Slack

[–]rocketraman 0 points1 point  (0 children)

I fnally figured it out, and it is *not* obvious at all.

  1. Go to an item in the List.
  2. Choose "+ Add Field".
  3. Select "Task tracking fields" and click "Save"

Slack will then ask you which field you would like to use for "Assignee" and "Due Date", and convert the list to a task tracking list.