
Nick
24.05.2017
07:45:40
просто у чувака теперь есть Tag)

Grigory
24.05.2017
07:46:11
Tagless

Aleksei
24.05.2017
07:46:38

Grigory
24.05.2017
07:47:17
бекант топчик

Google

Nick
24.05.2017
07:50:13
чет после того футуристичного стула этот стол выглядит не очень

Aleksei
24.05.2017
07:51:12

folex
24.05.2017
08:07:33
Ни у кого не было проблем с тем, что после включения sbt-coursier плагина, sbt assembly начинал сыпать deduplication error? Без coursier всё ок.

Vladimir
24.05.2017
08:11:38
coursier последнее время сомнительно работает вообще

Grigory
24.05.2017
08:13:02
не то что сонительно работает; не работает корректно

Alexander
24.05.2017
08:13:18

folex
24.05.2017
08:13:44

Grigory
24.05.2017
08:13:56
или не резолвит иногда

Dim
24.05.2017
08:14:38
Товарищи, а есть ли чатик по работе/вакансиям по Scala. Ищу удаленку.

Aleksei
24.05.2017
08:15:02
есть

Grigory
24.05.2017
08:15:09
https://t.me/scala_jobs

Aleksei
24.05.2017
08:15:18
но там чот жидко )

Grigory
24.05.2017
08:15:26
+

Google

Grigory
24.05.2017
08:15:41

Aleksei
24.05.2017
08:15:58
Да ибрагим пустослов
говорит напишет

Dim
24.05.2017
08:16:03

Aleksei
24.05.2017
08:16:04
и не пишет

Grigory
24.05.2017
08:16:16
Кого?))
Ибрагим; это имя тебе о чем-нибудь говорит?

Dim
24.05.2017
08:16:32
В общем если кому нужен удаленщик - это я)

Grigory
24.05.2017
08:16:36
и не пишет
мне всегда пишет; инфа 100 + чувак тут в дабаях уже был
ток да; осторожнее с этим) но они удаленщика рассматривают даже на 20 часов (если фуллтайм не можешь).

Aleksei
24.05.2017
08:19:00
да позавчера написал что напишет
и не написал )

Grigory
24.05.2017
08:19:25
странно)
забыть мог

KrivdaTheTriewe
24.05.2017
08:20:06
он не пишет

Aleksei
24.05.2017
08:20:17
Жалко материться нельзя

KrivdaTheTriewe
24.05.2017
08:20:21
хотя оч хочется 20 часов

Grigory
24.05.2017
08:20:23
полковники

KrivdaTheTriewe
24.05.2017
08:20:37

Aleksei
24.05.2017
08:20:41
я уже на него реагирую как на школьного дурачка который всем всегда врет

Google

Grigory
24.05.2017
08:20:43
мемасы из 10го опять

Sergey
24.05.2017
08:20:48

KrivdaTheTriewe
24.05.2017
08:21:05

Grigory
24.05.2017
08:21:17

Alexandr
24.05.2017
08:22:28

Aleksei
24.05.2017
08:23:08
Да в том то и дело что нет пруфов

KrivdaTheTriewe
24.05.2017
08:26:04

Grigory
24.05.2017
08:29:07

Alexander
24.05.2017
08:32:42
Дубаи и Ибрагим. Знакомое сочетание)

Sergey
24.05.2017
08:36:02
А что там у Ибрагима в Дубае ?

Nikolay
24.05.2017
08:36:42

Sergey
24.05.2017
08:36:43
Прогрессивная дев контора ?
А я уже настроился

Alexander
24.05.2017
08:39:53
$10к он не предлагал
сильно меньше

folex
24.05.2017
08:53:18
Хм, а что, value class может быть вокруг чего угодно, не только вокруг примитивов?

Alexandr
24.05.2017
08:55:17
А какой смысл в таких valueClass? Он ведь сам по себе DTO(грубо говоря) становится

Oleg
24.05.2017
09:03:18
Он будет просто подсказкой компилятору, как работать со ссылкой на врапленный объект

Google

Oleg
24.05.2017
09:04:52
Такой стрёмный органичено-применимый аналог newtype ов в хаскелле

Nick
24.05.2017
09:05:04
я вот хотел написать про доп логику для обьектов, но есть ж типа имплиситы

Oleg
24.05.2017
09:05:35
Для других сфер использования можно юзать либу, которую кидал @tvaroh

folex
24.05.2017
09:05:54

Oleg
24.05.2017
09:06:32

KrivdaTheTriewe
24.05.2017
09:07:10
scala> implicit class NoDataI(val self: Int) extends AnyVal {
| def isNoData:Boolean = self == Int.MinValue
| }
defined class NoDataI
scala> implicit class NoDataD(val self:Double) extends AnyVal {
| def isNoData:Boolean = java.lang.Double.isNaN(self)
| }
scala> time("Doubles: overloaded method") {
| var i = 0.0
| while(i < 10000000.0) {
| if(!i.isNoData) { i += 1.0 }
| }
| }
[Doubles: overloaded method] Took: 16 ms
scala> time("Doubles: overloaded method") {
| var i = 0.0
| while(i < 10000000.0) {
| if(!NoData.isNoData(i)) { i += 1.0 }
| }
| }
[Doubles: overloaded method] Took: 31 ms

Oleg
24.05.2017
09:07:12
Но в идеале инстанса этого вэлью класса не создаётся, вместо него вызывается специально-сгенеренный статический метод

Nick
24.05.2017
09:07:20
ты имплиситом это можешь сделать и без вэлью класса
вот вопрос в том, как там себя overrides ведут

Oleg
24.05.2017
09:07:46

folex
24.05.2017
09:07:58

Nick
24.05.2017
09:08:05
implicit def сделаю

Oleg
24.05.2017
09:08:18

Nick
24.05.2017
09:08:26
implicit def

folex
24.05.2017
09:08:33

Nick
24.05.2017
09:08:42
скорее второе или

Google

KrivdaTheTriewe
24.05.2017
09:08:54
меня проигнорировали (

folex
24.05.2017
09:08:55
ну вот тут как раз трейдофф в сахаре
@gurinderu https://gist.github.com/folex/7ed9eb9c9a2526872e96562add9db1fa

Oleg
24.05.2017
09:09:18
implicit def
ну продемонструй, как ты дополнишь любой Any методом foo

Nick
24.05.2017
09:09:41
а речь именно о любом Any?

Oleg
24.05.2017
09:09:53

Nick
24.05.2017
09:10:24
я никого не игнорировал, я прост вопросом юзкеиса value class задался

Oleg
24.05.2017
09:10:46
Чтобы синтаксически можно было вызвать новый метод, он должен быть у какого-то нового типа, в который ты оборачиваешь своим implicit def ом
Вот value class позволяет такой новый тип реализовать бесплатно для рантайма, чтобы между вызовом твоего имплисита и вызовом самого метода, новых объектов не создавалось

folex
24.05.2017
09:12:19
но при этом нельзя же никак потребовать, чтобы если оптимизация была невозможна, код не компилировался?

Oleg
24.05.2017
09:12:30

folex
24.05.2017
09:12:40
peechal

Oleg
24.05.2017
09:12:43
Даже ворнингов не выкидывает

Nick
24.05.2017
09:12:46
implicit class RichInt(val self: Int) extends AnyVal {
def toHexString: String = java.lang.Integer.toHexString(self)
} т.е если тут убрать AnyVal то будет новый обьект создаватья?

folex
24.05.2017
09:13:02
и если не убрать — иногда тоже %)