20 January 2017
АЖ
14:20
Алексей Жингеровский
И вряди будут
RI
14:20
Ruslan Ibragimov
написать свой фреймворк на котлине с блекджеком, и джавистам куда роднее будет это
14:21
и все тоже самое: есть core -> ios, android, web. и обвязки под конкретную платформу
М
14:21
Михаил
кстати, кто работает на андроид деве. часто требуется котлинисты?
RI
14:21
Ruslan Ibragimov
все что сейчас пытается сделать js
М
14:24
Михаил
даже джависты не все на котлин хотят перелазить аргументируя тем, что новый язык учить
14:24
че там о js))
АЖ
14:37
Алексей Жингеровский
Я работаю. У меня пока нет котлина на Андроиде
14:38
Сложновато ввести
14:38
Сейчас тема это на React Native писать
RI
14:39
Ruslan Ibragimov
ну вот, если говорить про техническую сторону: React Native еще не до конца нейтив, там есть всякие костыли чтобы работало. Kotlin Native ++ Kotlin будут реально нативными на iOs и Android
14:40
Чем не плюс
14:41
Есть еще влажные мечты про Kotlin и Webassembly)
АЖ
14:46
Алексей Жингеровский
А зачем RN быть нэйтив?
RI
14:46
Ruslan Ibragimov
Чтобы работало лучше очевидно
АЖ
14:47
Алексей Жингеровский
он и так вполне себе UI в нативную часть переводит всё остальное бегает на js машине
14:47
котлин нэйтив то тут как поможет? Никак
RI
14:47
Ruslan Ibragimov
Ну вот, поэтому и костыли в виде сереализации и батчинга
14:47
In reply to this message
лол что, он будет полностью нэйтив. без лишних прослоек
АЖ
14:48
Алексей Жингеровский
Так есть уже
14:48
java запускается нативно
RI
14:48
Ruslan Ibragimov
java там не нужна
АЖ
14:48
Алексей Жингеровский
можешь на котлине писать
14:48
фишка RN - в том что andorid/ios пилишь на удобном тулинге как всё в браузере
14:48
Как туда ложится котлин нэйтив?
RI
14:49
Ruslan Ibragimov
берешь, и делаешь такое-же, только на котлине
АЖ
14:49
Алексей Жингеровский
он максимум ляжет там где cсишный код
RI
14:49
Ruslan Ibragimov
при этом избавляешься от костылей
АЖ
14:49
Алексей Жингеровский
братишка, что тоже самое?
14:49
там машина js бегает
RI
14:49
Ruslan Ibragimov
ну пусть бегает, в случае котлина это не нужно)
АЖ
14:49
Алексей Жингеровский
она выаолняет код и умеет в разный UI для платформ
14:50
и этам машина даёт прекрасный экспиреенс, когда ты девелопишь вне системного апи и вообще девайсов
14:50
как в браузере. тулинг и либы и js всё тоже самое. редаксы-хуяксы-бабели
RI
14:51
Ruslan Ibragimov
ну ты говоришь что у тебя эмулятор типо быстрый
14:51
и удобный
14:51
это дев тул, это решаемо
АЖ
14:51
Алексей Жингеровский
дело ж в UIчике
RI
14:51
Ruslan Ibragimov
а я тебе говорю, что на RN числа не подолбишь, потому что JS
АЖ
14:51
Алексей Жингеровский
его пишут фронтендеры
14:52
вот вчера писали в браузере, сегодня на мобилке
14:52
ничего не поменялось
RI
14:52
Ruslan Ibragimov
Так что, теперь все что UI будут писать полу-грамотные джсеры?
АЖ
14:52
Алексей Жингеровский
а какому фронтендеру надо идти в натив? и изучать новую платформу и тулинг?
14:52
ведь тогда котлину придётся сделать всё то же самое что делате RN
14:52
для платформ
14:53
In reply to this message
14:53
да
14:54
И смотри теперь как можно http://cljsrn.org
14:55
наверное котлин натив хорошо ляжет туда где сейчас сишка
14:55
наверное
14:55
я вообще не в курсе
RI
14:55
Ruslan Ibragimov
у него таргет - ios)
14:55
очевидно что запилят свой тул чтобы писать код сразу и в android и в ios
14:56
и он будет быстрее и лучше работать, чем js внутри)
АЖ
14:57
Алексей Жингеровский
одинаковый код нужен только для UI
RI
14:57
Ruslan Ibragimov
одинаковый код не нужен для UI, точнее не везде нужен)
АЖ
14:58
Алексей Жингеровский
энв другой и апи другой
RI
14:58
Ruslan Ibragimov
у тебя есть часть которая хорошо работает и там и там. а есть специфическая
АЖ
14:58
Алексей Жингеровский
сервисная часть будет для каждой платформы своя
14:58
ну вот общая часть - это и получается что UI
RI
14:59
Ruslan Ibragimov
Леш, ты мне надоел) Что ты мне хочешь доказать? Что ReactNative может быть написан только на js?
14:59
_Утомил_
АЖ
14:59
Алексей Жингеровский
в том что ты пытаешься воткнуть котлин натив куда то не зная зачем
RI
15:00
Ruslan Ibragimov
Это не я пытаюсь, это то, зачем JB его делает
SY
15:00
Sergey Y.
Kotlin Native не будет под андроид, если он будет под LLVM
RI
15:00
Ruslan Ibragimov
Это было понятно когда еще история с RoboVM
АЖ
15:00
Алексей Жингеровский
ну я привёл пример что вот збс для UI есть RN. Причём к нему котлин я не понимаю
RI
15:00
Ruslan Ibragimov
In reply to this message
одна и таже кодовая база может во все три таргета компилится
АЖ
15:00
Алексей Жингеровский
на ios есть swift
RI
15:01
Ruslan Ibragimov
по модулю органиченного api и биндингов
SY
15:01
Sergey Y.
In reply to this message
LLVM нет под андроид
RI
15:01
Ruslan Ibragimov
ты написал
АЖ
15:01
Алексей Жингеровский
> Руслан Ибрагимов, [Jan 20, 2017, 15:00]:
одна и таже кодовая база может во все три таргета компилится

