This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2016-01-21
Channels
- # aatree (88)
- # admin-announcements (14)
- # alda (26)
- # announcements (4)
- # avi (6)
- # aws (7)
- # beginners (80)
- # boot (268)
- # braid-chat (58)
- # cider (4)
- # clara (54)
- # cljs-dev (16)
- # cljsrn (27)
- # clojars (13)
- # clojure (123)
- # clojure-chicago (2)
- # clojure-czech (8)
- # clojure-france (5)
- # clojure-hamburg (2)
- # clojure-miami (6)
- # clojure-nl (5)
- # clojure-russia (285)
- # clojure-spain (2)
- # clojurebridge (3)
- # clojurescript (137)
- # code-reviews (14)
- # community-development (6)
- # core-async (8)
- # core-matrix (10)
- # cursive (2)
- # datascript (1)
- # datomic (24)
- # dirac (2)
- # emacs (5)
- # hoplon (4)
- # incanter (6)
- # jobs (7)
- # ldnclj (42)
- # ldnproclodo (2)
- # leiningen (1)
- # mount (60)
- # off-topic (15)
- # om (134)
- # onyx (65)
- # perun (4)
- # portland-or (2)
- # proton (15)
- # random (1)
- # re-frame (24)
- # reagent (7)
- # testing (4)
- # yada (9)
по-моему, в хачкеле тоже так. Ну и вроде логично, (map как что). А вот обращение к джаве как раз путает (.method object args). Был бы object последним, я бы не путался
lf 'nj ;t utybfkmyj
да это же гениально
ХАЧКЕЛЬ
@dottedmag: да, очень клевая штука
я всегда кложурОй ее называю
кстати есть google closure и вот как говорить чтобы тебя правильно поняли что ты имеешь ввиду clojure а не closure
@artemyarulin: я ударение на У обычно ставлю
пришло время разобраться с prismatic/schema, подскажите как сделать у меня вот есть 3 схемы, мне нужно в функции проверить что агрумент удовлетворяет одной из этих схем, чет не пойму как сделать
@abtv: CircleCI, Travis, Jenkins
@artemyarulin: а бесплатная версия CircleCI подойдёт для clojure? Там памяти хватает?
@abtv: А вот кстати не знаю. Дело в том что я у них использовал всегда MacOS машины https://github.com/artemyarulin/koh/blob/master/circle.yml, который счас стали платными. А докер окружения ни разу не использовал
на скок я помню там 2 гига памяти
или 3
@abtv: Почти нет - для опенсорса ухожу на тревис, а для приватных проектов мне с моим монорепо ничо не подходит и хостю свой дженкинс
дак ты попробуй - vendor lock то нету почти, можно хоть завтра на тревис переехать
а TeamCity от JetBrains никто не использовал для clojure?
дак там же паралельно все, хоть TeamFoundationServer прости господи юзай - сделать cd project && lein uberjar && lein test
можно ж где угодно
или я чота упускаю?
да действительно, все просто, сейчас играюсь с курсивом заодно и к TeamCity решил прикрутить. Одна среда - это приятно
нет, ну может кто из CI прям из коробки поддерживает кложуру и что прям не надо даже lein test вводить)
вот кстати да сразу вопрос - можно lein test заставить в каком-нить XML виде результаты тестов выкидывать?
JUnit test reports обычно используют
https://github.com/arohner/lein-test-out/blob/master/src/leiningen/test_out.clj а через плагинчики все можно да
о, это поактуальней спасибо
круто, надо заюзать. Но я почти уверен что для ClojureScript надо искать чонить другое, эх
надо посмотреть, я почти всегда просто код прогоняю под несколькими бразуерами и нодой поэтому юзаю https://github.com/bensu/doo, а он наверняка чота свое еще делает
обычно в таких сервисах ты можешь без особых проблем и chrome добавить для тестирования (например)
а кто как вообще тестирует тут clojurescript? просто раньше был https://github.com/cemerick/clojurescript.test, его дропнули ибо clojure.test портанули на clojurescript. И теперь вот можно руками запускать, либо раннеры типо doo юзать
может еще какие варианты есть, кто как делает?
I strongly suggest migrating to use the official core cljs.test + for test-runners and leiningen/boot integration. Thanks to all contributors for helping make testing ClojureScript workable until those tools arrived/matured!
да я знаю что написано - ну может кто еще как просто, ктож знает что коммьюнити придумает
да, но походу чуваки с буута переписывают все с нуля
у них свой аля фигвил даже видел есть
скажите, а правильно ли я понял что пкобраен это бот?
а то он тут в соседней ветке Стюарту Сиерре сказал, "я смотрю ты не плохо знаешь кложу. ты не пробовал написать книжку?"
Бедный Стюарт высыпал кучу эмоций - ржака короче
о точно! сорри
в какой ветке?
запилите оригинальные цитаты )
это пкбрайн чота странный - пришел в канал cljsrn, спросил anyone^?
и больше не отвечал. Так что может и бота включает иногда
не припомню такой проблемы… 304 сервер отдает если не изменился. в обратном случае браузер по новой загружает. и никаких костылей с &version=122 не нужно
@potapenko: Это если ETag правильно и всё это в CDN.
@potapenko: Плюс у пользователей будет каждый раз лишний round-trip "ась, не поменялось?" на сервер.
@dottedmag: наоборот никакого дополнительного запроса. нет? Всегда один запрос, нет?
@potapenko: Если у тебя стоит Cache-Control: навсегда
для script.js?version=123
, то тогда при втором заходе на сайт запроса не будет.
ноль запросов меньше чем один
Во-первых, производительность. По этому поводу есть замечательная книжка: http://astore.amazon.com/possiboutpos-20/detail/1449344763
Ilya Grigorik, мега книга
помню оттуда что index.html должен быть меньше 16кб
или скок там чтоб в MTU влезло сразу
я имею большой опыт разработки продуктов и все эти оптимизации обычно приводят лишь к подмене целей а нужно ли экономить на CDN спросите у тех, кто за него платят. Экономия три копейки а разработчики потратят на нее пару человеко-часов
ворчишь:) там оно больше направленно не на экономию денег/трафика а на уменьшение latency
э, ой ли?
@potapenko: Ну да, на домашнем блоге не надо, а когда количество пользователей подбирается к десятку миллионов - начинает влиять уже и по деньгам.
Чуть больше: http://hola.org/
ну если так, то да, согласен, там нужно каждый байтик оптимизироать, но на 99.99 процентах проектах вся эта ерунда и занудство - лишняя
вижу митинг, где с умным видом люди, еще не запустившие стартап свой обсуждаюткак им трафик оптимизировать. ноль запросов вместо одного и так везде. весь мозг себе съедят
ну так же интересней!
если 100% времени заниматься только бизнесс логикой, кастомерами и продуктами - скушнож будет
да, мне нельзя в стартапы)
Есть ещё одно соображение -- если всё равно, как делать: через ETag или через бесконечное кэширование и версии, то лучше сделать future-proof, чтобы просто забыть про это.
кста - CDN же должны автоматом все это предлагать
@artemyarulin: Ну вот в холе мы 20-30% времени (в зависимости от того, насколько много чего горит в данный момент) занимаемся рефакторингом, тулингом, инфраструктурой и выплатой техдолга. Так что от стартапа к стартапу варьируется.
@artemyarulin: Переписывание ссылок в HTML тоже?
дак неа, при ETag не надо будет ничо писать. Т.е. будет всегда запрос от браузера на который будет 304 будет всегда
т.е. не так красиво как с Cache: forever, но зато ничо менять не надо.
а чо там используете? Google Closure не пробовали? Как никак лучший минификатор
ха, то тут 304 лишний тебе не пофег, то на минификацию тебе пофег
@dottedmag: в сафаре не понятно - нужно крупнее написать что у меня браузер не той модели а то двадцать раз нажал на кнопку «Start usung hola…»
чтоб у тебя все сразу легло?:)
это конечно приятная проблема - но легче от этого не будет
… особенно с нодой на беке которая знаменита своей скоростью
а чем нода по скорости плоха? по тестам 600K одновременно один инстанс может держать
одна из любимых шуток рубистов: - как вы оптимизируете руби? - просто докидываем больше серверов
@potapenko: 600к одновременных это скок запросов в секунду? Да и не важно - если нода может 600к, то netty под JVM сможет 6M
уже кидали тут не раз вроде https://www.techempower.com/benchmarks/#section=data-r11&hw=peak&test=plaintext
посмотрел где там руби - хм, ну да. Нода быстра 😄
да сейчас в век тонких серверов уже пофиг на каком VM оно крутится. и на каком языке. У меня любой проект на ноде - это схема базы, идентификация, REST и правила доступа, и генерация index.html для социалок. Пару middleware и кастомных роутеров. а клиент это SOA и там всякие сложности уже реализованы в виде клиентского приложения и серверу на это пофиг. Фреймворки типа Rails/Grails итд не нужны.
@potapenko: У тебя на клиенте чо? Реакт с JS или CLJS? Почему ты в этом чате?:)
Да, сервер уже не настолько важен. Вот здесь у нас обычные пользователи вообще до кода, который работает на сервере, не доходят: http://holacdn.com/
я хз по поводу прям что все равно на чем на сервере - у меня как раз бек сча на ноде и вот пишу наконец на кложуре. Больше никогда ноду не хочу видеть
один репл чего стоит. Т.е. я согласен что client side счас важен и сложен но бек на ноде бы не стал писать
у меня в моем проекте была проблема с базой, у меня там был текстовой поиск и меня не устаивала производительность, я написал на clojure апи серер на http-kit, потому что хотел чтобы многопоточность была при обращении к кэшу.
да там получилось в 1000 раз быстрее чем обращение к базе. Но заслуга тут не в сервере на java, а в правильных моих руках Ибо я придумал очень хитрый кэш и текстовой поиск по нему.
если пишешь продукт, стандартный, то сервер чаще всего очень прост. тут встает вопрос не производительности, а на сколько многого готовых решений, как быстро его запилить и как легко его подерживать. node.js - очень и очень неплохой выбор.
Вот ещё бы перестали раз в пять лет переписывать все библиотеки заново с Perl на Python на Ruby на JavaScript, и было бы зашибись.
сча на гоу все все переписывают)
Хотя JVM и JavaScript are going to stay, так что может и закончилась эта вакханалия.
@seryh я тоже поглядываю, на как бы слезть, но пока мой стэк решений меня устраивает и такого же аналога на clojure/jvm не нашел
ну сложно удержаться да - я планирую внесли свою лепту в переписывание всего на раст да
не нашел на java/clojure схемы для mongodb как mongoose (http://mongoosejs.com) и такого же удобной REST библиотеки как baucis (https://github.com/wprl/baucis) может ты подскажешь чего? monger мне понравился, и я его использовал. но он не про то.
неа, на орм у меня аллергия. А на такие большие либы которые много всего и все магически и само за тебя тоже как то не очень. Сейчас делаю сервис - там 2 ендпоинта по сути, дак один aleph как сервер пара функций для роутинга, т.е. совсем не знаю, сорри
т.е. да - я не знаю либ которые помогают делать продукт
@potapenko: дак ты на клайн сайде то не юзаешь cljs, я что-то пропустил. Просто на клиенте без ом (да и самого cljs) я счас вообще не представляю как бы жил
artemyarulin [9:30 PM] э, ой ли? ой ли. в интернете ничего больше 1500 байт у тебя не пролезет
Помню монгоюсе заставил меня страдать, своей самостоятельностью, кажется сам дописывал s к именам журналов
@prepor: Я может уже чо путаю, но 1.5кб plain text это как бэ не мало? index.html можно упихнуть нет разве?
view-source:https://www.google.ru/
<!doctype html><html itemscope="" itemtype="http://schema.org/WebPage" lang="en-RU"><head><meta content="/images/branding/googleg/1x/googleg_standard_color_128dp.png" itemprop="image"><link href="/images/branding/product/ico/googleg_lodp.ico" rel="shortcut icon"><meta content="origin" id="mref" name="referrer"><title>Google</title> <script>(function(){window.google={kEI:'RTShVvOZHuueywOO7KuADg',kEXPI:'1350255,3300133,3300161,3312381,3700283,3700385,4029815,4031109,4031477,4032677,4033307,4036527,4038012,4038214,4039268,4041776,4042553,4042784,4042788,4043041,4043397,4043492,4044606,4044954,4045096,4045293,4045841,4046043,4046304,4046399,4046835,4046837,4046904,4047593,4048854,4048881,4048980,4049063,4049551,4049555,4050281,4050912,4050916,4050981,4051105,4051540,4051559,4051714,4052304,4052316,4052749,4052751,4052954,4053233,4054284,4054552,4055217,4055390,4055718,4055744,4055996,4056038,4056126,4056162,4056247,4056359,4056366,4056485,4056489,4056611,4056682,4056723,4057143,4057169,4057185,4057409,4057552,4057704,4057834,4058002,4058227,8300096,8300273,8300310,8502095,8502315,8502690,8502888,8502937,8502986,8503210,10200083,10201554,10201587',authuser:0,j:{en:1,bv:24,pm:'p',u:'3fba0b6f',qbp:0},kscs:'3fba0b6f_24'};google.kHL='en-RU';})();(function(){http://google.lc=[];google.li=0;google.getEI=function(a){for(var b;a&&(!a.getAttribute||!(b=a.getAttribute("eid")));)a=a.parentNode;return b||google.kEI};google.getLEI=function(a){for(var b=null;a&&(!a.getAttribute||!(b=a.getAttribute(
Вообще, Григорик говорил, чтобы в первом пакете оказывались ссылки на CSS/JS, которые браузер может начать парсить и сосать ещё до второго пакета.
вооот, я про это, спасибо @dottedmag
@dottedmag: это сейчас
изначально у меня приложения вообще не имели стейта - стейт загружался с сервера при создании каждого компонента, когда он понадобился (стал мобильное лепить) подумал а почему бы и нет
я изначально с делал вывод такой re-frame писали люди которые не full-stack и и они не могли сами лепить структуру данных как им нравится, у них всегда был впереди некий процесс под названием - «прикручивать к серверу» и чем они могут существовать от сервера более изолированно, им от этого более хорошо
а эти query разработчик клиента не может быстро сделать «не отвлекая Васю» вот он и делает все средствами клиента.
в общем, в текущем проекте стал использовать, профиты пока для меня все же не совсем понятны. может быть потом, когда я увижу что без него было бы все хуже я скажу «ну вот, он оказывается полезен»
Я понимаю, что если компонент только эмитет данные - то вроде как он раздекауплен. Вопрос - это практически полезно, или просто заставляет меня в трех местах одно и тоже писать.
по централизованной базе - такой же вопрос - насколько это полезно, какие кейсы иначе не решить
ну например ты управляешь доступом к данным на одной странице (фильтр некий) а сморишь их на другой
однозначно не могу ответить что это хорошо. сплошные академические штуки типа MVC или других архитектурных догм
но выпилить потом re-frame у меня будет уже проблемой, у меня даже вот toggle кнопка уже знает что такое подписка
@nicola: а не знаешь почему интерграцией с dropbox не сделали? чтобы картинки видеть в чате?
на маке это встроенная штука cmd+shift+4 и дропбокс это дело выкладывает. тут бы ничего не было лишнего - картинка, которая откроется попапом без лишнего хлама. Они open-graph используют в slack для отображения.
вау, никто не игрался еще с http://planck-repl.org? Быстрый, прям думаю уже для скриптинга заюзать
time planck -e'(* 4 (Math/atan 1))'
3.141592653589793
real 0m0.280s
@artemyarulin: Больше никогда ноду не хочу видеть [8:15] один репл чего стоит. а когда фигвил ноду запускаешь, там репл есть
аа, дак ты на ноде на CLJS пишешь?
ааа ты про недо-репл который вызывается когда node вызываешь без аргументов?
нене, я имел ввиду нормальный репл - когда из емакса я могу в любом месте сделать евал, я про это
а так то я могу сказать что и C# репл есть, как бэ