@dlangru

Страница 147 из 719
Dmitry
01.04.2017
16:20:38
>если вопрос про "можно ли через std.algorithm сделать hadoop?", то нет Мне пока до этого далеко. Мне бы идею Map и Reduce понять в общих чертах...

Pavel
01.04.2017
16:21:49
map подразумевает мутацию данных, each пhостую переборку?
Да, each это перебор, но во время перебора ты можешь и ничего не делать, или например просто в логи писать. Это будет не map

https://en.wikipedia.org/wiki/Map_(mathematics) это вообще из математики

zk
01.04.2017
16:23:41
мап предпологае приминение функции к коллекции с возвратом новой

Google
Dmitry
01.04.2017
16:24:17
как на русский map пеервести более правильно просто "карта" ИМХО немного не то... "разложить на" или как-то так?

Pavel
01.04.2017
16:24:57
отобразить

(множество в A в множество B)

Pavel
01.04.2017
16:26:45
Например у тебя есть массив чисел, ты хочешь получить массив этих чисел, умноженных на 2. Тогда ты берешь и применяешь map с функцией x => x * 2. И тебе возвращается новый массив.

меня смутили пару строк и я понял что совершенно не понимаю что значить Thread.yield()
ну насколько я понял его иногда надо дергать чтобы снять лишнюю нагрузку с треда и отдать ресурсы в тругие треды.

Oleg
01.04.2017
16:27:53
я раньше так и думал, но тогда как должен работать этот код? while (true) { acceptClient(); Thread.yield(); } } void acceptClient() {

или auto clientSocket = socket.accept(); блокирующая?

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

потому как new Client(clientSocket) тоже создаёт новый поток

Pavel
01.04.2017
16:29:38
Да, блокирующая.

Пока клиент реально не подключится, new Client не создастся

Oleg
01.04.2017
16:30:23
Google
Oleg
01.04.2017
16:31:58
Да, блокирующая.
тогда зачем Thread.yield()?

Pavel
01.04.2017
16:32:15
После каждого подключения тред дает поработать другим :)

Oleg
01.04.2017
16:32:39
эм...

ну хз, ос вроде за этим следит

Pavel
01.04.2017
16:33:14
Так вот, а зачем тогда вообще вызывать эту функцию? =) Я честно тоже не понял до конца.

Oleg
01.04.2017
16:33:37
ну в случае, если у тебя однопроцессорный комп, то возможно это будет иметь смысл

Pavel
01.04.2017
16:33:57
Это же понятие из корутин, где корутина всегда захватывает все ресурсы пока явно не отдаст. А в тредах это должно рулиться на уровне операционной системы.

Возможно это все стоит вообще переписать на файберы

Oleg
01.04.2017
16:34:32
Thread.yield это "принудительное" переключение, если ОС подумает, что пора, она сама это сделает

а вот с файберами не так

файберы надо переключать самому

потому как ОС о них ничего не знает

Pavel
01.04.2017
16:34:57
Ну ок, значит впринципе этот йилд не повредит лишний раз вызвать

Oleg
01.04.2017
16:35:06
ну по сути да

но я уже начал сомневаться в своих знаниях

полезно иногда...

Pavel
01.04.2017
16:35:45
Я тестил это на speedtest, локально прокся выдает полную пропускную способность легко.

Без прокси у меня показывало 35-40 мегабит, с проксей где-то 30-35

Oleg
01.04.2017
16:37:05
Я тестил это на speedtest, локально прокся выдает полную пропускную способность легко.
честно говоря я вообще не в теме))) я про socks5 только тут услышал

так что, наверное это хорошо, что не сильно проседает скорость)

Google
Pavel
01.04.2017
16:38:12
Я раньше не особо представлял о чем он, а оказалось что это полезная штука, по сути любые tcp/udp соединения можно лить через него, и реализация очень простая, как видишь там 300 строк всего.

Я доделаю нормальный конфиг, порт и логин с паролем, и буду через нее ходить на линкедин ;)

Oleg
01.04.2017
16:39:23
типа у тебя сервер за рубежом и ты его как проксю будешь юзать? а прокси-программой будет вот этот код выступать, я верно понял?

Pavel
01.04.2017
16:41:18
да

Oleg
01.04.2017
16:48:16
У меня тут вопрос возник (для знатоков windows): есть dll, хочу её как статическую либу прилинковать. Это можно сделать если сделать "статический интерфейс" к ней. Делается он линкером из m$vs, но он требует def файл к dll. Собственно вопрос: можно ли получить каким-нибудь инструментом это def из существующей dll или из .h файла?

Пока писал вопрос понял что гуглить

И еще: пересобрать я её не могу (не хочу)

Dmitry
01.04.2017
16:51:08
Олег, о результатах отпишись. Про dll интересно очень...

в Linux там все иначе?

Oleg
01.04.2017
16:55:31
в Linux там все иначе?
Ну в целом похоже, но я не встречал аналога с def и "статическим интерфейсом". Просто под linux мне не в падлу пересобрать)) а под m$ тянуть сорцы gtk со всеми зависимостями вообще никакого желания нет, легче динамически её будет загрузить