Вот когда это взлетает?
RI
15:01
Ruslan Ibragimov
class MyClass(val a: int)
АЖ
15:01
Алексей Жингеровский
это то что не работает
RI
15:01
Ruslan Ibragimov
и он скомпилится и в js, и в llvm, и в джаву
АЖ
15:02
Алексей Жингеровский
хых.
SY
15:02
Sergey Y.
In reply to this message
думаешь там будет 100% идентичный синтаксис или набор операторов?
RI
15:02
Ruslan Ibragimov
In reply to this message
у тебя будет core который шарится на все платформы, а будут специфические штуки для каждой платформы
15:02
как @module или dynamic в js
15:03
на которых ты биндинги пишешь
15:03
In reply to this message
синтаксис и набор операторов - да
SY
15:03
Sergey Y.
In reply to this message
ну ок
RI
15:04
Ruslan Ibragimov
думаю будут свои ключевые слова, и будут органичения в API
15:04
короче там весь JDK естественно не будет доступен
АЖ
15:05
Алексей Жингеровский
от jdk там думаю вообще ничего не будет
15:05
и вот тут интересный момент, Руслан
15:06
мы знаем Котлин, а тут оказывается Котлин то очень особый что бы писать для всех платформ
15:06
ни библиотек джавовых
15:06
ни даже джавы
RI
15:07
Ruslan Ibragimov
Ты боишься что будет API которого тебе будет не хватать?
ВГ
15:15
Влад Гаевский
на секунду отвернулся блин
15:15
+193 сообщения
15:15
когда вы успеваете
АЖ
15:16
Алексей Жингеровский
я не боюсь ;) Но пока я не представляю как это вся общая база будет работь если честно. И нужно что бы это работало вот так. RN покрывает большой кусок попаболи, если Котлин сможет покрыть ещё то я только за, только какой ценой
15:16
Так на работе же
ВГ
15:16
Влад Гаевский
а, ну логично
АЖ
15:16
Алексей Жингеровский
Работая такая, что если кто то не прав то тут это как critical issue
RI
15:17
Ruslan Ibragimov
In reply to this message
Ну я потыкал kotlin js, поэтому я примерно представляю как это может выглядеть)
15:17
а что сейчас больше: рынок мобилок, рынок вебчика, или энтерпрайза?
АЖ
15:18
Алексей Жингеровский
хм, инетерсный вопрос
15:18
думаю энетрпрайз-мобилки и где то там вебчик
NK
15:18
Nikita Kononenko
мне кажется энтерпрайз > веб > мобилки
АЖ
15:18
Алексей Жингеровский
пальцем в небо
15:18
эм, мобилки же в топе
NK
15:19
Nikita Kononenko
смотря по чему судить
АЖ
15:19
Алексей Жингеровский
по деньгам
NK
15:19
Nikita Kononenko
по зряплатам всм?
АЖ
15:19
Алексей Жингеровский
15:19
нет, не по зп
NK
15:20
Nikita Kononenko
ну они в любом случае работают вместе чаще всего. ну веб + мобилки точно
RI
15:20
Ruslan Ibragimov
Мне интересно:
1. где больше разработки
2. где больше денег
15:21
Разработка приложений под iOS & Android
Разработка под браузер
Разработка систем для предприятий, и прочий b2b
АЖ
15:22
Алексей Жингеровский
In reply to this message
а покажи как потыкал
RI
15:23
Ruslan Ibragimov
Есть гайды на котлингланге, потом есть описание новых фич для js в M01-04
15:23
В IDEA просто можно создать проект
g
15:24
guga
In reply to this message
b2b конечно же, если брать среднею температуру по больнице
RI
15:24
Ruslan Ibragimov
А мобилки рядом?
g
15:25
guga
ну, сейчас уважающий себя бизнес делает и мобильное приложение
D
21:32
Discipuli
Всем привет, подскажите что по @/IntDef в Kotlin?
М
21:34
Михаил
In reply to this message
а что с ним?)
D
21:34
Discipuli
Ну он не работает, в случае с Java студия ограничивает значения да еще и switch cases генерит
М
21:35
Михаил
забавно
21:35
там насколько я помню просто линт подсвечивает с intDef?
21:36
помню говорили, что линт пока не так же хорошо работает как с джавой
21:36
но это в процессе исправления
D
21:36
Discipuli
In reply to this message
не просто подсвечивает, а ругается даже. Скучаю за этим(
М
21:54
Михаил
у меня какой-то глюк случился или действительно было где-то сказано, что енамы в котлине компилятся в обычные классы?
IG
21:55
Ilya Gulya
енамы в джаве так же компилятся в обычные классы)
М
21:55
Михаил
тогда ок
АС
22:00
Арсений Сафин
Может кто посоветовать как удаленно устроиться разрабом в европке
N
22:35
Nikita Sokoloff ✌️
что это
RI
22:35
Ruslan Ibragimov
Стадное чувство
21 January 2017
RI
16:13
Ruslan Ibragimov
16:13
На тему кложаскрипта и джаваскрипт сообщества
22 January 2017
АЖ
00:34
Алексей Жингеровский
Ожидаемо же
00:37
Вот кстати тоже всплыло на тему кложи чёт https://sekao.net/blog/industry.html
23 January 2017
SZ
18:27
Sergey Zolotov
а как дела у котлина с аккой?
18:27
если на джаве ее юзать говорят мерзко
18:28
то как с этим у котлина?
18:29
Накинул примерчик когда в jvm чатике на эту тему троллировали
18:32
In reply to this message
ну как с этим у котлина?)
SZ
18:33
Sergey Zolotov
я не знаю в принципе как с этим у скалы, там вроде акка у них прям в язык встроена?
18:33
сложно сказать, хотел узнать мнение у них кто юзает)
RI
18:33
Ruslan Ibragimov
Не, акка - это отдельная сущность, к языку никакого отношения не имеет. У них раньше зачем-то были акторы в стдлиб, но оттуда их выпилили
А
18:36
Андрей
а можете объяснить для непонимающих, зачем акка нужна в джаве/котлине?
RI
18:37
Ruslan Ibragimov
чтобы пользоваться моделью акторов. Акторы - это не новая тема.
18:37
Только это не совсем те акторы, что в UML)
А
18:42
Андрей
а чем принципиально это отличается от реактивного программирования, реализуемого с помощью Reactor/RxJava?
RI
18:48
Ruslan Ibragimov
Хороший вопрос, с точки зрения того как все под капотом работает - они очень похожи, отличия в API, в подходе
18:49
Я скалистов долго долбал, но они так ничего не ответили
d
18:49
dima 💻
In reply to this message
в скала чате попробуй спроси
А
18:56
Андрей
Я думал если у джавистов спросить, то ответ получится более объективным. Потому что если скала-девелопер юзает библиотеку со скалы, то это само собой разумеется. А вот когда джавист пытается дружить со скала тулзой, то для этого, как мне кажется, должны быть серьезные причины.
RI
18:56
Ruslan Ibragimov
Ну у акки есть типо Джава апи
SZ
18:57
Sergey Zolotov
какие вообще у акки есть альтернативы?
18:57
если надо распределенные параллельные вычисления
RI
18:59
Ruslan Ibragimov
Да куча всего, в зависимости от задач
АЖ
19:05
Алексей Жингеровский
есть java.util.concurrency
19:05
вроде прикольная тема, сам не смотрел правда
А
19:05
Андрей
это немножко не то
RI
19:05
Ruslan Ibragimov
(Леша троллит)
SZ
19:06
Sergey Zolotov
In reply to this message
хочу запустить на 10ке разных инстансах, но чтобы оно работало как на одной. сделаешь?)
19:06
акка вроде как раз по такому?
АЖ
19:06
Алексей Жингеровский
для этого надо scala
19:06
ладно я не будут тут трололо разводить
SZ
19:06
Sergey Zolotov
а альтернатива все же есть какая-то?
RI
19:08
Ruslan Ibragimov
In reply to this message
Это плохая абстракция, если нету понимания как оно себя ведет в разных ситуациях
g
19:08
guga
In reply to this message
а в чем проблема, делаешь очередь и делаешь 10 консьюмеров
SZ
19:09
Sergey Zolotov
In reply to this message
ну вот в моем понятии акка это всего лишь такие очереди, не более
RI
19:09
Ruslan Ibragimov
Или раундробин, и дергаешь сервисы :)
g
19:10
guga
ещё и без гарантии доставки
19:10
RI
19:10
Ruslan Ibragimov
В спринге достаточно аннотациий навесить
АЖ
19:10
Алексей Жингеровский
In reply to this message
эээ, так задача же нужна а не такое описание. Тут же можно и про хадуп подумать
SZ
19:10
Sergey Zolotov
а как кстати у акки работает шедулинг задач то?
RI
19:10
Ruslan Ibragimov
In reply to this message
Тоже самое хотел написать
SZ
19:11
Sergey Zolotov
ну скажем, если свободны ядра на текущей машине, оно не будет отправлять на другой сервер сообщения?
АЖ
19:11
Алексей Жингеровский
Собрались тут акка-господа про акку говорить в Котлин чате, значит
RI
19:11
Ruslan Ibragimov
Причем на акке никто не писал
АЖ
19:12
Алексей Жингеровский
Как и на Котлине
SZ
19:12
Sergey Zolotov
изначально был вопрос как котлин работает с аккой)
АЖ
19:12
Алексей Жингеровский
RI
19:12
Ruslan Ibragimov
In reply to this message
Вот не надо, я даже на работе пишу уже на котлине)
SZ
19:12
Sergey Zolotov
уже?
АЖ
19:12
Алексей Жингеровский
19:12
Раскрыли Руслана!
RI
19:13
Ruslan Ibragimov
Заебался бойлерплейт джавовый генерить и писать
19:13
In reply to this message
Ну на новой, да
АЖ
19:13
Алексей Жингеровский
А видели что Света написала про языки?
SZ
19:13
Sergey Zolotov
работу ради котлина сменил?)
RI
19:13
Ruslan Ibragimov
Что они сексисткие?
g
19:13
guga
In reply to this message
нормально работает,
RI
19:13
Ruslan Ibragimov
In reply to this message
Нет, ради бутика)
АЖ
19:13
Алексей Жингеровский
In reply to this message
g
19:13
guga
In reply to this message
RI
19:14
Ruslan Ibragimov
In reply to this message
Лучше джавы, на уровне со скалой
SZ
19:15
Sergey Zolotov
а зачем им акка на уровне языка?
19:15
скале
19:15
это ж как спринг в джаву зашить, не?
RI
19:15
Ruslan Ibragimov
Так нету акки на уровне языка
АЖ
19:16
Алексей Жингеровский
RI
19:17
Ruslan Ibragimov
In reply to this message
Вкидывай в про джвм ;)
АЖ
19:17
Алексей Жингеровский
Не
19:17
это ж закрытый акк
19:17
ох, уже 100 человек тут
g
19:18
guga
In reply to this message
тогда уж лучше в скала чат
19:18
RI
19:18
Ruslan Ibragimov
In reply to this message
АЖ
19:18
Алексей Жингеровский
Лучше в go чат
RI
19:19
Ruslan Ibragimov
Так давай я вкину, че)
АЖ
19:20
Алексей Жингеровский
In reply to this message
ну так вперёд ;)
g
19:20
guga
особенно с тот скрин, где видго апатар Aliaksei
19:20
RI
19:20
Ruslan Ibragimov
который он потер)
АЖ
19:20
Алексей Жингеровский
In reply to this message
нет такого скрина)
g
19:20
guga
все ходы записаны
АЖ
19:21
Алексей Жингеровский
ладно, поделился и хватит. Для своих же
АД
19:21
Алина Долгих
Кстати едем в среду на go митап в Вильнюс
АЖ
19:21
Алексей Жингеровский
Вот только go вспомнили как и митап!
RI
19:21
Ruslan Ibragimov
АД
19:22
Алина Долгих
Ну да :)
АЖ
19:22
Алексей Жингеровский
Сегодня техлид включил в повестку котлин когда обсуждали андроид архитектуру. Считаю это победой ))
RI
19:22
Ruslan Ibragimov
Победа будет когда ты будешь техлидом ;)
АЖ
19:23
Алексей Жингеровский
Так не инетресно будет котлин продвигать
19:23
тут хоть азарт есть
19:24
А так, говоришь всем что котлин – и вот у всех котлин, куча денег, весь рынок твой. Что за интерес?
19:37
Руслан дай плиз самый топчик рассказ-слайды за котлин на Андроиде
RI
19:37
Ruslan Ibragimov
Нашел кого спрашивать за андроид
АЖ
19:37
Алексей Жингеровский
Так я за котлин
RI
19:41
Ruslan Ibragimov
Так я понимаю, но я обычно не смотрю такие доклады)
ST
19:44
Sasha Tainyuk
In reply to this message
https://realm.io/news/oredev-jake-wharton-kotlin-advancing-android-dev/ не топ, но другие еще хуже.
20:35
Deleted Account
Если буду писать что под андроид , пожалуй Котлин возьму
g
20:36
guga
Почему не скалу?
20:36
подумаешь рантайм в пару мегабайт
RI
20:37
Ruslan Ibragimov
Там есть какой-то плагин который выкосит рантайм который не используется, но вроде как sbt для него нужно
20:37
hello-world почти как котлин получается
20:38
Deleted Account
In reply to this message
Потому что проще смириться с реалиями андроида
SZ
20:39
Sergey Zolotov
In reply to this message
прям вебпак tree shaking
g
20:40
guga
In reply to this message
🚓 вас посетила JS полиция, срочно удалите все упоминания о нем из вашей памяти.
20:41
Deleted Account
In reply to this message
Но вообще , пока не хочется в андроид Мир вторгаться
RI
20:42
Ruslan Ibragimov
Хм, не нахожу тот проект, видимо эксперемнтальный был
SZ
23:52
Sergey Zolotov
J?
JBaruch 🎩 23.01.2017 23:48:45
конечно Груви лучше (и статический и динамический, и надеждней, и Апачи, не не проприетарщина), но Котлин тоже прекрасен, чо
I
23:58
Ivan
кто-то может обьяснить логику?
23:59
когда photo_2560 должна успеть измениться)?
24 January 2017
SK
00:00
Siarhei Krukau
Между сравнением с наллом и присвоением. Вдруг потом припаузится и кто-то другой успеет
I
00:01
Ivan
In reply to this message
ну чет баян какойто. а если if (a < 10) врдуг изменится и станет больше 10?
00:01
армагеддон наступит
М
00:01
Михаил
а если решил поменять из другого треда?
I
00:02
Ivan
In reply to this message
закешируется же
М
00:02
Михаил
ну на самом деле многим не нравится этот момент с var
I
00:02
Ivan
ну просто куда уже конкретнее, чекнуть на нулл перед использованием
RI
00:03
Ruslan Ibragimov
Используй let, Luke!
I
00:06
Ivan
In reply to this message
да там условно такая ситуация
if (a!=null){
}else if( b!= null){
} else {
}
RI
00:07
Ruslan Ibragimov
Сравнение с налом и присвоение не атомарная операция
00:07
В канкеренси коде тут можно ловить рейсы
00:12
Вот сравни:
I
00:14
Ivan
я понял логику
00:14
спасибо
Dmitriy Shibaev invited Dmitriy Shibaev
NK
12:12
Nikita Kononenko
@HeapyHop а что за штука делает нормальный знак неравенства?
RI
12:18
Ruslan Ibragimov
Лигатуры
12:19
И шрифт, я использую Fira Code
АЖ
12:25
Алексей Жингеровский
Плюсую ха фиракод
М
12:26
Михаил
In reply to this message
насколько я понимаю эта фишка недавно в intelij появилась?
RI
12:26
Ruslan Ibragimov
Да, в настройках нужно включить, там где шрифт меняется
NK
12:26
Nikita Kononenko
благодарю)
М
12:26
Михаил
у меня андроид студио((( там еще не апнули до этой версии интелиж
RI
12:28
In reply to this message
ну пока не привык к лигатурам, разницу не чувствуешь)
12:28
первое время это было просто украшательство, а теперь тяжело смотреть на код без лигатур)
М
12:28
Михаил
кстати спасибо за скрин. все таки есть там такое))
АЖ
17:18
Алексей Жингеровский
Нормас, китайцы с работы начали читать правильные сайты
17:18
RI
18:04
Ruslan Ibragimov
Вообще тема
М
22:36
Михаил
в котлине же internal по сути шире, чем packagelocal в джаве?
RI
22:37
Ruslan Ibragimov
И шире и уже
М
22:37
Михаил
можно разжевать?)
22:38
именно почему уже
RI
22:38
Ruslan Ibragimov
Internal зависит от контекста
Ruslan Ibragimov pinned this message
RI
23:31
Ruslan Ibragimov
Nice
23:31
Очень круто
М
23:37
Михаил
takeIf{} доставил
23:37
мелочь а приятно
25 January 2017
АЖ
00:06
Алексей Жингеровский
val outDirFile = File(outputDir.path).takeIf { it.exists() } ?: return false
// do something with existing outDirFile
00:06
так а что если нет файла?
М
00:08
Михаил
я думаю внутри она как-то так выглядит
00:08
fun <T> T.takeIf(predicate: (T) -> Boolean): T? {
return if predicate(this)) this else null
}
АЖ
00:09
Алексей Жингеровский
Ну я про типа outDirFile
00:09
Он либо File либо Boolean?
М
00:09
Михаил
?
АЖ
00:10
Алексей Жингеровский
takeIf возвращает или саму сущность или null
00:10
добавляем элвис
00:10
получаем Boolean. wtf?
ВБ
00:11
Виталий Бендик
In reply to this message
если нет файла сработает return
АЖ
00:11
Алексей Жингеровский
а блин
00:11
тьфу ты
00:12
пойду я спать в этом случае, сижу не могу понять что за фигня
АД
08:37
Алина Долгих
Это golangshow про внутренности Juno http://golangshow.com/episode/2017/01-18-090/
08:37
38 микросервисов, 380к строчек кода на go, столько же тестов на питоне и ты ды и ты пы
RI
09:56
Ruslan Ibragimov
Чет не тот чат
RM
09:59
Ruslan Mikhalev
АЖ
11:12
Алексей Жингеровский
In reply to this message
Тот тот, я послушаю, интересно же
RI
11:12
Ruslan Ibragimov
/ban aleksey
АЖ
11:12
Алексей Жингеровский
Dzmitry Kalianchuk invited Dzmitry Kalianchuk
RI
11:19
Ruslan Ibragimov
Dzmitry постоянный спикер на EPAM Kotlin Tech Talk ;) Привет, Дима!)
DK
11:19
Dzmitry Kalianchuk
Привет всем
NK
11:21
Nikita Kononenko
привет)
11:22
EPAM Kotlin Tech Talk? часто они бывают?)
11:23
последнее что я видел это Kotlin - Productive Development on the JVM
DK
11:28
Dzmitry Kalianchuk
А ты из епама?
11:28
раз в месяц
NK
11:29
Nikita Kononenko
ага
11:29
до Питера рассылка не доходит?
DK
11:29
Dzmitry Kalianchuk
А, ну да
11:29
она только на Минск и только на два департамента
11:29
Java и mobile
11:29
но если есть интерес напиши, будем делать бродкаст
NK
11:30
Nikita Kononenko
есть :)
АД
11:37
Алина Долгих
чат что надо - там же про архитектуру и про вообще
АЖ
13:26
Алексей Жингеровский
Подкаст огонь, послушал с удовольствием, иду на собес в джуно завтра
SZ
13:27
Sergey Zolotov
на котлин?
АД
13:28
Алина Долгих
тестовое сделал? Aliaksei
АЖ
14:47
Алексей Жингеровский
14:47
Да я пошутил же.
14:47
Но послушать стоит, очень интересно
RI
17:12
Ruslan Ibragimov
Feature Request: Andrey Breslav to grow a beard. : KT-15945
https://youtrack.jetbrains.com/issueMobile/KT-15945
g
17:14
guga
In reply to this message
👍
17:15
языки без бороды обречены
АД
17:16
Алина Долгих
Мы в безопасности, все ок :)
RI
17:18
Ruslan Ibragimov
Чуть что я отрастил, пожертвую JetBrains если придется
g
17:23
guga
я думал у вас дресскод в фирме — бритые и без бороды
АС
17:27
Арсений Сафин
че за адское место
17:27
тинькоф банк чтоли
RI
17:27
Ruslan Ibragimov
Это тонкая шутка про то что Андрусь и я лысые и без бороды)
17:28
(ну лично я так понял)
g
17:28
guga
In reply to this message
АС
17:28
Арсений Сафин
тонко)
17:28
like it
RI
17:31
Ruslan Ibragimov
1. Мне пох
2. Давай не будем здесь это обсуждать, есть же pro.jvm
DK
17:46
Dzmitry Kalianchuk
> и без бороды)
Я тебя когда последний раз видел ты ж заросший был
d
17:46
dima 💻
In reply to this message
свыш
17:47
в про.жвм жесткие правила тоже!
26 January 2017
АЖ
17:58
Алексей Жингеровский
17:59
пофиксил ретролябмду тут
SZ
17:59
Sergey Zolotov
что что?
17:59
затащили себе на проект котлин?)
RI
17:59
Ruslan Ibragimov
NK
17:59
Nikita Kononenko
неплохой реплейсмент
АЖ
17:59
Алексей Жингеровский
не, всего лишь ретролямду пофиксил
17:59
пока никакого котлина
17:59
я так сказал
RI
18:00
Ruslan Ibragimov
Сколько файлов .kt уже?
АЖ
18:01
Алексей Жингеровский
хз, cmd-a && shift-option-cmd-k
АЖ
18:17
Алексей Жингеровский
На самом деле ещё это лишь попытка ;)
Сергей Аганин invited Сергей Аганин
DV
21:11
Denis Vlasov
С чего лучше после джавы начать писать на котлине. С туторилов на сайте котлина, котлин koans?
SZ
21:11
Sergey Zolotov
доку прочитай, потом try kotlin
М
21:12
Михаил
+
RI
21:12
Ruslan Ibragimov
Да, плюсую
21:12
Но koans лучше скачать и локально делать
AA
21:12
Anton Arhipov
ещё лучше: сначала доку, и потом сразу в прод
SZ
21:12
Sergey Zolotov
👍
21:12
можно без доки, конвертировал проект и в прод
М
21:13
Михаил
потом если заинтересует язык, то бери книжку Kotlin in Action.
ST
21:41
Sasha Tainyuk
In reply to this message
угу... главное вазелином запастись. да побольше.)
AA
21:42
Anton Arhipov
In reply to this message
g
21:56
guga
In reply to this message
Был же еще плугин для идеи
Konstantin Raspopov invited Konstantin Raspopov
27 January 2017
АД
11:48
Алина Долгих
@VDlasov и в Slack добавляйся, там специальный канал есть
DV
12:17
Denis Vlasov
In reply to this message
Спасибо👍
АЖ
13:25
Алексей Жингеровский
Я туплю немножк.
Как лучше forEach переписать тут?

 
private fun <T> List<T>.shuffle() : List<T>{
val rand : Random = Random()
val shuffled = mutableListOf<T>()
this.forEach { shuffled.add(it) }

for (i in 0..shuffled.size - 1) {
val randomPosition = rand.nextInt(shuffled.size)
swap(shuffled, i, randomPosition)
}

return shuffled
}
SZ
13:26
Sergey Zolotov
shuffled.addAll(this) ?
АЖ
13:27
Алексей Жингеровский
бля, чё я так туплю? )
SZ
13:29
Sergey Zolotov
mutableListOf<T>(this) и вроде так тоже должно заработать
АЖ
13:31
Алексей Жингеровский
SZ
13:32
Sergey Zolotov
ща идею запущу
13:33
ок. this.toMutableList() не сработает?
АЖ
13:34
Алексей Жингеровский
работает, а чего раньше не работал...
d
13:35
dima 💻
сырой язык просто...
АЖ
13:36
Алексей Жингеровский
Сырой я
SZ
13:36
Sergey Zolotov
In reply to this message
на столько сырой что аж скоро 1.1 будет
d
13:54
dima 💻
тем более
ЛЛ
13:54
Лёша Лазарев
так есть же Collections.shufle()
или нужна именно своя реализация?
SZ
13:58
Sergey Zolotov
In reply to this message
разве?
ЛЛ
13:59
Лёша Лазарев
SY
14:00
Sergey Y.
In reply to this message
картинку можно прикрепить как картинку
14:01
может это в 1.1 добавили?
SY
14:01
Sergey Y.
In reply to this message
это Java класс
АЖ
14:01
Алексей Жингеровский
это джавовый
SZ
14:01
Sergey Zolotov
😃
14:01
плохо когда не знаешь нормально java api
RM
14:02
Ruslan Mikhalev
In reply to this message
даже в таких случаях есть гугл же =)
АЖ
14:03
Алексей Жингеровский
мда
14:03
я никогда чёт шафл не использовал
RM
14:04
Ruslan Mikhalev
Я тоже. Но когда нибудь настанет тот час, я верю.
АЖ
14:06
Алексей Жингеровский
понадобился, добавил
14:06
а он оказывается есть))
SZ
14:10
Sergey Zolotov
костылики
MR
14:22
Max Rovkin
еще есть Collesctions.swap :D
SZ
14:22
Sergey Zolotov
ну swap он заюзал)
АЖ
14:24
Алексей Жингеровский
;)
АЖ
14:33
Алексей Жингеровский
В кратце, он топит за Котлин или нет?
14:34
Т.е. кидать в чат рабочий? )
NK
14:35
Nikita Kononenko
да он сам не понял похоже
RI
14:38
Ruslan Ibragimov
Нет, он херню несет, типо как мне сделать аргумент функции не файнал
14:39
Deleted Account
В сафари букс есть книжка по котлину :)
NM
14:40
Nikolai Mitropolskii
Кстати, народ, а как думаете, реально изучать Котлин минуя Джаву?
MR
14:40
Max Rovkin
нет
SZ
14:40
Sergey Zolotov
увы, нет
NM
14:41
Nikolai Mitropolskii
Ну вот скалисты про скалу говорят обртаное) что как первый язык она не ок, но джаву знать в целом не обязательно
RI
14:41
Ruslan Ibragimov
А скалу?
SZ
14:41
Sergey Zolotov
ну можешь начать писать на котлине, но джава тебе потом в любом случае нужна будет
NM
14:42
Nikolai Mitropolskii
Зачем?
SZ
14:42
Sergey Zolotov
а то потом начнешь shuffle городить свой 😃
NM
14:42
Nikolai Mitropolskii
Ну стандартную библиотеку-то я изучу, но чтобы методы дергать мне же джаву как языык знать не обязательно?
14:43
Deleted Account
In reply to this message
Котлин - миньон
MR
14:43
Max Rovkin
много библиотек на джаве написано, придется ее учиться читать
14:43
Deleted Account
Но джаву нужно знать потому что нужно
NM
14:44
Nikolai Mitropolskii
Да, библиотеки это конечно косяк.
MR
14:44
Max Rovkin
в общем то можно и с котлина начать, просто джаву помниать придется научиться
NM
14:45
Nikolai Mitropolskii
Ну вот так, например курс по ООП для студентоты. взять и взять вместо джавы - котлин? или у них крыша съедет?
АЖ
14:46
Алексей Жингеровский
In reply to this message
MR
14:46
Max Rovkin
да не, синтаксис котлина приятней
NM
14:46
Nikolai Mitropolskii
вот в том то и дело)
14:46
и лаконичнее гораздо
SZ
14:46
Sergey Zolotov
In reply to this message
ну дело ж не в самой джаве. а в ее api
14:46
хочешь не хочешь, а юзать его придется много и часто
RI
14:47
Ruslan Ibragimov
Если выучить первым котлин, потом не захочется учить джаву)
АЖ
14:47
Алексей Жингеровский
Пацаны, язык не важен же
SZ
14:47
Sergey Zolotov
потому что котлин не скала и не городит свой велосипед😃
NM
14:47
Nikolai Mitropolskii
In reply to this message
нужно ли знать джаву чтобы дергать апи? или типа туториалы по либам читать не сможешь?
SZ
14:47
Sergey Zolotov
ну как минимум все книжки идут в основном по джаве, тебе ж надо понимать че там происходит
RI
14:48
Ruslan Ibragimov
In reply to this message
ну иногда нужно понимать как работают джавовые либы. типо вот некоторым нужно noarg конструктор
NM
14:48
Nikolai Mitropolskii
ну никто не мешает сделать noarg в котлине)
АЖ
14:48
Алексей Жингеровский
Java нужна, а Котлин это как сахарок уже поверх
NM
14:49
Nikolai Mitropolskii
Ну Java8 местами очень сложнаа
АЖ
14:49
Алексей Жингеровский
In reply to this message
а Java7?
NM
14:49
Nikolai Mitropolskii
7 норм в целом
АЖ
14:50
Алексей Жингеровский
SZ
14:50
Sergey Zolotov
In reply to this message
а 6? завезли свои сраные аннотации!
RI
14:50
Ruslan Ibragimov
аннотации это пять же
NM
14:50
Nikolai Mitropolskii
аннотации вроде в 5 завезли
SZ
14:51
Sergey Zolotov
да? ну ладно
RI
14:51
Ruslan Ibragimov
но я согласен, без аннотаций джава была бы намного лучше)
SZ
14:51
Sergey Zolotov
это был сарказм
NM
14:51
Nikolai Mitropolskii
и без дженериков))))
SZ
14:51
Sergey Zolotov
у нас на пхп нет аннотаций, вот и ебем себе мозг через костыли и рефлексию
14:51
АЖ
14:52
Алексей Жингеровский
Это да. У нас в пхп без аннотаций в друпале вообще плохо
RI
14:53
Ruslan Ibragimov
In reply to this message
а аннотация это тип не рефлексия?
14:53
имплиситы и декораторы, и было бы ок XD
АЖ
14:53
Алексей Жингеровский
SZ
14:54
Sergey Zolotov
ну есть же разница
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
protected $id;

