1. JavaScript / Говнокод #25921

    −2

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

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

    Запостил: gost, 08 Октября 2019

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

    • Ремонтный отдел починил игнор юзеров, всё снова работает. Как всегда, Ctrl+F5 для обновления (или очистка кэша).
      Ответить
      • Ходит легенда, что изобретателя гильотины казнили первого. Но это легенда.
        Зато достоверно известно, что создатель медного быка испытал его сам.
        Собственно вопрос, не испытываешь ли ты внутреннего диссонанса от осознания того, что твой потенциал забанивания может быть направлен против тебя?
        Ответить
      • https://govnokod.ru/25937
        Ответить
        • Гавношка, как же примитивен и скудоумен твой владелец.
          Ответить
    • показать все, что скрытоХуйло неплохо так себя премировал за крымнаш
      https://pbs.twimg.com/media/EGYP9YZWkAAjhKk.jpg
      Ответить
    • 
        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 изменения
              Ответить
    • показать все, что скрытоВ Петербурге полицию подняли по тревоге: мужчина оскорбил Путина на заборе

      https://www.pravda.com.ua/rus/news/2019/09/30/7227665/
      Ответить
    • 
        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 | &lt;strong&gt;&lt;/strong&gt;
         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>
      Ответить
    • Надо номерной тред делать и перекат пилить.
      Ответить
    • Тред #2. Предыдущий тред: http://govnokod.ru/25864
      Ответить
      • >>> Ну так и перекатывай. С беком, в особенности с парсером могу помочь. Это не ты говорил что парсер от сру и хуз берет?
        Нет, я про «Web Archive» говорил. В принципе, отзеркаленные с ру на хуз комменты распарсить легко, селекторы уже написаны, осталось прикрутить к существующему парсеру. Но остаётся ещё проблема восьмых гуестов: их можно только эвристиками сопоставить, потому что Иньо не оставил ссылок на комменты гуеста8.ru в комментах гуеста.xyz, а с учётом того, что он и текст изменяет…
        Ответить
        • Да нах надо,просто ссылку на пост давай.
          Ответить
          • И то верно. Передали в инженерный отдел.
            Ответить
          • Инженерный отдел впилил ссылку на хуз-пост, но сильно заебался править один и тот же шаблон в четырёх местах. Есть у жаваскриптовых петухов какие-нибудь лёгкие препроцессоры или бест-практис, которые бы могли в коде и ангуляровских .html шаблонах заменить что-то типа __GOVNO_TEMPLATE__ на соответствующий шаблон?
            Ответить
            • Поставь ссылку на хуз перед нгк. (U) не нужен, кому надо - перейдет по ссылке и там щелкнет. GK тоже не нужен.
              Ответить
              • показать все, что скрытоЗачем тебе бормандсток?
                Ответить
              • U мне нужен, я им пользуюсь. Ссылку инженерный отдел переставит когда с шаблонами разберётся, GK — индикатор, его просто оформить надо получше. Может, в виде тултипа на ссылке, хз.
                Ответить
                • >U мне нужен, я им пользуюсь
                  Зачем?
                  Gk по дефолту же, да и кому он нахуй нужен?
                  Ответить
                  • Для того, чтобы быстро смотреть на айдишники. Мне нравятся цифры.
                    GK очень полезен в поиске — чтобы быстро видеть, какие комменты «живые», а какие удалены. Да, возможно, с главной страницы его можно убрать (хотя остаётся ещё xyz-only комменты, но пока инженерный отдел до них не дошёл).
                    Ответить
                    • Нравятся цыфры? Да-а? В самом деле?
                      Шёл бы тогда в бюстгалтеры.

                      Похоже, депрессивная стадия сменилась маниакальной...
                      Я чувствую необыЧайный прилив сил и энергии.
                      Ответить
                    • Ну перейди на гк и смотри.
                      GK по дефолту, ставь пометки если какой-то нестандарт.
                      Ответить
                      • Для каждого юзера это долго и неудобно.
                        > GK по дефолту, ставь пометки если какой-то нестандарт.
                        Да, так и сделаем, передали в инженерный отдел.
                        Ответить
    • Что такое http://gcode-xp.space/ ? Не проще ли по основному адресу убрать редирект на https?
      Ответить
      • Это копия стока (полностью актуальная, разумеется — оно одно API дёргает) для обладателей «Windows XP». Редирект нужен для «HSTS preload list» (а он нужен для понтов).
        Ответить
        • >Редирект нужен для «HSTS preload list» (а он нужен для понтов).
          ЯННП
          Ответить
          • показать все, что скрытоHSTS это такой список сайтов, где всегда сразу форсится HTTPS
            Ответить
          • https://hstspreload.org/
            tl;dr: в новых версиях современных браузеров открыть «gcode.space» по HTTP технически невозможно даже в первое подключение, что существенно усиливает безопасность от «MITM».
            Ответить
            • А если хттпс тупо нету?
              Ответить
              • https://youtu.be/80h7q0YrVBI?t=217
                Ответить
              • показать все, что скрытоТогда тебя не внесут в этот список: ты просто не пройдешь проверку
                Ответить
                • Тогда это так: невозможно зайти по 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» ситуацию улучшают, но до их нормальной поддержки ещё очень далеко.
                        Ответить
                        • показать все, что скрытотак не лучше-ли пилить DNSSec?
                          Ответить
                          • Лучше, но кардинально поменять протокол 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».
                Ответить
    • Хотел въебать минус, но оказалось, что я уже въебал его ранее.
      Ответить
    • показать все, что скрытоПроведена дезинфекция
      Ответить
    • показать все, что скрытоПроведена дезинфекция
      Ответить
    • показать все, что скрытоПроведена дезинфекция
      Ответить
    • показать все, что скрытоПроведена дезинфекция
      Ответить
    • показать все, что скрытоПроведена дезинфекция
      Ответить
    • показать все, что скрыто
      Ответить
    • 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^[email protected], ^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
      Ответить
    • показать все, что скрытоПроведена дезинфекция
      Ответить
    • показать все, что скрытоПроведена дезинфекция
      Ответить
    • показать все, что скрытоПроведена дезинфекция
      Ответить
    • Проведена дезинфекция
      Ответить
    • Проведена дезинфекция
      Ответить
    • Проведена дезинфекция
      Ответить
    • Как вам такая идея? Добавить кнопку временно показать всех, где можно будет разбанивать.
      Ответить
    • Чуть-чуть отрефакторил вёрстку, может забаговаться из-за кэша. Чтобы починить — сбросьте кэш через Ctrl+F5.
      Ответить
    • Слюшай, а может исправишь все ссылки на гк на https? А то я не ебу как это на мобильном бравзере сделать.

      Сменил опсоса, а он оказался охуевшим втирателем рекламы.
      Ответить
      • hsts нужен
        Ответить
        • Ок, спасимбо, я всё понял:
          chrome://net-internals/#hsts

          Тем не менее, http не нужен.
          Ответить
          • ты тряси тряси смартфон

            hsts preload list Нужен
            Ответить
            • Ансамбль ЭМИ под управлением Мещерина был крутой:
              https://youtu.be/rStj5RO3GfQ

              «Воздушную кукурузу» Гершона Кингсли исполняли и другие ансамбли. Вот одно из первых исполнений:
              https://youtu.be/bjT7ECeCKO0
              Ответить
              • 13 версий одним клипом:
                https://youtu.be/qTUM8gFyLqo
                Ответить
              • Охуенно, что они туда прикрутили плакаты времен Хрущевской кампании про Царицу полей
                Ответить
                • >> ДОРОГУ КУКУРУЗЕ НА ФЕРМЫ

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

              Ты тряси-тряси смартфно,
              Ты тряси-тряси смартфно.
              В этой песне нету смысла,
              Зато рифма «Мегафно».
              Ответить
      • Исправил, проверь.
        Ответить
      • Что за отсос?
        Ответить
    • Тест.
      Ответить
      • Хуест.
        Ответить
        • Bom dia!
          Ответить
        • Хуестирую.
          Ответить
        • Ещё разок хуестану.
          Ответить
          • Зачем gost хуестирует?
            Ответить
          • Хузеста́н (перс. خوزستان‎ — Xuzestân) — остан на юго-западе Ирана. Граничит с останами Илам на северо-западе, Лурестан — на севере, Исфахан — на северо-востоке, Чехармехаль и Бахтиария и Кохгилуйе и Бойерахмед — на востоке, с Ираком — на западе. С юга омывается водами Персидского залива. Площадь — 64 055 км², население — 4 274 979 человек. Административный центр — город Ахваз.

            https://ru.wikipedia.org/wiki/Хузестан
            Ответить
    • Добавил страничку «gcode.space/#!/replies/<user_name>». Там можно посмотреть последние ответы на комментарии пользователя <user_name>. В наличии регулярное обновление (как на главной) и бесконечный трскроллинг.

      Знатно поебался, пока пытался прикрутить обновляемую древоведную структуру. В результате заебался и оставил как есть, с одним уровнем.
      Ответить
      • Малость анскилл )))
        Ответить
        • зачем Анскил?
          Ответить
          • В отработанном антифризе меньше этиленгликоля - двухатомного простейшего спирта, херачащего почки и печень, при приеме внутрь. Пары антифриза при частом вдыхании вызывают рак легких, панкреатит, сахарный диабет.
            Ответить
    • Добавил автоматическую выкладку дампов базы. Дампится каждый день в 09:00 по МСК (UTC+3).
      https://gcode.space/ngk/db_dumps
      Ответить
    • Обновляю дистр, 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» или какую-нибудь подобную хипстерскую парашу.
      Ответить
      • Тебе смузи подлить в стакан?
        Ответить
        • Хуярь. Чую, без него в этом говне не поплавать.
          Ответить
      • > Провожу эксперименты с ускорением загрузки
        Ты про это:
        https://github.com/gost-gk/ngk/blob/master/static/compressed.js
        ?

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

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

        Статике нужен вечный кеш, это когда ты делаешь файл bundle.[cache].js, и говоришь сервером, что он экспайрится черех год, и что cache public.
        Ответить
        • Проекты на старом ангуларе и вебпак - эта какая-то шляпа, проще написать скрипт который из папки "3 party" будет брать зависимости, минифицировать контент из папки "src" и склеивать в бандл файл
          Препроцессоры css и typescript для такого проекта не нужны, я думаю, лучше просто babel который будет перед склейкой отдельно деградировать каждый файл
          Ответить
          • Хотя есть какой-то репозиторий https://github.com/preboot/angularjs-webpack видимо и это делают нормально
            Ответить
          • почему шляпа?
            Ответить
            • На моей памяти в нем модульность достигается какими-то своими импортами, типа
              angular.module
              а не ES6 - модулями
              Ответить
              • Когдаж этот грёбаный зоопарк кончится:((
                Ответить
                • Не знаю, давайте лучше переведем говносток на реакт. Я готов проволонтёрствовать ближе к новогодним праздникам. gost, если подготовлю pr, примешь?
                  Ответить
                  • Можно, если он останется компактным и быстрым, в особенности на мобилках.
                    Ответить
                    • native react, лол:)


                      в react и jsx версию я тоже могу покотрибутить
                      Ответить
    • https://github.com/microsoft/vscode/issues/87436

      https://github.com/microsoft/vscode/issues/87420
      Ответить
    • Говно какое-то. Внезапно стали тихо отваливаться вебсокеты, без 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 и теку
                              Ответить
                          • что такое фанфики про поней? на это дрочат?
                            Ответить
                            • https://ponyfiction.org/
                              Ответить
                              • Это вореции?

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

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

      я бблядь не знаю как это комментить
      Ответить
      • Теперь хранимки работают как нативный код?
        Ответить
        • хуже
          https://www.postgresql.org/docs/11/jit-reason.html

          "expression evaluation and tuple deforming. "

          Картежем в постгре кличут ряд.

          Бля, лучше бы кластерные индексы завезли
          Ответить
    • Пук
      Ответить
    • Пук-пук
      Ответить
    • екуеуке
      Ответить
    • 6546546
      Ответить
    • е
      Ответить
    • нен
      Ответить
    • ненен
      Ответить
    • екуе
      Ответить
    • екуе
      Ответить
    • 6546
      Ответить
    • некн
      Ответить
    • некн
      Ответить
    • Провайдеру стока плохо стало, надо поспать, полежать немножко, все ж мы люди. Могут наблюдаться кратковременные перебои в работе.
      Ответить
    • Кажется, второй раз дампнуть ГК ради исправления кодов в постах не получится: только что он целиком упал в «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нуть это что-то как минимум, если вдруг тебе не лениво.
            Ответить
            • Так и сделаю, если вдруг опять зависнет.
              Ответить
              • А можно добавить вотчдог и забить на зависания.
                Ответить
                • Всегда так делаю. Ставлю в кроне задачу restart с интервалом в час.
                  Ответить
                  • В древности в одной компаниисбыл роутер из первого пня с win98 и wingate.
                    Он вис раз в сутки, его перегружали ресетом

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

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

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

                            Надёжно! Никакой ардуины!
                            Ответить
    • Тестирую.
      Ответить
    • Перевёл «NGK» на «ORM», проверяйте.
      Ответить
      • Переведи на «PHP».
        Ответить
      • алчеми?

        зы
        дай ссылк на гитхаб, обосру
        Ответить
        • Вот же:
          https://github.com/gost-gk/ngk/

          Да, он алхимик.
          Ответить
          • Подтверждаю. На «Гитхабе» лежит в точности то, что крутится на сервере.
            Ответить
      • А зачем?
        Ответить
      • Там же и так юзался ORM.
        Ответить
        • Да, но отношения не были настроены, поля приходилось выбирать длинными коньструкциями. А теперь, к примеру, все комменты к посту — это просто «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)
                      Ответить
                      • https://www.postgresql.org/docs/11/sql-analyze.html

                        читни как постгря собирает стаитистику в pg_statistics и как потом ее использует оптимизатор запросов

                        Я про другой ANALYZE (см ссылк)
                        Ответить
                        • Спасибо, почитал, повакуумировал, поанализировал, вроде помогло: https://pastebin.com/eC1P6SSr.
                          Поиск тоже ускорился, кстати: https://pastebin.com/vYD8ivnu.
                          Ответить
                    • > и вообще поцчитать https://wiki.postgresql.org/wiki/Performance_Optimization
                      Спасибо, передали в исследовательский отдел, изучаем.
                      Ответить
      • Проверил. Ничего не изменилось. Еды ты не заработал.
        Ответить
        • Какой багор )))
          Ответить
        • > Ничего не изменилось.
          Отлично, так и должно быть. Я беспокоился, что после перевода что-то могло поломаться (тестов-то нет!).
          Ответить
          • Конечный пользователь в этих ваших «SQL» и «Python» не разбирается. Надо что-нибудь в «CSS» подкрутить, чтобы создать эффект бурной деятельности!
            Ответить
            • А я не умею в это ваше «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)


              Спасибо, попробую.
              Ответить
      • https://gcode.space/img/default.png?

        Мне от сервера пришёл ответ 304 Not Modified. Связь была по SPDY.
        Ответить
    • Наконец-то наш инженерный отдел запилил параметры поиска. Теперь (после 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». Ко-ко-кой позор (((
      Ответить
      • https://github.com/easylist/easylist/commit/d6e6a848f1aff9921e90ffcb1299a103dedaa6ee
        Пидорас.
        Ответить
      • > xyz

        Хузу тоже пизда?
        Ответить
        • Ага. Тоже аватарки отвалились.

          PS, починил:
          <img ng-src="{{comment.avatar_url}}" class="avatar" onerror="this.onerror = null; this.src = '/img/default.png';">

          И 404 в default «Граватара»:
          return location.protocol + '//www.gravatar.com/avatar/' + hash + '?size=48&r=pg&default=404';


          Какой багор )))
          Ответить
      • Какой багор)))
        Ответить
    • Хуйня какая-то [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».
      Ничего не понимаю.
      Ответить
      • Кто-то уснул на F5?
        Ответить
        • Тогда бы и остальные запросы были, а тут просто API дёргается.
          Ответить
          • Странно. Я всегда полагал, что дергаются в агонии, но оказывается можно и в API...
            Ответить
        • (Android 9
          Ответить
    • А не сделать ли подписку на треды как на дваче?
      Ответить
    • Нужен перекат.
      Ответить

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