These are chat archives for rus-speaking/android-off-topic

16th
Sep 2015
Victor
@matrecs
Sep 16 2015 06:48
@atetc только не понял. ресурс все еще не запустили? оО
@atetc я о http://level90.ru/
Rustem Saitkulov
@atetc
Sep 16 2015 06:49
Ой не в курсе
Это к Тинькову, он спец по стартапами, навангует
Toporik
@Toporik
Sep 16 2015 10:16
о level90 имхо стартап для срубания бабла.
Victor
@matrecs
Sep 16 2015 10:17
@Toporik why so serious?
@Toporik основатель - основатель лингуалео, глядишь что нибудь да получится
из lingualeo получился неплохой продукт. сам им пользовался, пока не перешел на duolingo
только мне было бы любопытней если бы они шли в какую нибудь необычную отрасль
т.к. всяких курсов по предпринимательству и смежным дисциплинам в достатке
а вот на курсы резьбы по дереву\кости, фехтовальному мастерству, гидропонике я бы поглядел :D
добавить туда так волнующий всех последнее время легальный фриланс
вот это было бы любопытно
как там говорят в интернетах, "ябпроинвестировал"
arnoid
@arnoid
Sep 16 2015 10:22

добавить туда так волнующий всех последнее время легальный фриланс

Легальное беженство всех волнует в последне время

Victor
@matrecs
Sep 16 2015 10:23
от легального фриланса до легального беженства один шаг
засветился - > поймал job offer - > завел трактор - > поехал
Rustem Saitkulov
@atetc
Sep 16 2015 10:28
:pig: :tractor:
Victor
@matrecs
Sep 16 2015 10:30
самое простое - в новую зеландию, если память мне не изменяет. туда просто с удовольствием тянут it-шных специалистов.
Toporik
@Toporik
Sep 16 2015 10:31
"основатель - основатель лингуалео" не вижу в этом факте ничего положительного :)
нюзиланд - это если не надо будет часто к родственникам мотаться иначе ой как дорого будет поездочка выходить
друг рассматривал миграцию туда - очень оттуда сложно выцарапываться, даже с учем тех ЗП.
Victor
@matrecs
Sep 16 2015 10:34
@Toporik ну не знаю, я был на его выступлениях, впечатления мирового зла и безысходности он не производит.
Toporik
@Toporik
Sep 16 2015 10:36
причем тут мировое зло и безысходноть, просто это стартап для зарабатывания бабла владельцами, "обучение" тут на втором месте. Хочешь учиться иди в универ или в место, которое профильно занимается тем что тебе надо.
Vladimir Mironov
@nsk-mironov
Sep 16 2015 10:37
Потому что в наших университетах реально учат чему то
Victor
@matrecs
Sep 16 2015 10:38
странные вы люди
стартап сам по себе предполагает получение прибыли
Toporik
@Toporik
Sep 16 2015 10:38
"Курсы, которые мы запустим первыми Курс для руководителей «Босс уровня 90» курс для предпринимателей «Предприниматель уровня 90» " дальше собственно можно не читать - самые разводиловские курсы
"стартап сам по себе предполагает получение прибыли" - пелядь, а я о чем :)
Victor
@matrecs
Sep 16 2015 10:39
так это призыв вообще не начинать бизнеса в интернете?
Toporik
@Toporik
Sep 16 2015 10:39
нет это призыв не заниматься херней воверы чертовы :)
Victor
@matrecs
Sep 16 2015 10:43
в общем ладно, не важно. похоже что я начинал говорить о том же и мы не поняли друг друга.
Rustem Saitkulov
@atetc
Sep 16 2015 10:57

стартап сам по себе предполагает получение прибыли

Ничоси!