и то как это на джаве делается
14:54
парсинг докблоков..
RI
14:54
Ruslan Ibragimov
Просто классы нужно генерить
14:54
Как это делает jooq и cayenne
d
18:22
dima 💻
жук торт
18:22
каен для старперов
18:22
апи 93 года😂
g
18:24
guga
в 93 были стримы в джаве?
d
18:24
dima 💻
18:25
и ты тут
RI
18:28
Ruslan Ibragimov
In reply to this message
g
19:03
guga
In reply to this message
ох ты ж бля, мне кажется это уже слишком
RI
19:04
Ruslan Ibragimov
Ну если до Димы по-другому не доходит
DV
22:38
Denis Vlasov
In reply to this message
На YouTube смотрю краткий курс по котлину. Там автор и для знакомых с джавой, и для новичков рассказывает. Местами показывает как это выглядело бы в джаве.
D
22:42
Discipuli
In reply to this message
Увы, это та же джава, только с плюшками. Зачем нужны те, кто будет строки в цикле складывать (образно)
NM
22:45
Nikolai Mitropolskii
In reply to this message
Вот это гуд!)
22:45
In reply to this message
Я не понял почему "увы" и зачем строки в цикле складывать... их и на джаве можно складывать, если очень хочется
DV
22:48
Denis Vlasov
DV
Denis Vlasov 27.01.2017 22:44:34
Instant run работает с Kotlin?
D
22:48
Discipuli
Увы, но говнокод никто не отменял. И на Kotlin больше возможностей писать монстров. Тем более зачем человеку не знаеющему Java Kotlin? Это же не мода, это для наболевшего в Java Больше
22:49
А в начале Java за глаза хватит
22:50
Потом сядешь, уделишь пару вечеров докам и начнёшь на Kotlin ваять
СА
22:50
Сергей Аганин
Час и ваяешишь на котлине, если есть бэграунд явы
AA
22:55
Anton Arhipov
In reply to this message
Зачем инстант ран когда есть жребель? :)
М
23:03
Михаил
In reply to this message
чтоб проекты с ретролямбдой поддерживать
23:03
RI
23:04
Ruslan Ibragimov
Как у джеребеля с Котлином?
SY
23:04
Sergey Y.
In reply to this message
хорошо
AA
23:20
Anton Arhipov
In reply to this message
Все ок с котлином
D
23:24
Discipuli
In reply to this message
С kapt ток траблы
23:25
Ну и как я знаю, JRebel же байт-код свапает, тут язык не причём
AA
23:25
Anton Arhipov
In reply to this message
Не совсем
23:27
Иногда не только в байткоде дело. Метаинформация о классах иногда нуждается в обновлении, например metaclass в груви
23:27
Но с котлином такой проблемы вроде нет
D
23:27
Discipuli
In reply to this message
Я образно, ни в коем случае не претендую на подобные познания
DV
23:28
Denis Vlasov
In reply to this message
У меня нет лицензии. Я пока не готов купить. Пользовался триалом летом, было удобно, потом триал закончился.

