@dlangru

Страница 532 из 719
Dark
21.04.2018
13:34:40
Да, а что ты хотел?

Это же не ролки, которые блокируются до ответа оппонента

Pavel
21.04.2018
13:37:06
Это все сложная тема и она не имеет особо отношения к однопоточному getUpdates. Благодаря вайбу там ничего не блокируется, можно синхронизировать мьютексом а можно нет. Можно хоть 1000 тасков создать и сидеть обслуживать 1000 ботов в одном потоке. Все как захотите.

А вопрос на какое сообщение отвечать юзеру если он их 20 послал это уже на совести приложения

Google
Pavel
21.04.2018
13:38:36
Как минимум у update есть всегда возрастающий id, можешь по нему сортировать.

Denis
21.04.2018
13:50:28
млять, оказывается code.dlang.org возвращает не время когда оно само узнало о пакете, а время когда пакет был зарелизен

т.е. можно старый пакет там зарегать и о нём никто не узнает - он всегда будет в конце списка

Dark
21.04.2018
13:52:12
Не баг, а фича

Denis
21.04.2018
13:52:34
странная фича. выходит, придётся в боте хранить весь реестр и сравнивать новое со старым

Dark
21.04.2018
13:52:59
Ну да

Denis
21.04.2018
13:54:10
ладно завтра запилю

core.exception.AssertError@../../.dub/packages/eventcore-0.8.34/eventcore/source/eventcore/drivers/posix/driver.d(333): Clearing referenced file descriptor slot. мля а это ещё что за

Dark
21.04.2018
14:02:39
А где инструкция про eventcore?

Я ее не нашел

Ned Ogl
21.04.2018
14:06:51
Народ, как в Ди делается синглтон? Пробовал по аналогии с С++, но всё равно допускаются объявления переменных этого типа.

Google
Pavel
21.04.2018
14:07:25
А где инструкция про eventcore?
Это ядро ядра vibe-core

Которое само ядро для vibe.d

Pavel
21.04.2018
14:08:12
Который ядро для telega, которая ядро для телегоботов

Denis
21.04.2018
14:09:12
??
Антипаттерн это по современным понятиям.

Нинужен.

Pavel
21.04.2018
14:09:22
Разве?
Я щас получил письмо, отрицательный chatId это группа

Pavel
21.04.2018
14:10:06
У них такое разделение, все группы <0 а юзеры >0

Pavel
21.04.2018
14:10:19
Антипаттерн это по современным понятиям.
При тестировании чего-нибудь может быть нужен.

Denis
21.04.2018
14:10:20
ясненько

Pavel
21.04.2018
14:11:04
Подсунуть единственный объект туда, где ожидаются разные.

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

Denis
21.04.2018
14:11:57
Примерно понятно.

Denis
21.04.2018
14:14:43
почему в вк и в телеграме одинаковые картинки официальных человечков?

как так вышло?

Google
Dark
21.04.2018
14:15:14
Спотти что ли?

Ned Ogl
21.04.2018
14:16:19
Полностью статический класс, не?
Не пробовал, его должно быть нельзя объявить. По классике делается так: auto singleton = SingletonClass.getInstance();

Denis
21.04.2018
14:16:48
https://telegram.org/ которые тут внизу нарисованы в кругах серых

Dark
21.04.2018
14:17:19
Можешь скрин?) Все сейчас заблочено, а у меня на браузере нет прокси

Denis
21.04.2018
14:17:26
https://wiki.dlang.org/Low-Lock_Singleton_Pattern не оно?

Dark
21.04.2018
14:19:04
Дизайнер, наверн, один и тот же

Stanislav
21.04.2018
14:19:34
и собакирен тоже одинаковый

идея дурова наверн

Denis
21.04.2018
14:19:38
вот вот

Дизайнер, наверн, один и тот же
Хорошо, но почему он на два дома живёт? Я првоерял, новые картинки появляются и там и там

