@dlangru

Страница 46 из 719
qwe
03.08.2016
11:53:13
Думал, что JSONValue это шаблон такой и сложность заключается в этом

Oleg
03.08.2016
11:55:13
наоборот, JSONValue это без шаблонов, там union на все типы, что могут быть в json-е

да и вообще не в этом дело

зачем создавать дополнительную промежуточную структуру, если можно сразу напрямую читать в целевую структуру и из неё и json создавать?

Google
Pavel
04.08.2016
15:20:44
Никто не встречал программу которая раскрашивала бы stdin текст по определенным правилам? Есть мысль написать такую на ди, как первый опенсорс проект :)

Pavel
04.08.2016
15:21:57
А, видел да интересная штука

Но такую долго пилить

qwe
04.08.2016
15:27:16
зачем создавать дополнительную промежуточную структуру, если можно сразу напрямую читать в целевую структуру и из неё и json создавать?
А если будет json массив с json объектами, и у этих объектов будет разное количество полей с разными именами и значениями разных типов? Получается что mixin будет создавать разные структуры, а массиву надо чтоб тип данных в массиве был один. Либо это будет tuple?

Макс
04.08.2016
15:28:17
Я думаю, в этом случае нужно бросать исключение. Данная задача явно не про произвольные структуры на входе.

Pavel
04.08.2016
17:48:15
Кто-нибудь может подсказать что за такая штука sink https://github.com/robik/ConsoleD/blob/master/source/consoled.d#L1271

И как ее использовать? Мне нужно не вывести строку на экран, а получить строку в переменную. Туда как-то делегат можно передать?

0x9d8e
04.08.2016
18:09:53
Я думаю, в этом случае нужно бросать исключение. Данная задача явно не про произвольные структуры на входе.
Недавно так 300мб xml обрабатывал. В цикле считывал из файла строку кусками мужду любыми <>/> и собирал из них нужные объекты (каждый класс умел только заполнить свои поля, да делегировать полям-объектам их собственное заполнение). Чуть что не так - кидал исключение. Юзеру месседж о битом файле, в лог подробности. Получилось бесконечно быстрее и проще, чем когда сначала всё пытался сначала засунуть в структуру на-все-случаи-жизни, которая ещё и до непомерных объёмов раздувалась.

Google
Pavel
04.08.2016
18:14:31
В этой библиотеке никак нельзя получить отформатированную строку, она ее сразу пишет в stdout

Единственная надежда что через sink как-то можно перехватить вывод

0x9d8e
04.08.2016
18:16:21
А, я то думал речь про ввод а не перехват вывода.

Dmitry
05.08.2016
06:17:21
Кстати, а чисто теоретически можно сделать, чтобы D сорцы анализировал и все writeln("[ERROR] ...") выводил красным

Pavel
05.08.2016
06:22:09
Да можно

По сути компилятор делает ровно то же самое - разбирает исходник на токены. Тут можно и покрасить его.

Макс
05.08.2016
06:26:28
Кстати, а чисто теоретически можно сделать, чтобы D сорцы анализировал и все writeln("[ERROR] ...") выводил красным
Это чисто для своего удобства? Ну оберни компилятор в собственный скрипт и прогоняй вывод через что-то. В линуксе я бы посоветовал тупо grep --color, в винде понятия не имею как делают.

Dmitry
05.08.2016
06:30:26
да чисто для себя

Макс
05.08.2016
06:32:43
А вообще если вдруг пользуешься Sublime Text, то там можно произвольную регулярку назначить для перехода к строке с ошибкой. Возможно, в других редакторах тоже.

Dmitry
05.08.2016
06:34:13
Погоди, не просек, зачем там саблайм? Я просто хочу чтобы руками код не подкрашивать, а тупо в компайл-тайм добавлялись фишки для разукраски

Макс
05.08.2016
06:34:48
а, неправильно понял. такое, думаю, нельзя

