This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2017-01-14
Channels
- # beginners (4)
- # boot (78)
- # braveandtrue (3)
- # cider (9)
- # clara (6)
- # cljs-dev (4)
- # clojure (57)
- # clojure-brasil (1)
- # clojure-russia (99)
- # clojure-spec (20)
- # clojure-uk (40)
- # clojurescript (162)
- # component (17)
- # cursive (4)
- # datomic (21)
- # docker (2)
- # emacs (5)
- # figwheel (2)
- # hoplon (363)
- # jobs (1)
- # leiningen (1)
- # om (4)
- # om-next (5)
- # onyx (10)
- # proton (1)
- # re-frame (13)
- # reagent (13)
- # ring (3)
- # rum (1)
- # slack-help (1)
- # test-check (3)
- # untangled (7)
- # vim (24)
пока не надо взрывного роста, еще много белых пятен и недодуманных/недоделанных кусков
@misha пока программисты (с кем общаюсь) не хотят его учить по причине плохого трудоустройства в РФ. необходимо, чтобы он занял какой-то процент, который бы позволил без проблем зарабатывать на нем
@kishanov каких например? в языке или экосистеме?
Есть вообще хоть один язык который можно назвать доделанным? ) перепробовал штук 7, Clojure пока самая продуманная
как по мне, тоже считаю что, Clojure самый продуманный и практичный.
хорошим стартом для популяризации языка мог бы стать просто успешный проект который у всех на слуху
я про то и говорю
Затем, что некооторые больные ООП на голову создают подобные вещи в мои проектах
а мне нужно быстро выводить качественные системы. на java это долго, дорого и не офигенно
у меня нет претензий к языкам. у меня есть претензии к головам которые во всем видят и тащат ООП
я рисую на дашборде число 42 и спрашиваю это объект?
люди замолкают, потом неуверенно говорят дааа. у нас все объект
или еще пример: логи, если они структурироанные это как гугл аналитикс ( вот статья на эту тему https://juxt.pro/blog/posts/logging.html )
в Clojure я делаю структурированные логи, пишу их в Kafka и в кибане получаю почти автоматом нужные метрики и мониторинг
а эти ООП-щики мне говорят, у нас проблема прокинуть контекст логгирования (ессно в виде объекта) между разными классами и у нас это не получается поэтому мы пишем в логи в виде стрингов
ну это тогда не про кложуре, а про ФП вообще. И в этом кста уже лучше - гошечка, свифт, котлин, фреге, раст вроде все в сторону фп уже
да и скала кста
или еще пример: пишем ПО по работе с графами. Пользователь задает запрос к графовой базе через механизм каналов. Поиск кратчайших путей штука не мгновенная и поэтому кратчайшие связи показываются на web-ui постепенно, по мере отработки алгоритма. Мне нужна такая семантика. Пользователь отправляет запрос в канал. Далее по мере нахождения путей на Ui прорисовывается ответ. Если пользователю например достаточно 3 найденных ответа он жмет на кнопку и канал приема результатов закрывается. Сервер понимает, что канал закрыт значить пользователь больше не хочет получать результат и можно прервать поиск. Если сервер закрывает канал пользователь понимает, что сервер окончил работу и нашел все пути. На словах это понятно всем. Но они говорят, что у них нет таких примитивов. И на голом JavaScript + Java тааакой монструозный код выдают, который write=only и совершенно не поддерживаемый.
@artemyarulin скала сам по себе имеет парадигмы ФП. Только зараженный ООП мозг пишет код на скале в стиле ООП.
меня просто подбешивало, когда скалисты затащили ОРМ для работы с базой, в микросервисе, где это было совершенно не нужно. После связки Clojure + HugSQL переписанный код на Scala вместе с ОРМ выглядел в два раза больше, монструозней и еще постоянно ломалось у них при внесении изменний. Это не язык виноват а мозги с ООП.
@mike1452 Так эта, выгнать ООП, нанять в два раза меньше кложуристов, заплатить им в два раза больше, оставить их по домам, не тащить в офис. Вон в #jobs каждый раз вопросы "удалёнка?"
вот я к тому и клоню руководство.
@dragoncube да, вообще много чего просят и все в data-frisk менять, ну сейчас я допилю для electron и react native , remote версию, и возможно перепишу эту либу
>Только зараженный ООП мозг пишет код на скале в стиле ООП sad but true
@andre я думаю, что через рост clojurescript сам clojure потянется вверх.
кста вот резон еще появился в этом году, считай что окамл. ФП шагает по планете (в узких кругах правда да)
https://functionaljobs.com/jobs/8986-front-end-engineer-clojurescript-reagent-re-frame-at-apstra-inc
@mike1452 Плохо, когда вы – не руководство. По возможности, старайтесь избегать этого
@mike1452 А вы что используете для хранения логов? Меня ElasticSearch уже достал своей тупизной.
Хотелось бы, конечно, чего-нибудь типа Datomic, но не ACID, чтобы не быть write-bottleneck.
пока сваливает народ локально и в Hadoop. Это связано с бюрократией по выбору системы логгирования. Пилотируем ELK,
какие проблемы с эластиком?
имеется ввиду вложенные друг в друга структуры?
Да. Например, если сваливать в него JSON и желать искать внутри JSON, то тогда каждое значение по определённому пути должно иметь один тип во всех лог-событиях, нельзя залогировать {"foo": 42}
и {"foo": "bar"}
.
Потому что он JSON разворачивает в пары путь: значение. Теряя при этом индекс в массивах.
а что происходит с эластиком в выше приведенном случае?
Так что если тебе повезло и первое сообщение за день (когда создался новый индекс) имело числовое поле, то 1) все события со строками за день будут проигнорированы; 2) эластик упадёт, так как кончится место под логи на диске.
а если все есть string?
Этого можно избегать, тщательно прописывая ему "все ключи по всем путям - строки, а не числа, не пытайся угадать", но тогда будет проблема с {"foo": "bar"}
и {"foo": {"realbar": "bar"}}
@dottedmag спасибо!
буду иметь ввиду
@dottedmag а у solr лучше в этом плане? не пробовали?
@mike1452 У любой fulltext-based системы будут проблемы, если ты хочешь искать не по значениям, а по структуре. Это же просто инвертированный индекс.
мне нужно хранить json-подобный документ, в котором информация по клиенту (его профиль)
и нужно искать по части этого профиля.
про логи я понял
@andre спасибо за ссылку intoduction
@mike1452 ты же вроде в сбере? если склонишь руководство, это будет действительно landslide shift
ООП размножается почкованием -- ответил алгоритмы и структуры данных но завалил ооп patterns или не воспроизвел добуквенно SOLID none-sense то какой из тебя java программист?? стимулирует
@andmed проблема не склонить руководство. карт-бланш я уже получил. у меня есть возможность в некотором узком скоупе проектов вставить full-stack clojure. встала проблема в окружении. и я притормозил пока с решением смены парадигмы. Что делать с командой? Что делать с соседними командами, которые делают интеграцию с нами, а мы с ними? Им ООП-интерфейсы подавай или гребанный XML. Что делать с тестировщиками и инфраструктурой заточенной под java (ООП). остальное в личке, в публичном пространстве нам не рекомендуется высказываться
Object-Oriented Programming. Теперь и в HTML https://developers.google.com/web/fundamentals/getting-started/primers/customelements
@seryh о том же подумал
народ а подскажите чем вы передаёте кложевские структуры данных из браузера на сервер? у меня не заводится ринг транзит миддлвер, уже второй пробую
@mike1452 и ты собрался решить наличие отбитых оопэшников в своём проекте популяризацией кложи? 1. это как-то издалека, 2. в итоге эти же люди будут код писать, думаешь на кложе сильно сложно гавна навалить оопэшного? еще потом начнут опенсорс отбитый релизить - отличай потом сиди годноту от мусора, как с js который год уже происходит Звучит так, что тебе в первую очередь команду менять надо, а не язык
@mike1452 плюс, энтерпрайз это вроде как организационное понятие, не техническое. и если java хорошо на него ложится, то lisp энтерпрайз, это вроде как челлендж мягко говоря. ты наверняка это знаешь конечно, но имеет смысл наверное сразу смотреть на опыт энтерпрайза уже внедрившего у себя кложу. в штатах это вроде как wallmart, были видео. плюс такое ощущение, что в медицинском секторе кложа у них стартанула неплохо
опять же - ридеры это мутабельная хрень. один раз реквест-боди вычитал случайно - отстрелил себе ногу, что похоже и произошло
чтоб я сдох. ок, приеду придётся расчехлять курсив и ставить брейкпоинт. не дебажится нихрена. 😞
@leov я обычно делаю repl в cljs и repl в jvm
два репла
кста дебаггер в цидере очень годен, прям по шагам, бряки, все такое
проверь, что сервер возвращает content-type: application/json
и что данные которые приезжают не обернуты в строку
короче я понял что было не так - у меня декодер стрелял дважды. второй раз вычитать боди - нельзя, это инпутстрим
1. часть маршрутов незакрыта цсрф мидлварью, часть закрыта 2. цсрф мидлварь должна идти снаружи всего-всего (типа "безопасность") 3. должна ещё быть мидлварь, которая запускается ровно один раз за реквест. (пример: ринг-транзит-декодер, который по заголовкам расшифровывает боди в кложурную структуру данных)
@artemyarulin для дебаггера в цидере нужен обязательно емакс, так? вим не подойдёт?