@scala_ru

Страница 17 из 1499
Vladimir
12.07.2016
15:14:00
сейчас, по большей части, у нас также, но тот факт, что пользователю может понадобиться вводить данные дважды слегка напрягает

Igor
12.07.2016
15:14:45
а почему ему придется вводить данные дважды?

Vladimir
12.07.2016
15:16:07
> причем если login пуст, то email все равно должен быть проверен если логин пуст, форма не забиндится до конца и проверить email мы не сможем (без танцев с бубном)

Andrey
12.07.2016
15:17:06
а как же client-side валидация?

Google
Vladimir
12.07.2016
15:18:09
мы же не можем доверять всем данным от клиента :)

Andrey
12.07.2016
15:25:33
Не можем)

Denis
12.07.2016
15:53:43
Ну так проверь на клиенте специальным запросом, потом проверь уже на сервере когда вся форма в сборе?

Vladimir
12.07.2016
16:11:47
Переобдумали %) с учетом клиентской валидации получается, что если до нас дошли невалидные данные, которые помешают забиндить форму (пустые строки и.т.п), то скорее всего запрос сделан в обход клиентских проверок и заморачиваться с ним не стоит

т.е. просто отдать список ошибок формы и все, без проведения доп. асинхронных проверок

Andrey
12.07.2016
16:12:31
Вот только хотел сказать, что бросайте бэд риквест на невалидную форму

Юрий
14.07.2016
06:35:50
В новой идее для линукса с их кастомным jdk наконец сделали нормальные шрифты

Michael
14.07.2016
06:36:24
Новая, это какая версия?

Юрий
14.07.2016
06:36:30
2016.2

буквально день или два назад вышл

Michael
14.07.2016
06:37:37
Поняно, у меня пока 2016.1

Юрий
14.07.2016
06:38:16
обновляйся, годная версия

Michael
14.07.2016
06:40:06
Да надо, у меня почемуто она очень часто проц жрет по полной. Я думал сначало что это из-за инкремент.компиляции, но нет =( Ради интереса, кто нибудь градл для сборки использует?

Google
Юрий
14.07.2016
06:40:57
градл в скала плагине использует кусочек сбт для инкрементальной компиляции

Viacheslav
14.07.2016
06:41:02
Я использую намного лучше сбт

Alexey
14.07.2016
06:41:07
что не так со старыми шрифтами было?

Юрий
14.07.2016
06:41:52
что не так со старыми шрифтами было?
Под линуксом в свинг приложениях херовые шрифты были.

Aleksey
14.07.2016
06:46:09
Сколько я себя помню в линуксе всегда ШГ.

Denis
14.07.2016
06:56:25
Я может туплю, но как сделать из функции A => B, функцию A => (A, B), похоже на f.zipWith(identity) но такого нет из коробки )

без new Function :)

Alexey
14.07.2016
06:59:44
def wrap(f: A => B) = (a: A) => (a, f(a))

Denis
14.07.2016
07:00:57
надо высыпаться походу

капец

спасибо )

@l3h3r а подскажи плз, реактив кафка, если ты не коммитнул оффсет пошлет еще раз елемент? если да то какой там redelivery interval?

Alexey
14.07.2016
07:27:35
почему кафка вообще должна чтото посылать второй раз если ты не закоммитил?

Denis
14.07.2016
07:29:33
То есть коммит создает demand

понял

Alexey
14.07.2016
07:43:50
Я не понял что ты понял, но нет никакой преопределенной связи между коммитом и тем как консюмер вычитывает сообщения. В reactive-kafka ты можешь создать эту связь поставив коммит после консюмера и тогда заработает backpressure. Но ты можешь это и не делать.

Denis
14.07.2016
07:46:39
Да я имел в виду ситуацию с коммитом после консьюмера

Bulbu
14.07.2016
08:07:38
кто-то юзал scalamock?

Const
14.07.2016
08:30:45
Я вот это использовал "org.scalamock" %% "scalamock-scalatest-support" % "3.2.2" % "test"

Oleksandr
14.07.2016
08:49:25
а оно ещё живое?

Google
Oleksandr
14.07.2016
08:50:11
последний коммит больше года назад

Bulbu
14.07.2016
10:17:50
mockito уже заюзал

Vladimir
14.07.2016
10:19:35
mockito на мой взгляд более-менее удобного механизма callbackов не хватает, answer уж больно многословный

Alex
14.07.2016
11:13:54
Denis Mikhaylov, [14.07.16 09:56] Я может туплю, но как сделать из функции A => B, функцию A => (A, B), похоже на f.zipWith(identity) но такого нет из коробки ) import scalaz.syntax.arrow._ import scalaz.std.function._ import function1Instance.id def wrap[A,B](f: A=>B): A=>(A,B) = id[A] &&& f

Igor
14.07.2016
11:15:00
there is jquery plugin for that

Daniel
14.07.2016
11:15:13
lol

Igor
14.07.2016
11:15:24
по-моему первый вариант был проще

Aleksey
14.07.2016
11:15:30
scalaz как jquery для scala. сильно.

Alex
14.07.2016
11:15:34
зато из коробки :)

Andrey
14.07.2016
11:15:51
из коробки? :)

Daniel
14.07.2016
11:15:54
из доп коробки

