Fork me on GitHub
#clojure-russia
<
2017-04-06
>
rmuslimov04:04:55

привет, подскажите мне пожалуйста как быть - я тут взялся за soap-server на jax-ws. Теперь у меня есть 100500 ява-классов которые надо собрать, вложить друг в друга и выдать в ответ. Вопрос как их удобнее собирать? Например:

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "UniqueID_Type")
public class UniqueIDType {

    @XmlAttribute(name = "Type", required = true)
    protected String type;
    @XmlAttribute(name = "ID", required = true)
    protected String id;
я наверное ищу что-то что умеет из clojure-map генерировать инстансы, или что-то еще что будет удобнее тут использовать. Еще у меня есть вариант написать свой макрос который будет мой мап, превращать в эти самые классы - по названиям атрибутов угадывая сеттер. Но, я не уверен что это лучшее решение. спасибо!

artemyarulin05:04:18

а много надо SOAPа делать? У меня просто похожий кейс, но соапа не так много (методов 30 от силы), в итоге просто руками XML собираю и парсю

artemyarulin05:04:57

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

rmuslimov05:04:37

а тебя клиент или сервак?

artemyarulin06:04:25

а тьфу, сорян, не прально прочитал, у меня клиент да

rmuslimov06:04:22

да, я бы клиента тоже так сделал - но тут надо генерировать wsdl, xsd ошибки правильно возвращать и так далее

rmuslimov06:04:35

пока самое ближнее что я нашел https://github.com/clojure/java.data

rmuslimov06:04:15

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

mike_ananev08:04:36

@rmuslimov если не секрет, то какую задачу решаете на soap?

kronos_vano08:04:17

Как мне в репле релоаднуть неймспейс, кто подскажет

misha09:04:47

чо за репл?

misha09:04:43

но ваще: (require '[foo.bar :as fb] :reload-all)

andfadeev09:04:47

(require .. :reload)

misha09:04:30

user=> (use '[clojure.tools.namespace.repl :only (refresh)])
user=> (refresh)

:reloading (namespace.app)
:ok

misha09:04:05

в курсиве я просто жму шорткат для релода неймспеса, правда, если где-то сайдэффекты - оно их запускает тоже

misha09:04:57

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

misha09:04:32

дерево пока что ~такое:

[:op/or 1 2 [:op/and 3 4 5] [:op/and [:op/or 7 8] 9]]

misha09:04:21

порядок принципиален только для :op/*, всё остальное -нет

kronos_vano09:04:27

@misha какой хоткей в курсиве?

misha09:04:39

правый клик на открытом файле при запущеном рядом репле, REPL-> и там смотри какие у тебя бинды. я свои менял

misha09:04:02

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

andfadeev09:04:24

в курсиве теперь можно и кастомные repl commands делать, удобно

andfadeev09:04:23

потом байндишь на хоткей и радуешься

kronos_vano09:04:33

Вот как раз от резета хотел уйти, релоадит все, получается долго

misha11:04:56

нахачил рекурсивный юай с апдейтом дата стракчи:

misha11:04:24

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

fmnoise12:04:43

джентльмены, а вот насчет атома, который редактор, кто-то юзает? везде читаю про емакс + сидр или курсив. но вот сам пользуюсь атомом и вроде норм.

fmnoise12:04:28

пробовал лайттейбл но чото он вообще хз

fmnoise12:04:46

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

kronos_vano12:04:05

Как человек который тестил и атом и саблайм и курсим и емакс, ответственно заявляю что атом тормозное говно

fmnoise12:04:20

ну с этим никто не спорит

fmnoise12:04:46

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

fmnoise12:04:00

ну а вот курсив, по ощущениям интелидж тормознее атома на порядок

fmnoise12:04:18

ну там плюшек поболее конечно

kronos_vano12:04:29

у меня курсив не тормозит совсем

fmnoise12:04:31

но на работе кулера это сказывается весьма ощутимо

fmnoise12:04:41

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

misha12:04:17

а как в саблайме автокомплит решен? подсказывает только то, что в текущем файле встречается?

fmnoise12:04:04

у меня да

fmnoise12:04:10

по другому как-то не получалось

fmnoise12:04:20

в атоме собственно тоже так

fmnoise12:04:32

есть какой-то плагин который умеет больше, но тормозит дико

potapenko12:04:20

прошел путь sublime -> atom -> spacemacs По полгода игрался с каждым и скажу что обратно уже не вернусь. И на курсив меня тоже не заманить (хотя java/as3 писал на Idea десять лет).

potapenko12:04:02

первые два пользовал ибо в саблайме достаточно долго писал - года три (js, node), привык к расскладке.

potapenko12:04:15

spacemacs - это скачек эффективносит как программиста в разы. и много из за Vim... Ну и Repl, magit,

potapenko12:04:51

На работе одну девушку посадил на clojure (selenium tests) когда стоял выбор редактора - спросил - “ты можешь кодить вслепую?” - когда ответила “нет” - однозначно предложил atom.... на spacemacs без слепого набора никак... mouseless…

niquola13:04:07

Никто не хочет на стачке выступить? У меня не получается :(

niquola13:04:58

Мне тут кстати, начал re-frame нравиться - о собенно эффекты и коэффекты

andfadeev13:04:18

а я наоборот с спейсмакса на курсив перешел, с джавой интероп топовый, вцелом удобно, хоткей все из емакса перенес

andmed13:04:00

вот кто-нибудь видел прокаченные хоткеи для курсива чтобы лежали в нете?

andfadeev13:04:19

я не видел, мне кажется проще один раз для себя настроить и экспортнуть настройки, а потом импортить их когда надо

rustam.gilaztdinov13:04:05

Вот хочется побродить по жава сорцам кложи, а spacemacs не умеет =( С идеи можно, но spacemacs ван лав Кто-нибудь знает — решаемо ли?

misha14:04:08

смириться и запустить идею troll

fmnoise14:04:05

спейсмакс выглядит интересно, но хоткеи его дефолтные это ад

fmnoise14:04:22

@potapenko а если на пальцах чем спейсмакс лучше атома?

fmnoise14:04:31

в плане эффективности

fmnoise14:04:52

я вот проторепл поставил и тоже все красиво довольно эвалится

fmnoise14:04:19

паринфер скобочки хендлит

fmnoise14:04:33

подсветка правда адски тупит

potapenko14:04:54

да норм хоткеи, space blabla, много без space вообще

potapenko14:04:14

за контролом тянуться не нужно

potapenko14:04:20

по сравнению с атомом - ну по скорости работы трудно сравнивать.

potapenko14:04:32

но для спейсмакса наужно vim понять и полюбить

fmnoise14:04:17

ну вим мне в принципе нравится

potapenko14:04:02

распечатать пару листочков и выучить стандатные действия - навигация, моды редактирование, selection, запись макросов

potapenko14:04:14

ну тогда еще проще

fmnoise14:04:57

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

potapenko14:04:02

интересно что многие, которые даже давно работают с spacemacs знают очень мало функций

potapenko14:04:27

тот же туллбар с файлами проекта, sp+p+t - оказывется неочевидная вещь

potapenko14:04:34

да вообще projectile

potapenko14:04:09

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

fmnoise14:04:29

ну то есть все что умеет редактор А, можно наколотить и в редакторе Б или скачать уже готовое

potapenko14:04:45

в спейсмаксе все уже из коробки

potapenko14:04:50

включить clojure и все уже есть

potapenko14:04:23

ну я не агитирую - атом видимо кому-то лучше, но для меня выбор очевиден

fmnoise14:04:49

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

potapenko14:04:15

долго пугался emacs, переборол страх, и теперь сплошные ништячки 🙂

potapenko14:04:35

главное не с чистого emacs - spacemacs

fmnoise14:04:45

а может есть какой-то гайд по переходу

fmnoise14:04:55

как раз в отпуск планирую, неплохой челлендж был бы

potapenko14:04:24

да посмотреть clojure layer и все

potapenko14:04:51

в spacemacs очень просто с навигацией по командам

potapenko14:04:08

space - появляется список что дальше

potapenko14:04:01

внизу вот -

potapenko14:04:42

1 - это значит space-1 переключился на второе окошко

potapenko14:04:01

нажал дальше p -

fmnoise14:04:23

а это коробочный или с плюшками?

potapenko14:04:29

видишь какие есть команды SP+p+…

potapenko14:04:33

коробочный

potapenko14:04:38

из коробки

potapenko14:04:40

ничего не ставил

potapenko14:04:13

странно...

fmnoise14:04:24

Error (use-package): helm-ag :init: Symbol’s function definition is void: evilified-state-evilify

fmnoise14:04:30

мне вот такое рисует

potapenko14:04:24

переустанови может?

fmnoise14:04:23

Version 25.1 (9.0) это норм для базовой?

potapenko14:04:58

у меня 25.1.1 0.200

potapenko14:04:22

установил - вкллючил layers - готово

potapenko14:04:24

можно работаь

fmnoise14:04:11

линух?

potapenko14:04:12

clojure главное

potapenko14:04:27

на линуксе тоже у меня стоит

fmnoise14:04:30

щас попробую через хоумбрю

potapenko14:04:34

разницы не заметил

fmnoise14:04:41

я видимо на родной ставил

potapenko14:04:46

главное spacemacs накатить

fmnoise14:04:48

который в системе шел

potapenko14:04:58

brew install emacs git clone ~/.emacs.d

fmnoise15:04:46

Warning: emacs-25.1 already installed

just.sultanov15:04:24

единственное в spacemacs не смог fira code подцепить

just.sultanov15:04:48

уже месяц на spacemacs не нарадуюсь

just.sultanov15:04:14

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

fmnoise15:04:34

в смысле так подцепить чтобы рисовало плюшки все со стрелочками?

just.sultanov15:04:43

лигатуры

fmnoise15:04:50

да, лигатуры

fmnoise15:04:52

точняк

misha15:04:56

я чота лигатуры - нене

just.sultanov15:04:04

мануал нашел но че то не осилил

fmnoise15:04:37

@just.sultanov а с какого редактора миграция?

misha15:04:52

чтоб читать - ништяк, а чтоб код править - как-то eew

fmnoise15:04:12

такс, ну вот снова то же самое

Error (use-package): edebug :init: Symbol’s function definition is void: evilified-state-evilify-map
Error (use-package): helm-ag :init: Symbol’s function definition is void: evilified-state-evilify

fmnoise15:04:02

ну мне идея чот тоже не нравится

fmnoise15:04:06

вроде все там можно сделать

fmnoise15:04:12

но какое-то оно большое

fmnoise15:04:30

@potapenko не взлетает чото

potapenko15:04:15

снеси ~/.emacs.d и залей заново?

fmnoise15:04:00

вот ток что снес

fmnoise15:04:12

перед тем как ставить

potapenko15:04:55

хм... может левый какой пакет, там глупость - ставятся пакеты автоматически самые свежие

potapenko15:04:25

возьми мой .spacemaсs?

fmnoise15:04:37

угу, давай попробуем

potapenko15:04:46

и удали ~/.emacs.d еще раз после этого

potapenko15:04:49

сейчас

fmnoise15:04:31

все, зачистил

fmnoise15:04:18

его положить куда?

potapenko15:04:33

~/.spacemacs - тут должен лежать

potapenko15:04:01

он генерится при старте spacemacs автоматом

potapenko15:04:08

по логике он должен быть там уже

fmnoise15:04:24

да, был

fmnoise15:04:30

я заменил

fmnoise15:04:35

и просто стартую emacs

fmnoise15:04:38

правильно?

fmnoise15:04:00

стартовал обычный емакс

fmnoise15:04:17

папку .emacs.d я снес

fmnoise15:04:59

ага, туплю, щас опять склонирую ее

fmnoise15:04:18

о, 176 пакетов ставит

fmnoise15:04:24

перед этим было 23 чтоли

fmnoise15:04:43

и стартовал в полноэкранном

just.sultanov15:04:46

а есть альтернатива команды ctrl+d в atom для spacemacs?

fmnoise15:04:37

@potapenko завелось все

fmnoise15:04:44

спасибо тебе добрый человек

potapenko15:04:23

ctrl+d - это мультикурсоры нужно глядеть если выделить сразу

potapenko15:04:45

а если поискать чего похожее shift+8 (*) - потом n/N перемещаешься

potapenko15:04:22

ctrl+d хорошо заменяется через search-replace :%s/from/to/g - сразу все :%s/from/to/с - будет спрашивать каждый раз Y/N

potapenko15:04:04

или выделить текст - потмо двоеточие - :‘<,’>s/from/to/g - поменять выделенном тексте

potapenko15:04:10

это Vim фишки

teivar15:04:00

про spacemacs и clojure есть хорошее чтиво https://practicalli.github.io/spacemacs/

just.sultanov15:04:14

@potapenko смотрю сижу 🙂 спасибо

fmnoise15:04:01

а как посмотреть что пошло не так?

potapenko15:04:29

забей, у меня тоже самое 🙂 и работает

fmnoise15:04:02

а, окей

fmnoise15:04:04

спасибо