Пользуюсь instant run когда он вышел в Android Studio - на небольшом проекте без нативных библиотек работает.

А существует технология подмена кода в c#, c++. Интересно просто.
AA
23:28
Anton Arhipov
Ну да, в общем случае работа идёт с байткодом , и в целом неважно, на каком языке код написан
23:29
In reply to this message
А для инди вроде лицензия довольно приемлимых денег стоит..
23:30
In reply to this message
Для с# есть аналог hotswap. Такой же ограниченый
23:30
Но аналога жребеля для дотнет нету
D
23:31
Discipuli
In reply to this message
И она ещё и стоит того, единственное, что за "дороже" ещё и поддержка annotation processing популярных фреймворков
AA
23:33
Anton Arhipov
Ну как то надо дифференцировать, да. Другое дело, что может быть без такой поддержки инди версия и смысла не имеет
23:34
Это уж продуктологов задача выяснять :)
D
23:36
Discipuli
In reply to this message
Да, имеет, но разница в цене очень значительна
23:37
А сейчас же все на dagger и прочих сидят, т.е. без вариантов. Вот был бы хоть даггер, все было бы ок
AA
23:40
Anton Arhipov
In reply to this message
Вот интересно стало. Надо будет спросить у знающих, как это разделение выбрано
DV
23:44
Denis Vlasov
In reply to this message
Т.е. если в проекте есть dagger, он не будет работать?
D
23:53
Discipuli
In reply to this message
Будет, но если чёт с твоим графом зависимостей, будет ребилд, что не особо часто и терпимо, но все же не хватает
23:58
23:58
Вот кстати список библиотек для которых будет работать JRebel за "центральную" цену
28 January 2017
DV
00:03
Denis Vlasov
In reply to this message
А приложение переустанавливаться будет?
D
00:04
Discipuli
In reply to this message
Дак ты же деньги за это и платишь)))
DV
00:04
Denis Vlasov
In reply to this message
Думал может рестарт приложения
D
00:05
Discipuli
Дак в том то и суть, что накатываются изменения, что делает перезапуск в несколько раз быстрее
00:05
Попробуй триал
AA
00:05
Anton Arhipov
Рестарт - это потеря состояния
D
00:06
Discipuli
Ну только на более менее соизмеримом размере проекта) тогда прочувствуешь)
DV
00:09
Denis Vlasov
In reply to this message
В случае dagger, если что-то с графом случиться на инди лицензии. Будет рестарт приложения или переустановка.
D
00:11
Discipuli
Что ты имеешь ввиду под рестартом? У тебя обычно, когда ты ничего не используешь, приложение и так переустанавливается (грубо говоря)
АЖ
01:26
Алексей Жингеровский
In reply to this message
это @dmsol ?
RI
01:26
Ruslan Ibragimov
Да
АЖ
01:26
Алексей Жингеровский
красаучык!
АЖ
10:11
Алексей Жингеровский
Хорошо, новая книжка
10:11
Смотрел что внутри?
10:11
Толково ?
RI
10:16
Ruslan Ibragimov
Ну такое
VR
12:54
ViTO Rossonero
Подскажите плз как заюзать 1.1 eap
Обновил плагин, но что он еще хочет не совсем понятно