Dark
21.04.2018
14:20:24
Или все таки Дуров спиздел

Глеб
21.04.2018
14:20:52
про синглетон у меня есть заметка в блокноте, откуда взял, не помню. надо?

Dark
21.04.2018
14:22:11
Кстати, а как классы в betterC юзать? Слышал что-то про кастомные аллокаторы, но точно не видел

Stanislav
21.04.2018
14:25:09
а разве в беттерси есть классы?

Dark
21.04.2018
14:25:33
А разве нет?

Там только GC нет, а классы нужно аллоцировать

Stanislav
21.04.2018
14:25:58
https://dlang.org/spec/betterc.html

Google
Stanislav
21.04.2018
14:26:09
D features not available with BetterC: Classes

Dark
21.04.2018
14:27:20
._.

Oleg
21.04.2018
14:27:22
@ned_ogl сделай конструктор приватным

Dark
21.04.2018
14:27:24
Жаль

Stanislav
21.04.2018
14:27:38
в книжке александреску вроде был пример синглтона

Oleg
21.04.2018
14:28:11
я не вижу сейчас реальных задач где нужен singleton

Dark
21.04.2018
14:28:58
Классический - да, а вот недосинглтон на статических классах - очень даже нужен местами

Dark
21.04.2018
14:30:09
ты про аллокаторы?
Нет, про всякие глобальные объекты

Admin
ERROR: S client not available

Oleg
21.04.2018
14:30:19
например?

Dark
21.04.2018
14:31:41
например?
На ум приходит консоль

Oleg
21.04.2018
14:31:56
не понял

какая консоль?

Dark
21.04.2018
14:32:29
Типа как в JS, Console.Log

Oleg
21.04.2018
14:32:37
ммм, нет

stderr, stdout разные объекты, никто не мешает писать в 10 разных файлов

консоль как частный случай файла

глобальный логгер тоже не может полностью быть singleton, это целая система

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

Google
Oleg
21.04.2018
14:37:12
но всё же если на то пошло, то для однопоточной программы можно так делать auto logger() @property { if (_logger is null) _logger = new Logger(); return _logger; } private class Logger { ... }

Ну и глобально где-то private Logger _logger;

qwerty
21.04.2018
14:46:15
Народ, как в Ди делается синглтон? Пробовал по аналогии с С++, но всё равно допускаются объявления переменных этого типа.
Вы наверно создаёте объект класса в том же файле? Если да, то все правильно. Потому что инкапсуляция работает в рамках файла, а не класса

То есть приватные поля доступны в том модуле, где объявлены

Dark
21.04.2018
14:47:08
Что не очень хорошо, ИМХО

Pavel
21.04.2018
14:47:27
А по моему отличный хак)

qwerty
21.04.2018
14:47:29
Держите нас в курсе)

Pavel
21.04.2018
14:47:53
Еще помимо private есть модификатор package

Ned Ogl
21.04.2018
14:48:22
qwerty
21.04.2018
14:49:27
qwerty
21.04.2018
14:51:06
Код класса покажите пожалуйста через сервис обмена кодом

что-то я не могу понять как вернуть reference на ассоциативный массив, который является полем структуры

test.d(178): Error: cannot implicitly convert expression this.combinations of type const(KeyCombination[int]) to KeyCombination[int]

ref KeyCombination[int] getCombinations() const { return combinations; }

Oleg
21.04.2018
16:41:16
ref KeyCombination[int] getCombinations() const { return combinations; }
так ты пытаешься вернуть mutable ref

из const метода

qwerty
21.04.2018
16:41:38
а как вернуть const ref

?

Oleg
21.04.2018
16:41:51
ref const(KeyCombinations[int]) getCombinations() const { .. }

чтобы 2 метода не делать (обычно так на простых типах делаю) можно так написать ref inout(KeyCombinations[int]) getCombinations() inout { .. }

на сложных не проверял

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