Fork me on GitHub
#clojure-russia
<
2016-04-27
>
andmed05:04:23

хм. а как вернуть вектор? обернул данные в вектор (def data [listings index]) и последней строкой функции сделал вместо (conj listings m) (conj (get-in data [0]) m) а она все-равно только listings возвращает

andmed05:04:29

о! сделал через (update-in data [0] #(conj % m)) ну ребус

andmed05:04:03

... и в функциях ниже все тоже на update-in переехало. update-in на update-in ох

niquola07:04:27

Всю функцию покажи, чето подозрительно выглядит ;)

niquola07:04:14

(update-in data [0] conj m)

niquola07:04:56

идеоматичнее

andmed10:04:33

Если в process-index-line я меняю порядок update-in ов то функция возвращает либо листинг, либо индекс, обе части не могу вернуть, одно из двух приходит пустым

user=> (process-index-line "{\"keyword\":\"data\",\"foo\":\"bar\"}" 100500)
[[{:keyword "data", :foo "bar"}] {}]
user=> (process-index-line "{\"keyword\":\"data\",\"foo\":\"bar\"}" 100500)
[[] ({:data [100500]})]

andmed10:04:18

(индекс строится только по первому полю, это норм)

konukhov11:04:32

@andmed update-in не мутирует данные, а у тебя на строках 22 и 23 написано так, будто мутирует

konukhov11:04:38

(-> data
    (update-in [0] …)
    (update-in [1] …))

konukhov11:04:48

получилось?

andmed11:04:05

угу... back to question one -- а как таки вернуть две структуры данных, без атомов? тут две операции по-любому, они должны возникнуть где-то...

konukhov11:04:27

question one это какой? simple_smile

andmed11:04:59

да я вчера спросил -- как вернуть из функции две структуры данных. сказали, заворачивай в вектор. ну, я завернул Ж)

konukhov11:04:16

а, ну я не следил за дискуссией. у тебя же и так теперь вектор вернется без атомов в process-index?

konukhov11:04:41

нужный тебе вектор – это (def data [listings index]), так?

andmed11:04:03

ага. и у него только одно возвращается..

andmed11:04:03

вообще я в фп не очень силен...

konukhov11:04:45

я не понял вопрос тогда! у тебя есть data – вектор (tuple, который тебе нужен), так? я в репле затестил – c фиксом, который я выше написал, возвращается он же, только измененный.

konukhov11:04:25

аа, у тебя еще есть функции, которые отдельно на index и на listings влияют, ты про это?

andmed11:04:03

момент я с макросом -> проверю...

konukhov11:04:00

тебе data не нужна

konukhov11:04:19

она должна возвращаться из process-index-file

konukhov11:04:36

и дальше в коде, где нужно, ты скажешь, (let [data (process-index-file file) …). или в atom, да

andmed11:04:40

с макросом -> заработало!! я понял, нужно чтобы в одной функции (скобках) обе части вызывались. последовательные операторы в let, значит, только для сайдэффектов

konukhov11:04:46

конечно, он же каждый раз новую data возвращает

konukhov11:04:17

и + сборку индекса я бы сделал так: UPD: добавил в сниппет работоспособность не проверял simple_smile

andmed11:04:05

@konukhov: спасибо, я доработаю)

konukhov11:04:32

не за что! ну да, и главный смысл в том, что нельзя забывать про иммутабельность всего.

misha15:04:07

@andmed

(defn process-index-line [[listing index] [s n]]
  "Adds string s into listings and index, N -- number line"
  (let [m (clojure.data.json/read-str s :key-fn keyword)]
    [(conj listing m)
     (tokenize-and-index index (first (vals m)) n)]))

seryh15:04:35

чето все кинулись ботов в телеграмм писать, как будто 20 лет опыта ботов в irc не показали что ничего полезного из них не запилить

seryh15:04:03

проще пойти лотерейный билетик купить же

dottedmag15:04:32

@seryh: Разница в том, что во времена IRC не было технологий, позволяющих разбирать произвольный текст с каким-либо уровнем внятности, а сейчас уже есть.

seryh15:04:57

irc еще немного жив )

seryh15:04:31

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

seryh16:04:50

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

seryh16:04:00

вместо того чтобы просто на сокет данные кидать

dottedmag16:04:48

Ничего не надо покупать, есть же http://letsencrypt.org

seryh16:04:23

ммм, я отстал от жизни

niwinz16:04:47

also works pretty well

niwinz16:04:33

Issued On Monday, June 8, 2015 at 2:36:01 PM Expires On Friday, June 8, 2018 at 3:30:47 PM