Dmitry
05.08.2016
06:35:40
а на этапе компиляции анализ строк и подстановку функции с разноцветным текстом нельзя сделать?

Макс
05.08.2016
06:36:37
разве из кода можно достать строки про ошибки в коде? уверен, что нельзя.

я всё же думаю, тебе нужен grep --color, только нужно выяснить, как его аналог для виндовой консоли называется. и существует ли. :) а компилятор пусть своим делом занимается

Dmitry
05.08.2016
06:39:00
а через CTFE нельзя строки анализировать?

Макс
05.08.2016
06:42:41
можно. найдёшь строку – анализируй. но ты её не имеешь ведь

Dmitry
05.08.2016
06:43:16
в плане не имею?

Макс
05.08.2016
06:44:47
ну вот нашёл компилятор ошибку. особенно если синтаксическую. где ты достанешь тот текст, который хочешь разукрасить?

Dmitry
05.08.2016
06:45:45
не, я имею ввиду, чтобы я сам в коде писал ключевые слова (прям внутри строки) типа "[ERROR]"

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

Google
Dmitry
05.08.2016
06:46:55
и чтобы не использовать разные стороние либы в явном виде т.е. не писать writeln("[ERROR]").color(red)

Макс
05.08.2016
06:49:46
гугли на тему того, какими спецкомбинациями в винде задаётся цвет, и напишешь свою библиотеку

Dmitry
05.08.2016
06:50:42
там только через API как-то

комбинаций вроде как нет

Pavel
05.08.2016
07:10:37
Ну сделай себе обертку над writeln

Посмотри consoled библиотеку

Там можно красить вывод как раз

0x9d8e
05.08.2016
10:26:55
writeerr написать и вместо writeln("[ERROR] I need to kill all humans!"); писать просто writeerr("I need to kill all humans!"); а префикс и цвет уже внутри добавляются.

0x9d8e
05.08.2016
13:04:36
Я предлагаю её написать :)

Макс
05.08.2016
13:04:41
а, ок)

0x9d8e
05.08.2016
13:05:11
Обёртка над writeln, добавляющая префикс "[ERROR]" и красный цвет

0x9d8e
05.08.2016
13:05:56
А если потребуется можно будет туда и логирование засунуть.

Не трогая остальной код

Макс
05.08.2016
13:06:49
вообще, логичнее всё же раскрашивать на принимающей стороне. например, писать в stderr (внезапно!), некоторые текстовые редакторы его выделять будут, наверное

Qt Creator так делал, хоть он и не очень релевантен

0x9d8e
05.08.2016
13:07:45
Тож вариант

Главное если ошибки выводятся через отдельную функцию, а не вместе с остальным выводом, всё это можно менять в любой момент

Макс
05.08.2016
13:08:40
ага

абстрагируй и властвуй

Google
Dmitry
05.08.2016
20:07:41
уверен? По идее на каждую картинку тогда уж по запросу

0x9d8e
05.08.2016
20:26:04
Ну если ни картинок ни скриптов ни стилей, то хоть фавиконку запросит.

Eto
06.08.2016
03:34:11
Да, favicon я и имел ввиду.

Dmitry
06.08.2016
07:18:04
даже если она явно не прописана?

Pavel
06.08.2016
08:29:02
Да, все равно некоторые браузеры запрашивают

Dmitry
06.08.2016
12:21:30
а можно узнать какие конкретно? Просто у меня был глюк странный с одним из проектов (не на Ди)

0x9d8e
06.08.2016
13:11:25
Вообще большинство запрашивают

/favicon.ico ищут, если в html ничего не указано

Может ещё /favicon.png но хз

Admin
ERROR: S client not available

Макс
06.08.2016
22:25:05
Товарищи, я пишу никому не нужную DB-библиотеку, думаю над API. Подскажите, все ли популярные БД умеют возвращать строки из результата по порядковому номеру, а не только одну за другой? Вот PostgreSQL умеет: https://www.postgresql.org/docs/9.3/static/libpq-exec.html#LIBPQ-PQGETVALUE принимает и column_number, и row_number. У других так же, или какие-то дают только итерироваться строго вперёд?