@mydigitalself @trevorah Hi! Also we want to be able to upload custom smiles like in Slack :)
alt
Mike Bartlett
@mydigitalself
Sep 16 2015 11:02
it's not on our short term plans, but we do hear a few people asking for this, so something for the future.
Rustem Saitkulov
@atetc
Sep 16 2015 11:02
ok, thanks
Vadim Lman
@lman
Sep 16 2015 11:06
@matrecs откуда инфа про новую зеландию?
Victor
@matrecs
Sep 16 2015 11:08
@lman интересовался на эту тему, плоды гуглежа и поиска информации. плюс есть как минимум два товарища которые сейчас там живут и работают.
Vadim Lman
@lman
Sep 16 2015 11:09
@matrecs знаешь где вакансии посмотреть для NZ? Как товарищи туда уехали (их схантили или они напросились)?
Victor
@matrecs
Sep 16 2015 11:11
@lman один уехал по вакансии на hh, один попался на хантеру на монстре.
а вакансии - все в гугле, у нз нет вроде центрального сайта
мне в этом плане понравилась иралндия, они оформили уютный сайт http://www.jobs.ie/
Victor
@matrecs
Sep 16 2015 11:17
@lman уже готовите трактор?)
Vadim Lman
@lman
Sep 16 2015 11:17
@matrecs пока просто интересуюсь
takigava
@takigava
Sep 16 2015 11:35
Вопрос, как в github узнать email человека??
Pavel Mukhanov
@pavel-mukhanov
Sep 16 2015 11:42
надеюсь что никак
takigava
@takigava
Sep 16 2015 11:44
)))
Victor
@matrecs
Sep 16 2015 11:47
@takigava по гитхабу, вроде нельзя, только если парень сам не открыл почту в настройках профиля
@takigava если только как кулхацкер поискать в сети по профилю гитхаба и найти связанный аккаунт на сервисе Х и посмотреть там.
takigava
@takigava
Sep 16 2015 11:53
Мой issue по android gitter клиенту добавили к гифкам, видео, код блокс)))Юпи))
Там тоже народ жалуется насчёт возможности показывать скрывать
И в общаке добавил ссылку на шикарный online json parser, который строит дерево с разноцветными параметрами, и вообще ми ми ми..))
Victor
@matrecs
Sep 16 2015 11:56
json parser который мимими :D
так могут только программисты :D
Pavel Mukhanov
@pavel-mukhanov
Sep 16 2015 11:56
@takigava что за парсер?
Pavel Mukhanov
@pavel-mukhanov
Sep 16 2015 11:58
чего то он не очень работает
всмысле сайт
Rustem Saitkulov
@atetc
Sep 16 2015 12:00
+
takigava
@takigava
Sep 16 2015 12:01
@pavel-mukhanov Какой сайт?
Pavel Mukhanov
@pavel-mukhanov
Sep 16 2015 12:01
Nikolay Kucheriaviy
@Ne1c
Sep 16 2015 12:02
Кто може объяснить что такое бизнес-логика и бизнес-модель?
takigava
@takigava
Sep 16 2015 12:03
@pavel-mukhanov alt
Kirill Ashikhmin
@KirillAshikhmin
Sep 16 2015 12:08
@pavel-mukhanov аналогично
Pavel Mukhanov
@pavel-mukhanov
Sep 16 2015 12:11
я пользуюсь вот этим http://pro.jsonlint.com/
не такой няшный, но безотказный
takigava
@takigava
Sep 16 2015 12:16
Я не понимать....На прошлой неделе работало, на этой нет...А на вкладке у меня видимо кэш сидел, вот он и работал..(((
Rustem Saitkulov
@atetc
Sep 16 2015 12:16
@pavel-mukhanov кидай в каментом к его посту, в одном месте давайте полезноту такую собирать
Sergey Yaremych
@sergeyfitis
Sep 16 2015 12:20
@pavel-mukhanov мне нравится https://jsonblob.com/
Pavel Mukhanov
@pavel-mukhanov
Sep 16 2015 12:30
@sergeyfitis неплохой
у нас api немаленькие json’ы генерит и этот blob довольно быстро их парсит
Rustem Saitkulov
@atetc
Sep 16 2015 13:19

мне нравится https://jsonblob.com/

кто-то у кого-то скомуниздил http://www.jsoneditoronline.org/

Victor
@matrecs
Sep 16 2015 13:22
@atetc кто то у кого то нафоркал
Rustem Saitkulov
@atetc
Sep 16 2015 13:24

Кто може объяснить что такое бизнес-логика и бизнес-модель?

ИМХО модель это более обобщенное слово, зависит от контекста, но для меня это скорее относится к методу как бизнес зарабатывает с кастомеров (подписка, апсейлы, фремиум и т.п.)

Pavel Mukhanov
@pavel-mukhanov
Sep 16 2015 13:24
This message was deleted
Nikolay Kucheriaviy
@Ne1c
Sep 16 2015 13:25
@atetc всё равно не понял) просто видел что эти слова употребляются когда речь идёт о приложении и его архитектуре
Pavel Mukhanov
@pavel-mukhanov
Sep 16 2015 13:25
@atetc кто то у кого то нафоркал
обычное дело
arnoid
@arnoid
Sep 16 2015 13:26
Модель - это набор правил/суб-моделей
например:
Модель солнечной системы имеет правило: все компоненты модели вращаются вокруг общего центра масс
этому следуют все планеты и субсистемы планета + спутник
а то, что какие-то сейлсы добавили приставку "бизнес-“ ничего не меняет
Nikolay Kucheriaviy
@Ne1c
Sep 16 2015 13:29
@arnoid ну а бизнес-логика в приложении?
arnoid
@arnoid
Sep 16 2015 13:29
@Ne1c набор правил
набор требований, при котором модель может/должна существовать
бизнес-логика - это логика приложения, за которую вам заплатят. Есть бизнес-требование “кликнул на кнопку - увидел фотачку” - как это будет реализовано - глубоко насрать
логика с точки зрения бизнеса
Nikolay Kucheriaviy
@Ne1c
Sep 16 2015 13:31
тогда к чему приставка "бизнес" я не понимаю
arnoid
@arnoid
Sep 16 2015 13:32
логика с точки зрения бизнеса
Nikolay Kucheriaviy
@Ne1c
Sep 16 2015 13:32
а бизнес это деньги
так?
arnoid
@arnoid
Sep 16 2015 13:32
допустим
Pavel Mukhanov
@pavel-mukhanov
Sep 16 2015 13:33
какие деньги, причем тут деньги вообще?
arnoid
@arnoid
Sep 16 2015 13:33
при том, что это требования от деньги-имущих
Pavel Mukhanov
@pavel-mukhanov
Sep 16 2015 13:33
необязательно
arnoid
@arnoid
Sep 16 2015 13:34
@pavel-mukhanov , например?
Pavel Mukhanov
@pavel-mukhanov
Sep 16 2015 13:34
я могу сам свой проект запилить, и в нем будет полно бизнес логики
Vasily Styagov
@VasyaFromRussia
Sep 16 2015 13:34
@pavel-mukhanov там будет нищеброд-логика
Victor
@matrecs
Sep 16 2015 13:34
это уже буквоедство
arnoid
@arnoid
Sep 16 2015 13:34
в данном случае ты выступаешь “заказчиком” и формируешь бизнес-требования
Victor
@matrecs
Sep 16 2015 13:35
имеется в виду требования заказчика, тобишь "бизнеса"
@arnoid в точку
arnoid
@arnoid
Sep 16 2015 13:35
@matrecs ;) ну дык аналитик епт
Vladimir Abramov
@kivsiak
Sep 16 2015 13:35
не смущай человека. бизнесс-логика - она же логика предметной области. то что программа должна делать.
бизнес-модель вообще тебя касаться не должна - если ты не занимаешься экономикой продукта
Nikolay Kucheriaviy
@Ne1c
Sep 16 2015 13:36
мда, у каждого свой вариант что это такое)
Victor
@matrecs
Sep 16 2015 13:36
@Ne1c да нет, просто сложно сформулировать точное определение
@Ne1c все говорят об одном и том же
Vladimir Abramov
@kivsiak
Sep 16 2015 13:37
не говоря уж о том что это контекстнозависимые опредления
Pavel Mukhanov
@pavel-mukhanov
Sep 16 2015 13:37
@kivsiak логика предметной области - самое лучшее определение пока
arnoid
@arnoid
Sep 16 2015 13:37

