
qwerty
09.06.2017
16:04:12
В цикле бы тоже быстро было написать. Я уже написал почему выложил такой код
на пустом месте спор

Shorty(Ale Chapa) Manskiy
09.06.2017
16:06:39

Pavel
09.06.2017
16:07:02
Да это уже мои шишки которые все болят :) На прошлой работе тоже были ярые воители все делать "нормально", в результате просрали несколько миллионов и компания оказалась в долгах и полной жеппе :)

Google

Pavel
09.06.2017
16:07:35
Все делали крутую архитектуру.

Shorty(Ale Chapa) Manskiy
09.06.2017
16:08:20

qwerty
09.06.2017
16:13:20
да auto indexes = str.length.iota.stride(2);

Shorty(Ale Chapa) Manskiy
09.06.2017
16:15:29
indexes - это не массив. Ленивые вычисления же...
Но как я уже писал, я не знаю что там делает stride, поэтому могу и ошибаться.

qwerty
09.06.2017
16:18:10
Действительно не массив, а некий Result описание к которому не вижу.
Да, Result — это внутренняя структура, которая делает popFront из входящего Range, который в данном случае ленивый
тогда получается еще меньше overhead-a

Denis
09.06.2017
16:28:38
Подумалось, а почему строка msg в Exception не lazy?

Dmitry
09.06.2017
17:13:41
string же это массив иммутабельных чаров. И лежит порой в защищенной на запись памяти (если это литерал)

Denis
09.06.2017
17:31:41
И? Продолжи мысль, не уловил
там же указатель не иммутабельный
очень часто бывает отлов ошибки происходит, но отображение текста её важно для дебага больше

Google

Denis
09.06.2017
17:38:56
Или это экономия на спичках?

Pavel
09.06.2017
17:50:49
Если ты собираешься кидать в программе тысячи исключений в секунду то возможно это и имеет смысл.
Можно мерить бенчмарками, у кого программа эффективнее падает в корку :)

Oleg
09.06.2017
18:39:01
пятничные бредни)

Denis
09.06.2017
19:04:02
Затраты на создание строки с сообщением об ошибке могут быть достаточно велики
Например, сообщения оттуда иногда могут быть показаны юзерам в локализованном виде
Вообще, обязательность сообщения в эксепшене это странно, хотя и понятно зачем сделано - для единообразия

Pavel
09.06.2017
19:05:58
Имхо неправильно цеплять локализацию к исключениям
Этим должен заниматься отдельный модуль

Denis
09.06.2017
19:06:22
А человекочитаемые сообщения к исключениям цеплять правильно?

Pavel
09.06.2017
19:06:41
Краткая поясняющая фраза, не более
Чтобы было понятно где искать ошибку

Denis
09.06.2017
19:07:33
Ну ок

Pavel
09.06.2017
19:07:58
А отдельный модуль уже может по классу исключения и коду хоть в гугль ходить и нейронкой там искать переводы и советы :)

Denis
09.06.2017
19:08:05
есть функции какоторые стандартные и эксепшены кидают. при этом могут вызываться часто и всё такое
Через lazy можно было бы сэкономить время на формирвоании этой строки ими если она не нужна

Pavel
09.06.2017
19:09:02
Если что то можно не рефакторить - лучше это не рефакторить

Denis
09.06.2017
19:09:27
А lazy недавно появилось или сразу было?
Эксепшены такими были с первых дней
Это преподносилось как фишка, мол хватит жрать кактусы

Google

zk
10.06.2017
05:50:06

Denis
10.06.2017
05:57:10
Feature
https://en.wikipedia.org/wiki/Dec64 кто-нибудь заинтересован в реализации этого в виде библиотеки?
DEC64 is a proposed format for storing integer and decimal numbers in a computer.

Dmitry
10.06.2017
06:43:56
А кому может понадобиться такая библиотека? Что будут делать с этими медленными (без хардварной поддержки) флоатами?

Dmitry
10.06.2017
07:02:07
О наболевшем. Очень про паттерны хорошо сказано:
People impliment a design pattern and lose sight of the problem they are solving. You often end up with an overcomplicated, hard to understand mess instead of an elegant solution designed for maintainability.
This is then called "Enterprise Software"

Denis
10.06.2017
10:45:02

Dmitry
10.06.2017
11:38:45
Оффтоп. Не могли бы открыть сайт и отписать мне открывается ли он у вас в FireFox http://www.zolotoy-vavilon.ru

Oleg
10.06.2017
12:03:29
Могу точно сказать, что открывается на мобильном в хроме))

Dmitry
10.06.2017
12:07:11
У меня до сих пор в голову не укладывается как простая страница может отожрать целый гиг памяти и при этом еще и не осилить отрисоваться. Там какие-то новые паттерны проектирования использовали? Или как? У меня в ФФ тупо желтый тормозящий фон

u13147
10.06.2017
12:17:26
У меня вот так.

u13147
10.06.2017
12:17:50
Файрфокс 53.

Dmitry
10.06.2017
12:18:18
Типа остальное не загружается?

u13147
10.06.2017
12:18:25
Картинка сейчас вроде догрузилась, интернет плохой просто.

Dmitry
11.06.2017
08:28:42
Будущее уже рядом. Прототип Qt работающего в браузере https://1.bp.blogspot.com/-jUiQmevDj_Q/WTTe9FWhwaI/AAAAAAAAK60/Y6ip1wGoTd4vShLXGbIiUg3rURrMXikYwCLcB/s1600/qt-wasm.png

