
Grigory
06.03.2018
09:49:43
Годная идея, инпуты разные могут быть и шарить конфиг можно по-разному

Oleg
06.03.2018
09:50:25
да нужно абстрактный стандарт для конфигов
https://xkcd.com/927/

Robert
06.03.2018
10:22:41
скаланы, подскажите годный чатик питон сообщества

Google

Robert
06.03.2018
10:23:36
это не мне, друг попросил хДД

Mike
06.03.2018
10:23:58
есть русский https://t.me/ru_python

Robert
06.03.2018
10:24:25
спасибо большое

Dmitry
06.03.2018
10:24:58
@zuldare ты тот Сальников который старший брат Саши?

Mike
06.03.2018
10:25:11

Dmitry
06.03.2018
10:25:24
Лол кек

Daniel
06.03.2018
10:25:35
индийское кино, а не чатик

Nikolay
06.03.2018
10:25:37
> Пишите вопрос по своей проблеме. Сразу и одним сообщением. Без приветов. Без прелюдий «кто может помочь». Обращения в ЛС к участникам нежелательны
жесткие правила у них

Mike
06.03.2018
10:26:23
Лол кек
а ты тот зуев, который ....? а хз

Dmitry
06.03.2018
10:27:18
Зависал как то у вас в Кузьминках

Ilya
06.03.2018
10:28:19
@zuldare работай

Google

Mike
06.03.2018
10:29:29

Max
06.03.2018
10:30:00
направьте пожалуйста человека немного работающего с макросами
Вопрос: можно ли в whitebox макросе выдернуть имплистный параметр?
нашел только вот это - но мне кажется оно слишком старо
https://gist.github.com/xeno-by/90daa4b8227034acce36
Конкретнее:
есть whitebox макрос он смотрит на некоторые аннотации и догенерирует код
хочу в макросе генерить этот код опираясь не на аннотации а на некий имплиситный параметр
грубо говоря вместо
case class BadAss(@Ann("123") a: Stirng)
case class BadAss(a: Stirng)
implicit val badAss = AnnLike[BadAss]("123")


Mikhail
06.03.2018
10:32:13
вроде. сейчас гляну. но точно можно, потому что можно пойти дальше, на основе выведенных имплиситов запустить еще один макрос в сгенерированном коде, который также сможет еще глубже получить новые имплиситы и т.д.
@maximKorolev
val expr2 = c.typecheck(expr, mode = c.TYPEmode)
- ты получишь на выходе дерево со всеми выведенными импилисит-колами (все имплисит параметры рекурсивно и т.д. - тоже) либо ошибку обычную, если компилятор не шмогла вывести имплиситы.


Gleb
06.03.2018
10:36:20
Сборщик плохо реагирует на high allocation rates. Шипилев обещал фикс

Max
06.03.2018
10:38:45
@rudogma спасибо раскопаю

Gleb
06.03.2018
10:39:20
@optician_owl https://twitter.com/AndreiPangin/status/970724126741721089?s=20

Daniel
06.03.2018
10:40:26
угу, видел
спасибо

hohserg
06.03.2018
19:04:04
Народ, а как называется код, который находится в теле трэйта?

Nikita
06.03.2018
19:04:39
Генератор NPE

Vladimir
06.03.2018
19:04:53
Body

hohserg
06.03.2018
19:05:36
@meln1k Да ты Ванга, не иначе)
Крч, вот такой код:
lazy val test=new mutable.HashSet[String] with Savable[String]{override val name = "test"}
trait Savable[A] {
this:mutable.HashSet[A]=>
val name:String
Savable.register(this)//Не обращайте внимания, это для сохранения, но там нет проблем
try{
new File("./saveble/").mkdirs()
val oos = new ObjectInputStream(new FileInputStream("./saveble/"+name))//name==null :D
this++=oos.readObject().asInstanceOf[mutable.HashSet[A]]
oos.close()
}catch {
case e:Exception=>e.printStackTrace()
}
}
Как это по нормальному написать, чтобы загрузка выполнялась после override val name?

Alexey
06.03.2018
19:09:11
Не использовать val в трейтах

hohserg
06.03.2018
19:09:16
def?

Alexey
06.03.2018
19:09:28
Как вариант
А в реализации уже оверрайдить в val

hohserg
06.03.2018
19:09:58
Можно тоже def

Google

hohserg
06.03.2018
19:10:05
Или есть разница?

Alexey
06.03.2018
19:10:26
Ну в твоём кейсе и def ок
Но в трейте в конструкторе писать в файл эт писос