https://gist.github.com/ViTORossonero/88017ac2963584c17696a6f4333cd303

при синхронизации gradle появляется ошибка
Error:Could not find org.jetbrains.kotlin:kotlin-gradle-plugin:1.1.0-beta-22.
Searched in the following locations:
https://repo1.maven.org/maven2/org/jetbrains/kotlin/kotlin-gradle-plugin/1.1.0-beta-22/kotlin-gradle-plugin-1.1.0-beta-22.pom
https://repo1.maven.org/maven2/org/jetbrains/kotlin/kotlin-gradle-plugin/1.1.0-beta-22/kotlin-gradle-plugin-1.1.0-beta-22.jar
Required by:
:example.kotlin:unspecified
12:55
RI
12:56
Ruslan Ibragimov
Не хватает репозитория
12:56
    repositories {
jcenter()
maven {
url "https://dl.bintray.com/kotlin/kotlin-eap-1.1/"
}
}
12:57
В двух местах
VR
12:58
ViTO Rossonero
да, спасибо
начало подгружать
VR
13:24
ViTO Rossonero
13:27
есть ли что-либо подобное в stdlib?
fun <T:Any> T?.resolve(onSome: (T) -> Unit, onNone: () -> Unit) =

    if (this != null) onSome(this)

    else onNone()
М
13:34
Михаил
ну как вариат элвис использовать
13:34
?:
13:34
ага
13:34
тут не все так просто)
АД
13:48
Алина Долгих
А хочет кто-нибудь доклад на Варшава Kotlin night 6 марта сделать?
AA
14:17
Anton Arhipov
А, что?
14:17
Этож ехать надо...
14:18
Да и я про котлин не умею :)
RI
14:20
Ruslan Ibragimov
Покапайся в байткоде
14:20
Типо как у Жемерова, только хардкорнее)
14:21
(генерирую идеи доклада, где не нужен продакшен опыт)
АД
15:05
Алина Долгих
@fundamentalparticle в варшавочку же. Там ок :) я б тоже подъехала
АЖ
15:10
Алексей Жингеровский
Где не нужен опыт
1. Blazing fast development with Kotlin and JRebel (потому что можно продавать jrebel)
2. Kotlin Bytecode internals (потому что можно про java betcode говорить)
3. DDD with Kotlin (потому что вообще не про Котлин)
RI
15:11
Ruslan Ibragimov
Не продавать, а повышать awareness
АЖ
15:11
Алексей Жингеровский
devrel
АД
15:11
Алина Долгих
Все так
AA
16:09
Anton Arhipov
@meilalina а когда мероприятие?
АЖ
16:11
Алексей Жингеровский
In reply to this message
А хочет кто-нибудь доклад на Варшава Kotlin night 6 марта сделать?
16:17
Минские, тут java в vk завезли https://vk.com/javaprofessionalsby
ST
21:12
Sasha Tainyuk
😎 *Do you remember AsyncTask? I hope you would prefer to forget about that class from Android API. * https://blog.elpassion.com/what-comes-in-kotlin-1-1-for-android-developers-831d559f780f#.5chm4alb7
NK
21:15
Nikita Kononenko
красота
АЖ
22:07
Алексей Жингеровский
да никто уже давно не использует asyncTask в здравом уме
22:08
но там есть проблемка, это привязка к java8
22:08
ну т.е. я понимаю что будут реализации async/await и для j7, но будут же, да? )
ST
22:09
Sasha Tainyuk
In reply to this message
Я не стал писать о печальном)
М
22:09
Михаил
в чем печаль?
ST
22:10
Sasha Tainyuk
In reply to this message
min api 24
АС
22:10
Арсений Сафин
через года три будет актуально
М
22:10
Михаил
для корутинов?
АЖ
22:10
Алексей Жингеровский
For now, this methods are built upon CompletableFuture class and require minimum SDK version of Android app set to API level 24 as it uses Java 8 Language Features. However, there are some implementations that do not require JDK 8, e.g. in Kovenant promises.
22:11
На самом деле у меня в андроиде и так есть бэкпорт completablefuture
RI
22:11
Ruslan Ibragimov
In reply to this message
Уже видел на старом async\await порт/либу
АЖ
22:11
Алексей Жингеровский
так что думаю можно будет замутить
22:11
In reply to this message
збс!
RI
22:11
Ruslan Ibragimov
Сейчас найду, а пока доклад https://www.youtube.com/watch?v=53JrKl5NR5o&feature=youtu.be
22:12
(Октябрь 2016, но я на фоне сам посмотрю)
М
22:13
Михаил
а кто расскажет за suspend функции? или реально ли вообще свой async/await замутить?
RI
22:13
Ruslan Ibragimov
Да, конечно
22:13
Но за новый async\await не расскажу, пока не пробовал
22:14
С виду тоже самое, только в профиль
М
22:15
Михаил
ну тогда вообще не проблема с мин 24)
ST
22:19
Sasha Tainyuk
In reply to this message
мин 24 это не проблема, это легкая грусть))
29 January 2017
DV
02:25
Denis Vlasov
доброй ночи.
У кого-то было, что у Kotlin Koans в IDE не запускается проверка "Failed to launch checking"?
RI
02:32
Ruslan Ibragimov
А
./gradlew test

работает?
30 January 2017
Pavel 🕷 Larёv invited Pavel 🕷 Larёv
АД
20:51
Алина Долгих
AA
20:54
Anton Arhipov
АЖ
20:59
Алексей Жингеровский
21:01
АД
21:01
Алина Долгих
ну а куда ж без него
RI
21:50
Ruslan Ibragimov
Wow
21:50
дэйли котлин и котлин линк ❤️
АД
21:50
Алина Долгих
:)
RI
21:50
Ruslan Ibragimov
Ты постаралась? ;)
АД
21:51
Алина Долгих
ну и Алина в блог JB написала
21:51
вершина моей гуманитарной карьеры))))\
RI
21:51
Ruslan Ibragimov
Ага, вижу
АД
21:51
Алина Долгих
и я постаралсь и Рома - вас же все знают
21:51
белорусское комьюнити - двигатель Kotlin!
ST
22:02
Sasha Tainyuk
In reply to this message
у тебя в твиттере бот или ф5 до основания уже стерт?
и минуты не прошло))
АД
22:03
Алина Долгих
твитдек же :)
22:03
с нотификациями
RI
22:03
Ruslan Ibragimov
In reply to this message
+1 четыре ака задолбаешься без него вести)
ST
22:04
Sasha Tainyuk
понятно. Я просто твиттер по праздникам читаю, забыл что к чему там)
АЖ
22:30
Алексей Жингеровский
In reply to this message
бля, четыре????
RI
22:30
Ruslan Ibragimov
bkug, bjug, dailykotlin, heapyhop)
g
23:09
guga
отожми ещё аки бутика и каена
31 January 2017
PL
12:30
Pavel 🕷 Larёv
буду внедрять котлин в качестве средства рефакторинга поверх ждк7 в проектах, проздравте))
LP
12:30
Luger Parabellum
это как ты такую хитрость провернул перед заказчиком)?
12:30
поздравляю, несомнено
g
12:31
guga
Павел вроде бы в продуктовой конторе работает
12:31
а так, конечно, грац
PL
12:31
Pavel 🕷 Larёv
In reply to this message
долго капал на мозги)))
LP
12:31
Luger Parabellum
In reply to this message
вчера только говорили про то, насколько трудно провернуть любые миграции
g
12:31
guga
а почему до сих пор на семёрке?
PL
12:32
Pavel 🕷 Larёv
так исторически сложилось))) а когда там операторы телекома на 8ю перейдут никто не знает)) кстати один из аргументов)
12:33
In reply to this message
ну там же есть этот....как там его...)) транслятор в котлин)))
12:34
правда он иногда такое говнище генерит...тем неменее вроде работает)
LP
12:34
Luger Parabellum
In reply to this message
да не, все ок, я серьезно за вас рад. Всяко неплохо . Вопрос "а зачем" слишком философский. Ответ "просто за***ло " - тоже ответ.
12:34
In reply to this message
о да. потом руками допиливать прилично надо
PL
12:36
Pavel 🕷 Larёv
In reply to this message
хочется больше сахара)))
LP
12:36
Luger Parabellum
In reply to this message
еще не понятно, почему он стримы не убирает, например
12:37
то есть код в итоге не компилируем, если заработал стримоз головного мозга
12:37
и потом решил сделать бочку в сторону котлина
PL
12:37
Pavel 🕷 Larёv
кто не убирает?)
LP
12:38
Luger Parabellum
In reply to this message
транслятор
12:38
ну типа, могли бы и постараться
PL
12:39
Pavel 🕷 Larёv
видимо у них тоже ресурсов не хватает)) но я думаю это временно)
17:41
Это Алина которая тут?
RI
17:41
Ruslan Ibragimov
Да, она самая @meilalina
SK
17:41
Siarhei Krukau
(y)
АД
17:48
Алина Долгих
это я, да
АЖ
17:55
Алексей Жингеровский
А почему в России нет ни одной KUG?
g
18:06
guga
In reply to this message
очевидно, некому заняться. @larev иди создавать питерский kug
18:07
у тебя и доклад уже есть, как уломать начальство на котлин
АД
18:15
Алина Долгих
есть движуха в Авито в Москве
18:16
а так да - можно питерский делать :)
SZ
19:23
Sergey Zolotov
тут людей уже больше чем в ru канале на слаке
АД
19:37
Алина Долгих
А в ру канале постили ссылку на этот канал?
SZ
19:38
Sergey Zolotov
вроде не
19:38
Руслан говорил не надо)
19:38
но нас было тут в руме всего 6 человек изначально
АД
19:38
Алина Долгих
Ну можно пропиарить
19:39
Не все любят слек
g
19:40
guga
In reply to this message
и что? боишься потерять элитарность?
SZ
19:42
Sergey Zolotov
в смысле?
19:42
я могу скинуть, мне не жалко)
19:45
даже pin сделал
Igor invited Igor
АЖ
19:52
Алексей Жингеровский
Пошла волна людей!
I
19:52
Igor
Вы кстати не забывайте что есть и #russian в slack
Roman Elizarov invited Roman Elizarov
АЖ
19:54
Алексей Жингеровский
Серьезные люди подошли! Роман, добрый вечер ;)
RI
19:55
Ruslan Ibragimov
Теперь есть кого мучать про корутины и нэйтив)
Адамыч invited Адамыч
АЖ
19:57
Алексей Жингеровский
Мало очень информации про натив, даже есть слухи что не сильно девелопят...
I
19:58
Igor
Народ, думаете про такую фичу (пункт 1) https://discuss.kotlinlang.org/t/imports/1571 имхо мастхев что бы функиональщикам легче жилось
АЖ
20:01
Алексей Жингеровский
А функциональщикт при чём?
20:02
Ну фича то ок, в коложе так можно, но нужно ли в стат. типизированом языке?
20:03
Хотя я понимаю почему было про функциональщиков )
I
20:04
Igor
https://i.gyazo.com/cc68359c67d0a6243978cd51da9525dd.png в большом приложение может возникнут кейс с двумя функциями с одинаковым сигнатурами
20:04
В разных пакетах
Quantum Harmonizer 🍵 [offline] invited Quantum Harmonizer 🍵 [offline]
АЖ
20:05
Алексей Жингеровский
Ага, согласен, я это тоже и имел виду. Но насколько частый кейс?
М
20:05
Михаил
In reply to this message
дак это решается итак. нет разве?
АЖ
20:06
Алексей Жингеровский
Решается
20:06
Но не так красиво
М
20:06
Михаил
не так красиво это как?
20:06
типа писать имя пакета к одно из функций?
АЖ
20:06
Алексей Жингеровский
Сейчас можно обернуть все функции в объект ))
М
20:12
Михаил
не понимаю
20:12
import foo.Bar
import bar.Bar as bBar
20:12
вот так же можно сделать сейчас
20:12
в чем там суть предложения?
АЖ
20:16
Алексей Жингеровский
Тут про функции идёт речь
I
20:16
Igor
In reply to this message
Посмотрите любой видео урок по Clojure/F# - там это стандартный подход.
Др вопрос, как много любой пишут в Kotlin в чисто функциональном стиле с функциями на топ левеле.
АЖ
20:16
Алексей Жингеровский
In reply to this message
это отсылка к кложе и неймспесах
20:17
там удобно оформлять код через неймспейсы и ссылаться на них через :as. :referAll
20:17
In reply to this message
ок ;)
I
20:18
Igor
In reply to this message
Ребята вы явно не сидите в #functional в slack, меня там о обовсем этом уже спрашивали и тоже самое предлагали.

