Как стать автором
Обновить
4
0

Пользователь

Отправить сообщение

Не пишите Modifier.padding(...) прямо внутри компонента без возможности переопределить его.

Но зачем, если есть https://www.jetbrains.com/help/idea/extract-parameter.html?

Да уж лучше иной раз загуглить (пользуюсь Google lens десятки раз в день кстати), чем читать очередной ai slop от очередной прорывной LLM. Странный напрыг про то, как ему не смогли показать время до конца матча прямо в выдаче. Але? Это как раз одна из тех вещей, которая превратила поиск из инструмента в монструозный комбайн из кучи виджетов который есть сейчас. И у гугла этот процесс занял 20 лет, в сочетании с тем как все сайты постепенно превращались в рекламные помойки куда приличному пользователю заходить стыдно. Опен аи в начале вызывал восторг. Обещание того, что тебе в чистом текстовом окошке расскажут нужную тебе информацию. Но непомерные амбиции Альтмана и других воспаленных умов под лозунги о сингулярности и обещания огромных денег буквально создали проклятый таймлайн, в котором интернет засран ещё в 10 раз сильнее чем прежде, а все инструменты постепенно обрастают кнопками и виджетами, которые создают и отображают ии-жвачку. Очень жаль свои глаза и мозг, которым придется все это фильтровать :с

Nothing phone 2. Иронично, что на китайском Xiaomi где-то год хронология писалась, пока все не сломалось

У меня эта штука работала до 2022, а потом сама собой отключилась. На попытки включить через приложение направляло на какую-то замечательную ошибку типа 500 на протяжении вот уже нескольких лет. Г - качество

Кволити гейты на PR не я придумал. Когда у тебя в любом случае перед мержем должны пройти тесты, не вижу проблемы добавить туда еще спелчекер как аддон к линтеру раз переживаете, что опечатки попадут в финальную сборку. В остальном диагностики это здорово. Я сам очень люблю когда IDE мне подсказывает как улучшить код. Просто блокировать возможность сделать коммит не нужно

В плане воркфлоу по-моему лучше добавлять такое на ci/cd как проверку пул реквестов. Коммит должно быть сделать легко, а при необходимости можно делать фиксапы и аменды. Иначе это отвлекает от собственно того, что ты хочешь сделать в момент коммита.

В настройках дебагера можно включить show method return value

https://www.jetbrains.com/guide/javascript/tips/see-return-values-variable-view/

Пример в JavaScript, но точно работает и для Java

Ну я бы ожидал, что jvm не надо ничего искать в момент вызова. Даже если куча с точки зрения gc поделена на сектора, это ведь всего лишь один из возможных вариантов. Почему куче не быть сплошным куском в памяти, как noop gc? Механизм вызова при этом вряд ли стал бы меняться.

Вот тут описывается сам invokevirtual

https://blogs.oracle.com/javamagazine/post/mastering-the-mechanics-of-java-method-invocation

А тут говорят о том, как jvm поддерживает ссылки в актуальном состоянии

https://stackoverflow.com/questions/9465767/if-the-jvm-keeps-moving-objects-around-when-it-does-gc-how-does-it-resolve-refe

Сторонее решение не обязательно, можно создать проект тут https://kmp.jetbrains.com/

https://www.youtube.com/watch?v=4ZDrxsJkRbQ

По-моему не честно фразу про IQ прямо в заголовок выносить. Он это слово не произносил, говорил о general intelligence. Про IQ уточнил Tony Blair - Бывший Премьер-министр Великобритании. Явно не эксперт в ИИ, чтобы за его слова цепляться

Транскрипция

