Fork me on GitHub
#clojure-russia
<
2015-11-01
>
ul12:11:48

ещё о ереси https://leanpub.com/purescript/read — отличная книга про PureScript, более мощную в плане возможностей языка альтернативу Elm (да-да, тайпклассы есть)

gordon12:11:46

хаскель в хату

gordon12:11:49

он там как обычно в js транслируется?

ul12:11:20

ага, причём в читаемый js, как утверждает автор 😃

ul12:11:35

и без рантайма

gordon12:11:18

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

prepor12:11:26

@az: программировать! “трейдинг” потому что самая крупная окамл-контора janestreet занимается как-раз всякими финансами

a.espolov14:11:41

братцы объясните пожалуйста на пальцах что такое helm? и helm-clojure что то добавляет для удобства разработки?

a.espolov14:11:23

и как заставить emacs рендерить результат рядом с выражением?

artemyarulin15:11:02

@ul: Не помню обсуждали или нет - rust не смотрел? Или тебе под JS нужно? Пол книги про него уже прочитал, чем дальше тем больше кажется что он может стать вторым моим любимым языком после кложуры

ul15:11:28

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

artemyarulin15:11:03

Если нода - то через FFI он отлично интегрируется https://doc.rust-lang.org/stable/book/rust-inside-other-languages.html

ul15:11:09

Клёво! Вот бы ещё фронтенд “починить” — PureScript вроде ничего, но хаскель-хаскель ведь.

ul15:11:23

Я уже причём за хаскелеподобные языки не в первый раз берусь, но каждый раз становлючь похож на умную собаку. Абстракции выглядят понятными, но вот как код писать — хз )))

ul15:11:34

Ха-ха, люди Rust в JS через Emscripten компилируют.

artemyarulin16:11:01

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

artemyarulin16:11:59

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

ul16:11:20

Да, конечно. Но там ужас какой-то, вот как ребята пишут на нём UI https://github.com/slamdata/purescript-halogen

ul16:11:58

это надо простыню ради формочки ваять

ul16:11:16

я, конечно, понимаю, что мега-тайп-сэйф будет, но всё же

artemyarulin16:11:43

ну дак, зато сейфти. Я не уверен вообще что на фронте есть смысл использовать статик тайп языки: все эти ресты, DOM/BOM слишком динамичны и тут внезапно закуток где все pure & safe… мм, не знаю. Для бека еще куда не шло, хотя там тоже с этими микросервисами никто гарантий никаких не дает

dottedmag17:11:35

Тайп-сейфти - это всего лишь "всё стыкуется" от компилятора. Чем изощрённее система типов, тем больше программ компилятор может проверить на стыкуемость.

dottedmag17:11:56

А что REST/DOM? Они-то хорошо типизированы: на входе URL, на выходе текст; у элемента 100500 методов, и три вида детей; etc.

dottedmag17:11:21

Так что тайп-сейфети на фронтэнде -- это скорее про свой код, а не про взаимодействие с чужим.

asolovyov18:11:11

clojars дохлые?!

asolovyov18:11:08

таки дохлые 😞

dottedmag19:11:04

@asolovyov: Бесперебойный сервинг статических файлов -- задача достаточно сложная для 2015 года troll

asolovyov19:11:35

ага, там что-то с линодой

dottedmag19:11:46

Зачем линода для статических файлов?

asolovyov19:11:02

я хезе, но они там хостятся

artofshine19:11:58

А кто-нибудь пользуется ленивыми последовательностями при доступе к данным?

artofshine19:11:25

Вроде само напрашивается, пишешь функцию вычисляющую некоторое следующее значение в последовательности, определяешь онную и вперед, доступ к огромным массивам данных с приятным синтаксисом.

artofshine20:11:49

DAtomic к примеру не позволяет таким образом делать доступ к данным?

teivar20:11:11

всем привет)

teivar20:11:39

помогите нубу раскурить yesql

rm20:11:15

привет. Он максимально простой. Пишешь sql, в кложе пишешь defquery, и потом вызываешь методы

rm20:11:18