niwinz16:04:38

my certificate

niwinz16:04:08

in contrast to letsencrypt that issues certificates for 3 months or 6 (I don't remember)

seryh16:04:15

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

a.espolov16:04:32

но чо та у меня не завелась)

az16:04:19

@lowl4tency: и другие ботостроители, за сколько вам телеграм на sendMessage отвечает?

az16:04:54

у меня какие-то печальный цифры – 600мс

az16:04:06

для бота так себе результат

misha16:04:05

а какой вообще юзкейс у ботов этих? хоть 1

az16:04:28

ты ему текст, он тебе текст

misha16:04:45

а зачем?

az16:04:06

мониторилка для забикса / любой другой херни

az16:04:12

всякие напоминалки

misha16:04:17

а бот-то зачем? )

az16:04:21

метапоисковики

az16:04:33

а бот просто как один из новомодных интерфейсов

misha16:04:33

например?

az16:04:49

ну и из коробки анонимность

misha16:04:50

типа смотреть на пай-чарты - is so 2015?

az16:04:59

типа твои сервера никто не рассекретит

az16:04:13

можно хоть кокаин продавать

misha16:04:19

потому что бот? я вот всё бота в этих юзкейсах не вижу

az16:04:40

скучный ты 😄

misha16:04:47

панятна кароче

az16:04:59

чо пристал, я играюсь

misha16:04:53

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

misha16:04:14

или смс/имейл с продакшн креш репортом уже не модно, а модно slack/telegram private msg?

az16:04:14

ты пишешь ему : “Паш, покажи сиськи"

az16:04:28

а он залазиет в гугл, находит сиськи, присылает фотку

az16:04:49

веселуха!

misha16:04:20

а в гугле сиськи написать? а зачем бот?

az16:04:46

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

misha16:04:53

даже "паш, покжаи" не надо писать

niquola16:04:01

Я думаю это новый тип интерфейсов для приложений. Может быть веб, мобайл, а теперь еще и бот. В вебе ты плагаешь приложение в generic browser - бот ставится в чат. Думаю скоро появятся only-bot приложения, как only-mobile

misha16:04:13

ну кароче бот = интеграция с чатиком, ясно кароче

az16:04:59

[7:51 PM] а бот просто как один из новомодных интерфейсов

misha16:04:08

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

az16:04:20

я так и сказал, ускоглазые вон давно на это подсели

misha16:04:44

разве что, если текст - это единственный интерфейс, который дает платформа (чатик)

misha16:04:08

так это ж "плагин к чатику" )

misha16:04:25

оно же семантически точнее

misha16:04:50

а то HR'ми и линкед ином попахивает

az16:04:55

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

dottedmag16:04:57

@misha: Бот — это natural-language интерфейс, вот и всё.

niquola17:04:00

С выходом на app store

niquola17:04:34

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

dottedmag17:04:36

Точнее, какие-то боты понимают только тупые команды, но такие боты ничем не лучше обычных IRC-шных.

niquola17:04:50

Остальное внутри

misha17:04:58

@dottedmag: я это понимаю, не понимаю, почему дубовые, ничего не умеющие плагины к чатикам, ботами называют

dottedmag17:04:10

Потому что это тоже боты, но тупые.

az17:04:15

@dottedmag: да нафиг ваше NLP, Дуров вон подобие вебформ прикрутил, кнопочки, так что можно без всех этих AI

dottedmag17:04:41

Ну, тоже вариант. Смешанный интерфейс - тоже полезно.

misha17:04:42

тогда и вебсайты = тупые боты = боты

misha17:04:57

боты для хрома/фаерфокса kappa

niquola17:04:23

Почти ;)

az17:04:44

ну вообще тут кучу нелегальных вещей крутить можно

niquola17:04:53

Ты же с ними разговаривешь

az17:04:57

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

dottedmag17:04:58

Надо написать бота, понимающего HTTP/1.1 и отдающего HTTP/1.1 :)

misha17:04:59

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

dottedmag17:04:22

Сделать через него VPN и через этот VPN пустить Telegram =)

az17:04:25

о каких ты плагинах? я не понимаю тебя

misha17:04:27

@az боты к нелегальному контенту отношения не имеют )

misha17:04:50

к чатикам

misha17:04:01

которых ты "ботами" называешь troll

az17:04:31

их забанили, а им насрать

misha17:04:37

ого, что бы флибуста без телеграма делала? )

dottedmag17:04:49

А в чём вопрос с нелегальным контентом-то? Решается так же, как и со всеми остальными провайдерами.

az17:04:54