В общем, кому не сложно полайкайте https://discuss.kotlinlang.org/t/imports/1571
АЖ
20:18
Алексей Жингеровский
как можно сделать сейчас? а просто, обернуть все функции класс. И получить ссылку на него где нужно
20:18
ага я понял, там не сижу
20:19
а можно тогда указать на ответы там на такие предложения?
20:21
Читаю, вон Роман тоже самое советует))
I
20:21
Igor
Общий ответ что это неудобный синтаксис (и object{} и тем более в component object {})
А сама фичу вроде простая для исполнения (просто не продвигается тк мало людей пишут большые программы в функ. стиле на Kotlin).
АЖ
20:26
Алексей Жингеровский
ну даже если фича и простая то не значит что её нужно сделать...
теоретически такое можно сделать и в комбинации с

псевдо код:
@file:JvmName("Func")
fun's ....

//usage
typealias f = Func
f.fun1
20:27
Но так не будет компилится конечно )
I
20:27
Igor
На вид какой-то ужастный костыль, плюс на JS/Native скорее всего не заработает
АЖ
20:27
Алексей Жингеровский
согласен
I
20:28
Igor
Вообще надо сделать proposal в KEEP, а дальше умные дяди объяснят почему это не нужно :)
АЖ
20:28
Алексей Жингеровский
Вот это лучше да. Но а какой юзкейс для таких референсов?
20:28
Object c функциями more then enough для Kotlin/Java ))
I
20:29
Igor
Еще раз это 1) синглтон 2) ограничивает одним файлом (1000 строк не предел да?)
АЖ
20:34
Алексей Жингеровский
В целом я поддержу такое изменение.
Но в clojure оно естественно, тк другого не дано по большей части. Тут это можно решить и так руками.
Ну и ещё пять копеек – коллиззии по имени, не частый зверь(или я не прав?) да и имена фукнций разделены по домену же...
I
22:14
Igor
Вы не думали иконку обновить?
АЖ
22:20
Алексей Жингеровский
Мы тут по ретро
g
22:20
guga
In reply to this message
Самая годная же.
SZ
22:23
Sergey Zolotov
22:23
всяко лучше этой)
g
22:24
guga
I
22:24
Igor
Эх, хотел бы я под Android писать на Haskell 😐 (а приходится на котлин)
g
22:24
guga
На скале можешь
22:25
И был же какой-то хаскель не JVM.
I
22:25
Igor
In reply to this message
Нет это уже перебор 😂
22:25
Старый это Frege и появился новый Eta - ниодин не смог на Android запустить
ST
22:26
Sasha Tainyuk
In reply to this message
с топором и вилами стоят?))
М
22:29
Михаил
In reply to this message
кто то ваще на джаве пишет и начальство заставляет на xamarin переходить
I
22:30
Igor
Там хотя бы есть F#
Roman Belov invited Roman Belov
QH
23:34
Quantum Harmonizer 🍵 [offline]
In reply to this message
Jaskell, не?
АД
23:35
Алина Долгих
Это вам в функциональный чатик надо :)
QH
23:35
Quantum Harmonizer 🍵 [offline]
У меня мозг подгорал от хаскелоподобного elm, а от Kotlin кайфую)
АЖ
23:37
Алексей Жингеровский
Котлин для простых работяг же
I
23:37
Igor
In reply to this message
Это шутка? http://www.scdi.org/~avernet/projects/jaskell/ https://en.wikipedia.org/wiki/Jaskell https://github.com/abailly/jaskell (ты автор что-ли?)
Если это когда то и было, то все уже давно сдохло.
23:41
In reply to this message
И все-таки он мультипарадигменный
QH
23:48
Quantum Harmonizer 🍵 [offline]
In reply to this message
Не автор, просто видел в IDEA поддержку)
23:49
In reply to this message
Ну конечно, чисто функциональный или чисто ОО язык хорош только в универе.
SZ
23:49
Sergey Zolotov
I
23:51
Igor
Егор?
SZ
23:52
Sergey Zolotov
он самый, зилот ООП)
QH
23:53
Quantum Harmonizer 🍵 [offline]
23:53
лол) // никого не хочу обидеть
I
23:54
Igor
крендец, уже и из разбора-полетов стикеры сварганили
1 February 2017
RI
00:53
Ruslan Ibragimov
In reply to this message
не то что бы я много кода в таком стиле пишу, с топ левел функциями, но пока не помню чтобы такое происходило. Да даже с классами редкость, и если с классами западло делать обертки, то с функциями - можно просто сделать inline обертку, если реально частый кейс
Boris Vanin invited Boris Vanin
АЖ
11:48
Алексей Жингеровский
Мне такие толки нравятся вот)
DK
12:34
Dzmitry Kalianchuk
Красота. Надо будет прикупить трансляцию
ВБ
12:36
Виталий Бендик
Дорого же) вон говорят что mobius дорогой, а jpoint в два раза дороже)
АД
12:37
Алина Долгих
я вам могу забронировать второй этаж
12:37
(это минским)
RI
12:37
Ruslan Ibragimov
В апреле там не будет холодно?
DK
12:38
Dzmitry Kalianchuk
> Дорого же) вон говорят что mobius дорогой, а jpoint в два раза дороже)
Мобиус норм, я поеду в этом году. Там билет лично присутсвовать, как jpoint трансляция
12:38
>В апреле там не будет холодно?
Дык в Питере пить, для согрева
АД
12:38
Алина Долгих
@HeapyHop не, мы ж там всю зиму работали
12:39
так оно ж в Москве
DK
12:39
Dzmitry Kalianchuk
Jpoint да, мобиус в Питере
12:40
А,все пардон. Вопрос совсем к другому треду относился
АД
12:42
Алина Долгих
да, сори, Dzmitry это я забыла, что нас тут уже не 6 пацанов с района)))
SZ
13:12
Sergey Zolotov
https://kotlinlang.org/docs/reference/using-gradle.html#incremental-compilation
кто-то это юзает? я пытался заюзать, но разницы особой не заметил
D
18:29
Discipuli
Всем привет, надеюсь кто-то использует Kotlin + JavaRx2?
М
18:32
Михаил
Практикую
D
18:37
Discipuli
Мы с тобой уже говорили об JavaRx2, но тут вопрос с выводом типов дженериков компилятором Kotlin. Что-то не так ловко это он делает и приходится именовать интерфейсы(
М
18:39
Михаил
А речь о каких интерфейсах?
D
19:11
Discipuli
Вот смотри, у тебя метод возвращает Single<String>, ты пишешь внутри Single.create { emitter -> /* code */ } и все ок, но стоит тебе к добавить еще один оператор, к прмеру map - просит типизировать лямбду передаваемую в Single.create()
М
19:13
Михаил
есть такое
Roman Chernyak invited Roman Chernyak
RC
19:36
Roman Chernyak
привет! всем!
19:37
начал использовать android extensions
19:37
пишу val regularSignInButton = view.findViewById(R.id.regularSignInBtn)
М
19:37
Михаил
))
RC
19:37
Roman Chernyak
смотрю тип и вижу там View!
М
19:37
Михаил
все правильно
RC
19:37
Roman Chernyak
что это такое? в документации не могу почему-то найти про это =)
М
19:38
Михаил
это платформенный тип
RC
19:38
Roman Chernyak
зачем, я интересно написал про android extensions.. =) он же тут не причем
QH
19:38
Quantum Harmonizer 🍵 [offline]
In reply to this message
с ними findViewById не нужен
RI
19:38
Ruslan Ibragimov
Вот тут можно подробнее узнать https://kotlin.link/articles/JVMLS-2015-Flexible-Types-in-Kotlin.html
RC
19:38
Roman Chernyak
дада
19:39
а что в документации на официальном сайте про это нет?
М
19:40
Михаил
In reply to this message
+++
RC
19:41
Roman Chernyak
In reply to this message
я зря про это написал вообще =) но на самом деле нужно, так как это вью который инфлейтится в коде. или? как оно тогда будет работать?
19:42
In reply to this message
спасибо, именно это я и искал
QH
19:47
Quantum Harmonizer 🍵 [offline]
In reply to this message
любой view, который прикреплён к активити/фрагменту/вьюгруппе
RC
20:16
Roman Chernyak
In reply to this message
в моем случае он не прикреплен
QH
20:19
Quantum Harmonizer 🍵 [offline]
In reply to this message
После view = inflate(...) можно view.whatever
RC
20:24
Roman Chernyak
и что тогда будет?
QH
20:29
Quantum Harmonizer 🍵 [offline]
автоматический findViewById
RC
21:04
Roman Chernyak
In reply to this message
спасибо за ссылку!
21:07
In reply to this message
что-то я не могу найти как это использовать. есть где-то пример кода?
Zalim Bashorov invited Zalim Bashorov
DV
22:06
Denis Vlasov
А с котлином для annotation​ process для Android вместо apt-> kapt надо использовать?
QH
22:08
Quantum Harmonizer 🍵 [offline]
In reply to this message
На оф. сайте, Kotlin Extensions.
22:09
In reply to this message
Да, и generateStubs
DV
22:09
Denis Vlasov
In reply to this message
Подключал в Gradle, а для чего он
22:11
In reply to this message
А он медленнее работает чем apt?
QH
22:19
Quantum Harmonizer 🍵 [offline]
In reply to this message
Как я предполагаю, Kotlin компилируется раньше, чем Java, а generateStubs создаёт методы, которых до компиляции и обработки Java не было бы.
22:19
In reply to this message
Не замерял. Можно код на Java оставить в одном модуле вместе с apt, а код на Kotlin — в другом, с kapt.
2 February 2017
I
16:27
Igor
Господа, как можно добавить aar в проект на gralde 2.14 (гугл не помогает)?
А
16:31
Андрей
это по нормальном в чате по андроиду спрашивать. ааr именно локальный, не с репозиториев?
I
16:32
Igor
Да локальный, что за чат?
АЖ
16:34
Алексей Жингеровский
Можно
А
16:35
Андрей
repositories {
jcenter()
flatDir {
dirs './libs'
}
}