только это

rm20:11:44

читай в вики migration guide, а то на главной была дока устаревшая, когда я последний раз смотрел

teivar20:11:38

да дело не в этом

teivar20:11:54

описал в queries

teivar20:11:12

--name: get-producers! -- retrieve a user given the id. SELECT * FROM producers WHERE name = 📛

teivar20:11:41

(defqueries "sql/queries.sql" {:connection conn}) (checks.db.core/get-producers! {:name "test"} {:connection conn})

teivar20:11:18

вызываю получаю Exception java.sql.BatchUpdateException: batch entry 0: query returns results

teivar20:11:36

(jdbc/query conn ["SELECT * FROM producers where name = :name" "test"]) тут же вызываю, все ок

teivar20:11:53

почему такой Exception не могу понять

rm20:11:16

потому что восклицательный знак

rm20:11:29

убери его из имени

rm20:11:58

и прочитай ридми. Там ! и <! в именах имеют специальное значение

teivar20:11:51

чорт, спасибо, посыпал голову пеплом, ушел читать ридми

rm20:11:32

обращайся

dottedmag20:11:17

@abtv: У меня всё как-то получается, что куда ни сунусь -- ничего не работает. Откатываюсь на то, что знаю хорошо -- и язык, и тулинг - C99 и ES5.

abtv20:11:37

@dottedmag: интересно, а на си ты в чем пишешь?

rm20:11:40

@dottedmag: не отчаивайся же

abtv20:11:17

@dottedmag: Интересная у тебя связка. Нагруженный сервис? Кстати, интересно, а что еще сейчас может являться альтернативой JVM для бэкенда? Чтобы и community (либы) было и движуха? Community и движуха вроде у nodejs есть, а вот у Go мне так сдается только движуха. Но, в то же время, Google может баблом решить, если захочет, а не как с Dart.

dottedmag20:11:57

@rm: Я в этом какой-то дзен ощущаю. Для сайд-проекта взял сначала cljs для хромового расширения, потом откатился до ES6, потом надоело ковыряться с gulp -- пишу теперь на чистом ES5, и получается проще, чем когда-либо.

dottedmag20:11:14

@abtv: На работе node.js отлично пашет в качестве серверной части.

dottedmag20:11:47

@abtv: Сервис нагруженный. 10 млн пользователей/день.

abtv20:11:08

я тут недавно услышал, что node может начать сильно тормозить в зависимости от типа передаваемых данных. Вроде как JIT может не справляться по каким-то причинам с объектами с разными полями. Насколько это верно? Кстати, а у тебя си из ноды вызывается?

dottedmag20:11:42

@abtv: Си у нас с нодой только через сокеты общается -- несколько кусков осталось написано на C, а остальное переписано на JS.

dottedmag20:11:54

Кусков -- отдельных сервисов.

dottedmag20:11:05

WTF "передаваемых данных"?

dottedmag20:11:23

Ну как бэ не надо менять прототип объектов налево и направо, тогда и JIT'у будет легко.

abtv20:11:23

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

dottedmag20:11:25

Если у каждого пользователя свои поля в сообщении, то JIT не сможет ничего сделать, и будет generic-реализацию использовать, которая хэш-массив, а не кусок памяти со смещениями в нём. Тоже нормально, но не сверхбыстро.

abtv20:11:37

Хм. а если передать массив объектов, в которых тоже массив объектов? Тут-то уже не выровняешь... Длина не известна.

dottedmag20:11:09

Фиг знает. Я ни про какие ботлнеки с самой нодой ничего не слышал от остальных.

dottedmag20:11:18

И эта, если передавать массив, то передастся-то ссылка, а не value :)

dottedmag20:11:29

Это ж mutable-all-the-way-down JS.

abtv20:11:46

А насколько это поддерживаемо? А... видимо, предыдущая запись и ответ simple_smile

dottedmag20:11:12

Код, который вставляется на чужие страницы, приходится периодически чинить.

dottedmag20:11:23

Код в контролируемых местах (сервер, хромовое расширение и свой сайт) работает нормально.