отраскомнадзорили их, а они вон как ловко

dottedmag17:04:04

Нашли нелегальный контент, спросили у телеграма, кто автор бота, прижали бота.

misha17:04:09

так и я о том же: при чем тут контент нелегальный вообще

niquola17:04:11

А еще это ренесанс cli

dottedmag17:04:14

Роскомнадзор - херня на палочке.

niquola17:04:23

Нужен pipe bot

az17:04:35

@dottedmag: все вопросы будут к дурову, а не ко мне, например

misha17:04:42

@nicola: так cli - это тоже семантически ближе, чем бот

dottedmag17:04:58

Дуров скажет "вот автор бота, доебывайтесь до него"

misha17:04:03

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

misha17:04:22

иначе js валидация поля email в регистрации - тоже бот kappa

az17:04:25

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

misha17:04:02

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

az17:04:05

@misha: бот - сервис, чат - просто интерфейс для него

az17:04:23

ты что-то всё в кучу мешаешь

misha17:04:58

а мне кажется, что это ты ботом всё подряд называешь, что не бот

dottedmag17:04:58

@az: бот - это NL-интерфейс к какому-то сервису, скорее.

dottedmag17:04:08

NL или просто вида чата.

az17:04:45

и так и так можно, например что-то вроде прокси до яндекса, да, просто nlp интерфейс

misha17:04:08

ну яндекс серч инпут - уже ж тогда бот

az17:04:16

а если я продаю какаин через телеграм, то это уже отдельный сервис, там мне не нужны ваши NLP

misha17:04:33

да при чем там кокаин лол

dottedmag17:04:35

яндекс серч инпут - это другой интерфейс к сервису.

az17:04:40

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

dottedmag17:04:03

Вот если бы яндекс серч был в виде прокручиваемого списка с историей, то это было бы бот-лайк. Тупо UI другой.

misha17:04:31

скорее messenger-like )

misha17:04:45

понятно кароче, всё, что на чатик похоже - бот

az17:04:01

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

dottedmag17:04:11

Программа, сидящая в чатоподобном интерфейсе, и реагирующая на сообщения - бот, да.

dottedmag17:04:25

Т.е человек - не бот.

misha17:04:29

ох, люди такое делают )

dottedmag17:04:31

Архиватор истории - тоже не бот.

dottedmag17:04:49

Хотя хз. Зависит от того, что происходит с историей.

misha17:04:57

ну ок, я понял, что имеют ввиду

dottedmag17:04:07

Окей. Программа в чате - бот. Это такой UI к чему-либо.

misha17:04:09

если интересная - бот kappa

az17:04:53

зашёл в чатик про latency узнать …

misha17:04:04

опять же, чем тогда небанальный cli от бота отличается?

az17:04:45

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

misha17:04:02

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

dottedmag17:04:38

Тем, что cli - не в чате.

az17:04:45

если нокию к телеграму прикрутить, то она бот troll

misha17:04:57

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

az17:04:12

бот, бот

az17:04:30

и ты бот!

misha17:04:21

а если смс приходит оператору, а не парсится - это бот или нет?

misha17:04:39

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

az17:04:43

одна особеность у этого интерфейса есть – результат команды для бота - виден всем

dottedmag17:04:53

@az: Это если чат групповой

az17:04:53

Паш сиськи – все увидели сиськи

az17:04:09

ну да , я про интересный момент

az17:04:26

короче это интересная фигня

az17:04:48

@nicola: продайте бота госпиталям

az17:04:18

мы ему жалобу, он нам диагноз

misha17:04:30

или сиськи

az17:04:52

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

dottedmag17:04:40

На лиспе, кстати.

misha17:04:30

на чем же еще. if-else'ами на джаве?

az17:04:35

if - else ами на джаве clojure написан troll

misha17:04:15

вообще да

lowl4tency17:04:11

az: а ты как меришь?

az17:04:37

кол-ом секунд на запрос

niquola18:04:15

@az я уже несколько стартапов знаю - slack for Health Care

niquola18:04:23

Мы и сами хотели

az18:04:54

и как? летит?

andmed19:04:37

@misha: спасибо. Должен успеть доехать до дома, скопировать, пока в историю не ушло 😀

serioga20:04:15

> Должен успеть доехать до дома, скопировать, пока в историю не ушло можно «на звёздочку» ставить, чтобы не ушло

andfadeev20:04:19

у кого какие мысли про liberator? ктонить юзает?

niquola20:04:53

Вообще логи этого чатика потом выкладываются в public - http://clojurians-log.mantike.pro/clojure-russia/index.html