Fork me on GitHub
#clojure-russia
<
2015-11-17
>
oxgrouby05:11:42

Блин, чото я опять с кортайпедом завис

Kira Sotnikov07:11:00

p.lebedev какой солидол?

p.lebedev07:11:16

Цена билета на конфу выглядит солидно

Kira Sotnikov07:11:59

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

Kira Sotnikov07:11:08

70 баксов примерно цена

ponimas09:11:55

хм, Дмитрий Бушенко там выступает за команду Хаскеля с Пюрескриптом....

ponimas09:11:18

а раньше за кложу был

Kira Sotnikov09:11:45

кхм, я не осилил http-kit

Kira Sotnikov09:11:57

а clj-http работает ._.

Kira Sotnikov09:11:04

господа, а как засунуть результат функции в переменную?

Kira Sotnikov09:11:29

точнее видимо мне нужна мапа

Kira Sotnikov09:11:54

Заработало

Kira Sotnikov09:11:12

интересно почему http-kit меня послал

oxgrouby09:11:07

показывай код

Kira Sotnikov09:11:36

рабочий код?

Kira Sotnikov09:11:14

его уже нет, точнее мне уже лень его доставать, clj-http работает норм

Kira Sotnikov09:11:30

надо только прикрутить обработку ошибок

oxgrouby09:11:10

> рабочий код? да хоть какой

Kira Sotnikov09:11:06

oxgrouby: спасибо, да уже неактуально )

Kira Sotnikov09:11:25

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

Kira Sotnikov09:11:36

надо бы последовательность поменять )

oxgrouby09:11:42

а я кажется не осиливаю core.typed, а ведь так всё хорошо шло

artemyarulin11:11:01

@oxgrouby: А чо так? Тяжело идет?

artemyarulin11:11:19

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

oxgrouby11:11:31

artemyarulin: я чото не допру как "пробросить тип", не знаю как это по научному говрится -- типа у меня есть полиморфные типы, и есть тип который является Union этих типов, и информация об изначальном типе теряется

oxgrouby11:11:53

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

artemyarulin11:11:56

о господи какой ад

artemyarulin11:11:04

это уже не кложура)

oxgrouby11:11:24

чо не так?)

artemyarulin11:11:51

нене, просто не видел до этого рабочего кода покрытого core.typed

oxgrouby11:11:22

на самом деле я пока не могу гарантировать что сделал нормально, поэтому не суди о нём по этому коду )

oxgrouby11:11:00

а вообще да.. убрать скобочки и будет хаскелль

artemyarulin11:11:41

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

artemyarulin11:11:57

хотя я счас тока на второй главе - могу быть очень не прав :)))

oxgrouby11:11:13

ну, анотации там вроде как настоятельно рекомендуется делать

artemyarulin11:11:25

рекомендуются != обязательны simple_smile

artemyarulin11:11:07

на эту тему кста - никто не пробовал Haskell -> JS? Всякие GHCJS, Haste, PureScript, Elm?

artemyarulin11:11:42

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

oxgrouby11:11:45

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

oxgrouby11:11:06

так вообще можно?)

malch11:11:28

можно 😃

artemyarulin11:11:36

разобрались

niquola11:11:43

Чтобы писать на Haskell, нужно думать как Haskell, ой как Church ;)

niquola11:11:35

Нужно быть готовым перевести решаемую проблему в плоскость математики, обдумать её, покрутить по всякому - это долго ;(

oxgrouby11:11:17

а где в хаскелле математика?

niquola11:11:33

на самом деле везде ;)

oxgrouby11:11:47

может я просто плохо знаю математику и не вижу её

oxgrouby11:11:00

реквестую пример

niquola11:11:27

Что такое моноид?

rm11:11:52

nicola: хочешь офигительную книжку, как вывести (почти) всю математику из одного понятия "множество"? http://inis.jinr.ru/sl/vol2/Mathematics/%D0%90%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7/%D0%9A%D0%BE%D0%BB%D0%BC%D0%BE%D0%B3%D0%BE%D1%80%D0%BE%D0%B2,%D0%A4%D0%BE%D0%BC%D0%B8%D0%BD,_%D0%AD%D0%BB%D0%B5%D0%BC%D0%B5%D0%BD%D1%82%D1%8B_%D1%82%D0%B5%D0%BE%D1%80%D0%B8%D0%B8_%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%B9_%D0%B8_%D1%84%D1%83%D0%BD%D0%BA_%D0%B0%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0,1976.pdf Колмогоров, Фомин. Элементы теории функций и функционального анализа

niquola11:11:47

Ну теория категорий перпендикулярна теории множеств. Книжку гляну - спасиб

oxgrouby11:11:45

хм, чото он не то сообщение цитирует...

niquola11:11:08

Ну а теперь вырази свою практическую задачу в терминах полугруппы ;)

artemyarulin11:11:16

меня хаскель и подкупил тем что он довольно близок к математике ( по сравнению с другими яп по крайней мере) - по крайней мере первое впечатление

niquola11:11:45

Да в этом его прелесть

oxgrouby11:11:57

ладно, сдаюсь

artemyarulin11:11:34

ну а если например ядро приложения написать на хаскеле (чистое, красивое с типами) - а все взаимодействие с внешним миром уже на кложуре например? не? не взлетит, все равно сложно будет?

rm11:11:11

а тебе для этого не нужен хаскель, юзай cats

