Size: a a a

Clojure — русскоговорящее сообщество

2019 November 05

DL

Dmytro Lispyvnyi '(🌲 🍺) in Clojure — русскоговорящее сообщество
есть слова, предложения, абзацы
источник

MB

Mike Bohdan in Clojure — русскоговорящее сообщество
Dmytro Lispyvnyi '(🌲 🍺)
есть слова, предложения, абзацы
навигация в по строкам банально интуитивнее для меня ок?
источник

MB

Mike Bohdan in Clojure — русскоговорящее сообщество
если я хочу добавить какой-то атом в глобальный стейт или какую-то константу до выполнения функции мне проще глянуть на относительноый номер пустой строки до этой функции, перейти туда в 2 нажания клавиш, которые я даже не обдумываю, и дописать
источник

DL

Dmytro Lispyvnyi '(🌲 🍺) in Clojure — русскоговорящее сообщество
источник

DL

Dmytro Lispyvnyi '(🌲 🍺) in Clojure — русскоговорящее сообщество
и никакой постоянно висящей нумерации
источник

DL

Dmytro Lispyvnyi '(🌲 🍺) in Clojure — русскоговорящее сообщество
шорткат, 1-2 символа на logN прыжок и всё
источник

MB

Mike Bohdan in Clojure — русскоговорящее сообщество
я бы посмотрел насколько это удобно в файлах на несколько тысяч строк
источник

DL

Dmytro Lispyvnyi '(🌲 🍺) in Clojure — русскоговорящее сообщество
Mike Bohdan
я бы посмотрел насколько это удобно в файлах на несколько тысяч строк
я бы посмотрел, как относительная нумерация удобна в таких файлах :D
источник

MB

Mike Bohdan in Clojure — русскоговорящее сообщество
хоть такое и редко встречается
источник

DL

Dmytro Lispyvnyi '(🌲 🍺) in Clojure — русскоговорящее сообщество
а так - я вместо букв просто вобью номер строки, если знаю
источник

DL

Dmytro Lispyvnyi '(🌲 🍺) in Clojure — русскоговорящее сообщество
и прыгну на неё в любое место файла
источник

А

Алексей in Clojure — русскоговорящее сообщество
подскажите, а aleph вообще может в асинхронное io или там вообще все обернуто в deferred, а они выполняются в пуле который по размеру ничем не ограничен, так что можно и до миллиона потоков доползти?
источник

А

Алексей in Clojure — русскоговорящее сообщество
не праздный вопрос. запустил этот код из примеров почти без измнений с 500 запросами:

(doseq [url (lots-of-urls)]
  (d/chain
    (http/get url
              {:pool (http/connection-pool {:connection-options {:raw-stream? true}})})
    :body
    #(s/map bs/to-byte-array %)
    #(s/reduce conj [] %)
    bs/to-string))

получилось вот что https://i.imgur.com/mWZAOrX.png
источник

А

Алексей in Clojure — русскоговорящее сообщество
огромные пулы aleph-netty-client-event-pool-* dirigiste-pool-controller-* manifold-*
источник

А

Алексей in Clojure — русскоговорящее сообщество
пробовал избегать deferred (а зачем тогда manifold?), создавать стрим и вешать на него consume - примерно тоже самое.

пробовал этот стрим выполнять в отдельном экзекьюторе (manifold.stream/onto с fixed-thread-executor), но картина не сильно улучшается. кроме того еще придется совладать с RejectedExecutionException

стоит ли говорить какой la при всем этом.
источник

А

Алексей in Clojure — русскоговорящее сообщество
не пойму для чего вообще тогда нужен aleph - можно кложей делать все тоже самое без лишней обертки.

http-kit для контраста делает то что ожидаю. в код не смотрел пока, но выглядит так что там один fixed пул и есть эвентлуп внутри.
источник

DL

Dmytro Lispyvnyi '(🌲 🍺) in Clojure — русскоговорящее сообщество
источник

А

Алексей in Clojure — русскоговорящее сообщество
и core.async так понимаю тоже никак не отвечает на вопрос как делать асинхронное сетевое io, но видимо там хотя бы один фиксированный пул 🙈

короче я шокирован всем этим - как деды с тредпулами. ребят помогите разобраться 🙏
источник

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
@alxistr мне кажется, ты что-то не то делаешь. 1) Если надо запросцеесить много урлов параллельно, то лучше всего положить их в стрим и создать несколько обработчиков, которые читают стрим и обрабатывают урлы
источник

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
2) И обработка тела странная, зачем читать байты и клеить их в строку? И зачем raw-stream?
источник