hohserg
06.03.2018
19:11:33
Ну, мне хочется использовать сериализацию просто: замиксил трэйт и готово
Работает, спасибо)
Если что, я был бы не против узнать, почему плохо в конструкторе читать из файла)

Daniel
06.03.2018
19:25:16
стереотипы!

Александр
06.03.2018
19:26:52

hohserg
06.03.2018
19:27:09
У мя там внутри try

Daniel
06.03.2018
19:27:44

Александр
06.03.2018
19:28:11

Daniel
06.03.2018
19:28:38

hohserg
06.03.2018
19:31:46
Сделал вот так: теперь сохраняет еще и мапы))
trait Savable[A] {
this:Growable[A] with Serializable=>
Ну, не только мапы, а вообще все Growable

Nikita
06.03.2018
19:44:40
Зачем вообще такой костыль, почему бы не сохранять в leveldb или что нибудь нормальное?

Daniel
06.03.2018
19:44:50
есть библиотека booPickle для сериализации https://boopickle.suzaku.io/

Nick
06.03.2018
19:46:00

Daniel
06.03.2018
19:46:32

Daniel
06.03.2018
19:51:15
как я понял, он сохраняет в бинарном формате. Если потом захочет добавить поля в сериализуемых классах, начнуться проблемы. Поэтому тот же booPickle не советуют применять для хранения данных. Правда по словам создателя этой либы, некоторые крупные компании всё равно это делают ради скорости.

Oleg
06.03.2018
20:05:43
Но в трейте в конструкторе писать в файл эт писос
один ПР как-то раз вдохновил нас с @qman228 и @Kvitral попробовать реализовать dsl программирования полностью основанный на линеаризации
Сломались на том, что трейт нельзя наследовать дважды и никакие макросы нам не помогли

Google

Admin
ERROR: S client not available

Oleg
06.03.2018
20:08:33

Daniel
06.03.2018
21:56:02

Andrey
07.03.2018
08:15:35
Привет, скаланы!
Вопрос такой: какие преимущества имеет Korolev перед всякими js-фреймворками (в моем случае интересует сравнение с Angular)?

Юрий
07.03.2018
08:17:26
@fomkin твой выход

Aleksey
07.03.2018
08:18:11

Alexander
07.03.2018
08:18:35
9. Автор тут под боком и всегда его можно пнуть в почку и попросить совета/фикса

Andrey
07.03.2018
08:19:45
9-ый пункт внушает

Vasily
07.03.2018
08:21:45
Фомкин написал Asp.Net MVC, шоле?

A
07.03.2018
08:23:21

Grigory
07.03.2018
08:24:41

Aleksey
07.03.2018
08:33:39
а 8 пункт откуда там нарисовался?
оттуда что самый распространенный секъьюрити-баг в крудах, это когда через эндпоинт утекают данные которые не должны утекать. я один раз видел, как пароли утекали (которые хранились в откртом виде, как это принято делать в БОГАТЫХ компаниях). типа получил список сотрудников, а там пароли в джейсонке.

A
07.03.2018
08:34:27
типа из-за другого интерфейса они будут менее открытые?

Vasily
07.03.2018
08:35:19

Aleksey
07.03.2018
08:35:56

A
07.03.2018
08:35:56
WebForms?
на fpconf он хорошо описал королёва, есть в ютубе

Grigory
07.03.2018
08:38:07

Google

A
07.03.2018
08:38:13
ааааа
убедили

Aleksey
07.03.2018
08:42:14
Проблема распространена из за того, что бэкедер шлет через круд лишнее по невнимательности. Фронтендер игнорирует это потому что аут оф скоуп. Тестирование не видит проблемы, потому что все работает по спецификации. В королеве нельзя допустить такую ошибку по невнимательности. Ее нужно сделать нарочно: 'span('display @= "hidden", s"Secret: $secret").

Andrey
07.03.2018
08:56:42
Да, тут согласен... Прочитал, аж проняло... Накатили воспоминания...
Это действительно сильное преимущество.
Для меня почему возник вопрос - потому что на мне и front и back... выходит что что бы сделать фичу - ее делаешь "дважды", с отдельными модельками на каждой стороне... на двух языках
А какие минусы? Например, есть ли всякие библиотеки кастомных web-контролов? Т.е. вот это все писать самому... Верно?

Dmitriy
07.03.2018
09:00:18
для скалистов которые хотят в фулстек возможно хороший вариант, обычных фронтендеров конечно не убедить, им реакты и вебпаки подавай