@kivsiak а вот к вашему комментарию добавлю контекст

хотел намекнуть на это же ;)

This message was deleted
Nikolay Kucheriaviy
@Ne1c
Sep 16 2015 13:41
@pavel-mukhanov и самое ясное
arnoid
@arnoid
Sep 16 2015 13:41
Так начнем же срач за определение предметной области!
Herobbo
@Herobbo
Sep 16 2015 14:10
Что то я очень пристрастился не объявлять в начале Бутоны Текствюви и прочее в начале, а сразу писать findViewById непосредственно перед их использованием. Это не считается дурной практикой, в смысле влияет ли на производительность или еще что))
Vadim Lman
@lman
Sep 16 2015 14:12
влияет, считается
если ты несколько раз делаешь findViewById для одной кнопки
Herobbo
@Herobbo
Sep 16 2015 14:13
Нет, везде только один раз...
Vadim Lman
@lman
Sep 16 2015 14:13
тогда норм
влияет только на читаемость
Herobbo
@Herobbo
Sep 16 2015 14:14
@lman Ну я думаю это г**код я не буду никому показывать))
Vadim Lman
@lman
Sep 16 2015 14:15
@Herobbo butterknife не пробовал?
Herobbo
@Herobbo
Sep 16 2015 14:15
@lman Нет а что это?
@lman А, все прочитал... Кстати хорошая альтернатива против рутины..
Sergey Yaremych
@sergeyfitis
Sep 16 2015 14:17
@Herobbo активно использую в проектах, очень нравится
Kirill Ashikhmin
@KirillAshikhmin
Sep 16 2015 14:24
@Herobbo findViewById затратный метод, паттерн ViewHolder и появился для того, что бы снизить количество вызовов этого метода. Если вьюху используешь несколько раз, то findViewById вызывать максимум 1 раз надо, если больше, то дар по производительности.
Herobbo
@Herobbo
Sep 16 2015 14:25
@BOOMik Буду знать теперь)
Sergii Pechenizkyi
@plastiv
Sep 16 2015 14:41
findViewById делает поиск в ширину и не затратнее цикла с худшим случаем N ifов, где N - количество вьюх в лейауте. Если вы не делаете монструозные экраны, то сделать 10-20 if viewId == askedId не составляет труда для процессора ; )
А ViewHolder часто путают с ресайклингом вьюшек в листвью и паттерном пула обьектов для снижения стоимости их создания путем переиспользования.
Herobbo
@Herobbo
Sep 16 2015 14:43
@plastiv Эх... Дошол бы мой опыт программирования до создания монструозных экранов))
Vladimir Mironov
@nsk-mironov
Sep 16 2015 14:44
только поиск не в ширину, а в глубину
Kirill Ashikhmin
@KirillAshikhmin
Sep 16 2015 14:46
@plastiv однако зачем этот цикл запускть несколько раз, когда можно вынести в переменную?)
Sergii Pechenizkyi
@plastiv
Sep 16 2015 14:47
Прочекал сорцы. Таки поиск в глубину, а не в ширину! Спасибо. На итоговую сложность не влияет.
@BOOMik вы похоже из лагеря противников enum ;)
Зачем писать
for (Item item : items), когда можно написать for (int i = 0, size = items.size(); i < size; i++) ?
Kirill Ashikhmin
@KirillAshikhmin
Sep 16 2015 14:49
@plastiv Не, за enum. Но и производительнее и проще найденную вьюху вынести в переменную, чем всюду писать ((TextView) findViewById(R.id..textView)) =)
arnoid
@arnoid
Sep 16 2015 14:49
или же
Iterator<T> it = items.iterator()
while(it.hasNext()) {
    it.next();
}
Vladimir Abramov
@kivsiak
Sep 16 2015 14:50
у нас тут объявили конкрус говнокода?
Sergii Pechenizkyi
@plastiv
Sep 16 2015 14:50
@arnoid в вашем сниппете всегда будет создан обьект - Iterator. даже если items пустая коллекция. Что крайне нееффективно, если у вас часто бывает пустая коллекция) На тысячах конечно не заметно
Kirill Ashikhmin
@KirillAshikhmin
Sep 16 2015 14:51
@arnoid порой приходится использовать интератор. Например дабы удалять элементы из списка
Vadim Lman
@lman
Sep 16 2015 14:51
@plastiv for (Item item : items) здесь тоже используется итератор
Kirill Ashikhmin
@KirillAshikhmin
Sep 16 2015 14:51
@plastiv А если items == null, тогда вообще NPE можно словить)
Sergii Pechenizkyi
@plastiv
Sep 16 2015 14:53
@BOOMik Ну т.е. копировать весь массив при каждом удалении это ок, а перебрать в цикле два ифа это "недостаточно -маны- производительно" ? ок ;)
Kirill Ashikhmin
@KirillAshikhmin
Sep 16 2015 14:55
@plastiv зачем весь массив копировать?) для foreach? ну тут уж красота кода, foreach красивее чем for, вынести в переменную красивее, чем постоянно писать findViewById =)
Sergii Pechenizkyi
@plastiv
Sep 16 2015 14:55
@lman немогу сказать, что итератор является недостатком. Просто foreach универсальная форма записи, которая может быть соптимизирована если мы точно знаем, что items - ArrayList.
@BOOMik потому что при удалении элемента из ArrayList происходит создание нового массива с N-1 элементами поправочка. там не так все плохо. происходит копирование всех элементов справа от удаленного на одну позицию влева) Т.е. чуть лучше, чем N-1 ))
Kirill Ashikhmin
@KirillAshikhmin
Sep 16 2015 14:56
@plastiv аа
Vladimir Abramov
@kivsiak
Sep 16 2015 14:57
@BOOMik я может и забыл теорию алгоритмов но в ArrayList как правило идет масштабирование кратное 2
Kirill Ashikhmin
@KirillAshikhmin
Sep 16 2015 15:01
@plastiv @kivsiak ок
Vadim Lman
@lman
Sep 16 2015 15:15
@plastiv что насчет оптимизации foreach для arraylist?
Rustem Saitkulov
@atetc
Sep 16 2015 15:17
перекур в оффтоп канале https://www.facebook.com/video.php?v=1023939910971910
Vadim Lman
@lman
Sep 16 2015 16:29
@sergeyfitis так там и говорится что for index быстрее for simple в 2 раза
@sergeyfitis в этой же серии есть видео про то что енумы много жрут
Herobbo
@Herobbo
Sep 16 2015 16:32
Скажите пожалуйста я вот использую несколько таблиц. Нужно ли для каждой таблицы делать отдельный класс SQLiteOpenHelper или можно все в одном?
Ато в проекте происходят странные глюки..
Kirill Ashikhmin
@KirillAshikhmin
Sep 16 2015 16:36
@Herobbo у меня все в 1 и норм
Herobbo
@Herobbo
Sep 16 2015 17:02
Хах... Я и не знал, что курсор нужно закрывать))) Вот где собака зарыта))
Vladimir Abramov
@kivsiak
Sep 16 2015 17:22
@lman договоришься, @JakeWharton в топик призовешь
@Herobbo хелпер нужен чтобы открывать базу. С таблицами ты работаешь на уровне курсоров
@Herobbo это ровно тоже самое что открыть коннект к базе данных в большой яве. И ты можешь огрести интересные вещи с заблокированной базой если отроешь слишком много подключений
что касается открытия / закрытия курсовров. закрывать надо, а если забыл то лог тебе напомнит об этом
Sergey Yaremych
@sergeyfitis
Sep 16 2015 19:28
посмотрите ка кто завел аккаунт разработчика в Google Play и даже опубликовав апп https://play.google.com/store/apps/details?id=com.apple.movetoios . Move to iOS - как-то ожидаемо
Kirill Ashikhmin
@KirillAshikhmin
Sep 16 2015 19:29
@sergeyfitis а скоро появится Apple Music
Vladimir Abramov
@kivsiak
Sep 16 2015 19:29
#скандалИнтригиРасследования ?
Kirill Ashikhmin
@KirillAshikhmin
Sep 16 2015 19:29
Кстати для аккаунта эппл заплатил гуглу 25 баксов, а гугл яндексу уже несколько лет по 100 баксов платит...))
Sergey Yaremych
@sergeyfitis
Sep 16 2015 19:30
очень хочу увидеть, меня не интересует сам сервис, мне очень интересно как они изгалятся на гайдлайнами гугла
Kirill Ashikhmin
@KirillAshikhmin
Sep 16 2015 19:31
@sergeyfitis Ну в этом приложении интерфейс айоси..
Sergey Yaremych
@sergeyfitis
Sep 16 2015 19:31
да, заметил
Vladimir Abramov
@kivsiak
Sep 16 2015 19:36
это хорошая подъебка Ж)
Vladimir Mironov
@nsk-mironov
Sep 16 2015 19:36
for free неинтересно же
вот если бы они скидку например давали
Vladimir Mironov
@nsk-mironov
Sep 16 2015 22:35