Dmitry
01.04.2017
16:55:57
Олег, у тебя вообще получалось статически слинковаться в dmd? Тfм флаг появился в 2.073 специальный, только у меня он нефига не заработал (пробовал на Windows)

Вообще на сколько dmd привязан к тому же msvcp ?

Oleg
01.04.2017
16:58:27
Олег, у тебя вообще получалось статически слинковаться в dmd? Тfм флаг появился в 2.073 специальный, только у меня он нефига не заработал (пробовал на Windows)
Я реально под вин только с gtk пишу (вернее пишу изпод linux, но win как целевая сейчас), возможно gtk-d ставит то что нужно, просто

Вообще у меня очень мало ситуаций было когда моё ПО должно работать везде и из коробки)

Всегда была возможность что-то настроить

Вообще на сколько dmd привязан к тому же msvcp ?
А что это? Если это С ран тайм, то да

Dmitry
01.04.2017
17:00:43
да Си рантайм

Oleg
01.04.2017
17:00:57
Ну куда без него то?)

Dmitry
01.04.2017
17:01:08
ну ве равно куда приятнее когда из коробки работает с гарантией)

в нем вообще какие примитивы находятся? т.е. почему без него нельзя?

Google
Oleg
01.04.2017
17:01:32
Просто нужно уметь делать коробку)))

в нем вообще какие примитивы находятся? т.е. почему без него нельзя?
Не вникал, но вроде обёртки над системными вызовами

Тот же malloc

Или read

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

Ну или как-то так

Dmitry
01.04.2017
17:04:58
с си рантаймом можно статически линковаться?

Oleg
01.04.2017
17:05:44
почему-то меня никогда этот вопрос не волновал, потому как это должно имхо всегда происходить динамически

Dmitry
01.04.2017
17:06:44
к примеру в ОС может оказаться рантайм другой версии...

Oleg
01.04.2017
17:06:44
статическая линковка такой общеиспользуемой библиотеки как рантайм С привела бы к раздуванию всех исполняемых файлов + оперативы отъедалось бы намного больше

Admin
ERROR: S client not available

Dmitry
01.04.2017
17:07:23
В итоге приходится искать и качать нужный VCRedistributed

Oleg
01.04.2017
17:07:41
ну вот с этим на linux точно проблем нет)

ну, в том смысле, что если бы были все исходники, то вообще вопросов нет, m$ вроде предоставляет статическую версию рантайма

Dmitry
01.04.2017
17:12:35
т.е. из dll нужно руками сделать lib и слинковаться с ней?

Мерлин
01.04.2017
17:12:38


Oleg
01.04.2017
17:13:24
т.е. из dll нужно руками сделать lib и слинковаться с ней?
так нет, вроде есть статические варианты C-runtime

Google
Dmitry
01.04.2017
17:14:21
А почему в компилятор нельзя ключи добавить чтобы можно было любую либу подкчлючить как нравится?

Чтобы вот без этого всего...

Oleg
01.04.2017
17:15:13
технических ограничений я точно не вижу

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

ну или вопрос распиздяйства

Dmitry
01.04.2017
17:16:04
как я понимаю одно же в другое конвертится?

Oleg
01.04.2017
17:16:19
ну вот не так всё просто

dll это полностью самостоятельный исполняемый файл, только без точки входа

Dmitry
01.04.2017
17:16:49
В Go все вроде бы вообще только статически линкуется?

Oleg
01.04.2017
17:17:08
про go ничего не знаю

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

статическую в dll можно скомпилировать легко (насколько я понимаю процесс), а вот обратно уже проблемней

Мерлин
01.04.2017
18:02:03
В Go все вроде бы вообще только статически линкуется?
Кроме собсно libc, но можно и его вкрутить во внутрь

Pavel
01.04.2017
18:27:46
Все, прокси заработало на удаленном сервере. Была моя тупая ошибка. В настройках браузера просто были вписаны нерабочие http и https прокси еще, и до socks5 дело не доходило.

Pavel
01.04.2017
20:48:16
почему std.experimental.logger так называется? Это не окончательная экспериментальная библиотека?

Oleg
02.04.2017
07:20:29
почему std.experimental.logger так называется? Это не окончательная экспериментальная библиотека?
да, ndlisce был какое-то время в experimental, сейчас выпилили, в allocator вносят правки, ломающие обратную совместимость

я не думаю, что logger собираются убрать, скорее правки вносят

Dmitry
02.04.2017
09:03:27
dragonfly bsd никто не юзал? Если юзали, то как впечатления?

И еще вопрос. На сколько сложно/возможно D стыковать и Rust?

Там для стыковки нужно чтобы один язык понимал правила вызова функции другого языка?

Max
02.04.2017
10:50:33
Во-первых, в обе стороны получится состыковать только сишные интерфейсы. Во-вторых, со стороны D будет мешать gc, а со стороны раста все будет в ансейфе и типах из libc, а не самого языка — в обоих случаях нужно писать жирные врапперы

Страница 147 из 719