
Max
21.05.2018
20:39:04
в политике вот далеко не у всех опыт есть однако отличить мудака-политика от хорошего многие могут. так какой смысл в фаллометрии?

Constantine
21.05.2018
20:39:41

Max
21.05.2018
20:39:46
всем спокойной ночи

Google

Constantine
21.05.2018
20:40:19
в частности, меня категорически удивляет, что Human со ссылками на Universe для вас необычны
потому что естественный порядок владения в дереве от потомка к предку

Assasin
21.05.2018
20:41:08
Вообще странно, у меня как то наоборот, чем больше узнаю, тем больше понимаю, что учитывать надо любые мнения

Constantine
21.05.2018
20:41:33
это как "больший рейтинг на олимпиадках что-то значит, меньший - нет"

Assasin
21.05.2018
20:42:28
ну... больший опыт значит только... больший опыт, и все

Constantine
21.05.2018
20:42:53
статистически человек, имеющий больший опыт, сделал больше ошибок :)
как минимум такой аргумент - считаете ли вы, что три года назад понимали хуже?

Assasin
21.05.2018
20:43:39
это бесспорно. Вот только взять два таких человека, и их ошибки могут оказаться совершенно разными

Constantine
21.05.2018
20:44:01
т.е. если вы возьмете себя из будущего, очевидно, его советы нужно слушать

Assasin
21.05.2018
20:44:49

Nikita
21.05.2018
20:45:25
ребят, не в очень в тему конечно, но никто не натыкался на литературу по асинхронному программированию? нужны какие-нибудь статьи, а лучше книги, где про это на теоретическом уровне будет рассказываться

Google

Assasin
21.05.2018
20:45:28

Constantine
21.05.2018
20:45:29
если добавить гипотезу, что вы являетесь некоторым фиксированным квантилем одной возрастной группы независимо от текущего возраста получим, что вы должны слушать больший квантиль людей с большим опытом, чем с меньшим

Igor
21.05.2018
20:46:40

Assasin
21.05.2018
20:47:45

Constantine
21.05.2018
20:48:17

Assasin
21.05.2018
20:48:30
а, так с этим я согласен

Constantine
21.05.2018
20:48:33
не вижу, как это доказательство зависит от выбранной модели опыта
(больше людей в случае большего опыта)

Nikita
21.05.2018
20:49:59

Igor
21.05.2018
20:51:18
сеньк
ещё в Advanced Programming in UNIX Environment, насколько я помню, неплохо рассказывается за примитивы вроде мьютексов и семафоров

Constantine
21.05.2018
20:51:35
да, кстати, @AsGreyWolf, окна должны быть неперемещаемыми, чтобы без проблем в лямбдах биндаться

Nikita
21.05.2018
20:52:24

Igor
21.05.2018
20:53:44
оу
тогда Concurrency in Action тоже несколько мимо леса( хотя возможно я просто не дочитал до продвинутых вещей

Nikita
21.05.2018
20:56:10
Даже гугол молчит, странно что по этой теме так туго с теоретическими материалами

Constantine
21.05.2018
20:57:05
если честно, не понял эту фразу. кто от чего плюется и кто кого и зачем грохнуть должен
если некоторое окно создает команду для контекстного меню, оно очень хочет биндать this в этой команде, чтобы получать назад инфу
это С++, детка, тут бывают битые ссылки и вообще все не очень хорошо, поэтому над этой фигней привинчен отладочный reference checker
запущенная менюшка имеет состояние, в частности, хранящее все переданные команды
так вот, если трек продержит лишнего это состояние, то в этом состоянии будет битая ссылка на окошко


Assasin
21.05.2018
21:04:25
если некоторое окно создает команду для контекстного меню, оно очень хочет биндать this в этой команде, чтобы получать назад инфу
это С++, детка, тут бывают битые ссылки и вообще все не очень хорошо, поэтому над этой фигней привинчен отладочный reference checker
запущенная менюшка имеет состояние, в частности, хранящее все переданные команды
так вот, если трек продержит лишнего это состояние, то в этом состоянии будет битая ссылка на окошко
не сильно понятнее стало) this биндит, полагаю, команда, а не менюшка. По остальному... попробую догадаться: речь о ситуации, когда кто-то убил окно, а контекстное меню осталось?

Constantine
21.05.2018
21:05:36

Assasin
21.05.2018
21:06:54
кто такой трек?

Constantine
21.05.2018
21:07:13
TrackPopupMenu это условное название функции, которая непосредственно показывает popup menu

Google

Constantine
21.05.2018
21:07:26
собственно её винапи-название

Assasin
21.05.2018
21:08:09
и кто передерживал в своей статической переменной трек?
причем передерживал функцию, как я понял

