@dlangru

Страница 109 из 719
Grigirii
23.11.2016
11:59:34
функции принимают не интерфейс и не объект конкретного типа, а просто любой объект на котором есть нужные методы

qwe
23.11.2016
11:59:46
точно утинная

Grigirii
23.11.2016
11:59:54
в целом да, но структурная обычно компайл тайм, а утиная рантайм

в целом вопрос терминологии

Google
qwe
23.11.2016
12:00:00
аа

понял

MonoDevelop никто не использует случайно?

на Linux

u13147
24.11.2016
05:17:50
Да, делаю на нём лабы на шарп в универе.

qwe
24.11.2016
08:11:44
@u13147 Он при запуске жалутеся на то, что не может создать консоль "Console could not be created". Небольшое гугление привело к тому, что надо сделать unset GNOME_SESSION_ЧЕГО_ТО_ТАМ и потом в этом же терминале запустить monodevelop. Но я все равно получаю то же сообщение. У Вас не было такой проблемы?

u13147
24.11.2016
08:18:43
Нет, всё из коробки работает.

qwe
24.11.2016
08:28:00
на kde?

u13147
24.11.2016
08:28:51
Хммм, Mate.

qwe
24.11.2016
08:49:45
спасибо

Dmitry
24.11.2016
12:39:23
А "cast(shared) new Foo() " это создаст экземпляр который виден глобально?

Oleg
24.11.2016
14:40:30
Нет

Создаст экземпляр через обычный конструктор, а потом сделаем shared

Google
Oleg
24.11.2016
14:41:13
Приведение типа

Dmitry
24.11.2016
14:46:32
Будет виден за пределами класса?

Oleg
24.11.2016
14:51:57
Нет

с чего вдруг?

просто другой тип

не Foo а shared Foo

Dmitry
24.11.2016
14:52:41
Ммм а где он полезен?

Oleg
24.11.2016
14:53:52
там, где следует его применять)

а, если более конкретно, в многопоточности

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

он должен быть shared для этого

когда ты указываешь, что метод shared ты подразумеваешь, что учёл синхронизацию данных внутри

поэтому простые методы нельзя вызывать из разных потоков

Dmitry
27.11.2016
10:56:23
Что-то не пойму, на что он ругается: string sqlinsert = (`INSERT INTO usersshapes (userlogin, uploading_date, geometry_type, data) VALUES ('%s', '%s', '%s', '%s') `, login, uploading_date, geometry_type, data); Using the result of a comma expression is deprecated

qwe
28.11.2016
04:11:37
ошибка по время исполнения приложения или компиляции?

Dmitry
28.11.2016
07:02:40
Это ворнинг. Точнее деприкейшейн месседж

Просто раньше было норм. Сейчас оказалось что нужно метод format вызывать

Grigirii
28.11.2016
08:18:58
по делу ругается, тут скорее всего вызова функции не хватает. это же строка вида: string sqlinsert = (``, str, str); тут какой-нибудь format перед скобками должен быть

а иначе в sqlinsert просто присваивается data

а всё остальное выкидывается

Google
Dmitry
28.11.2016
15:45:55
а разве подстановка значений %s тут ничего не даст? Просто строку же подстановочные значения сформируют или все же нет? string name = "dima" string s = ("hi %s", name) Разве так нельзя?

Grigirii
28.11.2016
15:46:25
не припомню, чтобы такая фича была в D

Dmitry
28.11.2016
15:46:42
м... значит я с другими языками умудряюсь путать

Армен
28.11.2016
18:42:19
можно string s = format("hi %s", name)

Dmitry
29.11.2016
16:08:21
Помните мы про наследование конструкторов тут с кем то говорили. Вот интересный dip на этот счет https://github.com/dlang/DIPs/blob/master/DIPs/DIP1004.md

Как я понимаю теперь не обязательно конструктор родителя создавать

Grigirii
30.11.2016
08:51:36
не обязательно создавать конструктор потомка, а в предке всё, как раньше. вообще идея хорошая, должны принять

