This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2016-03-24
Channels
- # admin-announcements (1)
- # aws (3)
- # beginners (52)
- # boot (150)
- # braid-chat (1)
- # braveandtrue (5)
- # bristol-clojurians (2)
- # cider (21)
- # cljs-dev (1)
- # cljsfiddle (1)
- # cljsjs (5)
- # cljsrn (4)
- # clojars (3)
- # clojure (236)
- # clojure-berlin (2)
- # clojure-czech (1)
- # clojure-madison (1)
- # clojure-russia (164)
- # clojure-sdn (1)
- # clojure-sg (2)
- # clojure-uk (64)
- # clojurescript (149)
- # core-async (31)
- # cursive (33)
- # datomic (2)
- # devcards (5)
- # funcool (3)
- # hoplon (142)
- # immutant (27)
- # juxt (7)
- # lein-figwheel (6)
- # liberator (6)
- # off-topic (4)
- # om (46)
- # onyx (26)
- # parinfer (5)
- # perun (56)
- # proton (6)
- # re-frame (19)
- # reagent (1)
- # remote-jobs (12)
- # ring-swagger (17)
- # slack-help (2)
- # spacemacs (11)
- # specter (1)
- # untangled (11)
- # yada (3)
(def a (atom nil))
(time (dotimes [n 1000000]
(reset! a @a)))
"Elapsed time: 35.820000 msecs"
(time (dotimes [n 1000000]
(cljs.core/-notify-watches a @a @a)))
"Elapsed time: 59.255000 msecs"
(time (dotimes [n 1000000]
(let [v @a]
(cljs.core/-notify-watches a v v))))
"Elapsed time: 46.700000 msecs"
(time (dotimes [n 1000000]
(reset! a @a)))
"Elapsed time: 31.740000 msecs"
Господа, а подскажите рабочий клиент для Google Cloud? Пока что интересно только Storage.
@nicola: http-kit
- это топор и карта ближайшего лесного массива место туалетной бумаги :)
Всем привет 👋:skin-tone-2: Недавно запустил сайт https://clojurescript.ru/, что бы было где почитать на русском.
сейчас занимаюсь переводом шпаргалки https://github.com/clojurescript-ru/cljs-cheatsheet может кому-нибудь будет интересно помочь с этим. Ну и в целом набросать полезных ресурсов.
Что я выяснил. jclouds
-- это ахтунг. Руками ходить в Google Cloud Storage вполне возможно, но там OAuth2, и это геморрой.
для oauth2 есть чесьма крутая либа - https://github.com/scribejava/scribejava
@delaguardo: Выглядит неплохо, но, кажется, только для 3-legged OAuth (сервер/сервер/юзер), а для сервисных аккаунтов там нет.
Впрочем, я уже покопался в коде гугловой питоньей библиотеки для OAuth -- для сервисных аккаунтов всё очень просто.
@dottedmag: а расскажи зачем им oauth? почему не api-key просто?
@prepor: Ну как я могу рассказать, зачем гугловые инженегры решили, что им нужен только OAuth? Решили, и всё тут.
dottedmag: ну возможно ты понимаешь мотивацию. потому что с моей точки зрения это мудачество полнейшее. но раз гугл, то может я чего не понимаю
Впрочем, не страшно. Вместо генеряченья API key гугл даёт .json'ку, которую можно подпихнуть утилите.
@prepor: Не знаю. Подозреваю, что для стандартизации: если делать отдельный API key, то нужно опять реализовывать scopes, authorization и прочую байду, которая в OAuth есть всегда.
у cloud есть нормальная token based аутентификация. https://dl.dropboxusercontent.com/u/2440979/Screen%20Shot%202016-03-24%20at%205.52.49%20PM.png
@dottedmag: AI Manager -> Credentials. Create credentials. API key -> Server key
@nogenhat: "API keys do not grant access to any account information, and are not used for authorization."
Привет. В кложур вакансиях часто требуется java. Плюс по самой java много вакансий для джуна (больше чем для clojure :) ) Подкиньте хороших книг по Java, пожалуйста, буду изучать. Глаза разбегаются.
Типа без книг пойдет, если основы знаешь? Ну хорошо)
Книги нужны - но по java наверно придется с десяток прочитать и есть спека - скучаная, но полная
А почему вообще требуется java для clojure? Понятно, что интероп, но ведь для этого, наверное, не нужно прям детальное знание java и опыт плотной работы с ней. Может кложа как-то интегрируется с джавопроектами?
в более менее серьезном проекте - постоянно будешь в java лазать - это фича, а не проблема
Ясно. А у Clojure CLR такой же потенциал?
Или Clojure CLR так же широко не будет использоваться?
дотнетчики народ стабильный, долбят свой C# в MS Studio и ничего им не нужно (у них F# есть и тот не используют)
у меня конечно сильно ограниченный опыт - но коммьюнити сделало кучу врапперов над жава либами и почти на любой чих можно взять готовое чем делать интероп самому
а есть тут кто скажет что поменялось в class-loading в jdk8? я вот тут https://github.com/ninjudd/classlojure/blob/master/src/classlojure/core.clj#L81L86 убрал этот ужас, просто вернул result и все работает даже с не java core classes
@prepor - а давай ты на hangout про http://druid.io расскажешь?
в jdk7 это не работает изза CompilerException java.lang.reflect.InvocationTargetException,
т.е. в jdk8 я вполне удобно работаю с 2мя объектами от классов разных версий и думаю, что тут что-то не чисто
ребята, а как можно передать jvm-опции, если запускаешь приложение через lein trampoline run
?
добавил :jvm-opts ["-Xmx1g"]
в project.clj
, но через ps aux
у запущенного процесса этой опции не вижу вовсе
эх, у меня на работе дождались когда я свалю в отпуск и заявили что все два сервиса на кложуре будут выпелены и переписаны на го. Не взлетело... https://www.youtube.com/watch?v=tIdIqbv7SPo Ain't no sunshine when she's gone. Only darkness every day
1) ты был единственным кто понимал? 2) а если вкратце - о чем сервисы, сколько строк хотя бы
1) Есть еще пара кложуристов, но в других командах 2) Да обычные умные прокси по сути - пришел запрос, дернул другие два, результаты смержил. 800 строк со всеми тестами
мне об этом сказали еще пару месяце назад, но я думал у меня будет время хоть чутка в проде подержать кложуру пока переписывают, но нет. “Не нужное - не нужно”(с)
@artemyarulin: дождись пока они уйдут в отпуск и перепеши их сервисы на кложуру
го придется читать - у меня на него аллергия
@artemyarulin: так а позиция - “уже написано, уже работает” не работает?
@artemyarulin: да, это обидно
чота не прально написал - кложуристы есть, но они ноду и го пилят, мои 2 сервиса были единственными на кложуре в конторе. @rmuslimov: Именно! Микро сервисы же, HTTP же, готово же, но нэт. Там конечно причина не столько кложура - разработку нового направления решили просто перенести в US, ну и заодно на го переписать, чтоб без скобочек...
ну увели можно и так сказать да, но может еслиб я писал тут на ноде то и не увели бы например, здесь бы нашли доп ресурсы
хз, второй раз будет уже тяжелей протащить
да неа, вы чо, я в кложуру влюблен по уши и переключусь на свои проекты просто 😄
😄 😄 😄
спасибо за поддержку, они себя сами с этим го отлично угробят 😛
контора большая - должен быть один язык на все случаи. Бек на го, фронт на жс, усе
да ну их...
@artemyarulin: печальная история... и ты теперь тоже на го будешь писать?
@abtv: Неа, я его не люблю и все понимают как я буду писать на том что я не люблю (= никак). Скорее всего либо вернусь на ObjC (то еще говно) либо буду на JS писать, там хоть можно функциональщину. Посмотрим как пойдет, ну если нет то ближе к осени можно будет начать смотреть что-нить на кложуре, у нас как раз пол года назад zalando в город приехал, у них кложура/скала/жава.
Каждый раз когда меня спрашивают на сколько ужасен ObjC я всегда скидываю свой любимый вопрос на SO http://stackoverflow.com/questions/6720191/reverse-nsstring-text Оттуда один из ответов:
SString *myString = @"abcdefghijklmnopqrstuvwxyz";
NSMutableString *reversedString = [NSMutableString stringWithCapacity:[myString length]];
[myString enumerateSubstringsInRange:NSMakeRange(0,[myString length])
options:(NSStringEnumerationReverse | NSStringEnumerationByComposedCharacterSequences)
usingBlock:^(NSString *substring, NSRange substringRange, NSRange enclosingRange, BOOL *stop) {
[reversedString appendString:substring];
}];
и первый комент к ответу:
I like this one. Very elegant.
Каждый раз ржу 😄так что нет, не лучше
@artemyarulin: а почему бэк на го, а не ноде? еще удобнее же, один язык только.
ну нода счас везде у нас, вот с нее слезают и перекатываются на го. ибо + типы + скейлится лучше
я, кстати, на джаве недавно стал писать параллелльно с clojure. сначала плевался, а потом даже понравилось, когда начал стримы использовать, хоть что-то
там же вроде стримы надо конвертить все время туда и сюда?
ну т.е. массив в стрим, потом обратно
еще бы классы коротко как в скале объявлять и все будет неплохо. за исключением легаси, конечно
я в последнее время даже нашел плюс в том, что приходится и на java писать. круто же, что могу и то и это
ну должно же быть в этом Go хоть что-то хорошее даже для Clojure разработчика. думаю там тот же CSP реализован эффективнее
с го для меня главная проблема что я не смогу функциональщину там. map|filter|reduce могут быть реализованы тока если все приводить к interface
(к верхнему Object по нашему). immutable нет опять же
и классы "кратко", data-классы на который вполне себе ADT, и выводилки типов, и еще всякие приятности, но при этом 1в1 в яву мапится в обе стороны, включая всякие аннотации
@prepor: кстати, да, мне может и подойти. а в целом котлин как-то уж поздно появился, думаю переход будет не быстрым
@artemyarulin: совсем нельзя функциональщину? там, наверное, просто больше кода и не так удобно. Я вот, например, в Rust немного разочаровался. Ну т.е. все вроде ок, но очень медленно код пишется. Кому-то может и надо, но мне проще на Clojure/Java. По крайней мере пока.
@abtv: тебе переходить никуда не надо, можешь прям миксить по жесткому и постепенно перетаскивать.
а какая киллер-фича у котлин? где он может быть лучше скалы, или у него общая область применения?
>где он может быть лучше скалы, или у него общая область применения? он понятнее, сложно наговнякать
если скалу можно воспринимать как улучшенную яву + ОЙ ОЙ ОЙ ТАЙП КЛАССЫ, МАКРОСЫ, ИМПЛИСИТЫ, ЧЕРВИ, то вот в котлине просто улучшенная ява, а второй части нет.
на F# писал, правда месяца два всего, крутой язык. потом я ушел с него на скалу, потому что была переносимая. спасибо за F*, не знал
не видел больше ни одного программиста в живую, кто бы на F# писал, большинство моих знакомых (кто пишет под MS) C# устраивает полностью
и это печально. F# выглядит очень круто (по сравнению с С#)
фстар академический же совсем ) фшарп норм, но там нет самых главных фишек млей: модулей, функторов, объектов и классов окамловых.
у меня на окамле есть проектик один, которым у нас весь прод задеплоен https://github.com/prepor/condo/. + щас эксперимент делаем по переводу куска прода на окамлик, посмотрим
Да. они совсем разные ) Это два моих любимых языка. Если их сравнивать, то это надо уходить в глубокий анализ разницы подхода статической типизации и динамической и этих языков, как лучших их представителей. Я пока боюсь не осилю 😉
Господа, а что делать, если я попатчил библиотеку X и положил её к себе на clojars, а использую я библиотеку Y, которая использует библиотеку X.
@dottedmag: 1. здесь https://github.com/cemerick/pomegranate/blob/pomegranate-0.3.0/src/main/clojure/cemerick/pomegranate/aether.clj#L634
2. или да, глобально https://github.com/boot-clj/boot/wiki/Boot-Environment