1. C++ / Говнокод #22762

    −123

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    typedef std::map<QString, AlgorithmIO*>  IOMap; 
    
    class Cluster2IOMapBunch {
        private:
            volatile IOMap*      io_map_;   // HERE
    
        public:
          //...
            IOMap*      getIOMap()  { return const_cast<IOMap*>( io_map_); } // AND HERE
         //...
    };

    Говно?

    Запостил: OlegUP, 09 Апреля 2017

    Комментарии (103) RSS

    • показать все, что скрытоДа, говно
      Ответить
    • показать все, что скрытоШо такое QString?
      Ответить
    • показать все, что скрытоА зойчем там const_cast?
      Ответить
    • показать все, что скрытоЧеловек, который скрывает все говнокоды, чего ты добиваешься?
      Ответить
      • показать все, что скрытоСкрытия всех говнокодов, очевидно. Их же теперь только через сток можно увидеть или в кабинках юзеров :(
        Ответить
        • показать все, что скрытоНадо предложить страйко сделать плавающую планку рейтинга. Например, вычитать из рейтинга скользящее среднее по всем говнокодам за соответствующий месяц.
          Ответить
          • показать все, что скрытоСо скользящим средним спамеру просто нужно будет регать N новых ботов каждый день. В итоге БД сколлапсирует в минусовую дыру.
            Ответить
          • показать все, что скрытоКакие плавающие планки... Тут надо просто ботов выкорчёвывать к хуям, вместе с их голосами. Задетектить их не так уж и сложно - ну не будет нормальный юзер минусовать такую кучу постов/комментов подряд.
            Ответить
            • показать все, что скрытоПроще отменить кармочку целиком. Единственный потенциально положительный момент от неё -- фильтрация спама сообществом -- не работает.
              Вообще, фигня типа web of trust может помогла бы: плюсанул пользователя -- и тем самым придал больше веса его голосам к другим говнокодам в _твоём личном_ представлении, которое не влияет на остальные.
              Ответить
              • показать все, что скрыто> фильтрация спама сообществом
                В равноправном сообществе фильтрация в принципе не может работать, если учётки не привязаны к чему-то ценному и материальному.
                Ответить
              • показать все, что скрытоПоддерживаю всё сказанное.
                Ответить
              • показать все, что скрытоПредлагаю ввести карму как на хуябре.
                Ответить
              • показать все, что скрытоВ общем, вот такие мысли пришли в голову...

                Нет никакого смысла скрывать комменты поштучно. Если юзер упоротый спамер, лучше скрыть всё высранное им за один клик.

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

                Поэтому можно перейти от чисел к булеанам, и сделать вот такие отношения:
                trusts(B, C) - юзер B считает юзера C няшей и доверяет ему
                hates(B, A) - юзер B считает, что юзера A надо скрыть
                likes(B, P) - юзер B считает, что пост P интересный

                Юзер B видит комменты и посты X если !hates(B, X) и не существует такого C, что trusts(B, C) && hates(C, X).

                Если юзер B не хочет смотреть всё подряд, то он может полистать залайканное теми, кому он доверяет.

                Никаких общих счётчиков нет (прощай "лучший за неделю"). Накрутить что-то невозможно. Спам выносится в один клик.

                З.Ы. Ну и прикрутить нормальную рекапчу на регистрацию.
                Ответить
                • показать все, что скрытоЗ.Ы. Вопрос в том, возможна ли эффективная реализация этой схемы, чтобы её не ддоснули.
                  Ответить
                  • показать все, что скрытовозможна, конечно
                    у нас не фейсбук, не так и много юзеров

                    я бы добавил весА, чтобы собеседники были не в тернарном состоянии (строго ок, строго спамер, неизвестно), а в более разнообразном (k доверия к собеседнику)
                    Ответить
                • показать все, что скрытоProlog.NET

                  Вроде на реддите какая-то схема с весами используется, надо будет посмотреть. Может, с Байесовской статистикой что хорошее получится.
                  Ответить
                • показать все, что скрытоЗ.З.Ы. Большой минус схемы - добавляя разных юзеров в друзяшки можно узнать, кто кого скрыл :)

                  Чтобы его парировать, походу, придётся выставить отношения likes и hates в паблик. Заодно можно будет проверить, что юзер не скрывает кого-то, кто тебе интересен.
                  Ответить
                  • показать все, что скрыто> Большой минус схемы
                    Скорее маленький плюс. Это банальная честность.
                    Ответить
                    • показать все, что скрытоВот поэтому и придётся эту инфу вынести в паблик))
                      Ответить
                      • показать все, что скрытоИначе лицемер сможет легко заблокировать сайт.

                        Вот только интересно, что делать с ответами на неугодные комментарии. На ГК по традициям свободного общения там может быть либо неинтересная дискуссия с упоротым либо светлые мысли кого-то третьего.
                        Ответить
                        • показать все, что скрыто> что делать с ответами на неугодные комментарии
                          Оставлять. И даже неугодный комментарий не скрывать (разве что по высоте подрезать, если слишком длинный). Ибо на клик по "показать всё что скрыто" больше времени уходит, чем на чтение и скроллинг.
                          Ответить
                      • показать все, что скрытоЗ.Ы. А если вынести эту инфу в паблик, то можно возложить фильтрацию на клиента. А сервер будет отдавать почти статические списки.
                        Ответить
                        • показать все, что скрытоВ случае, если мы хотим учитывать мнение друзяшек, это будут довольно большие списки, однако.
                          Ответить
                          • показать все, что скрытоА не надо добавлять 100500 друзяшек.
                            Ответить
                            • показать все, что скрыто1) Допустим, я шизик-стертор.
                              2) Друзяшки определяются твоими оценками их говнокодов, а не "follow this user on govnokod.ru". Социалочки не нужны, нужна лишь возможность саморегуляции с защитой от Sybil attack
                              Ответить
                              • показать все, что скрыто> Допустим, я шизик-стертор
                                Сервер отдаст тебе списки из кеша (или даже их дельты), а дальше уже твои личные проблемы.

                                > follow this user
                                Ну ок, фичу с лайками можно убрать. Но соль trusts/hates в том, что тебе не надо тыкать в "скрыть этого долбоёба", если его уже скрыл кто-то из твоих друзяшек.
                                Ответить
                • показать все, что скрытоМне представляется скорее разреженная матрица нормированной (на что?) суммы лайков и дизлайков пользователя всех постов другого, назовём её m^0_{ij}. Т.е. матрица значений от -1 до 1. Можно грабить караваны срать в карму, это явно выставляет элемент матрицы в -1.
                  Нужно учитывать мнение друзяшек. Для этого строится другая разреженная матрица m^{\alpha+1}_{ij} = \sum_{k=0}^N{m^{\alpha}_{ik}} и т.д.
                  В простейшем случае показ поста зависит от некой функции f(m^0_{ij}, m^1_{ij}, ..) -> {true, false}.
                  Не ебу, как тут привязать всё к вероятностям, так что вышесказанное стоит понимать в смысле неких абстрактных весов.
                  Вероятно, не стоит пересчитывать все эти матрицу слишком часто, т.к. вряд ли веса будут меняться быстро для старых пользователей.

                  Ах да, вангую, что это работать не будет из-за эффекта заполнения матриц.
                  Ответить
              • показать все, что скрытоНепонятно ещё, что делать с незалогиненными посетителями.
                Ответить
                • показать все, что скрытоВот, кстати, если фильтрацию делать на клиенте - то можно и не логиниться. А желающие могут насладиться нефильтрованным контентом.
                  Ответить
                  • показать все, что скрытоЯ имею в виду новых пользователей: либо на них выкидывать все багры, либо какую-то усреднённую оценку -- т.е. то же, что и сейчас.
                    Ответить
                    • показать все, что скрытоВыливать все багры, само собой.

                      Ах да, они же среди багров не найдут нормальных юзеров. Проблема, да :)
                      Ответить
                      • показать все, что скрытоДумаю, тут надо использовать мнение владельца сайта.
                        Пусть по умолчанию список будет в точности тот же, что и у владельца. Это и вычисления снизит, и обеспечит новым пользователям чистый сайт, и очертит идею сайта (иначе на него придёт куча любителей виноделия, заблокирует и багры, и старых говнокодовцев, и станет общаться на свои темы), и количество настроек снизит.
                        Более, чем уверен, что большинство пользователей ничего настраивать не хочет и не будет. Сейчас они сваливают сразу, а на новом ГК комфортно проживут месяцы прежде, чем обнаружат, что можно что-то выбирать.

                        P. S. Вообще, идеи о полной свободе и толерастии на сайтах не выдерживают критики. Без изначального вектора адекватности будет хаос. Нас готовили родители, нас готовила школа, нас направляли админы на сайтах, поэтому мы теперь сами считаем, что спамить грешно и контролируем себя, придерживаясь этого вектора. Ещё недавно горели костры инквизиции: люди без вектора адекватности выбрали говнопарадигму "сжечь блондинку".
                        Ответить
                        • показать все, что скрыто> использовать мнение владельца сайта
                          Тогда есть вариант на порядки проще - поднимаем r/o зеркало, набираем отсюда десяток адекватных людей, даём им права на мочерацию и вперёд :)
                          Ответить
                        • Годная мысль. Правда владелец сайта для этого должен быть активным, а если бы это условие выполнялось, то нафиг была бы вся возня T___T

                          Короче, отпишитесь, кому идея trust network была бы интересна.
                          Ответить
                          • мне

                            причем я реально вижу, что сраной рсубд с нормальным индексированием (партиционированием, кешированием) будет достаточно для задачи, которую в простом виде озвучил борманд

                            только это всё равно не в рамках текущего говнокода должно быть сделано
                            Ответить
                            • Я не умею в рсубд, я сраный nosql-хипстер.
                              Вообще, идея у меня следующая: для начала запилить "траффикогенератор" с кластерами багров и няшками для эмуляции гк, и попытаться на нём подобрать модель, максимизирующую ценность постов, попадающих в выборку людей.
                              Потом уже можно будет подумать, как это дело реализовать по-нормальному и оптимизировать.
                              Ответить
                              • Короче, simulation-driven development.
                                <green>Охуеть, новая парадигма?!</green>
                                Ответить
                                • Что-то ты сложное придумываешь, тебе явно энергию девать некуда.
                                  Ответить
                                  • Снаут -- "архитект, который не архитект", Снаут мыслит глобально и нихуя не делает сам.
                                    (На четверть я уже это запилил.)
                                    Ответить
                                • Новая ли?
                                  Ответить
                                • > Короче, simulation-driven development.

                                  ШОК!!!!
                                  Шведские учёные первыми в мире уникально применили метод Монте-Карло в разработке программного обеспечения! Snout уже выпустил две статьи в соавторстве с Armstrong и ЧИТАТЬ ДАЛЬШЕ >>>
                                  Ответить
                                  • На швабре и hacker news не спамят каждый день -- значит новая.
                                    Ответить
                          • мне тоже

                            Под владельцем, видимо, понимается автор нового сайта с сетью доверия.

                            З.Ы. Предлагаю начать с хуяк-хуяк и в продакшен простого и реализуемого за пару-тройку вечеров - показывать сайт с точки зрения его владельца и тех, кому он доверяет. А полную сеть доверия потом добавить.
                            Ответить
                            • > А полную сеть доверия потом добавить

                              Я полностью поддерживаю. Главное правило машинлёрнинга — сложные модели это всё хорошо, но сначала надо самое тупое поднять, а потом уже сложное прикручивать.
                              Ответить
                  • показать все, что скрытоМожно кстати и текущий гк сохранить. Допустим, он хостится на неком шэред хостинге с пехапе и мускулем и никаких графовых вычислений туда не прикрутишь. Но кармочка берётся не оттуда, а с помощью REST API с левого серванта. Голоса идут туда же.
                    Ответить
                    • показать все, что скрытоЕщё проблема - у каждого юзера в блеклисте далеко не все спамеры (т.к. большую часть движок ему скрыл за счёт его друзей). Т.е. подписываться на блеклист от одного-двух юзеров почти бесполезно...

                      А раскручивать цепочку дальше (ака возведение матрицы в степень) - тут уже никаких ресурсов не хватит...
                      Ответить
                      • показать все, что скрытоКак я говорил, не обязательно всю матрицу целиком апдейтить. Кармочку новых пользователей (или тех, кого активно плюсуют/минусуют) можно пересчитать чаще.
                        Ответить
                    • показать все, что скрытоМожно вообще юзерскриптом прикрутить, да. 1024 вроде так юзал API моего говностока.
                      Ответить
                      • показать все, что скрытоК сожалению, по-нормальному это не выйдет, т.к. сейчас шизик умеет скрывать говны из разделов.
                        Плюс юзерскрипт оставляет стимул спамить. Вот если _все_ на тебя плюнут после первого багра, то ты не будешь постить багра, в отличии от случая, когда тебя скроет только горстка старпёров-power-user'ов.
                        Ответить
      • показать все, что скрытоВообще, чего мы ходим вокруг да около???
        Пусть страйко даст права модератора доверенным пользователям и это решит 99% проблем. Тем более что такой функционал уже есть.
        А если даст прова админа с возможностью коммитить в прод, то это решит 100% проблем, но добавит других
        Ответить
    • показать все, что скрытоОй-вэй, кгто-то заминусовал все комменты... Горе-то кгакое.
      Ответить

    Добавить комментарий