ЙажаСценарий / Говнокод #25921 Ссылка на оригинал

0

  1. 1
$scope.ignoreUser = ignoreUser.bind(undefined, undefined);

Новая нить Бесконечного Стока имени Борманда.

Запостил: gost gost, (Updated )

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

  • Ремонтный отдел починил игнор юзеров, всё снова работает. Как всегда, Ctrl+F5 для обновления (или очистка кэша).
    Ответить
    • Ходит легенда, что изобретателя гильотины казнили первого. Но это легенда.
      Зато достоверно известно, что создатель медного быка испытал его сам.
      Собственно вопрос, не испытываешь ли ты внутреннего диссонанса от осознания того, что твой потенциал забанивания может быть направлен против тебя?
      Ответить
      • Надо ватников довести до белых списков, как мы уже сделали с интернетом. Пусть стучат друг на друга и банят за упоминание страйко 😀
        Ответить
        • Ты дурак. Со мной-то понятно: шизоидная психопатия+маниакально-депрессивный психоз (по крайней мере я так понял), но мне гораздо более интересно, какой диагноз поставят тебе.
          Ответить
      • Гавношка, как же примитивен и скудоумен твой владелец.
        Ответить
  • 
      cnt  |        name
    -------+--------------------
     51339 | guest
     39385 | guest8
     36795 | bormand
     15978 | Lure Of Chaos
     14183 | kegdan
     12244 | roman-kashitsyn
     12000 | inkanus-gray
     10975 | 3.14159265
      9849 | 3_14dar
      8388 | 1024--
      7786 | TarasB
      6425 | defecate-plusplus
      6106 | bugmenot
      5314 | wvxvw
      5223 | LispGovno
      4824 | absolut
      4600 | Stertor
      4498 | anonimb84a2f6fd141
      4322 | Vasiliy
      4269 | Анонимус
      3945 | gost
      3808 | Dummy00001
      3636 | eth0
      2801 | barop
      2587 | vistefan
      2468 | j123123
      2362 | roskomgovno
      2216 | CHayT
      2216 | istem
      2040 | SemaReal
    Ответить
    • cnt  |        name
      -------+--------------------
       51339 | guest
       39385 | guest8
       36795 | bormand
       15978 | Lure Of Chaos
       14183 | kegdan
       12244 | roman-kashitsyn
       12000 | inkanus-gray
       10975 | 3.14159265
        9849 | 3_14dar
        8388 | 1024--
        7786 | TarasB
        6425 | defecate-plusplus
        6106 | bugmenot
        5314 | wvxvw
        5223 | LispGovno
        4824 | absolut
        4600 | Stertor
        4498 | anonimb84a2f6fd141
        4322 | Vasiliy
        4269 | Анонимус
        3945 | gost
        3808 | Dummy00001
        3636 | eth0
        2801 | barop
        2587 | vistefan
        2468 | j123123
        2362 | roskomgovno
        2216 | CHayT
        2216 | istem
        2040 | SemaReal


      Вычеркнул совсем безнадежных.
      Ответить
        • Вот ты и спалился.
          cnt  |        name
          -------+--------------------
           51339 | guest
           39385 | guest8
           36795 | bormand
           15978 | Lure Of Chaos
           14183 | kegdan
           12244 | roman-kashitsyn
           12000 | inkanus-gray
           10975 | 3.14159265
            9849 | 3_14dar
            8388 | 1024--
            7786 | TarasB
            6425 | defecate-plusplus
            6106 | bugmenot
            5314 | wvxvw
            5223 | LispGovno
            4824 | absolut
            4600 | Stertor
            4498 | anonimb84a2f6fd141
            4322 | Vasiliy
            4269 | Анонимус
            3945 | gost
            3808 | Dummy00001
            3636 | eth0
            2801 | barop
            2587 | vistefan
            2468 | j123123
            2362 | roskomgovno
            2216 | CHayT
            2216 | istem
            2040 | SemaReal
          Ответить
          • Bugmenot - охуенный был чувак. Кажись его Лёхой звали. Анонимус - ваще башка. Да и все остальные - не то что вы тут сейчас слюной брызжитесь. Да даже Stertor - и тот иногда великие вещи мог спиздануть. Роман - так тот весь яндекс отрефакторил. Вот люди были.
            И Тарас куда-то пропал. Жалко ево.
            Ответить
          • Вот ты и спалился.
            cnt  |        name
            -------+--------------------
             51339 | guest
             39385 | guest8
             36795 | bormand
             15978 | Lure Of Chaos
             14183 | kegdan
             12244 | roman-kashitsyn
             12000 | inkanus-gray
             10975 | 3.14159265
              9849 | 3_14dar
              8388 | 1024--
              7786 | TarasB
              6425 | defecate-plusplus
              6106 | bugmenot
              5314 | wvxvw
              5223 | LispGovno
              4824 | absolut
              4600 | Stertor
              4498 | anonimb84a2f6fd141
              4322 | Vasiliy
              4269 | Анонимус
              3945 | gost
              3808 | Dummy00001
              3636 | eth0
              2801 | barop
              2587 | vistefan
              2468 | j123123
              2362 | roskomgovno
              2216 | CHayT
              2216 | istem
              2040 | SemaReal


            Произошло 2 изменения
            Ответить
  • 
      cnt  |                                                                  text
    -------+----------------------------------------------------------------------------------------------------------------------------------------
     12746 | cleaned
      1180 |
      1147 | Подтверждаю.
      1050 | Какой багор )))
       983 | vanished
       313 | <span style="color:red;">Золотоi хуй наспамил.</span>
       300 | .
       294 | __тут был очень большой ASCII-арт гоатсе__
       254 | i am a very baaaad boy
       244 | Засунул тебе в жопу резиновый член, зачекай!
       241 | <span style="color:white;">Vanished</span>
       231 | <strong></strong>
       183 | +1
       173 | -
       161 | <i><span style="color:white;">Vanished</span></i>
       156 | <span style="color:red;"><i>Я засоряю сток.</i></span> #collapse_me
       141 | Именно поэтому я за «PHP».
       117 | Да.
       100 | ...
        99 | да
        95 | Где здесь С++?
        90 | __тут был второй большой гоатсе__
        89 | А между тем, в Яунде двадцать градусов тепла.
        88 | <i>Vanished</i>
    Ответить
    • >>> Ну так и перекатывай. С беком, в особенности с парсером могу помочь. Это не ты говорил что парсер от сру и хуз берет?
      Нет, я про «Web Archive» говорил. В принципе, отзеркаленные с ру на хуз комменты распарсить легко, селекторы уже написаны, осталось прикрутить к существующему парсеру. Но остаётся ещё проблема восьмых гуестов: их можно только эвристиками сопоставить, потому что Иньо не оставил ссылок на комменты гуеста8.ru в комментах гуеста.xyz, а с учётом того, что он и текст изменяет…
      Ответить
        • Инженерный отдел впилил ссылку на хуз-пост, но сильно заебался править один и тот же шаблон в четырёх местах. Есть у жаваскриптовых петухов какие-нибудь лёгкие препроцессоры или бест-практис, которые бы могли в коде и ангуляровских .html шаблонах заменить что-то типа __GOVNO_TEMPLATE__ на соответствующий шаблон?
          Ответить
          • Поставь ссылку на хуз перед нгк. (U) не нужен, кому надо - перейдет по ссылке и там щелкнет. GK тоже не нужен.
            Ответить
            • U мне нужен, я им пользуюсь. Ссылку инженерный отдел переставит когда с шаблонами разберётся, GK — индикатор, его просто оформить надо получше. Может, в виде тултипа на ссылке, хз.
              Ответить
              • >U мне нужен, я им пользуюсь
                Зачем?
                Gk по дефолту же, да и кому он нахуй нужен?
                Ответить
                • Для того, чтобы быстро смотреть на айдишники. Мне нравятся цифры.
                  GK очень полезен в поиске — чтобы быстро видеть, какие комменты «живые», а какие удалены. Да, возможно, с главной страницы его можно убрать (хотя остаётся ещё xyz-only комменты, но пока инженерный отдел до них не дошёл).
                  Ответить
                  • Нравятся цыфры? Да-а? В самом деле?
                    Шёл бы тогда в бюстгалтеры.

                    Похоже, депрессивная стадия сменилась маниакальной...
                    Я чувствую необыЧайный прилив сил и энергии.
                    Ответить
                  • Ну перейди на гк и смотри.
                    GK по дефолту, ставь пометки если какой-то нестандарт.
                    Ответить
                    • Для каждого юзера это долго и неудобно.
                      > GK по дефолту, ставь пометки если какой-то нестандарт.
                      Да, так и сделаем, передали в инженерный отдел.
                      Ответить
                      • А зачем тебе смотреть иды для каждого юзера? о_О У меня за редким исключением они в игноре.
                        Ответить
                      • Гост, вы письма-то свои разослали, чи ни?
                        Ответить
                          • Наймите копирайтера может?

                            Вообще, про что вы хотите написать?

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

                              > Я считаю, что надо устроить говновку -- большую попойку всех, для кого говнокод это не пустые слова.
                              Хорошая идея, но геморроя больно много: место, время, согласование места и времени…
                              Ответить
                              • Место где-то в крупном городе, недалеко от места дислокации большинства говнарей

                                Москва, Питер, Минск (последний может быть удобен как россиянам, так и украинцам).

                                Время нужно тупо назначить.
                                * создать тему
                                * сообщить, что через 4 недели всех ждут (указать адрес)
                                * сделать расссылку

                                за 4 недели они сами найдут там хостел или гостиницу том городе

                                попросить всех отписаться в теме, посчитать примерное количество говнокодеров, забронить рестик
                                Ответить
                                • Ну вот, а из меня организатор публичных мероприятий — как из говна код.
                                  Ответить
                                  • Давайте напишем псот и пошелм на него ссылк просто?
                                    Ответить
                                    • У меня под это дело выделен «govnotify.space», можно даже лендинг простенькую приветственную страничку набросать.
                                      Ответить
                                      • govnotify.space.        0       IN      A       0.0.0.0

                                        ахахаха, бля.


                                        Кстати, прибайндил сокет к твоему домену. Слушаю подключения теперь
                                        Ответить
                                        • > Кстати, прибайндил сокет к твоему домену. Слушаю подключения теперь
                                          MITM уровня /gk/.
                                          Ответить
                                          • Году в 2007 как-то лег bash.org.ru, а потом поднялся. Я зашел туда, и вижу там IIS. Пишу своей знакомой пхпшнице, мол bash.org-то ASP (я тогда на .net писал). Она грит "да нифига, тут апаче же".

                                            Ну оказалось, что там IN A 127.0.0.1
                                            Ответить
                                • Да никто не согласится. Если и согласятся, то в последний день сольются. Я так своих знакомых даже не могу собрать.
                                  Ответить
                                  • Из тыщи человек хотяб 2-3 да соберется

                                    Я бы выпил с инью, гостом, бормандом (он не поедет), иканусом (он тоже скорее всего не поедет), золотым хуем, с посрать++ еще
                                    Ответить
                                    • Посмотрел билеты Москва-Питер на «Сапсане» - охуеть, стоимость как в бизнес класс самолета.

                                      Зато обычные плацкарты (8 часов в пути) за копейки.
                                      Ответить
                                      • 1) Это зависит от времени. посмотри билеты на 4 утра через 4 недели.

                                        2) Попробуй невский эксперсс: тоже самое, но дешевле.

                                        3) Ты питерский?:)
                                        Ответить
                                        • 1) Я смотрю на 2 ноября, когда 3 выходных.
                                          2) Чот на «туту» нет такого в списке
                                          3) Нет
                                          Ответить
                                          • Расстояние между двумя столицами по железной дороге — 650 км. «Невский экспресс» преодолевает этот путь за 4 часа 39 минут со скоростью до 200 км/час. Поезд следует без остановок.

                                            Стоимость билетов на поезд «Невский экспресс» около 3 500 рублей. Дороже всего обойдутся билеты в купейные и спальные вагоны поезда «Невский экспресс». Цена в сидячем вагоне эконом-класса с кондиционером и питанием около 3 330 рублей.

                                            https://www.tutu.ru/poezda/%D1%84%D0%B8%D1%80%D0%BC%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5/%D0%9D%D0%B5%D0%B2%D1%81%D0%BA%D0%B8%D0%B9_%D0%AD%D0%BA%D1%81%D0%BF%D1%80%D0%B5%D1%81%D1%81
                                            Ответить
                                            • Но ни одного рейса нету такого
                                              Ответить
                                              • Можно устроить встречу в осети, за одно отпиздим стертора
                                                Ответить
                                                • Устроил коллективную встречу в рыжей пиздёнке твоей матери-шлюхи.
                                                  Ответить
                                                • В северной или южной? Туда виза нужна?
                                                  Ответить
                              • Если лулз, то лучше что-нибудь с товарищем майором связанное.
                                Ответить
                            • Нужно отправить компроментирующую информацию с просьбой заплатить деньги.
                              Ответить
    • Это копия стока (полностью актуальная, разумеется — оно одно API дёргает) для обладателей «Windows XP». Редирект нужен для «HSTS preload list» (а он нужен для понтов).
      Ответить
      • >Редирект нужен для «HSTS preload list» (а он нужен для понтов).
        ЯННП
        Ответить
        • HSTS это такой список сайтов, где всегда сразу форсится HTTPS
          Ответить
        • https://hstspreload.org/
          tl;dr: в новых версиях современных браузеров открыть «gcode.space» по HTTP технически невозможно даже в первое подключение, что существенно усиливает безопасность от «MITM».
          Ответить
            • Тогда тебя не внесут в этот список: ты просто не пройдешь проверку
              Ответить
              • Тогда это так: невозможно зайти по http на сайт, на котором когда-то был https, так?
                Ответить
                • Если ты внес свой сайт в hsts то да: по Http ты туда больше на зайдешь.
                  И слава богу
                  Ответить
                • Нужно разделять «HSTS» и «HSTS preload list». Первое работает так: при подключении по «HTTPS» сервер отсылает заголовок «Strict-Transport-Security» с прописанным таймаутом (обычно от месяца до года-двух), браузер запоминает его и более не даёт открыть сайт по «HTTP» (или если браузер получает невалидный сертификат) в течение таймаута (но глубоко в настройках можно удолить сайт из «кэша» HSTS и зайти). Очевидно, у такого подхода есть фатальный недостаток: когда браузер видит сайт в первый раз — он отсылает «HTTP» запрос (потому что мало кто из юзеров сразу вводит «https://»), и этот запрос вполне может быть перехвачен хакерами. Для решения этой проблемы в «хромиуме» закостылили «HSTS preload list»: это захардкоженный список сайтов, которые в принципе нельзя открыть (без модификации кода, разумеется) по незащищённому протоколу. Список этот можно глянуть прямо в сорцах: https://cs.chromium.org/chromium/src/net/http/transport_security_state_static.json. Остальные браузеры («Firefox», «Edge», «Opera») тоже имеют подобные списки, формирующиеся на основе гугловского.
                  Ответить
                  • Почему дебилы не придумали srv або txt запись в DNS?
                    Нахуй листы городить?
                    Ответить
                    • «DNS» — устаревшее несекьюрное говно, его замитмить — как два пальца обсосать. А идея всех этих «HSTS» как раз в том, чтобы как можно сильнее осложнить жизнь всем атакующим, от соседа по вай-фаю и до «СОРМа».

                      «DNS over TLS»/«DNS over HTTPS» ситуацию улучшают, но до их нормальной поддержки ещё очень далеко.
                      Ответить
                        • Лучше, но кардинально поменять протокол DNS — это задача титанических масштабов, в ближайшем будущем (единицы лет) неразрешимая. Работа, конечно, идёт, но идти она будет ещё очень долго, а защиты от MITM хочется (в основном всяческим интернет-гигантам вроде «Гугла») уже сейчас.
                          Ответить
                          • Зачем что-то менять? Надо сделать так же, как и с HTTPS.

                            * в ОС вхардкоживаются публичные ключи трех с половиной доверенных эмитеров
                            * все DNS сервера подписывают у них свои серты
                            * подписи проверяем SOA и whois, подписывем только тем, кто реально авторитетный.
                            * для совместмиости оставляем подддержку и неподписанных тоже, они сами себе злобные пинокии
                            Ответить
                            • Ну вот, такое изменение уже затрагивает:
                              * Вендоров ОС, которым нужно будет впиливать всю эту инфраструктуру;
                              * Операторов всех DNS серверов, а это сотни тысяч (если не миллионы) человек, которые совсем не хотят совершать какие-то непонятные телодвижения: «работает — не трогай!».
                              Прибавляем сюда необходимость всем пользователям быстро обновиться до новой версии ОС и получаем жуткую хтоническую картину.

                              См., например, «DNS flag day» — глобальное отключение поддержки древнего говна мамонта, не поддерживающего «EDNS0»: https://vc.ru/dev/56221-pro-dns-flag-day-korotko-chto-sluchitsya-1-fevralya-i-kak-podgotovitsya.
                              Они дождались, когда количество DNS-серверов со старым ПО будет не очень
                              большим (5-10%) и с помощью главных DNS-провайдеров и производителей (Google,
                              Cloudflare, Cisco и другие) запланировали обновление инфраструктуры на 1 февраля.

                              5-10% DNS-серверов использует говно настолько древнее, что оно не поддерживает стандарт двадцати лет отороду!
                              Ответить
            • Если браузер не поддерживает «https» — то в нём, очевидно, нет никакого «HSTS preload list».
              Ответить
              • Я конечно всё понимаю, я не Руссинович, плохо знаю математику и на фортепьяно играю много хуже Луганского, но... Могу ли я попросить Вас, сударь, не кормить этого упоротого?.. Он первый начал, чесслово.
                Ответить
                        • В какой-то момент, преисполнены уныния и безысходности, они пригласят Стертора

                          Стертор, в общем, не так уж и страшен, если не трогать его руками
                          Ответить
                          • Они очкуют, что их стертор выебет попьяни, а потом не женится, останутся до пенсии в пацанах.
                            Ответить
                        • Не знаю. Техническую поддержку оказать могу, насчёт себя самого ничего не могу обещать.
                          Ответить
                          • Техническую -- это какую?:)

                            А тебе в каком городе было бы удобней1?
                            Ответить
                            • Рассылка почты, хостинг, датаймайнинг бигдаты.

                              Если рассуждать теоретически — в Москве.
                              Ответить
                              • >Рассылка почты, хостинг, датаймайнинг бигдаты.
                                А как это всё поможет довести количество говнокодеров на пьянке хотя-бы до трех?

                                >Москве
                                понятно) Мне, в принципе, се равно.
                                Ответить
                                • > А как это всё поможет довести количество говнокодеров на пьянке хотя-бы до трех?
                                  Не знаю. Я программист, а не математик.
                                  Ответить
                                • ..и никогда не ответит:) Иканус вон даже ник сменил, чтоб от него отстали.
                                  Ответить
                                  • Это нидлес. В икаруса кавычки треугольные.
                                    Ответить
                                    • STL это, скорее, все таки Иканус. Нидлес чуть жеще говорит, и слова коверкает. ну там "мышиный кот", вот это всё
                                      Ответить
                                • Не знаю, я ж говорю — теоретически. У меня сейчас IRL проблемы, я вообще не уверен, что смогу выбраться.
                                  Ответить
                                  • Когда проблемы IRL надо бухать
                                    всегда так делаю
                                    Ответить
                                      • Что нужно для того, чтобы ты знал?
                                        Ответить
                                          • Ок, жду.
                                            Как только согласишься, зашифруй свой email моим публичным ключом + base64, или просто оставь в открытом виде.
                                            Ответить
  • Хотел въебать минус, но оказалось, что я уже въебал его ранее.
    Ответить
  • import requests
    from bs4 import BeautifulSoup, Tag
    from requests import Response
    
    data: Response = requests.get("http://govnokod.ru/comments")
    for tag in BeautifulSoup(data.text, features="html.parser").find_all("div", {"class": "entry-comment"}):
        txt_bytes: bytes = tag.text.encode("koi8-r")
        txt_cut_bit = bytes(byte & 0x7F for byte in txt_bytes)
        print(txt_cut_bit.decode())

    oNI O^KU@T, ^TO IH STERTOR WYEBET POPXQNI, A POTOM NE VENITSQ, OSTANUTSQ DO PENSII W PACANAH.
    sTAJRTOR, PRIEDE[X?
    pO^INIL: if (res < ans * 2) {
    ans = res / 2;
    } tEPERX DUBLIROWANIQ KODA NET.
    http://govnokod.ru/25937#comment508908
    oGO, PQTIZNA^NYJ AJDI[NIK
    wOT TWOJ TARAS
    https://vk.com/id29482

    iKANUS, A NAPI[I EMU?
    kEGGI, PO[LI BUHATX?
    pROWERIL. oPQTX NE RABOTAET.
    nU WOT..
    kAKOJ BAGOR (((
    s#MA, A TY?
    TARAS, POEHALI PITX?
    s#MA, TY ^ITAL \FFEKTIW PAJTON?
    https://sun9-54.userapi.com/c845522/v845522601/1648bc/s-qf3cRK6qs.jpg
    tY - ODNA IZ FAEK iNHO?
    gA-GAK.
    gA-GAK.
    BOLEE TUPOGO TEKSTA I PREDSTAWITX NELXZQ.
    mINUS.
    pROWEDENA DEZINFEKCIQ
    pROWEDENA DEZINFEKCIQ
    Ответить
      • Ну там же вначале код на питоне, вроде понятный.

        Берем все комменты, кодируем в koi8-r, каждому байтику отрезаем верхний бит, вертаем обратно в строки
        Ответить
          • А зачем вообще всё?

            На самом деле меня просто прёт как выглядит koi8 с обрезанным битом.

            Вдумайся во фразу "IH STERTOR WYEBET POPXQNI", например
            Ответить
  • Как вам такая идея? Добавить кнопку временно показать всех, где можно будет разбанивать.
    Ответить
  • Чуть-чуть отрефакторил вёрстку, может забаговаться из-за кэша. Чтобы починить — сбросьте кэш через Ctrl+F5.
    Ответить
  • Слюшай, а может исправишь все ссылки на гк на https? А то я не ебу как это на мобильном бравзере сделать.

    Сменил опсоса, а он оказался охуевшим втирателем рекламы.
    Ответить
        • ты тряси тряси смартфон

          hsts preload list Нужен
          Ответить
            • Охуенно, что они туда прикрутили плакаты времен Хрущевской кампании про Царицу полей
              Ответить
              • >> ДОРОГУ КУКУРУЗЕ НА ФЕРМЫ

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

            Ты тряси-тряси смартфно,
            Ты тряси-тряси смартфно.
            В этой песне нету смысла,
            Зато рифма «Мегафно».
            Ответить
  • Добавил страничку «gcode.space/#!/replies/<user_name>». Там можно посмотреть последние ответы на комментарии пользователя <user_name>. В наличии регулярное обновление (как на главной) и бесконечный трскроллинг.

    Знатно поебался, пока пытался прикрутить обновляемую древоведную структуру. В результате заебался и оставил как есть, с одним уровнем.
    Ответить
        • В отработанном антифризе меньше этиленгликоля - двухатомного простейшего спирта, херачащего почки и печень, при приеме внутрь. Пары антифриза при частом вдыхании вызывают рак легких, панкреатит, сахарный диабет.
          Ответить
  • Обновляю дистр, NGK может на некоторое время уйти в оффлайн.
    Ответить
            • Малость ебанутость какая-то происходит или много ебанутость какая-то происходит?
              Ответить
              • Вроде много ебанутость исправил. Проверяю малость ебанутости.
                Ответить
                  • И время, как вода.
                    Ни берега, ни дна,
                    Всё начинать с начала.
                    Ответить
                    • Большие города
                      Пустые поезда?
                      Ответить
                        • Зачем тебе война?
                          И много, как вода
                          Ответить
                          • «Полко́внику никто́ не пи́шет» (исп. El coronel no tiene quien le escriba) — повесть колумбийского писателя, нобелевского лауреата Габриэля Гарсиа Маркеса, опубликованная в 1961 году.

                            ...

                            Старик возлагает надежду на боевого петуха, который сможет выиграть для них какие-то деньги, когда в январе начнутся петушиные бои, и кормит его, в то время как ему с женой бывает нечего есть. Его кум дон Сабас предлагает продать петуха, но полковник отказывается.

                            До окончания срока закладной на дом остаётся два года, в доме почти не осталось еды, продана швейная машина, приносившая хоть какой-то доход. Но полковник кормит петуха, тренирует его и продолжает ждать письма. В доме не осталось ни крошки еды, жена полковника заболела. Промозглыми декабрьскими ночами полковника греют воспоминания о боевой юности. Он все надеется с ближайшим почтовым катером получить письмо. Поддерживает его и то, что уже начались тренировочные бои и его петуху нет равных. Остается потерпеть сорок пять дней, убеждает полковник впавшую в отчаяние жену, и на её вопрос, что они будут есть все это время, решительно отвечает: «Дерьмо».
                            Ответить
                            • Маркес охуенный. Он же про Сто Лет Одиночества написал.

                              Там ебут собственных тёть и сестер, мужик плескается в бассейне с мальчиками, а мальчик подставляет табуретку под корову.
                              Ответить
                                • Ты не читал что-ли?:)

                                  На самом деле там совсем не про это конечно, я просто выбрал самые забойные места, и вспомнил их.

                                  Ах да, там еще ребенка со свиным хвостиком съели муравьи. Но почитать, действительно, стоит.

                                  И взрослый мужик влюбился в девочку, у которой еще даже не начались циклы.

                                  В общем, рекомендую
                                  Ответить
                              • El coronel no supo si había oído esa palabra antes o después del sueño. Estaba amaneciendo. La ventana se recortaba en la claridad verde del domingo. Pensó que tenía fiebre. Le ardían los ojos y tuvo que hacer un gran esfuerzo para recobrar la lucidez.

                                -Qué se puede hacer si no se puede vender nada -repitió la mujer.
                                -Entonces ya será veinte de enero -dijo el coronel, perfectamente consciente-. El veinte por ciento lo pagan esa misma tarde.
                                -Si el gallo gana -dijo la mujer-. Pero si pierde. No se te ha ocurrido que el gallo puede perder.
                                -Es un gallo que no puede perder.
                                -Pero supónte que pierda.
                                -Todavía faltan cuarenta y cinco días para empezar a pensar en eso -dijo el coronel.
                                La mujer se desesperó.
                                -Y mientras tanto qué comemos -preguntó, y agarró al coronel por el cuello de la franela. Lo sacudió con energía-. Dime, qué comemos.

                                El coronel necesitó setenta y cinco años -los setenta y cinco años de su vida, minuto a minuto- para llegar a ese instante. Se sintió puro, explícito, invencible, en el momento de responder:

                                -Mierda.

                                «Полковнику никто не пишет» реально заканчивается словом «дерьмо».
                                Ответить
    • Приведи реальный пример, когда тебе в работе пригодилось тестирование.
      Ответить
  • Перевёл сток на «WebSockets», теперь он стал стильным, модным и молодёжным.

    Пока модно и молодёжно работает только главный сток, страница с ответами пуллит по-старому.
    Ответить
  • Провожу эксперименты с ускорением загрузки. Скорее всего буду прикручивать «webpack» или какую-нибудь подобную хипстерскую парашу.
    Ответить
      • Хуярь. Чую, без него в этом говне не поплавать.
        Ответить
      • Да, инженерный отдел чешет репу, пытаясь разобраться в этих смузихлёбских технологиях. Я сейчас вообще всё в index.html вручную захуярил, какой пирфоманс )))
        Ответить
    • Я умею в вебпак немного, примерно десять опций из ста девяности семи знаю.

      Советую прикрутить копулятор less или sass (чтбы не копипастить css) и typescript (чтобы писать на нормальном языке). Ну мимификации всякие само собой.

      Статике нужен вечный кеш, это когда ты делаешь файл bundle.[cache].js, и говоришь сервером, что он экспайрится черех год, и что cache public.
      Ответить
      • Проекты на старом ангуларе и вебпак - эта какая-то шляпа, проще написать скрипт который из папки "3 party" будет брать зависимости, минифицировать контент из папки "src" и склеивать в бандл файл
        Препроцессоры css и typescript для такого проекта не нужны, я думаю, лучше просто babel который будет перед склейкой отдельно деградировать каждый файл
        Ответить
  • Говно какое-то. Внезапно стали тихо отваливаться вебсокеты, без disconnect'а на клиенте. Проверяю.
    2019/12/22 15:21:13 [error] 2632#2632: *15638 upstream timed out
    (110: Connection timed out) while reading response header from upstream,
    server: gcode.space,
    request: "GET /socket.io/?EIO=3&transport=polling&t=Myj-h1m&sid=69f9eb73ce3a43ae93fd6c9b98fdec37 HTTP/1.1",
    upstream: "http://127.0.0.1:1488/socket.io//?EIO=3&transport=polling&t=Myj-h1m&sid=69f9eb73ce3a43ae93fd6c9b98fdec37",
    host: "gcode.space", referrer: "https://gcode.space/"
    Ответить
    • Говно, блядь. Оно просто блокирует тред на emit'е и всё.
      2019-12-30 13:06:52 DEBUG CommentsListenerTask: Got 42 comments
      2019-12-30 13:06:52 DEBUG CommentsListenerTask: Room 38c471a75bd74f33a7e0eaf2155ccb3f, max_id=518455, to_send -> 1
      2019-12-30 13:06:52 DEBUG IO: 38c471a75bd74f33a7e0eaf2155ccb3f left # После этого тред навечно в блоке

      И в говнодоке ни единого упоминания блоков и таймаутов. Пиздец.
      Ответить
        • «Socketio» в Бормандостоке, говорю, отваливается.
          Ответить
            • Хуй знает. Похоже, что если в emit() засунуть невалидный room — он блокирует тред (гринтред, если быть точным). Я грешил на эксцепшоны, но после обёртки в try-except с ловлей всего — ничего не изменилось.
              Ответить
              • а можно говностек гринтреда посмотреть?
                Ответить
                  • А в отладчике ничего не блокируется. В пизду, завтра разберусь.
                    Ответить
                    • ну уж нет

                      сиди в дебагере теперь до девяти утра
                      красноглазик ты или нет?
                      Ответить
                      • Это в нормальном x86 дебаггере я до утра сидеть могу. А в этом говне ненативном, которое даже прибыть процесс по завершению дебага не может — нет уж, спасибо. Не говоря уж о том, что никакой поддержки гринтредов там нет. Я лучше фанфики про поней почитаю.

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

                                Затем придумали вытесняющую
                                И страшно радовались

                                Потом придумали обратно кооперативную (грин треды) и снова радовались

                                Сначала об ошибках в программе узнавали в рантайме, по звонку оператора

                                Затем придумали компиляторы, которые стали ошибки отлавливать

                                Затем придумали ничего не отлавливать (в скриптовых языках), и страшно обрадовались

                                Потом придумали тулы для стат анализа скриптов и снова стали отлавливать и радоваться
                                Ответить
                          • Я просто подключаю клиента к серверу по rs-232 и теку
                            Ответить
                        • что такое фанфики про поней? на это дрочат?
                          Ответить
                            • Это вореции?

                              гост, как твои проблемы? решил?
                              волнуемся за тебя!
                              Ответить
                              • Границы ключ переломлен пополам
                                А наш батюшка Ленин совсем усоп…
                                Ответить
                                    • Так у тебя сердечного харакатера чтоль пиздострадания?
                                      Ответить
                                      • Нет, какие пиздострадания, я на шаблонах писать умею. Это не лечится.
                                        Ответить
                                        • Очень легко лечится.

                                          Берешь джаву, и пишешь. Через пару лет сама мысль решить с помощью шаблона то, что можно легко решить с помощью копипасты, покажется тебе дикой
                                          Ответить
  • в постгрес завезли джит

    я бблядь не знаю как это комментить
    Ответить
  • Провайдеру стока плохо стало, надо поспать, полежать немножко, все ж мы люди. Могут наблюдаться кратковременные перебои в работе.
    Ответить
  • Кажется, второй раз дампнуть ГК ради исправления кодов в постах не получится: только что он целиком упал в «Debug mode is off». Отключил дампалку.
    Ответить
  • Добавил табличку забаненных, в которой их можно разбанивать (применение мгновенное, но юзер остаётся в списке до перезагрузки страницы — чтобы можно было забанить обратно): https://gcode.space/ngk/#!/blacklist.
    Дизайнерские_петухи, которые смогут оформить эту табличку в более вебдванольный вид, приветствуются.
    Ответить
    • > Дизайнерские_петухи, которые смогут оформить эту табличку в более вебдванольный вид, приветствуются.

      Опять за еду?
      Ответить
  • «Nginx» внезапно завис. Хуйня какая-то.
    ● nginx.service - A high performance web server and a reverse proxy server
       Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
       Active: active (running) since Wed 2019-12-18 20:34:06 CET; 1 months 26 days ago
         Docs: man:nginx(8)
     Main PID: 762 (nginx)
        Tasks: 4 (limit: 2359)
       Memory: 34.9M
       CGroup: /system.slice/nginx.service
               ├─  762 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
               ├─11243 nginx: worker process is shutting down
               └─26928 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;

    Ничего не понял. Именно поэтому я за «Python».
    Перезапустил, вроде работает.
    Ответить
    • Как много буков. Именно по-этому я против "поттеринговая парашаd".

      В логах-то что-то есть?
      Ответить
      • Неа, всё тихо. Лишних подключений в «ᛋᛋ -ntp» тоже не было.
        Ответить
        • ну если у тебя что-то зависло, то ты можешь конечно straceнуть это что-то как минимум, если вдруг тебе не лениво.
          Ответить
                • В древности в одной компаниисбыл роутер из первого пня с win98 и wingate.
                  Он вис раз в сутки, его перегружали ресетом

                  В ту пору коробочек не было еще
                  Ответить
                  • Анскиллябры. Элементарное же решение: взять механические двадцатичетырёхчасовые часы, на нужный час поставить контакт, который бы включал моторчик, жмущий на кнопку сброса. Присыпать это всё ещё несколькими релешками (что-то типа триггера соорудить, чтобы преобразовывало длительный сигнал с часов в один импульс) — и готово!
                    Ответить
                    • Главное, не забыть провода обмотать фольгой, чтобы помехи не наводились.
                      Ответить
                      • Это заедушным лифтёрам-анскиллябрам с ардуинами помехи мешают. А хардкорным релешкам на ЭМ похуй, они и в микроволновке будут работать!
                        Ответить
                        • Я однажды разбирал стиральную машину типа «Малютки», но с автореверсом: она несколько секунд крутит активатор в одну сторону, несколько секунд — в другую, чтобы бельё не скручивалось. Так вот там автореверс был реализован полумеханически: на оси мотора была шестерёнка, которая с другими шестерёнками образовывала понижающий редуктор. К последней шестерёнке прислонена зубчатая рейка.

                          Когда мотор крутится по часовой стрелке, зубчатая рейка медленно едет вправо. Когда рейка доедет до конца, она торцом нажимает на микровыключатель. Микровыключатель переключает реле, которое включает реверс мотора и блокирует само себя.

                          Мотор начинает крутиться против часовой стрелки, рейка едет в противоположную сторону. Когда рейка доедет до конца, она задевает другой микровыключатель, который отпускает реле, реле снимает с себя блокировку и снова изменяет вращение мотора.

                          Надёжно! Никакой ардуины!
                          Ответить
    • алчеми?

      зы
      дай ссылк на гитхаб, обосру
      Ответить
      • Да, но отношения не были настроены, поля приходилось выбирать длинными коньструкциями. А теперь, к примеру, все комменты к посту — это просто «post.comments», вместо страшного «comment, user in session.query(Comment, User).filter(Comment.post_id == post_id).filter(Comment.user_id == User.user_id).order_by(Comment.posted.as c()).all()».
        Ответить
          • Да вообще, я вчера весь вечер сидел со включённым логгером запросов и совал их в «ANALYZE EXPLAIN» — смотрел, что за говно там алхимия генерирует. Ну, вроде нормальное говно — особых тормозов или seq scan-ов не заметил.
            Меня, конечно, смущают семь джоинов в одном запросе, но я БДшник не настоящий, а ОРМ на «Гитхабе» нашёл.
            Ответить
            • geqo вполне может в 8 джойнов, главное чтобы эти джойнились по индексам (ну или по мелким таблицам)
              Ответить
              • Неплохо. Вот реальный пример запроса, который алхимия генерирует. Сниппет (получение последних ответов на комментарии пользователя, без before/ignore):
                with ScopedSession() as session:
                    parent_user = session.query(User).filter(User.user_id == 8086).first()
                
                    Comment_parent = aliased(Comment)
                    query = session.query(Comment, Comment_parent) \
                        .filter(Comment.user_id != parent_user.user_id) \
                        .join(Comment_parent, Comment.parent) \
                        .filter(Comment_parent.user_id == parent_user.user_id)
                
                    parents = {}
                    children = []
                    for comment, parent_comment in query.order_by(Comment.posted.desc()).limit(20).all():
                        if parent_comment.comment_id not in parents:
                            parents[parent_comment.comment_id] = parent_comment.to_dict()
                        children.append(comment.to_dict())

                Запрос: https://pastebin.com/MrU2Y7Ay;
                План: https://pastebin.com/iySpv4aR.
                Ответить
                • поцчему у тебя оптимизатор постоянно так наёбываеца?

                  cost=0.42..138759.33 rows=201896 width=449) (actual time=0.033..0.105 rows=27 loops=3)

                  (cost=1.41..290167.84 rows=1672 width=1712) (actual time=0.177..0.573 rows=12 loops=3)


                  не пора-ли ANALYZE?

                  зы: при таких адских джойнах может быть еще полезно увеличить work_mem, и вообще поцчитать https://wiki.postgresql.org/wiki/Performance_Optimization
                  Ответить
                  • Не знаю, постоянно так делает. Это и есть EXPLAIN ANALYZE.
                    Ещё реальные примеры:
                    ngk=> EXPLAIN (ANALYZE, BUFFERS, COSTS) SELECT * FROM comments WHERE comments.user_id = 65000;
                                                                               QUERY PLAN
                    ---------------------------------------------------------------------------------------------------------------------------------
                     Index Scan using comments_user_ids on comments  (cost=0.42..222.85 rows=59 width=449) (actual time=0.269..0.269 rows=0 loops=1)
                       Index Cond: (user_id = 65000)
                       Buffers: shared hit=2 read=1
                     Planning Time: 0.149 ms
                     Execution Time: 0.302 ms
                    (5 rows)

                    ngk=> EXPLAIN (ANALYZE, BUFFERS, COSTS) SELECT * FROM comments WHERE comments.user_id = 1;
                                                                                 QUERY PLAN
                    -------------------------------------------------------------------------------------------------------------------------------------
                     Bitmap Heap Scan on comments  (cost=1226.71..38842.72 rows=52424 width=449) (actual time=12.089..157.928 rows=51339 loops=1)
                       Recheck Cond: (user_id = 1)
                       Heap Blocks: exact=14400
                       Buffers: shared hit=1886 read=12689
                       ->  Bitmap Index Scan on comments_user_ids  (cost=0.00..1213.60 rows=52424 width=0) (actual time=9.467..9.467 rows=51822 loops=1)
                             Index Cond: (user_id = 1)
                             Buffers: shared hit=3 read=144
                     Planning Time: 0.154 ms
                     Execution Time: 164.716 ms
                    (9 rows)
                    Ответить
    • Проверил. Ничего не изменилось. Еды ты не заработал.
      Ответить
      • > Ничего не изменилось.
        Отлично, так и должно быть. Я беспокоился, что после перевода что-то могло поломаться (тестов-то нет!).
        Ответить
        • Конечный пользователь в этих ваших «SQL» и «Python» не разбирается. Надо что-нибудь в «CSS» подкрутить, чтобы создать эффект бурной деятельности!
          Ответить
            • Тогда в «HTML». Сделать что-нибудь жирным или курсивом. Тогда посетители точно заметят изменения!
              Ответить
  • Чо б такого в стоке запилить?..

    Кстати, я ж запилил адекватное детектирование новых/обновлённых комментариев. Могу подписку организовать, шоб новые комменты заливались на кастомные эндпоинты.
    Ответить
    • Скрытие тредов, мейби. Не все хотят видеть вореции *в стоке*...
      Ответить
      • Да, было бы круто иметь игнор тредов с возможностью их последующего разбана, как с юзверями
        Ответить
  • Поменял структуру папок, надо сделать Ctrl+F5, а то всё сломается.
    Ответить
  • Инженерному отделу требуются комментарии пользователей!
    Планируется разработка опционального метода оповещений о новых комментарий. Есть два стула:
    1) Проигрывание звука, звук можно менять;
    2) Показ браузерных оповещений с изменяемым таймаутом.
    На какой сесть, на какой Сток посадить? Или, может, ещё какие-нибудь стулья есть?
    Ответить
      • Не видно со смарта, не видно при большом количестве открытых вкладок, не видно при свёрнутом браузере.
        Ответить
        • Кстати, на смарте и звук с неактивной вкладки не будет проигрываться, неактивны вкладки же вообще не робят.
          Ответить
          • По идее можно пуш-уведомления запилить… Но вообще наш инженерный отдел в решении этой проблемы больше ориентирован на ПК.
            Ответить
  • Ничего не понял. Почему у меня фавиконка при «cache-control: max-age=31536000, public» на каждом запросе заново загружается?
    Ответить
    • заголовок expires есть? загружается, или шлется if modified since?
      Ответить
      • Хм, поглядел, какая-то хуйня происходит:
        Запрос:
        :authority: gcode.space
        :method: GET
        :path: /img/favicon.ico
        :scheme: https
        accept: image/webp,image/apng,image/*,*/*;q=0.8
        accept-encoding: gzip, deflate, br
        accept-language: ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7
        cache-control: no-cache
        cookie: __cfduid=1234
        dnt: 1
        pragma: no-cache
        referer: https://gcode.space/
        sec-fetch-dest: image
        sec-fetch-mode: no-cors
        sec-fetch-site: same-origin
        user-agent: Mozilla/2.0 (compatible; MSIE 3.02; Windows 95)
        
        Ответ:
        cache-control: max-age=31536000, public
        cf-cache-status: DYNAMIC
        cf-ray: 12345-ARN
        content-encoding: br
        content-type: image/x-icon
        date: Fri, 06 Mar 2020 22:55:07 GMT
        etag: W/"5e573ebf-2871e"
        expect-ct: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
        last-modified: Thu, 27 Feb 2020 03:59:59 GMT
        pragma: public
        server: cloudflare
        status: 200
        strict-transport-security: max-age=31536000; includeSubDomains; preload

        Браузер зачем-то шлёт «no-cache» при простом обновлении страницы по F5. Зачем? Зачем?
        Ответить
        • dnt: 1 и SPDY, но при этом user-agent: Mozilla/2.0 (compatible; MSIE 3.02; Windows 95)?

          Кака́я маскировка )))
          Ответить
        • а просто при хождении по страница, без F5?

          попробуй expires: тоже самое, но не с момента запроса, а до какого-то срока
          Ответить
          • Попробовал в папку с бэкапами зайти, получил странное:
            Ответ:
            cache-control: max-age=31536000, public
            cf-cache-status: DYNAMIC
            cf-ray: 12345-ARN
            content-encoding: br
            content-type: image/x-icon
            date: Sat, 07 Mar 2020 00:39:22 GMT
            etag: W/"5e573ebf-2871e"
            expect-ct: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
            last-modified: Thu, 27 Feb 2020 03:59:59 GMT
            pragma: public
            server: cloudflare
            status: 200
            
            Запрос:
            Provisional headers are shown
            DNT: 1
            Referer: https://gcode.space/db_dumps/
            Sec-Fetch-Dest: image
            User-Agent: Mozilla/2.0 (compatible; MSIE 3.02; Windows 95)


            Спасибо, попробую.
            Ответить
  • Наконец-то наш инженерный отдел запилил параметры поиска. Теперь (после Ctrl+F5, как обычно) можно ссылаться на результаты: https://gcode.space/#!/search?q="UB"&user=TheCalligrapher.
    Ответить
    • > после Ctrl+F5, как обычно
      Питушня. Есть какая-то питушня для пропитушения файлов без питушения пользователя? Не такая адвансовая питушня, как ВК или Whatsapp питушня, где тебе явно питушут "я Лунтик, я обновился, питушни и ты меня", а хотя бы приписывание GET-параметров с хэшем коммита, в котором файл последний раз изменился.

      Вообще, что за питушня? Приложения только растут и растут, сервер может пропитушить клиенту новый файл, а программисты оставляют факториальный рост кобенаций психозы, которая может произойти из-за совмещения разных версий скуриптов.

      Если в проекте 20 скуриптов, после их смены у миллиона пользователей будут уникальные баги, которых нет у разработчика.
      Ответить
      • Ну то есть я не против F5 (пока ещё), но против Ctrl+F5.
        Ответить
      • Проблема (у НГК) в том, что пользователь всё равно сначала дёргает index.html, который в кэше. В принципе, можно туда запихнуть какой-нибудь скрипт, который будет проверять версию (возможно даже через вебсокеты) и динамически всё обновлять… Но это мало того, что геморрой, так ещё и тормозить будет. Я-то как раз, следуя заветам Борманда, стараюсь сделать НГК максимально лёгким и быстрым (и именно поэтому у меня фавиконка весит 69 килобайт).
        Ну и версионирование с вебпаком инженерному отделу лень пилить, хотя надо…
        Ответить
        • Версионирование можно прикрутить O(1) раз. У клиента обернуть AJAX питуха в if (response.version != VERSION) sosnooley(); (либо заголовками) и request.version = VERSION; send(), у сервера - в самом начале запроса if (response.version != VERSION) sosnooley(); и в шаблоне страницы <script>var VERSION = $VERSION</script>.
          Ответить
          • И что надо сделать в sosnooley() чтобы обновить клиента на новую версию?
            Ответить
            • В серверном sosnooley просто ничего не делать и отправлять ошибку (либо ответ без ошибки, т.к. клиент сначала проверит его .version и вспетушится).
              В клиентском sosnooley - обновлять страницу, если она не зависит от пользовательского состояния, либо рисовать плашку как на гитхабе.
              Ответить
              • То есть
                * для статики назначается кэширование на 1.5*average(release.time - release.prev.time), чтобы у клиента не замусоривался кэш
                * к статике добавляется GET-параметр с идентификатором версии, чтобы были гарантированно актуальные файлы
                * к запросам добавляется GET/POST-параметр с идентификатором версии, к ответам - заголовок или поле с идентификатором версии,
                    * при несовпадении версий клиент/сервер ничего не делает
                    * при несовпадении версий клиент просит перезагрузить страницу или перезагружает её сам
                Ответить
                • Кстати, может ли быть ситуация, когда в такой системе просирается ответ сервера? То есть когда серверу от клиента v.n пришёл запрос, сервер ответил ответ v.n, а его принял клиент v.n+1?

                  Если нет, то эта система всегда будет работать не впустую. В самом плохом случае клиент получит ошибку, обновится, переформулирует запрос и отправит заново. Сервер же никогда не будет делать работу зря, т.к. запрос всегда будет инициировать клиент, про которого сразу известно, что он устаревший, и делать ничего не надо.

                  А если веб-сокеты? Или в этом случае сервер при обновлении закроет сокет, а сокет тоже всегда инициирует клиент, который при попытке переподключения получит установку на перезагрузку?
                  Ответить
                  • Разве что, в случае многосерверности на клиенте надо будет сравнивать на >, а не на !=, чтобы не перекатываться на старую версию, когда на запрос пришёл ответ от обновлённой серверной ноды 1, а на следующий - от ещё старой серверной ноды 2.
                    Ответить
  • Хуйня какая-то. В «EasyList» внесли вот такой фильтр:
    ! revolving adservers
    /^https?:\/\/.*\.(xyz|site|pro|best|club|space|info|bid)\/.*/$image,script,subdocument,third-party,xmlhttprequest

    Теперь на «NGK» блокируются дефолтные аватарки с «https://i2.wp.com/gcode.space/img/default.png?ssl=1». Ко-ко-кой позор (((
    Ответить
  • Хуйня какая-то [2]. Периодически на несколько секунд появляется такая вот хрень:
    [17/Mar/2020:09:15:25 +0100] "GET /api/comments HTTP/1.1" 200 4446 "https://gcode.space/" "Mozilla/5.0 (Android 9; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0"
    [17/Mar/2020:09:15:25 +0100] "GET /api/comments HTTP/1.1" 200 4446 "https://gcode.space/" "Mozilla/5.0 (Android 9; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0"
    [17/Mar/2020:09:15:25 +0100] "GET /api/comments HTTP/1.1" 200 4446 "https://gcode.space/" "Mozilla/5.0 (Android 9; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0"
    [17/Mar/2020:09:15:25 +0100] "GET /api/comments HTTP/1.1" 200 4446 "https://gcode.space/" "Mozilla/5.0 (Android 9; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0"
    [17/Mar/2020:09:15:25 +0100] "GET /api/comments HTTP/1.1" 200 4446 "https://gcode.space/" "Mozilla/5.0 (Android 9; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0"
    [17/Mar/2020:09:15:25 +0100] "GET /api/comments HTTP/1.1" 200 4446 "https://gcode.space/" "Mozilla/5.0 (Android 9; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0"
    ...

    Примерно сотня запросов в секунду, будто бесконечный трскроллинг сошёл с ума несмотря на троттлинг. Причём прошлый раз (в начале марта) это было что-то с «OSX».
    Ничего не понимаю.
    Ответить
  • А не сделать ли подписку на треды как на дваче?
    Ответить
    • Верно, гробы нынче дорогие. Закатать в ковер - и в крематорий.
      Ответить
  • Сделайте как-нибудь чтобы парсились посты с хуза. Или тупо скрапингом, или доступом к сериализованным данным. С парсером могу помочь.
    Ответить
    • Что ты имеешь в виду и что хочешь получить в итоге?
      Ответить
      • Я бы хотел получить миллион долларов
        Ответить
      • Чтобы парсились посты с хуза.
        Ответить
        • Посты, которые опубликованы на самом хузе и которых нет на ру?
          Ответить
          • Чтобы всё парсилось с хуза. У тебя идов кометнов с хуза нету.
            Ответить
            • А на хузе нет идов комментов с ру. А сами комменты как-то преобразовываются (например, в них добавляются ссылки, что ещё — хз, нужно у Иньо спрашивать), так что даже простым поиском их сличить сложна. Так что организовать параллельный парсинг хуза достаточно… проблематично.
              Ответить
              • >А на хузе нет идов комментов с ру
                Есть, кроме гостей. А что если просто парсить только хуз?
                Ответить
                  • Инженерный отдел подумал и решил, что было бы неплохо для начала распарсить хуз на предмет ссылок хотя бы на зеркальные комменты, пока без гостя. Завтра отдел общественных отношений попробует связаться с Иньо на предмет запиливания им какого-нибудь API с джейсонами («xyz/api/post/1234» -> «[{comment_id, comment_id_ru, user, text, ...}, ...]»), дабы не заниматься хуйнёй.

                    Спокойной ночи.
                    Ответить
                    • Да нахуй, я быстрее парсер захуячу. Давай уже пилить. Предложение написать парсер всё ещё в силе.
                      Ответить
                      • Я нихуя не понял, о чём вы там с Иньо посрались, но на всякий случай инженерный отдел начал говнокодить.
                        Ответить
                        • Блядь, написали классный SAX-парсер, а в итоге оказалось, что «lxml» не поддерживает SAX для HTML.
                          Какой багор (((

                          # inside <p class="entry-info">
                          if self._p_depth > 0:
                              if elem_name == 'p':
                                  self._p_depth += 1
                          
                              elif elem_name == 'strong' and class_name == 'comment-author vcard entry-author':
                                  self._inside_vcard = True
                          
                              elif elem_name == 'time':
                                  self._posted_time = attrs.get((elem_uri, 'datetime'), None)
                                  if self._posted_time is None:
                                      raise ParseError('<time> element inside entry-info without datetime attribute')
                          
                              elif elem_name == 'a':
                                  if self._inside_vcard:
                                      self._author_link = attrs.get((elem_uri, 'href'), None)
                                      if self._author_link is None:
                                          raise ParseError('author link element without href attribute')
                                      return
                                  
                                  if class_name == 'comment-link':
                                      self._comment_link_xyz = attrs.get((elem_uri, 'href'), None)
                                      if self._comment_link_xyz is None:
                                          raise ParseError('<a class="comment-link"> element without href attribute')
                                  elif class_name is None:
                                      if attrs.get((elem_uri, 'style'), None) == 'border-bottom:none':
                                          self._comment_link_ru = attrs.get((elem_uri, 'href'), None)
                                          
                              return
                          Ответить
                            • Перевёл на «DOM», получил знатное ускорение и укорочение.
                              Написанное в состоянии помутнения сознания у всего инженерного отдела говно сохранил для истории: https://pastebin.com/j05i3Cdq.
                              Ответить
                              • Код выложил? Напомните адрес.
                                Ответить
                      • Как в анекдоте: на n евреев n+1 мнение.
                        Ответить
          • > https://govnokod.xyz/_26544
            Надо было на хузе и нгк автоматически ссылки на ГК транслировать в ссылки на хуз и нгк при добавлении/распарсивании/изменении комментария, а при транслировании комментария с хуза на ГК - заменять ссылки на хуз на ссылки на ГК. Тогда везде бы было по одной ссылке, и если какой-то из сайтов бы сдох, на остальных бы об этом даже не узнали, не было бы лишних нерабочих ссылок.
            Ответить
            • Проблема в комментах. Иньо не заморачивался с айдишниками, в итоге они никак не связаны с гкшными. Ну хоть у тредов маппинг нормальный.
              Ответить
              • > ювелирно

                Ну да, они бы в соседнем треде возродились, лол.
                Ответить

Добавить комментарий для guest Отменить ответ

Помни, guest, за тобой могут следить!

    А не использовать ли нам bbcode?


    8