Ни у кого случайно не было проблем, чтобы прогуард валился с ошибкой типа

Execution failed for task ':mobile:proguardDevDebug'.
String index out of range: 37

?

Artem Zinnatullin :slowpoke:
@artem-zinnatullin
Sep 16 2015 22:37
сейчас посмотрим этот ваш M13
Vladimir Tagakov
@Tagakov
Sep 16 2015 22:42
@artem-zinnatullin ЯННП, че это?
Vladimir Mironov
@nsk-mironov
Sep 16 2015 22:44
@artem-zinnatullin для меня вот сейчас самое важное - понять, стало ли быстрее собираться, но из-за поломанного прогуарда нихера не разберешь
Vladimir Tagakov
@Tagakov
Sep 16 2015 22:45
@nsk-mironov Уже догадался после твоего ответа @artem-zinnatullin
Спасибо
fasta compilation
Насколько она теперь fasta интересно?
lateinit это как final только первый раз присвоить можно не в конструкторе?
Нашел, сорри
Vladimir Mironov
@nsk-mironov
Sep 16 2015 22:50
lateinit это как Delegates.notNull(), только копмпилируется в поле
Vladimir Abramov
@kivsiak
Sep 16 2015 22:50
пардон, но котлин это там https://gitter.im/rus-speaking/android-kotlin
Vladimir Tagakov
@Tagakov
Sep 16 2015 22:50
Тут матом ругаться можно
Vladimir Tagakov
@Tagakov
Sep 16 2015 22:59