rm11:11:03

а тебе оно точно надо?

oxgrouby11:11:18

так это самое главное!

artemyarulin11:11:24

неа, не знаю - вот поэтому и хочу хаскель попробовать чтоб точно для себя решить надо оно или нет

artemyarulin11:11:45

10 лет до этого на C# девелопил - и так и не понял 😞

rm11:11:50

oxgrouby: нифига. Главное таки отображения, откуда-куда необязательно определять

oxgrouby11:11:21

@rm: эм, не понял

oxgrouby11:11:36

чо за отображения ты имеешь в виду? %)

rm11:11:07

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

rm11:11:52

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

rm11:11:11

не будем холиварить

oxgrouby11:11:42

https://clojurians.slack.com/archives/clojure-russia/p1447760707000882 я невнимательный, поэтому именно это и хочу )

artemyarulin11:11:19

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

artemyarulin11:11:05

другое дело что если типы то это борьба с компилятором

oxgrouby11:11:27

всегда можно сделать ^:no-check simple_smile

oxgrouby11:11:38

а потом порвать анус на продукшоне.

artemyarulin11:11:21

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

oxgrouby11:11:04

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

malch11:11:32

@artemyarulin: А чем тебя Schema + ^:always-validate не устраивает? (не в качестве предмета спора, а интересуюсь)

artemyarulin11:11:06

я не пробовал, но это вроде проверки в рантайме не?

artemyarulin11:11:26

во время компиляции это тока core.typed на скок я знаю

artemyarulin11:11:58

ну в рантайме это чутка другое

malch11:11:12

Вот хорошая презентация на эту тему: https://www.youtube.com/watch?v=shngiiBfD80

malch11:11:35

Сорри, не то видео (хотя это тоже отличное)

artemyarulin11:11:51

в рантайме то уже масса вариантов - можно и свои pre-post сделать, можно schema, можно свое написать

oxgrouby11:11:10

...вот только не факт что учёл все возможные варианты )

malch11:11:04

Я прекрасно понимаю прелести статических типов, но clojure код куда проще и “чище” выглядит (моя точка зрения) чем Scala

malch11:11:18

А рефакторю я гораздо реже чем читаю код

artemyarulin11:11:36

я не знаю у кого как - у меня главная боль рефакторинг. Поменял функцию f(string) -> int на f([string]) -> [int] и потом ищи все места где она вызывается, и один фиг пропустишь

artemyarulin11:11:07

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

artemyarulin11:11:45

да и кложура уже стала зоной комфорта - надо новое что-нить попробовать чтоб в тонусе себя держать simple_smile

rm12:11:18

по-моему, если меняешь string -> int в [string] -> [int], проще дать ей другое название (тем-более, что это, вероятно, map первой функции)

artemyarulin12:11:04

плохой пример согласен, map наше все

oxgrouby12:11:51

https://clojurians.slack.com/archives/clojure-russia/p1447761456000909 что-же за редактор который не подсказывет?

Kira Sotnikov12:11:55

Search and Replace?

malch12:11:33

Да и Cursive, вроде бы, должен быть в этом хорош

malch12:11:59

Сам я, правда, CIDER пользуюсь

artemyarulin12:11:01

ну хороший редактор конечно поможет, но гарантии даст только компилятор

malch12:11:12

Компиляторы тоже ломаются 😉

malch12:11:12

Мне кажется, что спорить тут особо не о чем. Для кого-то строгость типов нужна, для кого-то нет - дело вкуса.

malch12:11:09

Для меня лично идеалом была бы 100% допиленная core.typed. Пишешь код на clojure, потом просто те места, где это важно, покрываешь типами. Ну или перед рефакторингом покрываешь, тоже вариант.

artemyarulin12:11:54

воотт, на 100% согласен - я бы был просто счастлив если б это было возможно

malch12:11:04

Schema мне пока в большинстве случаев хватает

artemyarulin12:11:26

точнее это возможно да - но статьи типо circleCI как-то расстраивают

malch12:11:59

@artemyarulin: ты лучше сам попробуй, потом расскажешь

malch12:11:44

+ сейчас туда Gradual Typing добавляют понемногу

malch12:11:57

что сделает библиотеку еще полезнее

artemyarulin12:11:15

подожду Gradual Typing пока

malch12:11:55

тоже дело 😄

malch12:11:45

я лучше не буду отвечать, потому что это у меня только “ощущения” такие

malch12:11:55

Сам я тоже пока не успел попробовать

malch12:11:07

Так что я могу быть в корне неправ

oxgrouby12:11:15

там вроде всё норм, только, сцуко, непонятно!

artemyarulin12:11:58

бгг, в книжке про хаскель глава про лямбды начинается с этой картинки: https://www.safaribooksonline.com/library/view/learn-you-a/9781457100406/httpatomoreillycomsourcenostarchimages802560.png.jpg

az17:11:37

Посоны, привет!

thickprogrammer22:11:50

пытаюсь протестить http-kit на максимум лонгпуллов , но у меня сервер принимает только 4047 одновременных подключения. подскажите, плиз, как настроить? ubuntu 15 64 эти настройки делал: echo 9999999 | sudo tee /proc/sys/fs/nr_open echo 9999999 | sudo tee /proc/sys/fs/file-max # edit /etc/security/limits.conf, add the following line, need logout and login again * - nofile 4999999 # set before run the server and test code ulimit -n 4999999