только синтаксис alias ... this мне кажется совершенно неудачным в D. для изначального alias this всё отлично, но когда это для методов и сейчас для конструкторов, совершенно не читается. даже в C++ using <method>; гораздо лучше

Dmitry
02.12.2016
15:06:46
Погоди а конструктор потомка конструктор родителя унаследует? Я думал что конструктор родителя не надо будет создавать в потомке. Я ошибся?

Grigirii
02.12.2016
15:07:32
ну в такой формулировке нет, не ошибся

просто очень странно звучит фраза "конструктор родителя в потомке"

Dmitry
02.12.2016
15:43:01
Ну как я понимаю если производный класс создается я должен в нем все равно конструктор родителя вызвать, а этот dip позволяет его не вызывать

qwe
04.12.2016
13:04:44
кто-нибудь есть?

кто понимает для чего нужен Appender https://dlang.org/library/std/array/appender.html

Dmitry
04.12.2016
13:11:48
ну судя по описанию это тоже самое, что ~

Армен
07.12.2016
04:44:48
Всем привет! Вот что пишут в dstyle насчет свойств. Такой подход кроме лаконичности имеет какое-то преимущество перед геттерами и сеттерами?

Properties Functions should be property functions whenever appropriate. In particular, getters and setters should generally be avoided in favor of property functions. And in general, whereas functions should be verbs, properties should be nouns, just like if they were member variables. Getter properties shouldnot alter state.

Денис
07.12.2016
08:37:50
Всем привет! Вот что пишут в dstyle насчет свойств. Такой подход кроме лаконичности имеет какое-то преимущество перед геттерами и сеттерами?
Ну меньше кода. +Возможность завести поле без сеттеров/геттеров, а потом добавить их, ничего не меняя в остальном коде.

qwe
07.12.2016
13:38:55
кто-нибудь баловался с yacc?

а если да, никто не видел Lex файл для D?

Google
qwe
07.12.2016
16:55:07
Аа, кажется понял где взять http://dlang.org/spec/lex.html

Oleg
07.12.2016
17:54:48
а зачем?)

qwe
08.12.2016
03:37:44
да просто, хочу поиграться с yacc, может что из этого получится

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

Dmitry
08.12.2016
05:35:49
На хабре видел статью про фреймворк для свифта. Было бы интересное с ди сравнить

https://m.habrahabr.ru/post/316944/

0x9d8e
08.12.2016
14:24:48
Я тут сетевую мини-игрушку пишу, а с сетями особо не работал. Может подскажет кто. Сетевое взаимодействие (да и вообще всё) стараюсь по максимуму упростить, иначе оно никогда не будет закончено. Поэтому вижу это так, что клиенты шлют на сервер по udp пакеты со своими действиями (только айдишники в них добавляют, чтобы порядок не путать), сервер слушает сокет, постоянно читает входящие пакеты, парсит и передаёт в модель. Раз в n-миллисекунд вызывает расчёт модели и рассылает то что получилось всем клиентам. Ну наверное ещё после получения пакета от клиента сообщает ему об этом, чтобы небыло ситуации, когда игрок поехал вперёд, кнопку отпустил, а этот пакет потерялся. Лаг от сетевых задержек маскировать не буду ибо запарно и вносит обидные "чудеса". Так вот. Нужно ли мне как-то париться с тем как сервер получает от клиентов пакеты? Могу я делать это однопоточно и предельно тупым образом (опрос udp:receivefrom() в цикле)? Просто когда я тестирую это дело в локалке с тремя игроками оно всё замечательно, но могу ли я расчитывать, что udp сам складывает пакеты в очередь и не начинает их массово терять, если в какой-то момент их там пара десятков накопилась? Меня бы устроило, если какие-то такие проблемы начинались где-то в районе 1k rps. Ну условно говоря сервак затупил на 100ms, а в это время игроки 200 пакетов прислали и последние два из них не влезли в системную очередь и тупо потерялись. Это годится т.к. такого не будет, там в "комнате" максимум игроков 30-40 смогут как-то играть, а сервис по переходу между комнатами и другие комнаты может хоть на другом процессе крутиться, хоть на другой машине. (т.е. да, хочу однопоточно игру крутить).

