@scala_ru

Страница 228 из 1499
Nikolay
15.11.2016
21:27:15
import scala.meta._ val trueTrues = 1 to 5 map ( _ => q"true") val trueTrues:Seq[Term] = 1 to 5 map ( _ => q"true") (trueTrues.tail foldLeft trueTrues.head) { case(acc,el) => arg"$acc.&($el)"} res19: scala.meta.Term = true.&(true).&(true).&(true).&(true)

сейчас я примерно так сделаю

получается что использую head списка как zero element. можно какой-то "пустой" Term использовать?

Aleksey
15.11.2016
21:33:49
в такие моменты хочется что бы в скале были базовые тайпклассы. посмотрел, что для Term определена группа и все вопросы отпали.

Google
Nikolay
15.11.2016
21:35:01
было бы здорово

Aleksey
15.11.2016
21:41:55
Можно поюзать reduce вместо foldLeft если ты уверен что список не пустой (ну или ко всему прочему заюзать NonEmptyList).

trueTrues reduce { (acc,el) => arg"$acc.&($el)" }

а, не

reduceLeft.

Nikolay
15.11.2016
21:45:08
для непустого списка подходит, спасибо

Aleksey
15.11.2016
21:49:08
И да. https://github.com/scalameta/scalameta/blob/master/scalameta/trees/src/main/scala/scala/meta/Trees.scala#L99 вот это похоже на нейтральный элемент.

Nikolay
15.11.2016
21:52:05
scala> val zero: Term = Term.Placeholder() zero: scala.meta.Term = _

_

Aleksey
15.11.2016
21:54:18
Да, не оно.

Ну тогда нет.

Andry
16.11.2016
06:15:23
Denis
16.11.2016
07:10:30
Упш 2.0

Google
Vasily
16.11.2016
08:06:47
По поводу xml в xml - обычно это требования к шлюзам

Нам так для НСПК пришлось делать

Есть xml с информацией для шллюза, внутри него тело запроса

Denis
16.11.2016
08:07:56
ну я уже понял затею

Vasily
16.11.2016
08:08:07
По идее, CDATA тут один из самых простых вариантов реализации

Denis
16.11.2016
08:08:20
типа xml конверт которму посчастливилось нести в себе xml

Vasily
16.11.2016
08:08:40
Угу

Шлюз просто настроен пропускать только такие конверты

ПОэтому проще написать сторонний сервис, который будет все в такие конверты зхаворачивать

Чем реализовывать на уровне внутренней логики

Daniel
16.11.2016
08:10:05
внутренние интеграции через шину часто также делают

Vasily
16.11.2016
08:11:51
Те же яйца, только в профиль. Все равно есть кусок кода, который оборачивает/разворачивает запросы. Где его расположить - дело вкуса

Nikolay
16.11.2016
08:19:31
q”..$trueTrues” не канает?
Щас не у компа, но кажется он просто через запятые элементы перечислит как отдельные выражения

Denis
16.11.2016
08:20:30
да точно, чет не заметил что ты выражение из них делашеь

зависит от того что решаешь, можно изначально матч сделать и кейс для Nil зафейлить с ошибкой

а для x :: xs уже вызвать xs.foldLeft(x)

так хотя бы meaningful error будет а не NoSuchElementException

Nikolay
16.11.2016
08:24:46
Да, это я понимаю. На практике я понимаю как это решить, меня интересовало наличие пустого Term в принципе.

а для x :: xs уже вызвать xs.foldLeft(x)
В итоге так и сделал

Google
Bulbu
16.11.2016
09:50:59
кто знает как в идее, если создал проект с автогенерацией папок (java, scala, resources etc.) , убрать эту автогенерацию

все, нашел сам)

в опциях сбт

Dim
16.11.2016
10:23:03
Не понимаю зачем это разделение по паркам на java scala. У нас все исходники в одном дереве scala.

KrivdaTheTriewe
16.11.2016
10:30:08
и в одном файле ?

Dmitry
16.11.2016
10:31:15
!

не понимаю зачем это разделение по классам и файлам. У нас все исходники в одной функции.

Nikita
16.11.2016
10:35:14
В скрипте же

Mikhail
16.11.2016
10:35:32
зачем вобще функции?

и языки программирования не нужны, я в уме программирую

Dmitry
16.11.2016
10:36:08
микросервисы сделали это реальностью

Andry
16.11.2016
10:42:47
машинный код наше фсё Кстати раньше на заре компутерной эпохи 88-90 гг прошлого века, можно было напрямую редактировать память и запускать выполнение программы с любого адреса...