Господа, есть вот вопрос у меня нубский, знаю что некоторые тут книг не читают, поэтому подробно опишу: в Effective Java очень много внимания уделяется безопасности мутабельных объектов и тех кто их использует. Защитное копирование, проверки и все такое. Подробно рассказывается про модификаторы доступа, зачем они важны и тп. И при этом постоянно как аргумент приводится то что злобный хацкер не сможет навредить внутреннему состоянию твоего класса.
Допустим есть такой супер защищенный класс:

public final class ImmutableDate {

  private final Date date;

  public ImmutableDate(@NonNull Date date) {
    this.date = new Date(date);
  }

  public Date getDate() {
    return new Date(date);
  }
}

Вопрос: как все эти танцы защитят от рефлексии?

Vladimir Abramov
@kivsiak
Sep 16 2015 23:00
никак
Vladimir Tagakov
@Tagakov
Sep 16 2015 23:02
Рефлексия же появилась до 1.5. Зачем тогда вообще про это рассказывать? В чем смысл всех этих защитных копирований, который вообще то бьют по производительности, если все это обходится в пару строк.
Artem Zinnatullin :slowpoke:
@artem-zinnatullin
Sep 16 2015 23:07
@Tagakov ну, имхо, защищаться от хакеров которые выполняют свой код в твоим в одном процессе, это бесполезное занятие :)
Если Date immutable, то нафиг не нужно копирование
Vladimir Tagakov
@Tagakov
Sep 16 2015 23:08
Date mutable
Artem Zinnatullin :slowpoke:
@artem-zinnatullin
Sep 16 2015 23:08
а, ну тогда всё правильно написано
про рефлексию просто забудь
Vladimir Tagakov
@Tagakov
Sep 16 2015 23:08
Как так?
Artem Zinnatullin :slowpoke:
@artem-zinnatullin
Sep 16 2015 23:08
?
Vladimir Tagakov
@Tagakov
Sep 16 2015 23:09
Мне не понятно как можно было столько много описывать и прилагать усилий к тому чтобы защитить мутабельные объекты внутри иммутабельных зная при этом что существует рефлексия
«На всякий случай» (с) ?
Vladimir Abramov
@kivsiak
Sep 16 2015 23:10