Pavel
08.12.2016
14:28:31
Udp может терять пакеты по определению

Admin
ERROR: S client not available

Oleg
08.12.2016
14:28:47
и вроде даже порядок

или порядок не теряется?

я бы tcp юзал

0x9d8e
08.12.2016
14:29:25
На самом деле даже не решил ещё на чём будет сервер в итоге работать. Запускаю в его качестве другой клиент (love2d, он сам на сях, а пользовательский код под него на lua)

Pavel
08.12.2016
14:29:47
В counter strike вроде udp и это работало)

0x9d8e
08.12.2016
14:29:57
Про потерю пакетов и их порядка udp я знаю

Pavel
08.12.2016
14:30:03
Но если производительность позволяет лучше tcp

0x9d8e
08.12.2016
14:30:21
На tcp я бы эту игру не делал

qwe
08.12.2016
14:30:29
Могу рассказать анекдот про UDP, но вряд ли он до Вас дойдет)

Pavel
08.12.2016
14:31:19
Тебе лучше спросить в чате сетевиков, там наверно дадут развернутый ответ

0x9d8e
08.12.2016
14:31:35
Я как бы не против сам этот порядок восстанавливать и пересылать пакеты, если они ещё актальны. Главное, чтобы я мог не пересылать их, если они уже протухли)

Google
0x9d8e
08.12.2016
14:32:02
Нет ссылочки?

Oleg
08.12.2016
14:32:27
кстати, а udp разве двусторонний?

Just
08.12.2016
14:32:28
а это та игра с программированием нано роботов?

0x9d8e
08.12.2016
14:32:37
не, не та

ту я бы как раз на tcp делал)

там даже http проканает

Just
08.12.2016
14:33:24
а в этой какой концепт? интересно посмотреть было бы на игру и сам код тоже

0x9d8e
08.12.2016
14:34:32
игра с программированием роботов упёрлась в почти полное отсутствие опаты в геймдеве и адскую кучу работы, поэтому практикуюсь в мини-игрушках

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

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

Just
08.12.2016
14:39:35
ну это уже на пре-альфу тянет, по современным меркам)

0x9d8e
08.12.2016
15:04:28
ага) на днях нарисую/наворую немного спрайтов и тайлов, чтобы там всётаки танчики ездили. На следующей неделе может быть сделаю как-то играбильную оффлайн-версию. Может после этого какие-то моменты в геймплее пересмотрю. Например хочу чтобы один танк имел как-бы один снаряд и пока он не долетит куда-нибудь стрелять нельзя. А летит снаряд всего раза в два быстрее, чем танки ездят. Это должно стимулировать игроков запариваться о тактике + снижает роль скорости реакции и влияние тех же лагов (которые, кмк, вполне естественны для тяжелой техники и артиллерии). Кроме того карта тайловая и столкновения между юнитами и снарядами проверяются тупо условием a.x == b.x && a.y == b.x где x и y координаты клетки.

За счёт такой "шашечности" и того что это на самом деле пошаговая игра, в которой просто таймаут шага 1/10 секунды ещё и упрощается задача реализации умных ботов. А значит можно будет на ней ставить какие-то эксперименты по той игре с программированием роботов)

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

Just
08.12.2016
15:09:37
круто, не хотите свою отдельную группу или канал-блог завести, что бы там это все описывать? что бы ничего не пропустить и держать все в одном месте

0x9d8e
08.12.2016
15:10:20
Заоффтопил тут всё, да?)

Сейчас запилю

Just
08.12.2016
15:12:41
было бы для всех удобно, мне кажется

0x9d8e
08.12.2016
15:17:36
https://telegram.me/joinchat/B1mo40ButwO37iIkcgyU8Q Если кому интересно.

Dmitry
10.12.2016
08:12:32
А как из генератора получателю отправить сообщение? https://dlang.org/library/std/concurrency/generator.html

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