Constantine
21.05.2018
21:08:43
TrackPopupMenu передерживала std::shared_ptr<PopupMenuState> в своей статической переменной

Assasin
21.05.2018
21:09:56
по-моему, наличие только статичекой переменной в самой функции уже говорит о том, что пора перерабатывать архитектуру

Constantine
21.05.2018
21:10:10
предложите другое решение для вот какого момента
(а) TrackPopupMenu не имеет права выпускаться из стека до конца
она синхронная

Assasin
21.05.2018
21:10:49
я вот так с наскоку в эту ситуацию не смогу погрузиться, тем более посреди ночи

Constantine
21.05.2018
21:10:56
(б) повторный вызов TrackPopupMenu может означать переход на другой пункт в MenuBar
т.е. TrackPopupMenu должна знать, что в стеке уже лежит TrackPopupMenu и знать состояние этого меню

Assasin
21.05.2018
21:12:33
навскидку, если у функции есть состояние, значит она напрашивается на переименовывание в метод

Assasin
21.05.2018
21:12:58
т.е., возможно, нужен класс типа PopupMenuTracker

Constantine
21.05.2018
21:13:02
как вы вообще умеете определять, что некоторая функция находится в стеке?

Assasin
21.05.2018
21:13:37
этим будет заниматься объект. Если нужно, с помощью поля-стека

Constantine
21.05.2018
21:14:03
?
я не понял про поле-стек

Assasin
21.05.2018
21:14:27
vector<...>

Constantine
21.05.2018
21:14:39
отлично, но как я получил ссылку на этот объект?
тот, который был первым в вызове?

Google

Assasin
21.05.2018
21:15:05
stack[0]?

Nikita
21.05.2018
21:15:13
типо синглтон
(блин не бейте за синглтон)

Constantine
21.05.2018
21:15:25
я не самый большой специалист
но у меня синглтоны реализуются через статическую переменную функции

Assasin
21.05.2018
21:16:30
ну я чаще видел реализацию через статическое поле класса-синглтона и статическую функцию (и приватные конструкторы)

Constantine
21.05.2018
21:16:30

Admin
ERROR: S client not available

Assasin
21.05.2018
21:16:36

Constantine
21.05.2018
21:16:54
меня интересует, как я нашел тот объект, у которого прочитал stack[0]
мне тот же трекер не дадут
так что я должен на том же вызваться

Assasin
21.05.2018
21:18:26

Constantine
21.05.2018
21:18:31
отлично

Assasin
21.05.2018
21:19:09
это как минимум отвязывает от глобального контекста приложения

Constantine
21.05.2018
21:19:30
а это развязывание возможно?

Assasin
21.05.2018
21:19:44
если мы лопатим архитектуру - почему нет?

Constantine
21.05.2018
21:19:48
два TrackPopupMenu невозможны в рамках одного приложения
потому что TrackPopupMenu имеет уникальный системный ресурс

Google

Nikita
21.05.2018
21:20:35
погоди, тут TrackPopupMenu это метод
что значит два их невозможны

Constantine
21.05.2018
21:20:53
два вызова

Assasin
21.05.2018
21:21:27
короче, не, я не буду сейчас с наскоку заниматься задачей, про которую я толком ничего не знаю и даже кода не видел.

Constantine
21.05.2018
21:21:56
ну вы очень странно недолюбливаете статические переменные
SomeSingleton & get_SomeSingletonInstance {
static SomeSingleton object;
return object; //я ой как не уверен, что вы можете это повторить
}
в частности, код выше потокобезопасен, вы умеете в оптимальный потокобезопасный код?)

Assasin
21.05.2018
21:23:12
я не недолюбливаю, они хороши для своих целей. Но для синглтона статической переменной функции мало

Constantine
21.05.2018
21:23:45
а что там еще не хватает?

Assasin
21.05.2018
21:24:09
можно в любом месте программы написать SomeSingleton
инстанцировать класс т.е.

Constantine
21.05.2018
21:24:20
хм...

Assasin
21.05.2018
21:24:37
да, нужно писать приват конструктор и friend на функцию геттер

Constantine
21.05.2018
21:24:50
namespace {
class SomeSingleton : public SomeSingletonInterface {
};
}
SomeSingletonInterface & get_SomeSingletonInstance {
static SomeSingleton object;
return object; //я ой как не уверен, что вы можете это повторить
}

Assasin
21.05.2018
21:24:52
но это уже выглядит, как обычная статическая функция класса
кстати, статические переменные функции thread-local?

Constantine
21.05.2018
21:25:35
нет
thread_local отдельное ключевое слово

Assasin
21.05.2018
21:25:51
тогда где там потокобезопасность?

Constantine
21.05.2018
21:25:57
гарантия языка