dependencies {
compile (name: 'filename', ext: 'aar')
}
АЖ
16:36
Алексей Жингеровский
Добавить mavenLocal()
I
16:36
Igor
Так и делал, что-то не заработало. Это точно для 2.14 работает с чистой IDEA (не AS)?
А
16:37
Андрей
мой вариант или Алексея?
АЖ
16:37
Алексей Жингеровский
мавенЛокал работает
16:37
я так делаю
I
16:37
Igor
In reply to this message
Твой
АЖ
16:38
Алексей Жингеровский
В модуле которые хотим куда то подлюкчить собираем через
./gradlew build publishToMavenLocal
16:38
подлючаем к другому проекту mavenLocal()
I
16:38
Igor
In reply to this message
У меня вообще только aar файл ( https://github.com/Unity-Technologies/unity-ads-android/releases )
АЖ
16:39
Алексей Жингеровский
ставим депенденси

compile ("io.XXX:YY:1.16.0.14@aar") {
changing = true
}
16:39
аа
А
16:39
Андрей
Мой вариант у меня в студии работал. В идее не пробовал, но там должны быть те же плагины. На сколько я знаю, то в идее руками надо делать синхронизацию с грейдлом
16:41
вариант с мавенЛокал и для скачаных библиотек должен работать
I
16:42
Igor
Ну спасибо за совет конечно, я ее так часто нажимаю что пора на шоткат повесить.
А
16:45
Андрей
а папка, прописанная в блоке flatDir - это точно та папка, куда ты положил aar файл?
16:46
там путь указывается относительно того места, где лежит билд скрипт
I
16:51
Igor
ОК, всем спасибо - все заработало (компильнул gradle из консоли - все поддянулось в IDEA)
А
17:00
Андрей
In reply to this message
I
17:05
Igor
In reply to this message
Спасибо (хотя не люблю андроид - сплошное обсуждение костылей и лайфсайклов).
QH
17:06
Quantum Harmonizer 🍵 [offline]
Во, отличный логотип — "Костыли и лайфсайклы"
SZ
18:02
Sergey Zolotov
в местных вакансиях на дроид начинают появляться упоминания котлина
I
19:14
Igor
А вы откуда?
RI
19:24
Ruslan Ibragimov
Говорят в одной маленькой Минской компании, itransition, нормально форсят Котлин, так что можете сходить на собеседование туда, и спросить про Котлин
SZ
19:26
Sergey Zolotov
In reply to this message
Укр
QH
20:27
Quantum Harmonizer 🍵 [offline]
In reply to this message
[ несмешная шутка про язык "агрессора" ]
SZ
20:28
Sergey Zolotov
м?
QH
20:28
Quantum Harmonizer 🍵 [offline]
хотел пошутить про потенциальную несмешную политическую шутку
SZ
20:28
Sergey Zolotov
а. ну тут вроде русскоговорящее комьюнити. если буду топить на нац языке, это будет как минимум странно)
QH
20:29
Quantum Harmonizer 🍵 [offline]
не, я про Котлин
I
21:22
Igor
А вообще кто-нибудь пытается юзать Kotlin не как "better java"?
Помнится на jetconf РусланИ показывал примеры функ. программирование в Kotlin - кто-нибудь проникся?
S
21:53
Shushper
Народ, как в котлине создать переменную, которая будет потом использоваться в качестве индекса при итерации по массиву. Сейчас попробую в картинках показать чо я хочу.
21:53
21:54
21:54
М
21:54
Михаил
короч надо джавовский for с итератором?)
S
21:55
Shushper
ну не совсем, наверное ))
21:55
надо иметь переменную за пределами for, чтобы они использовалась как индекс
М
21:55
Михаил
ну надо аналог с первого скрина?
S
21:55
Shushper
ну да
М
21:55
Михаил
ща
S
21:56
Shushper
На второй картинке я показал как котлине приходится вручную ее инкрементировать. Конечно не старшно, но хочется без этого.
М
21:56
Михаил
там есть для этого конструкция
I
S
21:57
Shushper
Можно конечно. Но задача не найти индекс))) Задача использовать внешнуюю переменную)))
М
21:58
Михаил
val list = arrayListOf("10", "11", "1001")
for ((index, element) in list.withIndex()) {
println("$index: $element")
}
21:58
вот пример
S
21:59
Shushper
да, но index является внутренне переменной по отношению к блоку for
21:59
за пределами for у меня нет к ней доступа
I
21:59
Igor
юзай while
А
22:02
Андрей
In reply to this message
в данном примере j в ифе можно присвоить значение индекса
М
22:03
Михаил
In reply to this message
понял теперь о чем речь) похоже на то, что такое нельзя.
А
22:04
Андрей
хотя в примере реално indexOf делается. так что еще и от задачи зависит какие под нее альтернативы подобрать можно.
S
22:06
Shushper
In reply to this message
Ну да. В Javа, если цикл не прервется, то j будет равна arr.length. Можно, например, в котлине ее инициализировать сразу размером массива, и если цикл прервался, присвоить j индекс.
22:07
Но все равно это копирование значения индекса в другую переменную. В итоге, получается, нельзя использовать заранее объявленную переменную в качестве индекса в for?
S
22:34
Shushper
In reply to this message
Кстати, оказывается совет с while вполне годный. Спасибо!
3 February 2017
Евгений Вабищев invited Евгений Вабищев
Dmitry Tsydzik invited Dmitry Tsydzik
DT
14:55
Dmitry Tsydzik
продублирую вопрос
14:55
inline fun <reified T> cls(): Class<T> = ?
14:55
возможно ли такое реализовать?
IR
14:58
Igor Ramazanov
Хм, а разве итак нельзя в рантайме вытащить объект класса инстанса и сделать с ним все что угодно?
М
14:59
Михаил
In reply to this message
кейс бы поконкретнее
RI
15:00
Ruslan Ibragimov
inline fun <reified T : Any> cls(): Class<T> = T::class.java
15:00
а что так не работает?
DT
15:15
Dmitry Tsydzik
чтоб такое делать, нужно дополнительным параметром передавать или объект, или класс. хочу обойтись без них
15:15
конкретная задача - хочу сократить запись
val field: Field<SomeType> = DSL.field(DSL.name("someName"), SomeType::class.java)
до
val field: Field<SomeType> = "someName".asField()
15:15
внезапно не работает T::class.java
15:16
как тут исходники форматировать?
D
15:17
Discipuli
inline fun <reified T : Any> T.cls(): Class<T> = T::class.java
15:17
Работает, проверил. Внес лишь правку одну
DT
15:19
Dmitry Tsydzik
мне нужен экстеншн-метод от строки, а не от Т
D
15:19
Discipuli
inline fun <reified T : Any> T.cls(): Class<T> = javaClass
15:20
Та оно для всего работает, это дженерик!
RI
15:20
Ruslan Ibragimov
но тогда у тебя T = String)
DT
15:20
Dmitry Tsydzik
inline fun <reified T> String.cls(): Class<T> = ?
15:21
усложним задачу)
D
15:21
Discipuli
In reply to this message
Стоп. Ты не внятно говоришь что ты хочешь. Видимо ты спрашиваешь о другом
15:21
Четко опиши задачу
DT
15:23
Dmitry Tsydzik
ок. нужна реализация метода
inline fun <reified T> cls(): Class<T> = ?
где cls() не является extension-методом
ВБ
15:24
Виталий Бендик
тогда как ты планировал делать так
"someName".asField()

?
D
15:24
Discipuli
inline fun <reified T : Any> String.asField() = DSL.field(DSL.name(this), T::class.java)
15:24
In reply to this message
вот тут и не является
15:25
In reply to this message
А вот это экстеншен к строке, как ты и хочеш
RI
15:25
Ruslan Ibragimov
Дима, я понимаю что вся проблема с тем как из T сделать соответвующий тип?
DT
15:25
Dmitry Tsydzik
ага
D
15:26
Discipuli
In reply to this message
Такое проверь (я не могу этого сделать)
DT
15:26
Dmitry Tsydzik
причем, как ты мог заметить, самый очевидный вариант
inline fun <reified T : Any> cls(): Class<T> = T::class.java
не работает
15:27
Он работает,
DT
15:28
Dmitry Tsydzik
а где у меня в условии T.cls()?
D
15:28
Discipuli
In reply to this message
Ты знаком с тем как работют дженерики?
15:28
и что такое дженерик метод?
DT
15:28
Dmitry Tsydzik
да
D
15:28
Discipuli
In reply to this message
Проверь
15:29
Но понятие "экстеншена" ты употребил инверсивно.
15:31
Вытаскивает
DT
15:34
Dmitry Tsydzik
Вот это то, что надо. Спасибо
D
15:34
Discipuli
Дак я сразу написал же. Единственное, что всех сбило, это то что ты хочешь экстеншен, а пишешь, что это должен быть не экстеншен.
DT
15:36
Dmitry Tsydzik
Меня сбило то, что первый вариант был экстеншеном от Т. А это могло влиять на поведение
15:38
А на ': Any' я не обратил внимания
QH
18:52
Quantum Harmonizer 🍵 [offline]
Скажите, что я делаю не так?
println(c.time)
println(SimpleDateFormat("dd MMMM YYYY г. в HH:MM", Locale.getDefault()).format(c.time))