Есть такой анекдот:

- Почему во всем мире такие некомпетентные правительства? 
- Все компентентные уже работают таксистами и парикхмахерами

шутка шутками но книги тоже не 100% авторитет если это не Кнут или Керниган

Ява изначально была спроектирована для инудских мартышек, и защита расчитана на них
Vladimir Tagakov
@Tagakov
Sep 16 2015 23:11
Мне не нравится то что ты говоришь
Artem Zinnatullin :slowpoke:
@artem-zinnatullin
Sep 16 2015 23:11

Мне не понятно как можно было столько много описывать и прилагать усилий к тому чтобы защитить мутабельные объекты внутри иммутабельных зная при этом что существует рефлексия

Ну если твой класс иммютабл, при этом часть полей мьютабл, то очевидно, их придётся копировать в геттерах.

Vladimir Abramov
@kivsiak
Sep 16 2015 23:11
Если у тебя хватает компетенций разрушить ее рефлексией, у тебя хватаит мозга не делать это
Artem Zinnatullin :slowpoke:
@artem-zinnatullin
Sep 16 2015 23:11
А про рефлекшн забудь и всё
Vladimir Tagakov
@Tagakov
Sep 16 2015 23:16
Вы убили очередную бабочку в моем животе...
Vladimir Abramov
@kivsiak
Sep 16 2015 23:16
@Tagakov что именно не нравится? Я лично считаю яву произведением искусства. Её экосистема когда вчерашний ассенезатор может выдавать результат - гениальна.
При этом до фига места и для грамотных специалистов
Artem Zinnatullin :slowpoke:
@artem-zinnatullin
Sep 16 2015 23:17

@kivsiak

Я лично считаю яву произведением искусства

Ну хз, JVM — да, Java — неееет, очень громоздкий и устаревший синтаксис.

