@CSharpChatЭта группа больше не существует

Страница 1552 из 1888
Nikita
23.07.2017
09:40:08
в итоге реально не учатся, о необходимости какой-то нормальной практики не думают

а потом удивляются

Vlad
23.07.2017
09:41:41
в итоге реально не учатся, о необходимости какой-то нормальной практики не думают
Недавно с преподами из итмо случайно пересекся, там на одной из кафедр норм готовят(ну мне так показалось)

Зависит

Google
Nikita
23.07.2017
09:43:09
готовить-то готовят

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

Vlad
23.07.2017
09:45:53
проблема в том, что есть целый пласт народа, который не готовится
От армейки косят/проебываются и потом кукарекают, что во говно

Хотя последнее и правда от места зависит тоже

Pichugin
23.07.2017
09:59:47
препод дает, хочешь бери, не хочешь не бери. вот и все.

Donald
23.07.2017
10:05:18
?Внимание!? #правила #ссылки #admins ℹ️Воздержитесь от оффтопа и флуда. Уважайте друг друга. ?Запрещен спам и несанкционированная реклама. @CSharpFeed - наш канал @CSharpRest - флудилка @MicrosoftStackJobs - вакансии и поиск работы @Fsharp_chat - чат о F# @xamarin_russia - чат о Xamarin Creator: @Donaldismo Admins: @Worldbeater @nikita_tsukanov @troyanov @sergey_chanaev @VDIGIT @ahydrax Статистика: https://combot.org/chat/-1001066857984

Viktor
23.07.2017
10:11:59
Я вчера случайно наткнулся на истеричку на ютубе, который кукарекал, что образование плохое

И что к нему не мидлы после института приходят

ViridRaven
23.07.2017
10:13:17
И что к нему не мидлы после института приходят
Ну да высшее образование оно же про формирование мидлов, причем именно в том стеке, который тому чуваку нужен ?

Сам наверное сразу сеньором выпустился ?

Viktor
23.07.2017
10:13:51
Ага, сразу айос девелопер со своим портфолио

А самое охуенно было в том, что в коментах его полностью поддержал Нестерук

Friedrich
23.07.2017
10:15:01
Нестерук и тут в чатике был, кстати. Щас ему весело будет про себя читать всякую брехню.

Google
Viktor
23.07.2017
10:15:23
Собственно я смогу пруфануть

Friedrich
23.07.2017
10:15:52
Мне кажется, это всё оффтоп. Образовательный холивор опять начинаете.

Nikita
23.07.2017
10:33:04
выпилили КЕМ OmniXAML из авалонии @ AvalonStudio начала стартовать 2 секунды вместо 15

Friedrich
23.07.2017
10:33:46
Ого, уже выпилили?

Nikita
23.07.2017
10:34:19
Сам наверное сразу сеньором выпустился ?
у меня запись "программист" в трудовой появилась в 17 лет

Ого, уже выпилили?
почти, я PR сейчас допильником обрабатываю

Gid
23.07.2017
10:34:48
https://www.kommersant.ru/doc/3342820
> а тех, кому посчастливится найти работу, начальство старается вытолкнуть во фриланс

Это как

Nikita
23.07.2017
10:35:40
это "а давай ты себе ИП оформишь"

Gid
23.07.2017
10:36:06
Кажется автор статьи не совсем понимает что такое ИП и фриланс

Nikita
23.07.2017
10:36:09
просто государство оуело со своими 35% отчислений

удалил неиспользуемую конфигурацию из солюшна @ студия висит уже три минуты восстанавливая пакеты

Gid
23.07.2017
10:37:05
> а то и вообще без договора, оплачивая налом подработку, без соцпакета, без страховых и пенсионных взносов

Как же это, без пенсионных??? Без страховых???

Сергей
23.07.2017
10:37:24
неужели npgsql не раздражает?
Можно развернуть мысль?

Gid
23.07.2017
10:37:26
Вроде и норм статья

А вроде и слишком маня статья

Viktor
23.07.2017
10:39:11
Можно развернуть мысль?
да, не устраивает дефолтный конекшн пул, да и рандомно какие-то заскоки случаются

Nikita
23.07.2017
10:39:29
всё ещё висит

Vlad
23.07.2017
10:40:09
всё ещё висит
А в диспетчере есть признаки жизни?

Google
Viktor
23.07.2017
10:41:04
удалил неиспользуемую конфигурацию из солюшна @ студия висит уже три минуты восстанавливая пакеты
у тебя как конфигурации устроены? в каждом csproj файле секции debug/release?

Nikita
23.07.2017
10:48:18
А в диспетчере есть признаки жизни?
ну оно статусбар обновляет же

а в остальном висит

Vlad
23.07.2017
10:48:50
ну оно статусбар обновляет же
А, я думал зависла-зависла

Nikita
23.07.2017
11:11:37
всё кроме статусбара висит

