1. SQL / Говнокод #5979

    −851

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    select distinct bk.ID, bk.URL, bk.Date, bk.Name, bk.Description, bk.UserCreatorID from bookmarking_bookmark as bk 
    where bk.Tenant=@Tenant and bk.ID in 
    (select *  from (select b.ID  from bookmarking_bookmark as b  left join  bookmarking_bookmarktag as bt on b.ID=bt.BookmarkID left join bookmarking_tag as t  on bt.TagID=t.TagID 
    left join (select ub.BookmarkID as BookmarkID, ub.Name as UserBookmarkName,ub.Description as UserBookmarkDescription, t.Name as TagName  
    from (select * from bookmarking_userbookmark as ub where ub.UserID=@userID) as ub 
    left join bookmarking_userbookmarktag as ubt  on ub.UserBookmarkID=ubt.UserBookmarkID  
    left join bookmarking_tag as t  on ubt.TagID=t.TagID) as ub on b.ID=ub.BookmarkID 
    where  ( ( lower(b.URL) like lower(@tagNameForUrlWithoutLastSlash0) )  
    or (lower(b.Name) like lower(@tagName0) or lower(b.Name) like lower(@tagNameWithSpace0)) 
    or (lower(b.Description) like lower(@tagName0) or lower(b.Description) like lower(@tagNameWithSpace0))    
    or (lower(t.Name) like lower(@tagName0)) or (lower(t.Name)  like lower(@tagNameWithSpace0)) 
    or (lower(TagName) like lower(@tagName0)) or (lower(TagName) like lower(@tagNameWithSpace0))    
    or (lower(UserBookmarkName) like lower(@tagName0) or lower(UserBookmarkName) like lower(@tagNameWithSpace0))    
    or (lower(UserBookmarkDescription) like lower(@tagName0) or lower(UserBookmarkDescription) like lower(@tagNameWithSpace0)))  
    and b.ID in (
    select b.ID   from bookmarking_bookmark as b  left join  bookmarking_bookmarktag as bt  on b.ID=bt.BookmarkID
    left join bookmarking_tag as t    on bt.TagID=t.TagID 
    left join  (
    select ub.BookmarkID as BookmarkID, ub.Name as UserBookmarkName, ub.Description as UserBookmarkDescription, t.Name as TagName from 
    (select * from bookmarking_userbookmark as ub where ub.UserID=@userID) as ub  
    left join bookmarking_userbookmarktag as ubt on ub.UserBookmarkID=ubt.UserBookmarkID
    left join bookmarking_tag as t on ubt.TagID=t.TagID) as ub on b.ID=ub.BookmarkID
    where  (( lower(b.URL) like lower(@tagNameForUrlWithoutLastSlash1) ) or (lower(b.Name) like lower(@tagName1) or lower(b.Name) like lower(@tagNameWithSpace1)) 
    or (lower(b.Description) like lower(@tagName1) or lower(b.Description) like lower(@tagNameWithSpace1)) or (lower(t.Name) like lower(@tagName1)) 
    or (lower(t.Name)  like lower(@tagNameWithSpace1)) or (lower(TagName) like lower(@tagName1)) or (lower(TagName) like lower(@tagNameWithSpace1))  
    or (lower(UserBookmarkName) like lower(@tagName1) or lower(UserBookmarkName) like lower(@tagNameWithSpace1)) or (lower(UserBookmarkDescription)
    like lower(@tagName1) or lower(UserBookmarkDescription) like lower(@tagNameWithSpace1))) and b.ID in (
    select b.ID from bookmarking_bookmark as b left join bookmarking_bookmarktag as bt on b.ID=bt.BookmarkID left join bookmarking_tag as t on bt.TagID=t.TagID left join
    (select ub.BookmarkID as BookmarkID, ub.Name as UserBookmarkName,  ub.Description as UserBookmarkDescription, t.Name as TagName 
    from (select * from bookmarking_userbookmark as ub where ub.UserID=@userID) as ub 
    left join bookmarking_userbookmarktag as ubt on ub.UserBookmarkID=ubt.UserBookmarkID  left join bookmarking_tag as t on ubt.TagID=t.TagID) as ub on b.ID=ub.BookmarkID
    where (( lower(b.URL) like lower(@tagNameForUrlWithoutLastSlash2) ) or (lower(b.Name) like lower(@tagName2) or lower(b.Name) like lower(@tagNameWithSpace2))
    or (lower(b.Description) like lower(@tagName2) or lower(b.Description) like lower(@tagNameWithSpace2)) or (lower(t.Name) like lower(@tagName2)) or (lower(t.Name)
    like lower(@tagNameWithSpace2)) or....

    среднее время выполнения 30 секунд

    Запостил: arusanov, 14 Марта 2011

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

    • Генерируется?
      Ответить
    • бюрократичненько
      Ответить
    • О_о А что он делает, а то пока изучишь, мозг сломаешь?
      Ответить
      • Ищет текст. Запись представляют из себе закладку на URL с описанием и тегами.
        Ответить
        • ё-маё... да тут же всего 4 таблицы используется... зачем 11 селектов и 15 джоинов... О_о
          Пытался понять, в чем проблема, что не получается полегче запрос сделать, мозг был сломан... Интересно, как автор будет искать косяки в запроси, которых не миновать при такой сложности запроса...
          Ответить
    • пытать автора, заставляя обьяснить каждый оператор подробно
      Ответить
      • судя по коду - автору нравится, когда его пытают...
        Ответить
        • похоже что пытающий скорее выдохнется - с таким-то авторским трудолюбием
          Ответить
    • 30 секунд для SQL запроса не так много. Текст канешн просто ппц. Хотелось бы поподробнее узнать какой текст этот запрос ищет и как. А то может без такого изврата не обойтись в СКЬЮЛе. Хотя я предпочитаю вот в таких случаях использовать хранимые процедуры
      Ответить
      • очень много если этот запрос вызывается несколько раз в секунду
        Ответить
      • 30 секунд для простого поискового запроса - не много? Это ж пользовательская функция системы, а не что-то внутреннее, что можно выполнять раз час или раз в сутки...
        Ответить
        • Я, если честно, не вдавался в подробности, что там этот запрос выбирает, может он и правда вызывается 1 раз в полчаса, а то и реже.
          Я думаю, что если там везде left join заменить на join работать будет быстрее (просто автор наверное разницу не понимает), а еще неплохо было бы условие в where как-то подсократить
          Ответить
      • скажите это гуглу
        Ответить
        • > среднее время выполнения 30 секунд
          Среднее время парсинга человеком - неизвестно, еще никто не дочитал.

          А по существу: для каких-то запросов несколько миллисекунд уже вечность, а для других и полчаса вполне терпимо.
          Ответить
          • только это не тот случай
            full text search есть не в каждом ms sql server?
            Ответить
            • > full text search есть не в каждом ms sql server?
              Да вроде даже в экспрессе был...
              Ответить
        • Интересно, только у меня этот некрокопатель начинает вызывать раздражение?
          Ответить
          • like
            Ответить
          • >у меня этот некрокопатель начинает вызывать раздражение?
            Блин. Ну так говорите будто это самое плохое что есть на сайте. Говновайперы не раздражают, говнофорсеры не раздражают, школота не раздражает, а вот некропостер - раздражает...

            Гк не ограничен стоком, можно и по страничкам листать.
            Если немного автоматизировать сиё действо, например показывать посты с новыми комментами за последнюю неделю/месяц, то даже самые изысканные гурманы останутся довольны.
            Ответить
          • не только
            Ответить
          • я ненавидел его когда это еще не было мейнстримом
            Ответить
            • А я некропостил ещё до того, как это стало мейнстримом.

              И даже копропостил, а сейчас стало лень говно выкладывать, потому что здесь неплохо кормят.
              Ответить
          • А мне нравится!

            Раздражение здесь только из-за того, что сток очень короткий. Была бы лента стока бесконечной, это бы (вероятно) не вызывало раздражения.
            Ответить
            • Да-да. Очень обидно приходить и видеть, что сток переполнился.
              Ответить
              • причем из-за какого нибудь гоатсера
                Ответить
              • Надо уже запилить "вечный" сток. Периодически обновлять информацию и публиковать либо на сайте, либо в джаббер-конференции (писать при обновлении стока и по запросу вновь пришедшего пользователя).
                Ответить
                • Да запилить то элементарно. Но я боюсь, что с фришного хостинга выпилят ;( На том же опеншифте, емнип, запрещено вешать грабилки.
                  Ответить
                  • Ещё остаются роутеры/насы с чат-ботами и полураспределённая система (выбираются надёжные пользователи, устанавливают юзерскрипт или расширение, при каждом обновлении посылают информацию о новых комментариях, постах и целостности стока)
                    Ответить
                  • Сейчас завести условно-платную впску с ОГРОМНЫМ трафиком и копеечной стоимостью может каждый. Яб занялся, но у меня сказочная лень и я совсем отупел на работе.
                    Ответить
                    • > но у меня сказочная лень
                      Аналогично, бро.
                      Ответить
                      • Тру стори.
                        Ответить
                      • Национальность идентифицирована
                        Ответить
                        • Борманд тоже пони?
                          Ответить
                          • русский

                            пони - это раса.
                            по этой графе борманд ОЯШ
                            Ответить
                            • О язнаю шоэтотакое?
                              Ответить
                              • а как вы меня своими ADT и прочим, а? Месть!

                                http://lurkmore.to/Обыкновенный_японский_школьник
                                Ответить
                                • Борманд не может быть обыкновенным японским школьником. Когда обыкновенный японский школьник пишет на PHP, четыре пи квадратных километров не превращаются в выжженную пустыню.
                                  Ответить
                                  • докажи
                                    Ответить
                                  • > Борманд не может быть обыкновенным японским школьником.
                                    > четыре пи квадратных километров не превращаются в выжженную пустыню

                                    Соглашусь. Слишком маленький ущерб. Среднестатистический ОЯШ с его няшками-друзяшками наносят на порядки больше...
                                    Ответить
                    • > но у меня сказочная лень
                      В порядке борьбы с ленью.

                      DNS is propagating...
                      Ответить
                      • Да, кстати. Я тут подумал, в плане дискасса наброшу. Во-первых, для такого проекта не будет ца. Себе же проще вырезать сток юзерскриптом и не смотреть. Во-вторых, я пока с трудом представляю себе механику процесса. Нафига нужен ещё-один-читалка-говнокода?
                        Дискасс.
                        P.S. На топик подписался.
                        Ответить
                        • > Во-первых, для такого проекта не будет ца.
                          ЦА - те, кто приходит раз в три дня (раз в неделю), не хочет пропустить интересные обсуждения и не хочет нагружать ГК постоянным обновлением стока, зная, что где-то есть одна такая скачивалка, которая работает всегда и для всех. Или кто просто не будет постоянно обновлять сток.

                          > Себе же проще вырезать сток юзерскриптом и не смотреть.
                          Если компьютер скорее включён, чем не включён.

                          > Во-вторых, я пока с трудом представляю себе механику процесса.
                          Мне представляется либо сервер под Node.JS, который скачивает сток по таймауту, сохраняет, строит БОЛЬШОЙ html со стоком. Только где запускать - вопрос.
                          Можно ещё на питоне написать то же самое, только постящее в jabber-конференции. И запускать на насе (какая радость, для этого даже не нужен белый IP). Я бы реализовал, но про это и питон мало знаю, мне бы подробный мануал по XMPP на русском...
                          Ответить
                          • > Только где запускать - вопрос.
                            С этим всё норм.

                            > Node.JS
                            На nginx + flask + lxml курочу. Ничего из этого пока не знаю ;)

                            Еще из фич будет полнотекстовый поиск по комментам, если лень не возьмет верх.
                            Ответить
                          • > ЦА - те, кто приходит раз в три дня
                            Может быть. Может нет.
                            Тут ещё один момент. Ориентироваться только на читателей - утопия. Без возможности оперативного ответа такой ресурс мало кому нужен. А для ответов есть только говнокод сам собой.

                            > Если компьютер скорее включён, чем не включён.
                            Не, я тут немного про другое, про его бесполезность в общем и целом. Просто читать первые пять страниц и успокоиться.

                            > Мне представляется либо сервер
                            Это всё поверхностное, надо начать со взаимодействие человека и сервиса, только так. Где хостить, как раз, вообще не вопрос, равно как и язык, технология.
                            Ответить
                            • > Это всё поверхностное, надо начать со взаимодействие человека и сервиса, только так.
                              А я рассуждаю изнутри как ТП (тупой программист)

                              Но если так, в случае сайта человек видит будто бы большой сток, но без возможности раскрыть пост и ответить с помощью JS. Взаимодействие похожее. По умолчанию есть номера постов (со ссылкой на пост), содержание комментариев. Может быть, ссылки на комментарии и ссылки "ответить". Пользователь открывает сток, а он большой. Скорее всего, отображать постов по 50. Хотелось бы запилить кнопку "открыть все обновлённые посты" или "открыть все посты новее этого" для тех, кто не верит алгоритму определения обновлённых постов.

                              В случае чат-бота я уже писал о взаимодействии:
                              либо в джаббер-конференции (писать при обновлении стока и по запросу вновь пришедшего пользователя).
                              По запросу - пользователь пишет боту в личке конференции или в обычной беседе что-то вида "сток?", "сток за 5 часов?" и "сток 50 постов?"
                              Ответить
                              • Просто сортировка по комментам и "большой сток", не совсем киллер-фичи.
                                Простое ограбление коровановговнокода с некоторой человеческой логикой и интерфейсами может быть и полезно, но у меня возникает стойкое ощущение, что что-то не то. Единственное особое применение, которое я вижу: если где-то далеко и глубоко развернётся интересная дискуссия, её можно банально пропустить.
                                Я потому и спрашиваю. Может быть я не вижу какого-то кардинально важного профита для сообщества? С утверждением про тех, кто ходит читать раз в три дня соглашусь, мысль дельная, я и сам пропадаю неделями иногда. Второй спорный вопрос: всегда будет накапливаться рассинхронизация при чтении через сторонний сервис и нативно. Например, список посещённых тем будет сильно разниться. Приходишь на гк откомментировать, а там сотни зелёных тем. Либо игнорировать такую ерунду, либо придумывать какие-то обходные манёвры.
                                Вопрос на деле не так прост, как кажется.
                                Ответить
                                • > не совсем киллер-фичи
                                  А я и не хочу убивать ГК этим проектом... Цель намного приземленней.

                                  > будет накапливаться рассинхронизация
                                  Не будет, потому что этот сервис by design не будет показывать сами треды. Только ссылки на ГК, только хардкор. А если ты пролистал сток, но не заинтересовался и в тему не зашел - у тебя и на старом добром ГК рассинхрон копится.
                                  Ответить
                                • > придумывать какие-то обходные манёвры
                                  Просто отдайте мне api key куку, и я помечу треды как прочтённые и запощу в каждый из них goatse.
                                  Ответить
                                • > А я и не хочу убивать ГК этим проектом
                                  Никто не хочет. В данном случае назовём это "маркетинговой особенностью". Говнокод сейчас уже позволяет себя читать и писать. Что кому-то там не хватает длины стока - дело житейское.

                                  > Не будет, потому что этот сервис by design не будет показывать сами треды.
                                  Тогда ценность вообще какая-то сомнительная. Просто список тредов, отсортированный по дате? Даже на бордах до такого не додумались, там хоть последние комментарии есть.

                                  > куку
                                  Есть и менее жестокие варианты. Но да, как штатная читалка с поэтессами и развлечениями.

                                  Ладно, если тебе будет не лень - запили, посмотрим. Потому что у меня дело не столько даже в лени (прокрастинирую я отлично, а сейчас у меня как раз полно важной работы), сколько в том, что я не выработал в себе "вкуса перемены". Моё представление туманно и явно отличается от всего вышеописанного.
                                  Ответить
                                  • > вкуса перемены
                                    Да никто не собирается менять привычки других людей... Борманд пилит сервис удобным прежде всего для себя... А если он понравится другим - ну ок, пусть юзают, я не против.
                                    Ответить
                                    • И снова я не про привычки. Да, в гк есть некие неудобности, да их можно исправить, но я пока не представляю, каким образом. Если будешь пилить сервис под себя, это всегда хорошо. Может быть, получится в самом деле хорошее решение и мы станем более лучше жить. И уж что-то, а сервисы других для других я не критикую никогда.
                                      Ответить
                                  • > менее жестокие варианты
                                    Не ну можно iframe с основным ГК засунуть. Если очень надо.

                                    Но тогда я не смогу запостить goatse, CSRF защита не даст ;(
                                    Ответить
                                    • > можно iframe с основным ГК засунуть
                                      Это для тех, кто жмёт "показать код"?
                                      На случай, если пользователей будет крайне мало и моё мнение будет учитываться: я не жму "показать код", мне достаточно ссылок на посты - и чтоб открывались в новой вкладке.
                                      Ответить
                                  • > Что кому-то там не хватает длины стока - дело житейское.
                                    >> Не будет, потому что этот сервис by design не будет показывать сами треды.
                                    > Тогда ценность вообще какая-то сомнительная. Просто список тредов, отсортированный по дате?
                                    Для тех, кому не хватает стока, ценность большая.
                                    Я, например, смогу заходить на ГК реже и больше делом заниматься.

                                    Анонимб запостил ночью 15 постов с гоатсе, народ обсудил 10 тем? Я просыпаюсь и открываю Большой Сток им. Борманда - у меня ничего не пропало.

                                    Я уехал/занялся делом? Просыпаюсь и открываю Большой Сток им. Борманда - у меня ничего не пропало.

                                    И посты открываю на самом ГК - прочитанные комментарии отображаются как прочитанные, всё как надо.
                                    Ответить
                                    • > И посты открываю на самом ГК
                                      > мне достаточно ссылок на посты
                                      Так и будет. Я себе это именно так и представлял.

                                      Зеркало ГК я делать не планирую - смысла в этом особого нет, работы много, да и страйко может обидеться.
                                      Ответить
                                      • @bormand
                                        > может обидеться
                                        В соглашении явного запрета нет. Думаю, ему пофиг. Даже если робот-ридер останется единственным читателем.

                                        @1024--
                                        Вариант имеет право на существование, у всех свои способы использования. Если кому-то в самом деле будет удобнее, я только за, желаю всяких успехов.
                                        Ответить
                                      • http://gvforum.ru/viewtopic.php?pid=1839#p1839
                                        Добавил график длины стока в зависимости от времени на всякий случай.

                                        Т.е. в среднем сток на ГК засирается дня за полтора.
                                        Ответить
                                        • Расскажи как считал GC timezones.
                                          00:00 - это получается пользователь в рандомное время суток пишет?

                                          Топ 250 русских слов длиной более 2 символов по частоте использования в комментариях по сравнению с частотой обычного использования:(всего 177309 штук)
                                          1    говнокод    3973.00    @???
                                          2    кода    1880.79    @2.29
                                          3    код    1783.44    @6.4
                                          4    пхп    1657.00    @???
                                          5    коде    1629.00    @???
                                          6    компилятор    1410.00    @???
                                          7    ооп    1182.00    @???
                                          8    имхо    1016.00    @???
                                          9    говнокода    970.00    @???
                                          10    питух    937.00    @???
                                          11    массива    896.00    @???
                                          12    переменные    891.00    @???
                                          13    массив    833.17    @2.02
                                          14    юзать    780.00    @???
                                          15    переменных    747.00    @???
                                          16    переменной    746.00    @???
                                          17    сайта    746.00    @???
                                          18    скрипт    699.00    @???
                                          19    файла    677.00    @???
                                          20    тарас    676.00    @???

                                          Тарас - это вин.
                                          Ответить
                                          • стемминга и стоп-слов не хватает.
                                            Ответить
                                          • Тарас - питух.

                                            А как ВЫ повышаете рейтинг выделенных слов?
                                            Ответить
                                            • Хоть бери и пиши генератор.

                                              Топ 250 русских слов длиной более 2 символов по частоте использования в комментариях по сравнению с частотой обычного использования:(всего 24296 штук)


                                              1  питух 906.00
                                              2  питушок 295.00
                                              3  сишке 199.00
                                              4  питухи 197.00
                                              5  питушки 142.00
                                              6  юзать 138.00
                                              7  питушня 133.00
                                              8  питухов 130.00
                                              9  конпелятор 122.00
                                              10 нихрена 116.00
                                              11 массива 101.00
                                              12 код 93.75 @6.4
                                              13 коде  93.00
                                              14 стек  92.00
                                              15 херню 90.00
                                              16 сишка 88.00
                                              17 гцц 88.00
                                              18 питушков  81.00
                                              19 говно 80.85 @6.79
                                              20 кода  80.35 @2.29
                                              21 паскале 80.00
                                              22 осилил 79.05 @1.05
                                              23 ооп 78.00
                                              24 компилятор 76.00
                                              25 сишку 73.00
                                              26 инлайн 73.00
                                              27 кукарекать 72.00
                                              28 байт  71.00
                                              29 сишки 69.00
                                              30 массив 66.83 @2.02
                                              31 нахуй 62.00
                                              32 паскаль 62.00
                                              33 аля 61.00
                                              34 указатели 61.00
                                              35 нихуя 61.00
                                              36 анскильный 58.00
                                              37 юзают 58.00
                                              38 тормазит  58.00
                                              39 гпу 54.00
                                              40 нахрен 51.00
                                              41 оптимизации 50.00
                                              42 питушню 49.00
                                              43 перфоманс 49.00
                                              44 юзает 48.00
                                              45 анскильные 48.00
                                              46 переменные 47.00
                                              47 говна 46.47 @1.7
                                              48 регистры  45.00
                                              49 говнокод  42.00
                                              50 переменных 41.00
                                              51 фиксед 40.00
                                              52 слился 39.34 @1.83
                                              53 кеш 39.00
                                              54 умножение 38.00
                                              55 запилить  38.00
                                              56 герц  38.00
                                              57 регистр 38.00
                                              58 питуха 38.00
                                              59 указатель 37.50 @2.48
                                              60 синтаксис 37.00
                                              61 итак  36.81 @1.44
                                              62 мемкопи 36.00
                                              63 анскильных 35.00
                                              64 дабл  34.00
                                              65 лоре  34.00
                                              66 тактов 34.00
                                              67 упоролся  33.00
                                              68 профита 33.00
                                              69 лол 33.00
                                              70 плюсах 33.00
                                              71 руби  32.00
                                              72 похрен 32.00
                                              73 конпеляторы 32.00
                                              74 тарас 32.00
                                              75 процессор 31.00
                                              76 яве 31.00
                                              77 имхо  30.00
                                              78 кукарекаешь 30.00
                                              79 дельфи 30.00
                                              80 гигов 29.00
                                              81 питушка 29.00
                                              82 массивов  29.00
                                              83 стека 29.00
                                              84 жабе  28.00
                                              85 парсер 28.00
                                              86 переполнение  28.00
                                              87 кеша  28.00
                                              88 юзаешь 28.00
                                              89 байта 27.00
                                              90 компилятора 27.00
                                              91 стеке 27.00
                                              92 питухам 27.00
                                              93 аллокатор 26.00
                                              94 переменной 26.00
                                              95 чтоли 26.00
                                              96 тред  26.00
                                              97 питушара  26.00
                                              98 питоне 26.00
                                              99 либц  25.00
                                              Ответить
                                            • 100  указателя 25.00
                                              101  осилили 25.00
                                              102  патамучто 25.00
                                              103  юзай  25.00
                                              104  профит 25.00
                                              105  линукс 25.00
                                              106  указателей 25.00
                                              107  кавказцам 24.00
                                              108  конст 24.00
                                              109  питушни 24.00
                                              110  проглотом 24.00
                                              111  подставлю 24.00
                                              112  хуястым 24.00
                                              113  таджикам  24.00
                                              114  делфи 24.00
                                              115  узбекам 24.00
                                              116  стл 24.00
                                              117  кукарекай 24.00
                                              118  массивы 23.31 @1.63
                                              119  константа 23.00
                                              120  сишечке 23.00
                                              121  пхп 23.00
                                              122  паскаля 23.00
                                              123  файл  22.71 @2.29
                                              124  скобки 22.29 @1.57
                                              125  выхлоп 22.00
                                              126  анскильность  22.00
                                              127  переполнения  22.00
                                              128  сливает 22.00
                                              129  вставка 22.00
                                              130  связный 22.00
                                              131  байду 22.00
                                              132  говном 22.00 @1.5
                                              133  вменяемый 22.00
                                              134  хеш 22.00
                                              135  сишный 22.00
                                              136  попу  21.62 @1.11
                                              137  символов  21.16 @1.89
                                              138  плюсов 21.00
                                              139  константы 21.00
                                              140  хотябы 21.00
                                              141  гигагерц  21.00
                                              142  матчасть  21.00
                                              143  петушок 20.72 @1.11
                                              144  бит 20.63 @1.89
                                              145  скрыто 20.12 @3.33
                                              146  тормазить 20.00
                                              147  скобок 20.00
                                              148  говне 20.00
                                              149  тараса 20.00
                                              150  чсв 20.00
                                              151  отсосу 20.00
                                              152  процессора 20.00
                                              153  умолчанию 20.00
                                              154  скилл 20.00
                                              155  переменная 20.00
                                              156  флоат 20.00
                                              157  запилил 20.00
                                              158  кукарекает 20.00
                                              159  хуйня 20.00
                                              160  емнип 20.00
                                              161  файлы 19.49 @1.18
                                              162  осилить 19.35 @1.24
                                              163  лалка 19.00
                                              Ответить
                                          • Ох, давно это было... Я в тот комментарий на форуме уже несколько месяцев дописываю, а скрипт последний раз в мае редактировал.

                                            Были списки: постов, комментариев, комментариев пользователя X. Для каждого промежутка времени считалось количество элементов списка в этом промежутке времени (напр. комментариев в понедельник, вторник, ...; комментариев с 16 до 17 и т.п.). Получились графики активности.
                                            Помню, выкладывал в csv результаты.

                                            Часовые пояса были посчитаны относительно комментариев на ГК, использовалось что-то вида АКФ. Т.е. часовой пояс - сдвиг активности пользователя по комментариям относительно активности всех пользователей (см. shift). GC+0 - пользователь пишет в то же время, что и остальные.
                                            function normShift(a1, a2, shift, len){
                                              var s = 0;
                                              for(var n=0, i=0, j=shift % a2.length | 0; n<len; ++n, ++i, ++j){
                                                if(i >= a1.length) i = 0;
                                                if(j >= a2.length) j = 0;
                                                s += Math.abs(a1[i] * a2[j]);
                                              }
                                              return s / len;
                                            }
                                            
                                            function shift(a1, a2){ // a1 и a2 - активности по часам/десятками минут
                                              var res = 0, minN = Infinity, maxN = 0, len = a1.length > a2.length ? a1.length : a2.length;
                                              for(var i=0; i<len; ++i){
                                                var n = normShift(a1, a2, i, len);
                                                if(n < minN){
                                                  minN = n;
                                                }
                                                if(n > maxN){
                                                  maxN = n;
                                                  res = i;
                                                }
                                              }
                                              return [res, minN, maxN];
                                            }

                                            Но в итоге оказалось, что всё это - питушня. Активность комментариев ровная, милая и пушистая, а активность пользователей имеет нехорошую форму - либо рваный бред у труъ программистов с творческим режимом дня, либо слишком мало данных, сдвиг определяется хреново.
                                            Ответить
                                        • > график длины стока
                                          Любопытные исследования. Но всё равно остаётся вопрос, с каким интервалом нужно достоверно опрашивать сток, дабы не утерять новые нити, прежде чем он переполнится. Раз в минуту? Чаще?
                                          Ответить
                                          • Достоверно - никак. Запостить штук 20 готсе в разные треды могут и за секунду. Но раз минут в 5, думаю, хватит.
                                            Ответить
                                            • Как учитывать неизбежную разницу? Если делать информер - делать его максимально точным. Я прекрасно понимаю, что обсуждаемое решение - наколенный колхоз и не менее прекрасно понимаю, что не везде нужно с точностью до секунды. Для нетребовательных читателей сойдёт, а остальным и так хорошо.
                                              Интересует исключительно в плане мысленного эксперимента.
                                              Ответить
                                              • > Как учитывать неизбежную разницу?
                                                Ну можно замутить адаптивный интервал - сканить сток через столько секунд, сколько прошло между последними обнаруженными комментами, наращивая интервал, если все молчат. А при потере синхронизации (если сток все-таки вытек через край) - показать грустный смайлик и надпись SYNC LOST.

                                                P.S. Я чет заигрался с uWSGI Императором и его Вассалами, и совсем забыл о проекте ;)
                                                Ответить
                                                • Не, по факту потери можно и забить хер, я так думаю. Просто если сканировать ещё и треды, то есть шанс, что пропажа найдётся (или будет никому нахрен не нужна, если гоатсе залезло в некротред). А вот идея с разным интервалом хороша.
                                                  Ответить
                                                  • > если сканировать ещё и треды
                                                    Треды будут сканироваться ради полнотекстового поиска. Но полный рескан в щадящем режиме - это несколько дней...
                                                    Ответить
                                                    • @bormand
                                                      > Но полный рескан
                                                      Если исходить из предположения, что нам интересны некие свежие комментарии, то они либо будут подняты вне зависимости от гоатсе-шторма и могут попасть в выборку по стоку, либо никому неинтересны, и тогда будут обнаружены при плановой обработке. Соотношение вероятностей зависит от силы интереса отвечающих и силы гоатсе-шторма.
                                                      Единственный недостаток - такие комментарии будут вклиниваться в историю, с точки зрения стороннего наблюдателя возникать задним числом. Либо наплевать на достоверность и публиковать по мере обнаружения.

                                                      @1024--
                                                      > Жить с ней можно.
                                                      Теоретически, гоатсе может утопить годный тред, который будет невозможно найти обычным способом. Даже не гоатсе, а просто повышенная активность пользователей.
                                                      Ответить
                                                      • >> SYNC LOST
                                                        > такие комментарии будут вклиниваться в историю, с точки зрения
                                                        стороннего наблюдателя возникать задним числом
                                                        > Либо наплевать на достоверность и публиковать по мере обнаружения.
                                                        Борманду: полезно сделать галочку "вставлять вне очереди" или отдельный список таких комментариев и надпись "гоатсе прилетело и порвало сток здесь", чтобы при обнаружении таких постов через неделю либо рассматривать изменения как новые, либо открывать отдельный их список, либо видеть сток по времени и вручную скроллить.

                                                        > Теоретически, гоатсе может утопить годный тред, который будет невозможно найти обычным способом. Даже не гоатсе, а просто повышенная активность пользователей.
                                                        Всё может быть, но сток Борманда будет с большей вероятностью цельным. Надёжность повышается.
                                                        А поучаствовать в таком годном треде можно будет через неделю, а не как сейчас - после случайного открытия страницы.
                                                        Ответить
                                                    • > Треды будут сканироваться ради полнотекстового поиска
                                                      > 2014-09-04
                                                      Больше трёх лет прошло и полнотекстовый поиск таки запилен. Какая же я лентяйка всё-таки.
                                                      Ответить
                                                      • > Какая же я лентяйка всё-таки.
                                                        Пидор слился
                                                        Ответить
                                                        • > пидор
                                                          Тян не может быть пидором по определению.
                                                          Ответить
                                                  • Если сток порвался, можно и по тредам пойти, но медленно это.
                                                    Но обновление главной страницы запилить надо.
                                                    Ответить
                                              • > Если делать информер - делать его максимально точным.
                                                На чтение новых комментариев и написание своих тоже нужно время. Погрешность и так обычно копится. Жить с ней можно.
                                                Ответить
                                        • Добавил туда же график размера стока во времени (предыдущий предназначался для размышлений о количестве постов, которое нужно показывать пользователю Большого Стока, этот - о времени его обновления).

                                          Сток охватывает (время между крайними комментариями в стоке):
                                          AVR 87140.12 MED 59099 MIN 297 MAX 1889011
                                          Время между двумя соседними комментариями:
                                          AVR 762.54 MED 250 MIN 0 MAX 1318719
                                          Пост уходит из стока через:
                                          AVR 6726.06 MED 9086 MIN 0 MAX 1318719
                                          20 постов уходят из стока через:
                                          AVR 132830.82 MED 80098 MIN 1067 MAX 1946000
                                          Ответить
    • Чак Норрис ест такие запросы на завтрак.
      Ответить
    • > MIN 297
      Вайпиру надо 5 минут чтобы руками засрать N тредов.

      Можно графики выложить на картинкохостинг, а то незареганым не показывает.
      Ответить
      • > Вайпиру надо 5 минут чтобы руками засрать N тредов.
        звучит как начало школьной задачи.
        Ответить
        • >звучит как начало школьной задачи.
          Да. Браузер крашнулся, и я не успел доредактировать.

          > MIN 297
          Вайпиру надо 5 минут чтобы руками засрать 20 тредов. Вычислите производительность вбивания вайпером капчи.

          >AVR 87140.12 MED 59099
          Сток засоряется в среднем за сутки. Сколько надо работать вантузом чтобы его прочистить?

          >Время между двумя соседними комментариями:
          >AVR 762.54 MED 250 MIN 0 MAX 1318719
          Время между двумя комментариями 5-10 минут. Вычислить сколько насрали пользователи говнокода за 6 лет.
          Ответить
      • >>Вайпиру надо 5 минут чтобы руками засрать N тредов.

        я требую продолжение задачи
        Ответить
        • А я требую оглашения размера гонорара за выполнение задачи.
          Ответить
        • Вайпер разгадывает и вводит капчу за Tc=10 секунд, может нажимать Fb=100 кнопок в минуту, делает Fc=25 кликов в секунду, создаёт адрес почты за Tm=1 минуту, проверяет письмо с ГК за Tr=1 минуту, каждая страница ГК грузится за Tp=2 секунды. При более Fr=30 регистраций в день Страйкер удаляет все учётки, зарегистрированные за такие дни по пятницам в Td=20:00. Тогда же он удаляет всех пользователей, создавших более 20 одинаковых комментариев в день. Страйкер абсолютен, на анализ и удаление тратит Ts=0. У вайпера Nb=10 браузеров (по 2 версии Chrome и Opera, 1 версия Mathon, 5 версий Firefox), чтобы пореже перелогиниваться и текстовый редактор с переключением по вкладкам по Tab.
          Вайпер пишет скрипт за Ts'=10 дней, спит Ts''=10 часов в день. Скрипт разгадывает капчу за Tcs=20 секунд, грузит страницу ГК за Tp''=0.4 секунды, регистрирует почту за Tsm=13 секунд, проверяет - за Tsr=12 секунд. У вайпера есть Tp'=90 дней каникул на подготовку и осуществление вайпа.
          Цели вайпера - (а) создание максимального количества комментариев, (б) которые будут висеть на ГК как можно дольше.

          Задача - рассчитать формулу или смоделировать действия вайпера.
          Следует ли писать скрипт? (формула?) Сколько учёток регистрировать, когда начинать, когда регистрировать и с каким темпом? (формула?) Сколько комментариев писать, когда начинать, когда писать и с каким темпом? (формула?) Назовите параметры/формулы для достижения цели а, цели б или подпространства их суперпозиции.
          Ответить
          • >>делает Fc=25 кликов в секунду

            старкрафтоеб видимо
            Ответить
            • Тьфу, в минуту :)
              Но если выводить формулу, не важно.
              Ответить
          • >Страйкер абсолютен
            Замечательное условие.

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

              - говнокодоведение: спецкурс для вновь поступивших. Основы, введение.
              - история: курс на чтение постов/комментариев и знание материала. Кто, где, когда. ГК и его герои.
              - военное дело: изучение холиваров и вайпов.
              - программирование: юзерскрипты, сервисы для продвинутого использования ГК, минусаторы, автоматизация ботов.
              - психология: тренировка и оттачивание навыков в постах и комментариях, троллинг, социальная инженерия.
              - математика: изучение рейтинга комментариев и математических парадоксов (1 плюс и 1 минус дают рейтинг +100500; со мной говорит число пи - что делать?).
              - физика: изучение силы тяжести, действующей на посты, опускающая их в глубокий минус, сила Архимеда и плюсы, квантовая телепортация юзеров из поста в пост.
              Ответить
              • >>ГК и его герои.

                Капитан Питух и доктор Багор?
                Ответить
                • Э, не надо болтать о будущем. Мы в #5979, тут о питухах ещё не знают.
                  Ответить
                • >Капитан Питух и доктор Багор?
                  У кого какие. Тарас так долго боролся с кресточудовищами, что сам незаметно стал одним из них.
                  Поддавшись искушению, отступил от стези добра - чем не вечный драматический сюжет.
                  У твоих же героев нет ни трагедии, поколебавшей дух, ни античных подвигов достойных воспевания, типа софтварного рендера и жизни на селерон-600.
                  Ответить
                  • >>У твоих же героев

                    мои герои это доктор и Твайлайт Спаркл
                    Ответить
                • > доктор Багор
                  Так багры были уже в 2014?
                  Ответить
                  • Багры были очень давно. Я как-то раз зачем-то забежал на ГК в 2008 или 2010 почитать - багры уже были.
                    Ответить
                  • http://govnokod.ru/10979#comment142958

                    как видишь -- они были и в 2012
                    Ответить
      • http://rghost.ru/57862550.view
        http://rghost.ru/57862559.view
        А ведь можно было и зарегистрироваться. Всё же, родной форум.

        И, что важно, это по 14614 постам, остальные (читай: вайпы) были выпилены.
        И, кстати, это была не медиана, это питушня какая-то была... Пересчитал медиану.

        Сток охватывает (время между крайними комментариями в стоке):
        AVR 87140.12 MED 71305 MIN 297 MAX 1889011
        Время между двумя соседними комментариями:
        AVR 762.54 MED 178 MIN 0 MAX 1318719
        Пост уходит из стока через:
        AVR 6726.06 MED 2622 MIN 0 MAX 1318719
        20 постов уходят из стока через:
        AVR 132830.82 MED 107585 MIN 1067 MAX 1946000
        Ответить
        • а я от него полгода как пароль забыл, восстановить нельзя, т.к., видимо, никакой smtp на нем васисуалием не настраивался
          Ответить
          • У меня его браузер помнит. А вообще, надо ж было ему написать хотя бы тут.
            Ответить
        • В чём графен делаешь? Эксель?
          Ответить
          • Почти. LibreOffice Calc.
            Но с моими знаниями офиса разница не важна. Только сверху кнопочки квадратные, а не уть-уть, надписи, а потом спряталось. Я ничего не нажимал, оно само.
            Ответить
        • Модератор может прочистить сток за минуту, однако он посещает ресурс 1 раз в месяц.

          На говнокоде появились два вайпера. Один может забить пустой сток за 5 минут; у другого это займет 10 минут.
          За сколько минут забьется сток, если заставить обоих вайпать сразу?
          Какова вероятность забитого стока, если известно что вайперы активны только во время школьных каникул? Задача повышенной сложности: Сколько лет анонимб?
          Ответить
    • Развожу морковь в домашних условиях. хотел бы побольше узнать об этом бизнесе если кто то разводит морковки дома. помогите, какая должна быть температура при выращивание?
      Если не сложно отпишитесь в ВК: [url=https://vk.com/yurik9527]Yurik9527[/url]
      А то с компьютера смогу зайти на форум только через 2 дня.
      Ответить
    • Развожу морковь в домашних условиях. хотел бы побольше узнать об этом бизнесе если кто то разводит морковки дома. помогите, какая должна быть температура при выращивание?
      Если не сложно отпишитесь в ВК: [url=https://vk.com/yurik9527]Yurik9527[/url]
      А то с компьютера смогу зайти на форум только через 2 дня.
      Ответить
      • Развёл морковь в твоих домашних условиях, проверь.
        Ответить

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