Sat Dec 31 12:00:00 MSK 2016
31 декабря 2017 г. в 12:12
DT
18:53
Dmitry Tsydzik
мб HH:mm?
RI
18:54
Ruslan Ibragimov
+1
QH
18:54
Quantum Harmonizer 🍵 [offline]
мб, только вот год не тот)
М
18:55
Михаил
Объясните. Нормально, что с сервера приходит дата типа 2016-00-00?
QH
18:55
Quantum Harmonizer 🍵 [offline]
In reply to this message
Да, спасибо, минуты исправил. А с годом фигня какая-то.
RI
18:55
Ruslan Ibragimov
@Harmonizr покажи что за c
QH
18:56
Quantum Harmonizer 🍵 [offline]
In reply to this message
ну, терпимо
М
18:56
Михаил
В чем прикол?)
RI
18:56
Ruslan Ibragimov
In reply to this message
месяц часто zero based
QH
18:56
Quantum Harmonizer 🍵 [offline]
In reply to this message
Ещё один прикол в том, что с должен быть 1 января.
val c = Calendar.getInstance()
c.set(Calendar.DAY_OF_YEAR, 0)
c.set(Calendar.HOUR_OF_DAY, 0)
c.set(Calendar.MINUTE, 0)
c.set(Calendar.SECOND, 0)
c.set(Calendar.MILLISECOND, 0)
println(c.time)
c.add(Calendar.HOUR, 12)
println(c.time)
println(SimpleDateFormat("dd MMMM YYYY г. в HH:mm", Locale.getDefault()).format(c.time))
RI
18:56
Ruslan Ibragimov
но чтобы день...
BV
18:57
Boris Vanin
dd MMMM yyyy г. в HH:mm
18:57
отлично работает, здравствуйте
QH
18:58
Quantum Harmonizer 🍵 [offline]
Точно, спасибо
RI
18:58
Ruslan Ibragimov
в том числе поэтому в новом коде за SimpleDateFormat нужно бить по рукам
BV
18:58
Boris Vanin
да, только java.time, только хардкор
QH
18:58
Quantum Harmonizer 🍵 [offline]
Остался один вопрос: почему нулевой день — это 31 декабря?
М
18:58
Михаил
Парсит так
QH
18:58
Quantum Harmonizer 🍵 [offline]
In reply to this message
извините, у нас андроед
BV
18:59
Boris Vanin
соболезную
QH
18:59
Quantum Harmonizer 🍵 [offline]
In reply to this message
так не парсит, я явно отматываю календарь в нулевой день
RI
18:59
Ruslan Ibragimov
In reply to this message
так это, никто joda time не поддерживает для андроида?
19:00
или тащить дорого такую либу
QH
19:01
Quantum Harmonizer 🍵 [offline]
In reply to this message
вроде 6к методов, многовато
М
19:02
Михаил
За то чтобы спарсить дату 6к?)))))
19:02
Неплохо
QH
19:02
Quantum Harmonizer 🍵 [offline]
The first day of the year has value 1.
ничоси!
BV
19:03
Boris Vanin
/**
* Field number for <code>get</code> and <code>set</code> indicating the day
* number within the current year. The first day of the year has value 1.
*/
public final static int DAY_OF_YEAR = 6;
19:03
ой, тута уже написали
ВБ
19:04
Виталий Бендик
In reply to this message
За это бьют по рукам)
QH
19:11
Quantum Harmonizer 🍵 [offline]
In reply to this message
временем сборки, как минимум)
BV
19:23
Boris Vanin
а кто-то в проде котлин использует?
RI
19:23
Ruslan Ibragimov
Пишу для прода с релиза)
BV
19:24
Boris Vanin
для андроида?
D
19:26
Discipuli
А в чем страх. Вы пишите в IDE частично написанной на Kotlin, как и другие продукты JetBrains
RI
19:28
Ruslan Ibragimov
Нет, для бэкенда
19:29
Ну и сейчас втащил в другой проект, тоже бекенд
19:29
Потому что нету никаких сил писать на java
BV
19:29
Boris Vanin
😊 понимаю
19:30
не так-то это просто — убедить людей, что это удобно и вообще лучше джавы
SZ
19:44
Sergey Zolotov
да ладно
19:45
ну только если это не @dmsol
I
20:14
Igor
In reply to this message
Да - игру пишим (может когда выйде похвастаюсь ссылью).
В принципе даже получается много кода писать в функ. стиле, но конечно не ядро игры, оно OOP.
Жду релиза 1.1 что бы async/await и typealias затащить.
SZ
20:16
Sergey Zolotov
чисто интересно, почему не скала?)
I
20:19
Igor
По правде - знал только Java/C# и быстро выучил Kotlin (хотя он меня расстраивает своей ориентированностью на java-разработчиков, уже хочется большего).
Ну и конечно размер рантайма, тулинг и др очевидные причины.
BV
20:24
Boris Vanin
Свой движок или сторонний какой?
I
20:24
Igor
libgdx
BV
20:24
Boris Vanin
Так и думал
I
20:25
Igor
Очевидно же

У меня все мысля ходит, написать на нем _приложение_, ведь там есть базовый набор контролов + kotlin dsl для UI.
Из плюсов: кросплатформенность и тестирование/отладка без эмуляторов.
BV
20:25
Boris Vanin
Я просто на досуге занимаюсь движком который должен а итоге быть полностью на котлине и имеет возможность собирать еще в жс
20:27
С rx, биндингами, di и другим преферансом
20:28
Да, склетное приложение не помню как называется, сделано на нем, но там явно не голый либгдх
I
20:35
Igor
In reply to this message
Такой то мейнстрим: RX + MVVM + DI (наверное Dagger2).

Когда же уже народй перейдет на функциональное программирование на JVM/Android?
Был бы нормальный haskell под android, наверное ушел бы на него 😆
М
20:39
Михаил
In reply to this message
в чем выгода от такого перехода?
BV
20:40
Boris Vanin
Функциональный подход пока не для геймдева
20:41
Слишком много состояний
I
21:07
Igor
In reply to this message
Для динамической игры точно никакого.
А вот статичные окна (меню/настройки/магазин) можно спокойно сделать.

В том же Xamarin есть поддержка F#.
BV
21:20
Boris Vanin
In reply to this message
а как функциональный подход для окон использовать?
I
21:28
Igor
Знаете как работает ReactJS и компоненты в нем?
BV
21:44
Boris Vanin
ну да, в общих чертах
21:46
но я бы в полной мере функциональным этот подход не назвал
21:57
вроде, по сути там самые обычные компоненты, и биндинги в шаблонах, чего-то такого особо функционального там не помню
I
21:59
Igor
Конечно в основном на функциях и у нас сделана бизенс-логика (авторизация/покупки/логика показы рекламы 🙃).
Компоненты просто мапят данные из функций в UI контролы (там и биндига никакого нет в понимании MVVM).

Можно было бы сделать более функ. код с подходом Redux, но мне это кажется слишком радикальным.
BV
22:05
Boris Vanin
всё равно не понял, почему он функциональный :-)
22:10
наверное в какой-то мере функциональным подходом можно называть биндинги, javafx довольно хороший пример
4 February 2017
RI
00:16
Ruslan Ibragimov
In reply to this message
прошелся по нашим докам, и нашел где DD вместо dd используется. Пошел на сервак посмотреть логи, а там
М
00:26
Михаил
33 февраля
00:26
Норм
RI
00:31
Ruslan Ibragimov
Самое смешное что у меня сильное дежавю, и вправду, не я один такой https://twitter.com/shipilev/status/827125162608824321
ST
07:29
Sasha Tainyuk
In reply to this message
У кого-то праздники явно удались)
5 February 2017
Alexander Molkov invited Alexander Molkov
Vitaliy Oskalenko invited Vitaliy Oskalenko
YO
17:20
Yuri Orlov
17:20
коллеги, а подскажите, куда конкретно этот флаг надо писать?
17:21
собираю gradle`ом
17:25
compileKotlin {
kotlinOptions {
jvmTarget = "1.8"
}
}
17:25
попробуй
YO
17:28
Yuri Orlov
попробовал, не помогло
p
17:54
pplcf
в самой ИДЕ то 1.8 стоит?
17:54
Project Structure -> Project SDK
17:55
там еще Language level 8 поставь
М
18:44
Михаил
вышла финальноая версия Kotlin in Action
18:44
никто не в курсе, там сильно много поменялось? стоит перечитать?
YO
20:51
Yuri Orlov
In reply to this message
да, все так
6 February 2017
Orkhan Guseynov invited Orkhan Guseynov
p
09:10
pplcf
In reply to this message
Language level в 8 выставил?
09:10
Restart & Invalidate Caches
Ruslan Kishai invited Ruslan Kishai
АЖ
15:40
Алексей Жингеровский
15:40
Чёт затупил что не нравится
15:41
Вот тут ответ ;)
ВГ
15:50
Влад Гаевский
на хабре еще статья была))
15:51
короче у тебя там T обявлено как выходящий дженерик тип (из которого можно брать), в этом случае он ковариантный, если я правильно помню
15:51
короче, мне и самому перечитать не мешает)
АЖ
15:53
Алексей Жингеровский
Ну вот про out in я наверное раз пять читал когда знакомился с котлином, но там у меня нету места для in
15:53
class PaginationResult<out T>(val page: Int, val total: Int, val data: List<T>)
RI
15:54
Ruslan Ibragimov
Хм, а листе ты конкретно T используешь?
15:54
out T
АЖ
15:55
Алексей Жингеровский
эм, да
15:55
но я не работаю с элементами
15:55
просто PaginationResult.data
15:56
поэтому у меня и возник вопрос, wtf?
15:57
сделал как в джавке