А что происходит на противоположном фронте?
Вы, вероятно, слышали, что 2026 год называют годом Linux на десктопе (в каких-то узких кругах - годом гейминга на Linux). Всё потому, что экосистема Linux постепенно становится более дружелюбной для обычных десктоп-юзеров (в том числе привыкших к Windows), и не только!
▫️ всё чаще появляются Linux дистрибутивы визуально похожиена Windows (или даже лучше), и множество видео с советами какой дистрибутив попробовать новичкам.
▫️ обновления ядра и любых пакетов в экосистеме Linux всегда привносят оптимизацию и удобство и поддержку свежего железа (привет винде с её обратной тенденцией). Например грядущая версия 7.0, опять с множеством приятных мелочей.
▫️ после 10 лет с последего релиза версии 5 окружение KDE Plasma получила мажорный апдейт версии 6 и активно развивается (уже доросла до 6.5). GNOME тоже не спит и готовит версию 50.
▫️ в Wine добавили патч позволяющий устанавливать продукты Adobe на Linux. Для кого-то это был последний рубеж?😏
▫️ Proton активно развивается, да так, что через эту прослойку игры работают даже быстрей чем нативно на винде.
▫️ с каждым релизом Wine и Proton поддерживается всё больше игр, что можно отслеживать на ProtonDB, и даже случаются бусты производительности.
▫️ Я сам на днях на виндобук поставил ChacyOS после чего игры, которые тянули гдето в 5-10 FPS, стали играбельными! Подтверждено личным опытом! Кстати, есть несколько дистрибутивов заточенные именно под игры.
▫️ Valve выпускают новую пачку железок которые (предположительно) порвут рынок гейминга (как и в прошлый раз) и (определнно точно) работают на Linux. Именно Valve вливает ресурсы в Linux в целом и в Proton в частности.
▫️ Госсектор разных стран давно уже мигрирует на opensource, так как нет доверия системе которая может одномоментно неконтролируемо массово рухнуть или быть удаленно заблокированной (в том числе по политическим причинам).
И ниже небольшой опрос - какая у вас операционка основная?
Ни к чему не призываю, ничего не советую! Просто подмечаю тенденцию и хочется узнать мнения из первых рук 😉
Знаю, что Linux тоже не идеален, знаю что каждой задаче - свой инструмент. Но это не тема поста, так что можно без холиваров)
#offtop#linux
🏝 KSP стало независеть от версии Kotlin. Неужели API плагинов Kotlin компилятора стало стабильным? Обновляйтесь до версии KSP 2.3.0 (версии Kotlin в названии больше нету)
Также KSP1 теперь deprecated, нужно чтобы всё умело работать с новой версией.
#ksp#kotlin
Metro - Новый DI фреймворк на чистом Kotlin (ещё в разработке)
@DependencyGraph
interface AppGraph {
val httpClient: HttpClient
@Provides
private fun provideFileSystem(): FileSystem = FileSystem.SYSTEM
}
@Inject
class HttpClient(private val fileSystem: FileSystem)
@Inject
@Composable
fun App(circuit: Circuit)
#kotlin#di#ksp
Со спутника OTP-2 на частоте 400500 кГц каждые пять минут транслируют музыку из заставки игры Kerbal Space Program
KSP — компьютерная игра в жанре симулятор, разработанная компанией Squad. События происходят в вымышленной вселенной, где человекоподобные инопланетяне «кербалы» начинают свою космическую программу, которая развивается под управлением игрока
#KSP
#игра
#спутник
#радио
🏝Проблемы с порядком Gradle Task при использовании KSP 2.0.2
Продолжаю разработку проекта FrameIO - Kotlin Multiplatform клиента для сервиса frame.io и стоклнулся с падением сборки из-за порядка задач (ниже стек с примером проблемы):
Some problems were found with the configuration of task ':module:kspDebugKotlinAndroid' (type 'KspAATask').
- Gradle detected a problem with the following location: './module'.
Reason: Task ':module:kspDebugKotlinAndroid' uses this output of task ':module:javaPreCompileDebug' without declaring an explicit or implicit dependency. This can lead to incorrect results being produced, depending on what order the tasks are executed.
Possible solutions:
1. Declare task ':module:javaPreCompileDebug' as an input of ':module:kspDebugKotlinAndroid'.
2. Declare an explicit dependency on ':module:javaPreCompileDebug' from ':module:kspDebugKotlinAndroid' using Task#dependsOn.
3. Declare an explicit dependency on ':core:user-session:javaPreCompileDebug' from ':module:kspDebugKotlinAndroid' using Task#mustRunAfter.
For more information, please refer to https://docs.gradle.org/8.14.2/userguide/validation_problems.html#implicit_dependency in the Gradle documentation.
Стек для сборки: Gradle 8.14.2, Kotlin 2.2.0, KSP 2.2.0-2.0.2, AGP 8.11.0
Решения проблемы пока нету в KSP (одно из issue), поэтому я задаю порядок Gradle Task сам:
// build.gradle.kts модуля где подключен ksp
afterEvaluate {
android.libraryVariants.forEach { variant ->
val variantCapitalized = variant.name.capitalized()
tasks.named("ksp${variantCapitalized}KotlinAndroid") {
dependsOn(
"${variant.name}AssetsCopyForAGP",
"process${variantCapitalized}Manifest",
"write${variantCapitalized}AarMetadata",
"javaPreCompile${variantCapitalized}",
"merge${variantCapitalized}Assets",
"merge${variantCapitalized}JniLibFolders",
"merge${variantCapitalized}NativeLibs",
"copy${variantCapitalized}JniLibsProjectOnly",
"generate${variantCapitalized}EmptyResourceFiles",
"copy${variantCapitalized}JniLibsProjectAndLocalJars",
"prepare${variantCapitalized}ArtProfile",
"write${variantCapitalized}LintModelMetadata",
"extractProguardFiles",
"prepareLintJarForPublish",
)
}
}
}
#android#kmp#koltin#ksp