KrivdaTheTriewe
16.11.2016
10:46:15
так и сейчас можно

Alexander
16.11.2016
10:48:06
заре компутерной эпохи 88-90 гг прошлого века ????

Andry
16.11.2016
13:53:57
так и сейчас можно
Ой ли? т.е. нажимаешь пару кнопок и редактируешь содержимое ячеек памяти?

Viacheslav
16.11.2016
13:59:28
http://u.kanobu.ru/comments/images/3b5e0e92-924b-4aac-ae27-9ba03a5fc515.jpg

простите

Andry
16.11.2016
14:02:05
олли дебаггер?)
Не всеравно енто не то :)

Google
Vyatcheslav
16.11.2016
14:02:14
ArtMoney

Andry
16.11.2016
14:03:58
Кстати мож кто подскажет как валидировать XML по схеме в скале? Стандартный пакет xml Умеет енто?

ArtMoney
cheater сразу видно :)

Artem
16.11.2016
14:05:58
Не всеравно енто не то :)
почему не то? тыкаешь пару кнопок и редактируешь )

folex
16.11.2016
14:14:15
потому что ГДЕ ПЕРФОКАРТЫ А

где ДУХ

Vyatcheslav
16.11.2016
14:15:18
по поводу XML - умеет, только: http://stackoverflow.com/a/26758580/4050580 . А еще какие-то пляски были с тем, что то ли каждый раз xsd выкачивается и не кешируется, то ли еще что-то, уже не помню. Так что осторожнее со схемами, которые на других серваках

KrivdaTheTriewe
16.11.2016
14:26:23
Sergey Tolmachev
16.11.2016
15:29:06
всем привет, есть гуру sbt-native-packager?

хочу сделать несколько task, которые пакуют deb с разными лоадерами

и кастомными биндингами

биндинги для таски mappings in Universal in packageDebianUpstart += ((resourceDirectory in Compile).value / "logback.xml") -> "conf/logback.xml" не работают

из этого примера что-то не больно работает https://github.com/muuki88/sbt-native-packager-examples/blob/master/multiple-package-outputs/build.sbt

Lev
16.11.2016
15:39:50
всем привет, есть гуру sbt-native-packager?
сейчас мейнтейнера спрошу

Sergey Tolmachev
16.11.2016
15:40:07
спасибо! я сейчас кину пример своего конфига

http://pastebin.com/rt4hsjhW

folex
16.11.2016
15:43:40
У меня вот так работает .settings( linuxPackageMappings in Debian += { val file = baseDirectory.value / "conf/" packageDirectoryAndContentsMapping((file, "/usr/local/projectname/configs/")) } )

пользуй хелперы вроде packageDirectoryAndContentsMapping

Sergey Tolmachev
16.11.2016
15:44:44
а почему Universal нельзя?

folex
16.11.2016
15:44:57
ни малейшего понятия

Google
Sergey Tolmachev
16.11.2016
15:45:31
и как я вообще могу адекватно создать генерацию для разных лоадеров, если для них нужен плагин. нельзя включать/выключать плагины для тасок

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

folex
16.11.2016
15:46:06
А что за лоадеры?

Sergey Tolmachev
16.11.2016
15:46:32
systemd и upstart

которые в com.typesafe.sbt.packager.archetypes.systemloader

folex
16.11.2016
15:46:59
ага, понял

Ты наверное можно просто условно написать что если лоадер нужен такой-то, устанавливаем его активным в packager, и для него пишем конфиг

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

Sergey Tolmachev
16.11.2016
15:48:19
я писал через переменные среды и это работало, но это костыльно как-то

я вот нашел такой подходящий мне пример иии пилю его

folex
16.11.2016
15:48:43
одновременно иметь и те, и те настройки будет тяжко, кмк

Sergey Tolmachev
16.11.2016
15:48:49
ну вот у меня отдельная таска для отдельного лоадера

я в первый раз настолько глубоко в sbt ушел

linuxPackageMappings in Universal in packageDebianUpstart += packageDirectoryAndContentsMapping((resourceDirectory in Compile).value / "logback.xml" -> "conf/logback.xml") так то же самое

Lev
16.11.2016
15:51:26
он только завтра будет на связи

Sergey Tolmachev
16.11.2016
15:51:51
ой, там Debian надо наверное

Lev
16.11.2016
15:52:06
а что за проблема-то? не собирается или systemV/Upstart не подхватываются?

Sergey Tolmachev
16.11.2016
15:52:27
ну вот logback.xml он вообще не кладет

с лоадерами отдельная ситуация. если я делаю как в том примере, то он вообще конфиги лоадеров не кладет

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

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