Байткод почти отличен, если бы не type-erasure, ненавижу их за это :(

Vladimir Abramov
@kivsiak
Sep 16 2015 23:18
@artem-zinnatullin это дизайн. чтобы мартышка не могла наделать глупостей
Да и это на андроиде мы застряли в языке пятилетней давности
Vladimir Tagakov
@Tagakov
Sep 16 2015 23:19
@artem-zinnatullin Разные задачи. Громоздкий синтаксис излишне многословный чтобы каждому было понятно что именно происходит. Согласен с @kivsiak
А потом можно двигаться к всякому сахару дальше.
Как страховочные колеса у велосипеда
Artem Zinnatullin :slowpoke:
@artem-zinnatullin
Sep 16 2015 23:20

Да и это на андроиде мы застряли в языке пятилетней давности

Это так, но, скажем, мы пишем с Retrolamda, и я всё равно каждый день плююсь от Java. Хотя язык люблю за прямолинейность и очевидность поведения, это да.

Vladimir Abramov
@kivsiak
Sep 16 2015 23:24
Ну а что делать. Здоровое самоограничение в работе только на пользу идет. Я вот на котлин большие надежды возлагаю. Как преболеет детскими болезнями - будет адекватной заменой
Хотя в соседнем чате early adopters уже во всю используют и тащутся не смотря на проблемы
Vladimir Mironov
@nsk-mironov
Sep 16 2015 23:26
покажите мне, кто тащится то
я вот - страдаю
Artem Zinnatullin :slowpoke:
@artem-zinnatullin
Sep 16 2015 23:26
ну это, я вот рад на котлине писать :)
Просто надо принять и простить, что он еще не 1.0
Vladimir Mironov
@nsk-mironov
Sep 16 2015 23:27
ну писать - это только часть рабочего процесса
Vladimir Abramov
@kivsiak
Sep 16 2015 23:27
кстати ни у кого нет ощущения что котлин для гугла тем же чем и swift для эппла?
Artem Zinnatullin :slowpoke:
@artem-zinnatullin
Sep 16 2015 23:27
да, ещё читаю :)
Vladimir Mironov
@nsk-mironov
Sep 16 2015 23:27
а вот когда нужно скомпилировать, потестить, подебажить - тут уже нихера не в радость
Artem Zinnatullin :slowpoke:
@artem-zinnatullin
Sep 16 2015 23:27
@kivsiak неа
@nsk-mironov да, но никто не заставлял брать до 1.0 :)
Vladimir Tagakov
@Tagakov
Sep 16 2015 23:29
Мое душевное равновесие восстановлено! Можно выключить рефлекшн нахуй
Vladimir Mironov
@nsk-mironov
Sep 16 2015 23:29
SecurityManager то?
Artem Zinnatullin :slowpoke:
@artem-zinnatullin
Sep 16 2015 23:29
Пока кто-то через рефлекшн не успеет тебе выключить выключение рефлекшена :D
Vladimir Tagakov
@Tagakov
Sep 16 2015 23:29
Это не защищает от патчинга памяти или паяльника в заднице. Но спать теперь я могу спокойно.
Да через него
Лол
Нет, хватит. Я хочу спать =)
Vladimir Abramov
@kivsiak
Sep 16 2015 23:30
ну меня вообще как то смущает разговор о защите злобном хакере которой находится с тобой в одном пространстве
Artem Zinnatullin :slowpoke:
@artem-zinnatullin
Sep 16 2015 23:30
я тож не понимаю, от кого защищаемся то?
Vladimir Abramov
@kivsiak
Sep 16 2015 23:31
от васи из соседнего отдела чья либа собирается с твоей в одном варнике
Vladimir Tagakov
@Tagakov
Sep 16 2015 23:31
Не защищаемся - оправдываем надобность в защитном копировании
Artem Zinnatullin :slowpoke:
@artem-zinnatullin
Sep 16 2015 23:32
Так погоди, еще раз:
Vladimir Tagakov
@Tagakov
Sep 16 2015 23:32
Васю можно ректально от рефлексии оградить, с этим проще
Artem Zinnatullin :slowpoke:
@artem-zinnatullin
Sep 16 2015 23:32
У тебя Immutable класс, но в нём есть мютабл поле, конечно его надо копировать в геттере
Vladimir Abramov
@kivsiak
Sep 16 2015 23:32
эм... защитное копирование это в первую очередь чтобы с багами многопоточности бороться
Vladimir Mironov
@nsk-mironov
Sep 16 2015 23:32
иммутабельность и defensive copy это же про защиту от самого себя
Artem Zinnatullin :slowpoke:
@artem-zinnatullin
Sep 16 2015 23:33
+1, тут рефлекшн ни при чём
Vladimir Tagakov
@Tagakov
Sep 16 2015 23:33
А поля приватными зачем тогда делать?
Всмысле я не считаю что не нужно
Боже упаси
Vladimir Abramov
@kivsiak
Sep 16 2015 23:33
затемже. что бы ты писал чистые функции без побочных эффектов
хотя нет. стоп это уже другой холивар...
Artem Zinnatullin :slowpoke:
@artem-zinnatullin
Sep 16 2015 23:34
Всмысле зачем геттеры вместо public final?
Vladimir Tagakov
@Tagakov
Sep 16 2015 23:35
=) Спасибо вам короче, я что-то уже загоняюсь. Создается впечатление что я плакат держу «Паблик морозов! Геттеры, сеттеры, билдеры - не нужны!» Спокойной ночи =)
Artem Zinnatullin :slowpoke:
@artem-zinnatullin
Sep 16 2015 23:35
В плакат завернись, а то замёрзнешь! :D
Vladimir Mironov
@nsk-mironov
Sep 16 2015 23:35
ну геттеры и сеттеры не нужны, так то
Vladimir Abramov
@kivsiak
Sep 16 2015 23:35
это нормально когда теории обчитаешься Ж)
Vladimir Tagakov
@Tagakov
Sep 16 2015 23:36
С теорией я ненадолго завязал. Почитаю пока как пасти котов.
Artem Zinnatullin :slowpoke:
@artem-zinnatullin
Sep 16 2015 23:37
По мне, лучше геттеры (без приставки get), а компилятор/vm пусть инлайнят в обращение к полю, ну это так, набрасываю
Vladimir Abramov
@kivsiak
Sep 16 2015 23:38
ты свою ересь брось, а то так и на c# перейти не долго
Vladimir Mironov
@nsk-mironov
Sep 16 2015 23:39
ну в c# это намного лучше сделано
и в котлине точно так же
плюс в m13 они добавили новый синтаксис для get/set методов из джавы
Artem Zinnatullin :slowpoke:
@artem-zinnatullin
Sep 16 2015 23:40
Шалость наброс удался Ж)
Vladimir Tagakov
@Tagakov
Sep 16 2015 23:40
Potterhead! Potterhead!
Vladimir Mironov
@nsk-mironov
Sep 16 2015 23:40
я вообще кастомную сборку прогуарда собираю, мне не до набросов :D
Artem Zinnatullin :slowpoke:
@artem-zinnatullin
Sep 16 2015 23:42
лол, ну ты упорот, mironov-proguard
Vladimir Mironov
@nsk-mironov
Sep 16 2015 23:42
да я без понятия как его еще отдебажить
Artem Zinnatullin :slowpoke:
@artem-zinnatullin
Sep 16 2015 23:43
написал бы в блог котлина, они б посмотрели
Vladimir Mironov
@nsk-mironov
Sep 16 2015 23:43
я не привык писать “пацаны, нихера не работает"
без каких либо подробностей
Artem Zinnatullin :slowpoke:
@artem-zinnatullin
Sep 16 2015 23:44
сделай маленький проект с воспроизведением баги и напиши
Vladimir Mironov
@nsk-mironov
Sep 16 2015 23:45
чтобы сделать проект, нужно сначала понять в чем баг :)
Artem Zinnatullin :slowpoke:
@artem-zinnatullin
Sep 16 2015 23:45
у меня вот :compileDebugUnitTestKotlin улетает в OOM…
но чёт пока не хочется собирать котлин компилятор…)
Vladimir Mironov
@nsk-mironov
Sep 16 2015 23:46
@artem-zinnatullin нет тестов - нет проблем!
Vladimir Tagakov
@Tagakov
Sep 16 2015 23:46
minifyEnabled false
Artem Zinnatullin :slowpoke:
@artem-zinnatullin
Sep 16 2015 23:46
src/test deleted
Vladimir Abramov
@kivsiak
Sep 16 2015 23:48
Нафиг нафиг. В 2 часа ночи читать эти ужасы так и сна лишиться можно. Как там нотификации на андроиде вырубить?
Vladimir Mironov
@nsk-mironov
Sep 16 2015 23:49
@kivsiak adb shell pm uninstall im.gitter.gitter
Artem Zinnatullin :slowpoke:
@artem-zinnatullin
Sep 16 2015 23:50
@nsk-mironov лол, ты через adb что ли телефон используешь?
Уии, а у меня всё ок теперь на M13
Vladimir Mironov
@nsk-mironov
Sep 16 2015 23:52
@artem-zinnatullin а если прогуард включить?
Artem Zinnatullin :slowpoke:
@artem-zinnatullin
Sep 16 2015 23:54
то печальк
Vladimir Mironov
@nsk-mironov
Sep 16 2015 23:54
та же ошибка?
Artem Zinnatullin :slowpoke:
@artem-zinnatullin
Sep 16 2015 23:55
Execution failed for task ':sample-app:packageDebug'.
> Unable to compute hash of build/intermediates/classes-proguard/debug/classes.jar