[17:47.300 --> 17:50.700] Just before I come to that, just to explain to people one more time,
[17:50.780 --> 17:52.540] I think what people sometimes find difficult
[17:52.620 --> 17:54.620] is the difference between artificial intelligence,
[17:54.700 --> 17:56.620] generative artificial intelligence,
[17:56.700 --> 17:58.700] and artificial general intelligence.
[17:58.780 --> 18:00.620] Sure, sure.
[18:00.700 --> 18:05.500] So, you know, generative AI is the type of AI that we're seeing at the moment
[18:05.580 --> 18:10.060] that kind of creates language dialogue or things like images.
[18:10.140 --> 18:11.380] So it's a particular type of AI.
[18:11.460 --> 18:16.260] And then AI itself is the general term for the whole field.
[18:16.340 --> 18:18.300] And artificial general intelligence,
[18:18.380 --> 18:22.660] which actually one of my co-founders, Shane Legge, coined back in 2000,
[18:22.740 --> 18:27.140] is this idea of getting to human-level general intelligence.
[18:27.220 --> 18:31.420] And that's important because then you know you have a truly general system.
[18:31.500 --> 18:33.500] Because our minds are general.
[18:33.580 --> 18:37.620] We can turn it to almost any task, the human mind.
[18:37.700 --> 18:38.620] It's incredible.
[18:38.700 --> 18:40.860] And so that's the kind of generality
[18:40.900 --> 18:43.420] we're after in our artificial systems.
[18:43.500 --> 18:45.900] And with an IQ of what?
[18:45.980 --> 18:48.420] Well, initially, it will be, you know,
[18:48.500 --> 18:52.420] that's an interesting scientific debate at the moment.
[18:52.500 --> 18:53.500] Of course, at the moment,
[18:53.580 --> 18:56.180] we're far from human-level intelligence across the board.
[18:56.260 --> 18:59.100] But in certain areas, like games playing,
[18:59.180 --> 19:01.940] we're better than the best people in the world.
[19:02.020 --> 19:06.500] Now, the question is what will happen overall when we start generalising this.
[19:06.580 --> 19:09.340] But at the moment, we're still not even at cat intelligence yet
[19:09.420 --> 19:10.820] as a general system.

Вот тут самая новая интерпретация этой идеи, насколько мне известно: https://www.unison-lang.org/docs/the-big-idea/

https://www.unison-lang.org/docs/tour/

Можно превратить шортсы в обычные видео с помощью расширения https://chromewebstore.google.com/detail/youtube-shorts-block/jiaopdjbehhjgokpphdfgmapkobbnmjp

Если рантайм проверки действительно сказываются на производительности какого-то конкретного кода, то можно сделать функцию приватной. Ее можно будет вызвать только из котлин кода, где компилятор просто не даст передать нулл там где не надо. Тогда рантайм проверки для параметров функции не нужны и не будут сгенерированы

Дело в том, что платформа рекомендует ролики с количеством просмотров не менее 10 тыс., тогда как «средний» ролик имеет всего 39 просмотров

А мне прямо сейчас рекомендует видео с 481 и 215 просмотрами в числе первых. Неразбериха. Ну и целеустремленности энтузиастов можно только позавидовать. Есть подозрение, что кому-то было бы проще устроиться в гугл и сделать select count(*) from videos

Лямбда аргументы inline функции прозрачны для контекстов suspend и @Composable

suspend fun test() = Unit

fun repeat1(i: Int, action: (Int) -> Unit): Unit = TODO()

suspend fun context() {
    repeat1(5) {
        test()
    }
}

Такой код с repeat без inline не скомпилируется, нужно чтобы было action: suspend (Int) -> Unit. А потом появляется Compose и нужна +1 перегрузка. С inline одна декларация работает сразу с любыми вызовами

А где он делает действительное что то уникальное? Кроме давайте сократим на пару символом джава код.

Type-safe билдеры для описания древовидных структур. Котлин первый язык, который такое позволяет, и благодаря этой возможности Google сейчас разрабатывает Jetpack Compose.
Ещё одна интересная парадигма, ставшая возможной — контекстно-ориентированное программирование. Об этом писали на хабре, она же активно применяется в математической библиотеке, разрабатываемой автором статьи.
Другой пример, который мне лично очень нравится — это различные high order функции для работы с ресурсами. Как пример, функция use из стандартной библиотеки. Это функция расширение для AutoCloseable, которая принимает лямбду для работы с открытым файлом. Функционально похоже на try-with-resourse, разве что исключения не обрабатываются. С точки зрения кода это даже выглядит, как полноценный оператор. Но это функция (!). И очень похожую функцию авторы языка добавили в Kotlin/Native — memScope.
fun allocationExample() = memScoped {
val a = alloc() // Выделенная тут память будет автоматически очищена после выхода из области видимости
}

Whisper от OpenAI в версии Large понимает знаки препинания, междометия и лично меня оочень удивил результат прогона парочки видео с ютуба. Моделька при этом открытая и работает локально

Формулы и правда выглядят прикольно. А как с этим всем работает комплишен? Будет удобно нащелкать символ евро из предложенных вариантов на 5. или проще учиться набирать юникод с клавиатуры?

Не могу пройти мимо не сказав, что в стандартой библиотеке котлина есть ещё ArrayDeque с прекрасным нулл френдли API

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность