Fork me on GitHub
#clojure-russia
<
2016-08-09
>
comerc09:08:22

@dbushenko: тут ошибка https://youtu.be/6sZ6A7jx3QA?list=PLHmGp4OYEMn3yPOV03tjpl64doNfNeabV&amp;t=2678

(defn f3 [a b]
  "Sums a and b"
  (+ a b))
если поменять местами объявление параметров и строку, то у нас будет документация к функции:
(defn f3 
  "Sums a and b"
  [a b]
  (+ a b))
(doc f3)

comerc09:08:55

строка с документацией живет до определения параметров не просто так, а с умыслом - для объявления вариаций функции с разным набором параметров.

artemyarulin09:08:26

интересно откуда эта ошибка пошла - я сам так долго писал. Мож с питона - там как раз

def f(a):
  “Here goes docstring”
  return a

artemyarulin09:08:52

а кста в тему - я хочу README.md сгенерить на основе doc strings в либе, есть чо готовое для этого?

comerc09:08:23

marginalia

artemyarulin09:08:07

оу, вау, дофега. Спасибо @comerc

andre10:08:00

(require '[compojure.api.sweet :refer :all])

andre10:08:27

почему "квотят" иногда require , в чем разница?

andfadeev10:08:43

в вызове функции require всегда надо квоутить

andfadeev10:08:44

The strange looking quoted vector is a shorthand to avoid having to quote every individual symbol within the vector. You could type:

andfadeev10:08:48

(require ['clojure.string :as 'string])

andre10:08:37

не нашел там ответа почему всегда надо квоутить

andre10:08:48

This is because require is implemented as a function and not a macro

andre10:08:53

может это раньше так было

andre10:08:03

а теперь все ок и квотит просто олдскульно

andre10:08:07

все понял

andre10:08:33

есть require а есть (ns :require

kronos_vano10:08:51

(require '[clojure.string :as string]) ихмо так проще

andfadeev10:08:53

ну вопрос то был про (require)

andre10:08:09

да, сорри запутался

andfadeev10:08:09

а не про :require в ns

andfadeev10:08:32

не заквоутишь в фунции будет эксепшен

andre10:08:41

а где используется функция?

andfadeev10:08:57

в репле например хочешь ченить зарекваирить

andre10:08:04

все понял, спасибо

andfadeev10:08:14

ну или никто не мешает просто в нейпспейсе написать

andfadeev10:08:18

вызов функции

artemyarulin10:08:24

а в cljs кста наверно тока ns :require работает?

artemyarulin11:08:17

походу да, низя +

load is planned
load-file exists, but only as a REPL special function

andmed11:08:42

offtopic: а что с rsdn случилось? уже месяц лежат, или с того

dottedmag11:08:03

Они е-мейл присылали, что потеряли домен

dottedmag11:08:27

На http://rsdn.org переехали "временно".

andmed11:08:51

ого 🐼

dottedmag11:08:47

Да, рутины - это не русское дело.

dottedmag11:08:00

Я помню, как Parallels как-то потерял http://Parallels.com на несколько часов.

dottedmag11:08:04

"Update at 25.07.2016: Сейчас ведется перерегистрация домена. Процесс может занять от 7 до 14 дней. Простите братцы!"

dottedmag11:08:56

"Долго рассказывать. В общем, сами виноваты. Сейчас надо перерегистрировать на себя и держать ДНС самим. А это займет врем. Домен не потерян. Просто тот кто его регистрировал получил проблем и решил передать его нам в срочном порядке. Но ДНС он уже отключил."

andmed11:08:24

ага + лень. учитывая стоимость доменов ленивое решение было бы заплатить на десять лет вперед, и включить в годовую тудушку. хотя есть такой момент -- возможно они были на http://nic.ru регистраторе -- у меня с ними самого были проблемы. вдруг стали слать спам такой нехилый. а что делать -- их же не забанишь. я им даже в саппорт писал, они такие: у нас в договоре есть, можем слать рекламные сообщения. я прифигел и перевел все домены к другому. дешевле и пишут по делу

andmed11:08:47

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

dottedmag11:08:27

Владелец домена передал RSDN'овой команде домен (NIC -> медленно), а DNS опустил.

dottedmag11:08:36

Ну вот они и кукуют, пока NIC прочухает

andmed11:08:11

ru-center угу. не удивлюсь, что и правила перевода у них такие "чудные"

dottedmag11:08:11

Ахаха: " К сожалению, те кто должны были инициировать это дело так и не послали нотариально-заверенное письмо. Так что процесс затягивается. "

andmed11:08:28

чего к нормальному не уйдут-то??

dottedmag11:08:30

Не ходите, дети, с NIC-ом гулять.

dottedmag11:08:41

Так уже никак :) Нужно нотариально заверенное письмо, чтобы уйти.

dottedmag11:08:09

http://rsdn.org зарегистрирован на GoDaddy, что не лучше, впрочем.

andmed11:08:33

блин, я свалил раньше, по мировым, така сказать, технологиям, молодец,

andmed11:08:45

мой регистратор на каких-то островах))

andmed12:08:33

.org и .us

andmed12:08:56

ру нет, да, это важно

dottedmag12:08:31

@andmed: Дык тогда просто. А то по этому списку регистрар на островах может быть только на Соловецких =) https://cctld.ru/en/registrators/

dottedmag12:08:51

101domain и тот .ru

andmed12:08:59

LOL. У меня был личный сайтец 10 лет назад в ру зоне. бросил. с тех пор висит в продаже за немыслимые бабки. я плюнул и десять лет спустя прикупил в us ништяк.

andmed12:08:07

как они не прогорают, перекупщики эти

andmed12:08:03

че-та мы не туда..)

rmuslimov12:08:11

ребята, внимание offtopic - кто-то практикует работу стоя? необязательно 100%, полдня стоя - полдня сидя тоже ок

artemyarulin12:08:52

практиковал ага (и практикую когда могу), в чем вопрос?

rmuslimov12:08:05

ну насколько популярно хотел узнать

rmuslimov12:08:16

последние три месяца стал работать сидя, стала болеть спина

artemyarulin12:08:24

ты весь день стоишь?

rmuslimov12:08:29

подозреваю что стоит вернуться

rmuslimov12:08:35

раньше работал 50-50

rmuslimov12:08:57

думаю стол теперь купить

comerc12:08:02

> последние три месяца стал работать сидя, стала болеть спина попробуй лежа 🙂

seryh12:08:31

я даже не слышал о таком способе, кодить стоя

rmuslimov12:08:08

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

artemyarulin12:08:30

я хз, оно может со спиной не связано но у нас очень много народу юзало вот эти штуки http://www.popsugar.com/fitness/How-Strength-Train-Balance-Board-3728459

artemyarulin12:08:00

я тоже без такой счас не очень представляю работу стоя - няшная штука)

andre12:08:08

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

artemyarulin12:08:18

о тоже вариант

andre12:08:20

осанка выровнялась

artemyarulin12:08:27

ты прям весь день на нем?

andre12:08:41

ну в рабочее время

rmuslimov12:08:42

что за седло?

andmed12:08:51

крутая тема

andre12:08:10

ну оно типа для стоматологов, финская фирма запатентовала и задорого продает, аналогов не видел

andre12:08:54

ага вот у меня такое прям ))

artemyarulin12:08:35

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

andre12:08:27

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

artemyarulin12:08:35

еще кста видел коллегу на варианте вот такого http://www.ladywow.ru/wp-content/uploads/2011/06/stul-sedlo-v-interere.jpg Тока взрослый здоровый вариант

rmuslimov12:08:47

это маньяки какие то

rmuslimov12:08:07

собственно в долине много было столов которые ездят вверх и вниз

rmuslimov12:08:12

если обувь удобная

rmuslimov12:08:18

то можно долго стоять

rmuslimov12:08:27

плюс ноги на ногу качаться

rmuslimov12:08:36

и усталости нет совсем

rmuslimov12:08:48

к сожалению в наших краях прям мало чего

rmuslimov12:08:16

вот как то так оно выглядит

andmed12:08:20

и код такой же красивый!

rmuslimov12:08:43

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

artemyarulin12:08:09

зато у нас снега зимой полно 😛

artemyarulin12:08:44

и осенью, и весной и даже иногда летом rage4

artemyarulin12:08:32

возвращаяс к теме - когда там 1.9 зарелизят уже? Естимейстов никто не видел?

comerc12:08:33

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

comerc13:08:53

но у правильного стартапера должно быть вот такое кресло: http://www.hmshop.ru/catalog/aeron/

kronos_vano13:08:46

у зажравшегося

rmuslimov14:08:35

хозяйке на заметку, спасибо

andmed14:08:24

вот ведь надоумили. доберусь домой -- начну мебель двигать

andfadeev14:08:07

у нас на работе аероны, домой жаба душит

andfadeev14:08:18

но они конечно очень удобные

rmuslimov14:08:50

кто такие аероны?

rmuslimov14:08:46

интересно попробовать

rmuslimov14:08:54

правда 87K дорого для кресла

rmuslimov14:08:14

столы тоже недешевые

rmuslimov14:08:39

все извините за спам

comerc14:08:33

бред! приличная столешница, квадратная труба, болгарка, сварка. 🙂

rmuslimov14:08:27

ну не бред, моторчик болгаркой не соберешь

comerc18:08:39

@rmuslimov: так в болгарке же есть моторчик 🙂

comerc19:08:38

такой изврат работает:

(defn a [v] (->> "X"
              (.replace v "A")))
(-> "a b c"
  (.toUpperCase)
  (a))
объединяю - ругается:
(-> "a b c"
  (.toUpperCase)
  (fn a [v] (->> "X"
              (.replace v "A"))))
Parameter declaration clojure.core/-> should be a vector

rmuslimov19:08:32

после fn вроде a нужно убрать

artemyarulin19:08:08

последний fn надо в скобках

user=> (-> "a" (str "b"))
"ab"
user=> (-> "a" (fn[c] (str c "b")))
IllegalArgumentException Parameter declaration a should be a vector  clojure.core/fn (core.clj:4355)
user=> (-> "a" ((fn[c] (str c "b"))))
“ab”

artemyarulin19:08:18

тож самое с лямдами (-> "a" (#(str % "b")))

artemyarulin20:08:46

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

user=> (-> "a" ((fn[v]{:k v})))
{:k "a”}
user=> (-> "a" (#({:k %})))
ArityException Wrong number of args (0) passed to: PersistentArrayMap  clojure.lang.AFn.throwArity (AFn.java:429)
user=> (-> "a" (#(identity {:k %})))
{:k "a"}
т.е. из лямбды вернуть мапу просто так нельзя, надо обернуть в identity (или в do что короче но как по мне менее понятно)

artemyarulin20:08:55

слишком толсто

artemyarulin20:08:35

Не могу не запостить комент оттуда:

Этот график, скорее, показывает относительные требования к компетенциям программиста при разработке. с++ и джава, как сильно распространенные языки, предъявляют низкие требования, квалификация программиста растет медленно => средний уровень программистов низок => много багов. "навороченные" статически типизированные языки предъявляют более высокие требования, квалификация растет быстрее, средний уровень программиста растет (а количество багов, соответственно, падает). Ну и сложнее всего писать на "навороченных" динамических языках - это требует как определенного уровня знаний (случайные люди на кложурах с эрлангами не пишут) так и развитой дисциплины (значительно превышающей требования статических языков) с набором специфичных скиллов, которые позволяют в нужном месте подстелить соломки и писать безопасно без типов. Такие программисты - топчик, и могут писать с минимальным уровнем багов даже на малболге
мы - топчик parrot

comerc20:08:24

@artemyarulin: почему на графике нет PHP ?! 🙂

artemyarulin20:08:25

да кому он нужен - пхп создан чтобы умирать) Ну и кста вот это офигенная статья про трансдюсеры, точнее про их имплементацию в хаскеле http://hypirion.com/musings/haskell-transducers

comerc20:08:56

@maksenov: признайся, ты активно юзаешь Om.Next?

comerc20:08:11

@artemyarulin: > т.е. из лямбды вернуть мапу просто так нельзя, надо обернуть в identity (или в do что короче но как по мне менее понятно) что-то дофига косяков с этой хренью #(%)

artemyarulin21:08:38

да неа, первое это специфика threading macro - если поиграться с macroexpand то все там понятно станет. Ну а вот с лямбдами и возвращением мапы - “надо запомнить” (с)