@nsk-mironov да, выше посмотрел стектрейс

оно же

java.lang.StringIndexOutOfBoundsException: String index out of range: 37
Давай напишем котлинцам, можно в офис к ним скатать :)
Vladimir Mironov
@nsk-mironov
Sep 16 2015 23:56
а у тебя тестовый проект?
Artem Zinnatullin :slowpoke:
@artem-zinnatullin
Sep 16 2015 23:56
Ну, не то чтобы
Vladimir Mironov
@nsk-mironov
Sep 16 2015 23:56
или что-то реально рабочее
у нас просто миллионы зависимостей
Artem Zinnatullin :slowpoke:
@artem-zinnatullin
Sep 16 2015 23:56
реально недописанное только
у мну тоже
Vladimir Mironov
@nsk-mironov
Sep 16 2015 23:57
я сейчас патыюсь узнать, че это за строка то
на которой он валится
и в логах ничего полезного
Artem Zinnatullin :slowpoke:
@artem-zinnatullin
Sep 16 2015 23:57
@nsk-mironov ну последнее перед крешом я вижу
Warning: retrofit.client.ApacheClient$TypedOutputEntity: can't find superclass or interface org.apache.http.entity.AbstractHttpEntity
А таргет у вас какой? У меня 23
Vladimir Mironov
@nsk-mironov
Sep 16 2015 23:58
не, к таргету 23 мы не готовы еще :)
Artem Zinnatullin :slowpoke:
@artem-zinnatullin
Sep 16 2015 23:58
Может из-за выпиленного Apache Http Client? У нас и без котлина с этим Proguard страдал
тогда не оно