кнопки не нажимаются итп

Alexey
23.07.2017
12:08:59
Эй

Я не дочитал

Viktor
23.07.2017
12:09:20
Я не дочитал
в другом чате скинули)

one
23.07.2017
12:20:40
ол

Donald
23.07.2017
12:21:16
Привет

one
23.07.2017
12:21:28
привет

#d3ca
23.07.2017
13:23:52
подскажите, ключ. слово event возможно использовать только с делегатами? и что ещё оно добавляет, кроме ограничения в возможностях (типа установки в null), при работе с событием?

Jack
23.07.2017
14:20:58
Делегаты это ссылки на методы

Эвент и есть делегат

По-сути

Это что-то вроде обратного вызова

Google
Jack
23.07.2017
14:22:07
Вызываешь событие внутри класса, когда что-то должно произойти

Admin
ERROR: S client not available

Jack
23.07.2017
14:22:22
Из вне можешь подписаться на событие

Но если на событие ничего не подписано вылезет эксепшн

Нужна проверка на нулл

Nikita
23.07.2017
14:29:04
Роман
23.07.2017
14:29:34
Всем привет, у меня есть вопрос на обсудить, про выполнение длительных, неблокирующих операций. Суть в том, что у меня есть однопоточное игровое ядро, очень похоже по своей сути на STA приложение вин форм. Это ядро обслуживает кучу клиентов, поэтому никогда не выполняет никаких длительных операций: т.е. у него есть входная очередь с событиями, которую оно разгребает и куча выходных очередей, в которые ядро кидает данные, которые нужно отправить игрокам. А теперь задача: когда игрок подключается к серверу, нужно загрузить данные о нём с бд. Напрямую грузить нельзя, поэтому я сделал так, что запускается асинхронная операция загрузки, которая кидает в очередь сообщений данные о загруженном игроке. Вроде норм. Но меня смущают некие маловероятные сценарии, типа: игрок подключился, отключился и вот наконец пришли данные о нём из базы. Или: игрок подключился, отключился, подключился и вот пришли данные о нём раз, и данные два, да ещё и порядок не детерминирован. Для того чтобы не думать о таких сценариях, я решил что стоит сделать отмену асинхронной операции. Т.е. я говорю стороджу загрузить данные, стородж возвращает ид операции, если игрок отключился, то удаляем ид операции. Получается, что когда данные таки загрузятся из базы, можно понять нужны эти данные ещё или нет. Отменять саму асинхронную операцию не вариант, т.к. она уже может завершиться, а данные уже попасть во входную очередь. Проблема в том, что реализация пока получается не огонь :( а мне кажется, что проблема типовая для гуёвых программистов: типа грузим картинки в фоне, а если пользователь что-то нажал, то картинку уже не нужно грузить. Что думаете? Может существует более простой способ, чем тот что я описал? Или есть готовые, удобные реализации, которые можно стырить?

Jack
23.07.2017
14:29:50
Viktor
23.07.2017
14:32:01
Всем привет, у меня есть вопрос на обсудить, про выполнение длительных, неблокирующих операций. Суть в том, что у меня есть однопоточное игровое ядро, очень похоже по своей сути на STA приложение вин форм. Это ядро обслуживает кучу клиентов, поэтому никогда не выполняет никаких длительных операций: т.е. у него есть входная очередь с событиями, которую оно разгребает и куча выходных очередей, в которые ядро кидает данные, которые нужно отправить игрокам. А теперь задача: когда игрок подключается к серверу, нужно загрузить данные о нём с бд. Напрямую грузить нельзя, поэтому я сделал так, что запускается асинхронная операция загрузки, которая кидает в очередь сообщений данные о загруженном игроке. Вроде норм. Но меня смущают некие маловероятные сценарии, типа: игрок подключился, отключился и вот наконец пришли данные о нём из базы. Или: игрок подключился, отключился, подключился и вот пришли данные о нём раз, и данные два, да ещё и порядок не детерминирован. Для того чтобы не думать о таких сценариях, я решил что стоит сделать отмену асинхронной операции. Т.е. я говорю стороджу загрузить данные, стородж возвращает ид операции, если игрок отключился, то удаляем ид операции. Получается, что когда данные таки загрузятся из базы, можно понять нужны эти данные ещё или нет. Отменять саму асинхронную операцию не вариант, т.к. она уже может завершиться, а данные уже попасть во входную очередь. Проблема в том, что реализация пока получается не огонь :( а мне кажется, что проблема типовая для гуёвых программистов: типа грузим картинки в фоне, а если пользователь что-то нажал, то картинку уже не нужно грузить. Что думаете? Может существует более простой способ, чем тот что я описал? Или есть готовые, удобные реализации, которые можно стырить?
обычно просто используют отмену (cancellation токены), т.е. данные ты загрузил, но они не нужны уже (в токене была выставлена отмена) и дальше просто ничего не должно произойти

ес-но от тебя требуется чаще вставлять`ThrowIfCancellationRequested()` в таких больших операциях

Роман
23.07.2017
14:32:58
обычно просто используют отмену (cancellation токены), т.е. данные ты загрузил, но они не нужны уже (в токене была выставлена отмена) и дальше просто ничего не должно произойти
> Отменять саму асинхронную операцию не вариант, т.к. она уже может завершиться, а данные уже попасть во входную очередь. я думал об этом, но грёбанная же асинхронность

Роман
23.07.2017
14:37:31
а чем это сулит (попадание в очередь)? там токен дальше нельзя прокинуть?
тем что данные попадут в игровое ядро, т.е. операция не отменится. в моём случае получается что логический конец асинхронной операции там где ядро обрабатывает событие из очереди. А сточки зрения асинхронного таска, в тот момент когда данные кидаются в очередь

Роман
23.07.2017
14:41:26
ну хорошо, попали данные в ядро, игрок уже отключился, нельзя его тогда просто по таймауту выкинуть из сессии?
игрок отключился, игра считает что он есть, выкидывать по таймауту - костыль. у меня по сокетам подлючаются, так что я точно знаю когда игрок отключился, тут проблемы нет. А вот светлая мысль появилась: токен завершения возвращать вместе с загруженными данными об игроке, тогда ядро сможет проверить токен прямо на входе и отбросить сообщение.

Google
Роман
23.07.2017
14:46:09
да, это стандартная практика: спускать токен отмены ниже по дереву вызовов или передавать в continuation
да, хорошая практика, сразу не подумал об этом, ибо поток управления не так очевидно передаётся: запуска асинхронной операции, сообщение в очередь, чтение из очереди.

Friedrich
23.07.2017
14:46:30
Всем привет, у меня есть вопрос на обсудить, про выполнение длительных, неблокирующих операций. Суть в том, что у меня есть однопоточное игровое ядро, очень похоже по своей сути на STA приложение вин форм. Это ядро обслуживает кучу клиентов, поэтому никогда не выполняет никаких длительных операций: т.е. у него есть входная очередь с событиями, которую оно разгребает и куча выходных очередей, в которые ядро кидает данные, которые нужно отправить игрокам. А теперь задача: когда игрок подключается к серверу, нужно загрузить данные о нём с бд. Напрямую грузить нельзя, поэтому я сделал так, что запускается асинхронная операция загрузки, которая кидает в очередь сообщений данные о загруженном игроке. Вроде норм. Но меня смущают некие маловероятные сценарии, типа: игрок подключился, отключился и вот наконец пришли данные о нём из базы. Или: игрок подключился, отключился, подключился и вот пришли данные о нём раз, и данные два, да ещё и порядок не детерминирован. Для того чтобы не думать о таких сценариях, я решил что стоит сделать отмену асинхронной операции. Т.е. я говорю стороджу загрузить данные, стородж возвращает ид операции, если игрок отключился, то удаляем ид операции. Получается, что когда данные таки загрузятся из базы, можно понять нужны эти данные ещё или нет. Отменять саму асинхронную операцию не вариант, т.к. она уже может завершиться, а данные уже попасть во входную очередь. Проблема в том, что реализация пока получается не огонь :( а мне кажется, что проблема типовая для гуёвых программистов: типа грузим картинки в фоне, а если пользователь что-то нажал, то картинку уже не нужно грузить. Что думаете? Может существует более простой способ, чем тот что я описал? Или есть готовые, удобные реализации, которые можно стырить?
Мне кажется, ты правильно делаешь. Как минимум, в самом конце операции (когда ты уже завершил работу и находишься синхронно в ядре) нужно проверять, что игрок всё ещё подключен к серверу. Если не подключен — игнорировать результаты операции. Отменять in-flight операцию через cancellation token необязательно. Насколько я понимаю, ситуация это редкая, и ты рискуешь нагородить много кода ради копеечной экономии.

С другой стороны, если ты эти моменты сможешь объединить (и сигнализировать об отключении игрока при помощи CancellationToken), то стоит это сделать. И копеечная экономия будет, и заодно вот эта вот синхронная проверка в коде ядра.

Nikita
23.07.2017
14:49:01
Теперь студия виснет на Ctrl+F

когда там уже райдер зарелизят

Viktor
23.07.2017
14:49:35
когда там уже райдер зарелизят
я ради эксперимента завтра утром скачаю авалонию и открою в студии

Friedrich
23.07.2017
14:50:19
я ради эксперимента завтра утром скачаю авалонию и открою в студии
Никита не обманывает, студия подтормаживает на проектах Авалонии (и на других похожего размера).

Роман
23.07.2017
14:50:25
@ahydrax, спасибо что натолкнул на правильные мысли

Nikita
23.07.2017
14:51:01

Страница 1552 из 1888

Эта группа больше не существует Эта группа больше не существует