Viacheslav
14.07.2016
11:16:08
мдя, скоро для того чтобы сложить два числа надо будет заюзать армию функциональных библиотек и через космическое свёртывание 15-мерного порядка замутить операцию сложения

Alex
14.07.2016
11:16:28
да прям там космическое, обычный моноид

Viacheslav
14.07.2016
11:16:44
я ж говорю, скоро

Igor
14.07.2016
11:17:02
обычный моноид, увеличивающий порог входа в проект на порядок

а потом все равно новичку говорить про код «ну это то же самое, что и (a: A) => (a, f(a))»

Alex
14.07.2016
11:18:30
толпы несчастных, обивающих пороги проектов

Igor
14.07.2016
11:19:47
Потом со скалы съезжают, потому что через пол года после сдачи проекта фиг поймешь, что имелось ввиду автором

Alex
14.07.2016
11:22:04
«ну это то же самое, что и (a: A) => (a, f(a))» на самом деле это то же самое, что и import scalaz.syntax.functor._ import scalaz.syntax.strong._ f.second.mapfst(id[A].fpair) :)

Vladimir
14.07.2016
11:22:15
Google
Dmitry
14.07.2016
11:32:47
Привет парни, я хотел бы загадать вам загадку

Viacheslav
14.07.2016
11:33:21
а это не больно?

Dmitry
14.07.2016
11:33:27
у меня получилось запихнуть в List[Int] List[String]

Aleksey
14.07.2016
11:33:43
Больно было?

Dmitry
14.07.2016
11:33:45
я вот даже и не знаю, больно это или нет

Dmitry
14.07.2016
11:34:02
Есть два листа...

Dmitry
14.07.2016
11:34:02
давайте я кусок кода вам дам

Admin
ERROR: S client not available

Dmitry
14.07.2016
11:34:13
Один с интами точеными

Nikita
14.07.2016
11:34:16
в результате получился List[Any]?

Dmitry
14.07.2016
11:34:20
Есть два листа...
:) примерно так я и заходил

Нет, List[Int] со стринговым наполнением

Nikita
14.07.2016
11:35:21
интересно глянуть на кусок кода

Dmitry
14.07.2016
11:35:29
case class SomeClass(s: List[Int]) object SomeClass { def unapply(arg: String): Option[SomeClass] = { arg.split(" ").toList match { case li: List[Int] => Some(new SomeClass(li)) case other => None } } } val arg = "dfgdfedfeffs sdsada" val sc = arg match { case SomeClass(a) => Some(a) case _ => None } val s: List[Int] = sc.toList.flatMap { c => c.s }

Nikita
14.07.2016
11:36:13
нужен ClassTag

а то из-за type erasure компилятор не может понять что у тебя внутри листа

Dmitry
14.07.2016
11:38:41
т.е. моя догадка что при матчинге он не определяет тип элементов коллекции, но раз мы сами говорим ему что это List[Int] то ок, пуст будет так, верна?

* при таком матчинге

Nikita
14.07.2016
11:39:40
Ну в принципе он не может заматчить List[T]. компилятор может только проверить что у тебя List, а про то что у него внутри - он ничего не знает

Daniel
14.07.2016
11:39:51
там варнинг должен быть на эту тему

Google
Nikita
14.07.2016
11:39:57
нужeн ClassTag чтобы обойти такое

и да, варнинги будут

Dmitry
14.07.2016
11:46:58
ясно, ворнинг есть, да

Daniel
14.07.2016
11:48:18
лучше всегда выставлять опцию компиллятора фейлится на предупреждениях, чтобы таких сюрпризов не было

Dmitry
14.07.2016
11:49:48
ну это был синтетический пример, высосаный из пальца, не ирл :)

Aleksey
15.07.2016
11:11:43
Зацените пепяку https://gist.github.com/fomkin/2d209963fdf04a61c1c77b3265b56cd7 -> http://185.143.172.173:9190/

Крутость заключается в том, что это исполняется целиком на сервере.

Nikolay
15.07.2016
11:20:12
А что используется?

Aleksey
15.07.2016
11:20:21
В смысле?

Это велосипед.

Nikolay
15.07.2016
11:21:34
Zero dependencies?

Aleksey
15.07.2016
11:23:04
Сейчас только Java-WebSocket, и мои наработки.

Думаю что Java-WebSocket заменится на http4s.

Nikolay
15.07.2016
11:26:01
Крутость заключается в том, что это исполняется целиком на сервере.
Немного не понимаю в чем именно крутость, рендеринг шаблона и передача на клиент, если я все правильно понимаю, разве нет?

Aleksey
15.07.2016
11:27:34
1. Страничка не перезагружается 2. Обновляется только то, что изменилось. Такое умеет только Vaadin, но для этого он передает на клиент тонну джаваскрипта.

То есть можно вообще не писать джаваскрипт, но получать экспириенс модных хипстерских одностраничных приложений на реакте.

На клиенте не пожирается память, ему не нужно грузить мегабайты джаваскрипта.

Viacheslav
15.07.2016
11:30:38
урааа ajax велик наконец-то мы ждали его так долго)

Aleksey
15.07.2016
11:31:10
При чем тут ajax?

Viacheslav
15.07.2016
11:31:35
ну или вебсокет

Страница 17 из 1499