Dmitry
11.06.2017
08:56:47
Байт код с JIT-компиляцией на клиенте, рисующий сам контролы внутри браузера. Где-то мы это уже видели. А, ну да, Java-апплеты. А, ну да, Flash + Flex. Теперь вот это. У джавы хоть GC был, а у флэша еще и векторный графический движок готовый. Тут же опять 1995 год.

Dmitry
11.06.2017
09:08:18
А если мне из массива структур нужно элемент с определенным значением удалить есть варианты получше чем filter! ?

Shorty(Ale Chapa) Manskiy
11.06.2017
09:18:40
Т.е. ты не знаеш где именно он в массиве находится? если не знаеш, то filter вполне подходит (только нужно учитывать, что будут удалены все подходящие элементы, а не один). Если заеш, то можешь заменить его последним элементом из массива, и после этого сократить массив на один элемент:
arr[idx] = arr[$ - 1];
--arr.length;
Но думаю, что где-то и эта функция уже есть... нет, точно знаю что еть. но не помню что за функция (довно не использовал ни D ни чтолибо другое).
А какие проблемы с filter, что тебе не нравится?

Google

Dmitry
11.06.2017
09:19:43
я просто хотел сделать что-то типа
points.map!(a=>a.val.canFind(3).drop);

Shorty(Ale Chapa) Manskiy
11.06.2017
09:22:12
a.val - это же элемент из массива, и как же ты ищещь в нем, т.е. почему a.val.canFind(3) ?
попробуй так points = points.filter!"a == 3";

Dmitry
11.06.2017
09:42:45
ок попробую тогда фильтром
Кстати, а кто что думает на тему того, сможет ли MIR Phobos рано или поздно заменить? Просто оно куда-то туда развивается...
Пока конечно там и 10% нет нужных вещей, но создается ощущение, что вектор развития именно такой

Denis
11.06.2017
18:16:01
а суть там какая? @nogc?

Admin
ERROR: S client not available

Dmitry
11.06.2017
18:17:09
что-то типа этого
и больше разных фишек алгоритмических

Denis
11.06.2017
18:17:32
Пускай развивается тогда, не понимаю зачем гадать?
ndslice вроде из фобоса и выпилили

Shorty(Ale Chapa) Manskiy
11.06.2017
18:20:47
ndslice вроде из фобоса и выпилили
его не выпилили. Ерошенко не захотел поддерживать, на форуме даже срачь был по этому поводу, Александреску писал, что Ерошенко не правильно поступает и т.п.

Denis
11.06.2017
18:21:16
я помню что он был в экспериментальном фобосе
std.expiremental

Dmitry
11.06.2017
18:21:27
Ерошенко признал потом что включение было ошибкой

Shorty(Ale Chapa) Manskiy
11.06.2017
18:22:45
... как по мне, то это правильно. Ведь две версии сложно делать, даже если они и отличались бы не значительно.

Dmitry
12.06.2017
06:57:19
Как называются раздел грамматики который рассматривает языки в которых отсутствуют закрывающие теги?
Или как такие языки называются?

Google

Denis
12.06.2017
12:30:55
закрывающие теги?

Dmitry
12.06.2017
12:33:27
ну типа </div>

Pavel
12.06.2017
12:36:28
емнип html не является регулярным языком. Так что его разбор - это ряд костылей и допущений.
Точнее, может корректный html еще и норм, но браузеры вынуждены разбирать и интерпретировать все возможные некорректные варианты

Dmitry
12.06.2017
12:37:28
Я просто парсер MD самостоятельно написать так и не осилил. Без закрывающих тегов разбирать что-то походу дико тяжело
я то думал там в сотню строк кода что-то можно по тупому уложить
я дико заблуждался

Pavel
12.06.2017
12:38:31
:))
Да, разработка оня вся такая. Думаешь 100 строк а на самом деле там диссертацию писать надо.

Dmitry
12.06.2017
12:39:24
ну да... оказалось дико сложно понять как найти конец раздела

Pavel
12.06.2017
12:39:40
Ну вот php-парсер md и есть набор костылей на регулярках, но он работает неплохо.

Stepanos
12.06.2017
12:39:43
всем привет, пишу twig.d время от времени, уже компилируются шаблоньі :) ща думаю как красиво к vibe.d прикрутить

Pavel
12.06.2017
12:40:31
Но это точно должно быть изолировано от vibe.d )

Denis
12.06.2017
12:41:01
Ну не знаю не знаю. Вот gopher - это по-хипстрески!
И там не нужны шаблоны

Stepanos
12.06.2017
12:42:16
ну конечно, как плагин
https://github.com/eresid/twig.d

Pavel
12.06.2017
12:43:04
Можно будет поконтрибутить если что? ;)

Stepanos
12.06.2017
12:43:26
конечно :)

Dmitry
12.06.2017
12:54:38
помните я хотел заменять каждый второй символ? на aa или bb. Ну так вот. Вот код:
line = line.enumerate.map!(a => a[0] % 2 ? "aa" : "bb").array.join;
Пhоблема в том, что я не пойму как заменять не просто каждый первый и второй, а каждый первый и второй который равны к примеру c в строке kckckckc