Такое ощущение, что MySQL даёт только итерироваться: https://dev.mysql.com/doc/refman/5.7/en/mysql-fetch-row.html Но, может, я просто не знаю как читать их документацию.

У SQLite тоже вроде так: https://sqlite.org/c3ref/step.html

У MS SQL и у MariaDB я не нашёл где прочитать релевантные доки. А больше никого не вспомнил.

Eto
06.08.2016
22:47:44
MongoDB?

Макс
06.08.2016
22:47:57
это же не SQL

?

Eto
06.08.2016
22:48:07
Нет. Это NoSQL.

Макс
06.08.2016
22:48:16
тогда мне не интересно

Google
Pavel
07.08.2016
07:20:51
Подозреваю что в постгре это возможно из-за курсоров. В общем же случае это может сожрать кучу памяти

Если у тебя в выборке 1кк результатов и ты захотел взять строку 999999 то все предыдущие надо где-то хранить

Dmitry
07.08.2016
07:50:03
Макс, глянь https://gitlab.com/PiotrekDlang/DraftLib.

В чем я косячу? Мне нужно захостить статические файлы. Пишу так: router.get("Files/rasters_previews/*", serveStaticFiles("Files/rasters_previews/")); Пробовал так же: router.get("Files/rasters_previews/*", serveStaticFiles("*/Files/rasters_previews/")); в результате ошибку 404 получаю

так тоже не работает: router.get("/Files/rasters_previews/*", serveStaticFiles(roothtml ~ "./Files/rasters_previews/"));

Соотвтетственно при обращении к любому файлу по адресу: localhost:8080/Files/rasters_previews/fname.jpg должен открываться файл лежащий по \Files\rasters_previews\fname.jpg

@Lord_Evil петь подскажи что не так делаю

Макс
07.08.2016
08:25:44
Если у тебя в выборке 1кк результатов и ты захотел взять строку 999999 то все предыдущие надо где-то хранить
Ну это если бы мы писали враппер над базой, которая сама этого не умеет. Да, такое я писать не стану, понятно, что плохо.

Evil
07.08.2016
08:30:04
Dmitry
07.08.2016
08:40:25
ну блин, я вроде все попробовал и так и сяк

Макс
07.08.2016
10:45:24
Макс, глянь https://gitlab.com/PiotrekDlang/DraftLib.
Прикольно, конечно. Понимай оно хотя бы какое-то игрушечное подмножество SQL, можно было бы использовать для юниттестов без подключения к реальной базе.

Dmitry
07.08.2016
10:46:10
Автор не хочет реализовывать sql. Говорит из кода проще юзать без доп языков

Макс
07.08.2016
10:46:24
ну у него другая цель, да

Dmitry
07.08.2016
10:46:25
Я поигрался с ней и даже заюзал в проекте.

Блин, что я делаю не так? Беру из примера: router.get("*", serveStaticFiles("public/")); В каталог public кладу 123.txt обращаюсь: http://localhost:8080/public/123.txt и получаю 404

Макс
07.08.2016
12:05:11
а не по /123.txt случайно обращаться надо?

Dmitry
07.08.2016
12:05:24
О!

а как сделать, чтобы можно было какой то доп-урл сделать? типа /foo

Макс
07.08.2016
12:08:43
подозреваю, что router.get("public/*", serveStaticFiles("public/"));

и я бы не полагался так сильно на текущую директорию

Dmitry
07.08.2016
12:13:00
Делаю: router.get("Files/*", serveStaticFiles("Files/")); Обращаюсь: http://localhost:8080/Files/123.txt получаю 404 Файл 123.txt в папке Files есть

Макс
07.08.2016
12:13:32
а в какой папке ты находишься?

точно в правильной? радом с Files?

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