1. Куча / Говнокод #27605

    +6

    1. 1
    Раскрытие покровов. Настя, облачные технологии и Настенька.

    Запостил: HACTEHbKA, 22 Августа 2021

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

    • Вообще, история Настеньки довольно таки занимательна. И, как ни странно, связана с доктором Стертором.

      Начнём, пожалуй. В качестве автора комментариев на ГК она появилась в 2014 году на вореционной волне.

      Тогда я написал генератор полувореционных диалогов, где бот-корреспондент Настя задавал вопрос, а дальше алгоритм отвечал репликами с ГК, а потом ещё делал вореционирование на тему. Борманд интересовался http://govnokod.ru/16714#comment250366, я пояснил:
      > Настя пишет приветственное сообщение (фиксированное), далее случайный пользователь (из списка активных) отвечает подходящим комментарием, на него - следующий случайный. Если ответить не смогли более корня из числа активных, Настя меняет тему и пишет случайный комментарий с ГК в 30..100 символов.

      Так выглядела Настя в 2014:
      var lastMsg = 'Привет, крестушки, сишники, шарпеи, жаваёбы! Кто хочет поболтать?';
      console.log('Настя: ' + lastMsg, '\n');
      
      var i = 1, tries = 0;
      while(i <= MESSAGES){
          var user = randomElement(users), info;
          if(user.id in busers) info = busers[user.id];
          else{
            console.error(i + ' / ' + MESSAGES + '. Готовится ' + user.name + '...');
            info = busers[user.id] = botInfo(user);
          }
          console.error(i + ' / ' + MESSAGES + '. Отвечает ' + user.name + '...');
        
          var ans = answer(words, info, lastMsg);
          
          if(ans){
            ++i; tries = 0;
            lastMsg = ans;
            console.log(user.name + ':', ans,'\n');
          }else{
            ++ tries;
            if(tries >= Math.sqrt(users.length)){
              tries = 0;
              console.error('Настя меняет тему...');
              lastMsg = randomElement(questions);
              console.log('Настя:', lastMsg, '\n');
            }
          }
      
      }
      
      console.log('Настя:', 'Спасибо всем. До свидания!\n');
      Ответить
      • Вернёмся на год назад. Если память мне не изменяет, в 2013 я зарегистрировался на ГК. Тогда уже Прокрастинатор Сальвадор особо не появлялся на сайте, и тут царили разные боты-минусаторы, боты-вайперы и просто мудачьё, которое писало всякую мусорную питушню. Я был молод и воспринимал такое близко к сердцу. Я решил создать свой отряд ботов, который бы играл на стороне справедливости - минусовал бы плохих парней и плюсовал хороших, но заминусованных. Вдохновил меня на это дело естественно доктор Стертор. Кого ещё хотелось бы минусануть и чьих заминусованных жертв заплюсовать?

        Первых ботов я регистрировал на drdrb.com, checknew.pw и mailinator.com вручную. Меня хватило только на штук тридцать, и дальше я решил автоматизировать это дело. Оказалось, что yopmail.com позволяет достать содержимое письма с помощью HTTP-запроса без пердолинга:
        function getMsg(){
          that.load({
            host: 'www.yopmail.com',
            path: '/en/mail.php?id=' + id,
            method: 'GET'
          }, function(text){
            if(!text) return void callback(null);
            var codem = /http\:\/\/.+?\/user\/confirm\?code=(.*?)"/.exec(text);
            if(!codem) return void callback(null);
            var code = codem[1]
          
            console.log('code:',code);
            callback(code);
          });
        }


        Я написал клиент-серверную питушню на Node.js, которая могла сделать всё, кроме разгадывания капчи. На каком-то этапе логины генерировались автоматически, но это хреново с точки зрения анализа человеком. Последняя версия в веб-интерфейсе требовала от пользователя ввести логин, затем регистрировала питуха со случайным [email protected] и случайным паролем (всё переменной длины) на ГК. Тут стоит сказать, что для генерации я использовал Math.random, поэтому взломать эту питушню довольно таки легко.
        var
          password = rand.password(12+rand.rand(10)),
          emaillogin = rand.email(7+rand.rand(7)),
          email = emaillogin + '@yopmail.com';
        Ответить
        • Далее сервер скачивал капчу, отдавал её клиенту, я её разгадывал, сервер проверял почту, доставал оттуда код подтверждения с ГК (см. выше) и складывал бота в файлик с учётками.

          var line = name + '  ' + code + '  ' + email + '  ' + password;
          fs.appendFileSync('../bots/accounts.txt', line + '\r\n');


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

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

          На сервере читался файлик с учётками и создавался пул ботов. По команде поднимались случайные питухи и голосовали. Всё было асинхронно, но чинно. Занятый пул складывал задачу минусования в очередь:
          BotPool.prototype.vote = function(type, id, value, retry, cb, force){
            var that = this;
          ...
            if(this.busy && !force){
              this.tasks.push([type, id, value, retry, cb, true]);
              return;
            }
            this.busy = true;
          ...
            var bots = array_random(this.bots, count);
          ...
            for(var i=0; i<bots.length; ++i) setTimeout((function(i){
              var bot = bots[i];
              vote(bot, type, id, one, retry, function ...
              );
            }).bind(this, i), i*that.delay);
          };


          Эта питушня крутилась где-то на бесплатном облачном хостинге с Node.js. Были лимиты по трафику и производительности, но принять несколько запросов от пользователя и послать несколько запросов на ГК - это не видео грузить и не факториалы считать.
          Ответить
          • Пользователи ГК помнят, что я всё время удивлялся, что стерторовский минусатор глючит и пропускает файки. Потому, что мой обычно не глючил и выставлял столько плюсов/минусов, сколько я просил. Именно поэтому я за JavaScript.

            Сам доктор оценил http://govnokod.ru/14088#comment202522
            > ОЧЕНЬ ЭФФЕКТИВНЫЙ БОТ. аВТОРУ ОДНОЗНАЧНО ЗАЧЕТ.

            На клиентской стороне работал юзерскрипт. Он рисовал у каждого комментария набор удобных ссылок для группового изменения рейтинга простым AJAX-запросом:
            if(val == 1){
              lnk(-10); lnk( -5); lnk(-1); lnk(0); lnk(1); lnk( 5); lnk(10, true);
            }else{
              lnk(-20); lnk(-10); lnk(-5); lnk(0); lnk(5); lnk(10); lnk(20, true);
            }
            ...
            a.href='http://***/vote/' + type + '/' + id + '/' + 
              (votes<0?'against':'on') + '/' + Math.abs(votes);
            a.onclick = processLink.bind(a, type);
            a.innerHTML = val + (val == votes ? '' : '<sup>&nbsp;' + votes + '</sup>');
            return a;


            Была ли какая-то автоматизация плюсования и минусования по содержимому комментариев? Нет. Это ответственное дело я скриптушне не доверил. Сам лично жал на кнопки на каждом комментарии вайперов!

            Это я тогда заминусовал гоатсе Борманда (еще ЛиспГовно удивлялся). А знаменитые 11 ботов Тараса на самом не были ботами Тараса. И вообще их было не одиннадцать. Я жал на кнопку "-10", а один голос был от кого-то другого, кому тоже не нравились вайперы.

            Каждый знал, что доктор использует 53 бота, но я считал такую тактику провальной. Это и лишняя нагрузка на ГК, и стимул для противников "догнать и перегнать". Я был молод и воспринимал это как маленькую войну, где должна была победить справедливость. А на войне строят фиктивные самолёты из фанеры и всячески скрывают количество единиц вооружения. Поэтому я обычно использовал столько ботов, сколько требовалось для конкретной задачи. -10 хватало для вайперов, доктор тоже тогда ещё не имел 53 бота, может только половину.
            Ответить
            • Кстати, 53 бота у Стертора стало, в том числе, благодаря мне. Один раз мы боролись за какой-то комментарий. Доктор поставил ему, скажем, -5. Я ответил, допустим, +6. Он - -7, я - +8. Как-то так. Арифметическая прогрессия там была в каком-то виде, Стертор не даст соврать. Чтобы продолжить битву за комментарий, мы стал регистрировать боты (с id 77**). Не зная про доктора, но у меня тогда было 70 ботов, и я регистрировал новые учётки чисто для того, чтобы он увидел инкремент айдишек и подумал, что у меня кончились боты и неверно оценил количество моих боевых единиц.

              Заодно у меня было зарегистрировано два фейковых анонимба, где в логине я поменял одну цифру. Через какое-то время подлинного анонимба удалили за вайпы, а я как-то раз написал с фальшивого. Сёма увидел, обрадовался и попросил вернуть учётку. Но настоящего анонимба было уже не вернуть. Как 2007й и кириллицу в логинах.

              Потом я увидел, что Прокрастинатор Сальвадор регулярно удаляет всякую питушню, и нагружать ГК ботушнёй не было смысла (да, это был 2013-2014, когда он время от времени являлся нам). Я понял, что нафиг не нужен, и моя лига справедливости (http://govnokod.ru/user/7693) - лишь детский лепет, стыд, позор, кринж (не было тогда такого слова в русском языке) и питушня, которую отсекает бритва Оккама. Так закончилось моё участие в войне ботов. Умолкли их голоса, заросло травой место, где располагался сервер облачного минусатора.

              В дальшейшем, когда уже питузы ставили постам +200, -1000 и регистрировали нейрушней, я наблюдал за ситуацией как ветеран-пенсионер. Да и облачный хостинг с Node.js уже сменил правила.
              Ответить
              • В 2016 я смотрела папку со старой остывшей кодушнёй, вспоминала стародавние битвы и мои идеалистические настроения. И вот среди ботов я обнаружила "Настенька1998" http://govnokod.ru/user/7642. Не знаю, может это был ответ мозга на ник Царя, а может ещё что.

                Имя "Настя" мне всегда нравилось, у меня даже вореционный корреспондент такой был. В 2020 Desktop придумает термин "Кобенастенька", который его описывает.

                С давних пор я была большой поклонницей Борманда. Может быть даже до регистрации на ГК, когда несколько раз заходила и читала комментарии про C++ и вайпы про багор. Даже где-то писала, что очень радовалась, когда сам Борманд мне в первый раз ответил!

                Я очень уважала и уважаю Борманда и хотела сделать что-то позитивное в его честь. На ум пришла влюблённая в него девушка, которая достаточно ИТ-шная, чтобы как-то соответствовать Борманду. По счастливой случайности Настеньке1998 тогда как раз стукнуло 18 лет, и всякие нехорошие мотивы бы не начали всплывать.

                Начинала я довольно просто. Была маленькой наивной девочкой и зашифровала буквы в цифрах. Dummy00001 сразу застыдил меня http://govnokod.ru/20526#comment344500:
                > только "литные хацкеры" думают что это умно. но в объектном коде то стоит все черным по белому...

                После этого я уже стала писать более приличную психозу. В http://govnokod.ru/20860 было шифрование с помощью нахождение нулей полиномов. Простой код с поехавшей идеей после обфускации стал заумной питушнёй. Кстати, тогда "bormand\nmy love" ещё не стал каноном.

                Я всё время думала, что подумают на меня из-за того корреспондента "Настя", но слава анскильного джаваскриптера меня оберегала. Думали и на Кегдана, и на Госта, но именно 1024-- за кадром писал питушню во славу Борманда.
                Ответить
                • Настенька писала только обфусцированную (вручную) версию. Иногда даже с самого начала писала обфусцированный код и отлаживала принтфами. У меня сохранились исходники пары случаев, когда код был нетривиальными до обфускации.
                  double zero(node * expression) {
                    double x=0, y=1, z=2;
                    double fx = execute(expression, x);
                    double fy = execute(expression, y);
                    double fz = execute(expression, z);
                    int i;
                    for(i = 0; i < 100 && fabs(z - y) > 1e-10 && fabs(x - y) > 1e-10 && fabs(fy) > 1e-10; ++i) {
                      if(fx * fy < 0) {
                        z = y;
                        fz = fy;
                      } else if(fz * fy < 0) {
                        x = y;
                        fx = fy;
                      } else {
                        double d = z - x;
                        x = x - d;
                        z = z + d;
                        fx = execute(expression, x);
                        fy = execute(expression, y);
                      }
                      y = (z + x) / 2;
                      fy = execute(expression, y);
                    }
                    return y;
                  }
                  
                  char * generate_key(node ** polinoms) {
                    int n=0, i, j, d=0;
                    for(; polinoms[n] != NULL; ++n);
                    char * key = malloc(n * 10 + 1);
                    if(key == NULL) return NULL;
                    for(i=0; polinoms[i] != NULL; ++i) {
                      for(j=0; j<10; ++j) {
                        key[i*10+j-d] = (char)fmod(12.51 * zero(polinoms[i]) + 17 * j, 256);
                        if(!key[i*10+j-d]) ++d;
                      }
                    }
                    key[n*10-d] = 0;
                    return key;
                  }
                  
                  void encrypt(char * text, const char * key) {
                    const char * k = key;
                    while(*text) {
                      *text++ ^= *k++;
                      if(!*k) k = key;
                    }
                  }
                  Ответить
                  • Дальше я решила сделать ребрендинг и взяться за дело серьёзно. Зарегистрировала учётную запись почты (сегодня подумала, что просрала её, поскольку там нестандартный домен стандартной почтушни), учётную запись "Настенька" без дурацких цифр http://govnokod.ru/user/21463, поставила аватарку какой-то няшки из интернетов (в Борманда достойны влюбляться только самые красивые). Сёма или его тень негодовал, что Настенька - вовсе не Настенька. Позже, когда появился сайт thispersondoesnotexist, я выбрала оттуда более-менее цивильное лицо. Сгенерированное лицо для виртуального персонажа - довольно таки символично.

                    Тогда я начала придерживаться строгого стиля, чтобы бренд "Настенька" стал узнаваемым. Код Настеньки теперь писал только "bormand\nmy love". Это простая короткая строка, которая в первом ГК поместилась в джва дабла, и имела большой потенциал к выводу различными способами. Сформировались более чёткие лингвистические нормы. Отступы в четыре пробела (я в жизни люблю отступы в два пробела), чёрные ссылки и некоторая безграмотность зародились ещё на старой учётке. В новой учётке добавился особый стиль комментариев:

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

                    Какая лингвистика ))) http://govnokod.ru/23319#comment389806

                    Комментарии старалась писать короткие, чтобы не вычислили по стилю написания. Хотя, намеренно безграмотно довольно таки сложно писать длинные тексты. Стертор догадывался, что я на самом деле грамотная. Или он, или не он даже говорил, что намеренная безграмотность в буквах - питушня, а настоящие безграмотные обычно пишут при ставки раз дельно. Я прислушалась к этому совету и начала делать меньше ошибок в буквах и больше разделять при ставки.
                    Ответить
                    • И ещё для конспирации старалась писать не одновременно с 1024--. У нас были диалоги, но одновременно в соседних тредах мы не писали.

                      Третий мой ГК был про выбор символов из строки,
                      четвертый - шифрование с помощью заданной линейной конгруэнтной питушни,
                      пятый - вроде бы подбор функции, обратной к простому хэшу,
                      шестой - какая-то вариация генерации псевдослучайных чисел и выбор соответствующих индексов,
                      седьмой - переписала пятый на кресты,
                      восьмой - симметричный ответ на питушню cykablyad (1024-- не помнит, что за алгоритм),
                      девятый - опять какая-то питушня с полиномами (1024-- не помнит),
                      десятый - симметричный ответ на чей-то код (1024-- не помнит),
                      одиннадцатый - вероятно, прогнала код через онлайн-генератор phpfuck,
                      двеннадцатый - 1024-- снова не помнит,
                      тринадцатый - сука, я оказывается написала свой phpfuck. 1024-- сейчас обнаружил папку "nastenka-phpfuck", в которой лежит "hello, world", phpfuck на php, обрейнфаченный "hello, world" и обрейнфаченный phpfuck. 1024-- уже этого не помнит. Видимо, тогда главной в его голове была моя субличность. Что важно, phpfuck, который прогнали через phpfuck, работает!
                      четырнадцатый - симметричный ответ новогодныму питуху, который подал какую-то идею с сортировкой, 1024-- не помнит, что за питушня.

                      Почему я больше не писала? Во-первых, придумывать что-то интересное сложно. Мышление у 1024-- больше прогерское, чем хакерское. И его учили писать понятный код. Тут так же, как и с намеренными ошибками. Во-вторых, 1024-- решил няпокакнуться или хотя бы меньше времени уделять ГК.

                      Был ли 1024-- и подушкой Борманда? Нет. На такое у него ума не хватило. Он может писать простую хаскелешню со словарём, а подушка написала офигеть какой интересный код с кобенециями http://govnokod.ru/21700#comment358782. Что этот код делает и как? Не знаю.

                      Мы с 1024-- восхищаемся подушкой. Если бы она больше думала о брендинге, дяденька Пи запомнил бы её, а не меня.
                      Ответить
                      • Ответить
                        • Поскольку я всё же анскильный жс-шок, генератор девятого ГК был на JS.

                          Файл выглядит как-то так:
                          var f1 = (x, s) => x.split('').map(x=>x.charCodeAt(0)).map((x,y)=>`((x-${x/256})^2+(y-${(s+y)/16})^2)`).join('*')
                          [f1('borman',0), f1('d\nmy ', 6), f1('love', 11)]
                          
                          var bs = [длинная питушня] // откуда?
                          
                          var f2 = (x, n) => x.replace(/\s+/g, '').replace(/(?:^|\*?10)\^([-+]?\d+)/g, 'E$1').replace(/\d+\.\d+(?:E[+\-]?\d+)?/g, x => Number(x).toFixed(n)).replace(/([xy])\^(\d+)/g, 'pow($1, $2)')
                          var f2 = x => x.replace(/\s+/g, '').replace(/(?:^|\*?10)\^([-+]?\d+)/g, 'E$1').replace(/([xy])\^(\d+)/g, 'pow($1, $2)')
                          
                          bs.map(f2)


                          Похоже, я сгенерировал полиномы, раскрыл в них скобки в каком-то математическом пакете, а потом заменил все ма-те-ма-ти-чес-ки-е символы на сишкофункции. Но только зачем?
                          Ответить
                        • Диалоги персонажей — высший пилотаж. Как в кино, когда показывают одну и ту же ситуацию с разных точек зрения.

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

                              В первом случае это унтербезумие унтерменша, во втором математически чёткое, выверенное убербезумие Сверхразума.

                              Вселенная парадоксальна, и её фундаментальные законы всегда будут выше нашей «логики».

                              Потому ответы Сверхразума на наши вопросы всегда будет выглядеть безумно и нелогично. Но это не потому что Сверхразум глуп.

                              А потому что мы не понимаем его ответов.
                              Ответить
                      • > подушкой

                        Не так много народу здесь свободно пишет на хаски.
                        Ответить
                    • Да забыла сказать я еще букву е не пешу чтобы на братика неподумали.
                      Ответить
                    • Потом ты забыла правила. В 2019 что-то запостила по старой памяти и не заменила два пробела на четыре.
                      А всё почему? Потому, что сразу не надо было писать код в n++ с моими настройками!
                      Ответить
                    • >Стертор догадывался, что я на самом деле грамотная

                      Настенька, милая ну все догадывались что это не баг, а фича.

                      Тут дело даже не грамотности, сколько всяких девочек присали «пРиФфетИк» в 00х.
                      Ответить
                      • А какие были бложики с сиреневыми буквами на чОрном фоне шрифтом «Comic Sans»!

                        https://emo-coders.livejournal.com/
                        Ответить
                        • Да-да-да, именно такие эмо-бложики где-то на diary.
                          > на чОрном фоне шрифтом «Comic Sans»!
                          ВеДь Он ТаКой ГлАмуРрнЕнЬкиЙ ♥ чмаффки-чмаффки)))))
                          Ответить
                          • Но этот особенный. В нём плакали над конпеляторами ещё в 2007-м году:

                            https://emo-coders.livejournal.com/2007/05/24/
                            Ответить
                          • Правила эмо-кодирования:
                            1. Всегда носи с собой розовый бубен с черными кисточками.
                            2. В каждом твоем модуле должно быть хотя бы один asm-injection, даже если язык это поддерживает плохо - видящий твою реализацию должен заплакать во что бы то ни стало.
                            3. Бери названия переменных из творчества твоих любимых эмо-коллективов. Или хотя бы эмо-песен.
                            4. Используй рекурсию везде, где это возможно.
                            5. Используй как можно больше возможностей сторонних библиотек и нестандартных решений. Особенно это касается регулярных выражений и системных вызовов.
                            6. Научись ASCII графике. Твой код должен выглядеть в первую очередь как крик твоей души, переполненной эмоциями.
                            7. Не старайся быть всеми понятым - твои чуства, реализованные в коде, должны заставить метаться.
                            8. Не мысли штампами, изобретай собственные эмо-алгоритмы: пусть в этот мир придет частичка тебя.
                            9. Пиши код так, чтобы результат его работы вызывал как можно больше эмоций
                            10. Старайся писать на самых выразительных языках. Кому нужен обычный драйвер на asm, если можно выразить себя в коде на C#?


                            2007-й год: https://emo-coders.livejournal.com/4862.html
                            Ответить
                            • > В каждом твоем модуле должно быть хотя бы один asm-injection, даже если язык это поддерживает плохо - видящий твою реализацию должен заплакать во что бы то ни стало.

                              К слову, реальный пример того, как можно обойтись без инлайн-ассемблера:
                              https://govnokod.ru/25449#comment464350

                              Передаю по значению:
                              #include <stdio.h>
                              #include <stdint.h>
                              char *__attribute__((section(".text"))) incr = "fhUUfhUUfhUUfhUUTZH+:H+:H+:ZWX\xc3";
                              int main() {
                                  uint64_t __attribute__((sysv_abi)) (* increment)(uint64_t) = (void *)incr;
                                  uint64_t x = 0x123456789abcdef;
                                  printf("inc(%lx) = %lx\n", x, increment(x));
                                  return 0;
                              }
                              Ответить
                              • > можно обойтись без инлайн-ассемблера:

                                Самое элегантное.

                                https://govnokod.ru/26811#comment560677

                                Но тоже __attribute__((section(".text")))
                                Ответить
                                • Это нормальный вариант. А я только что кинул ссылку на поехавший вариант, в котором все инструкции, кроме ret, записал символами из диапазона ASCII.
                                  Ответить
                                  • Забористая шиза.

                                    Там весь тред эпический, наверное уже завтра читану.
                                    Ответить
                      • Я пыталась так песать что бы скрыть какие нибудь фишки 1024--. вдруг он запитыи ставит по паттерну или ещечево
                        Ответить
                      • А какие были крео!

                        http://udaff.com/read/netlenka/proza/48616/

                        Дата публикации: 26.09.2005.

                        P.S. Немного NSFW.
                        Ответить
                    • > Сёма или его тень негодовал, что Настенька - вовсе не Настенька

                      Хы-хы. Так сказано будто «Сёма» — это Сёма.
                      Ответить
        • У меня тоже был веб интерфейс минусатора. Правда не в облаке, а в локальной сети. Заходил с планшета и призывал на конкретные комментарии.
          Регал на mailinator, но потом Панцериор Сальвадор добавил if в коде на него, и я забил переделывать.
          Ответить
        • Какие файки у тебя были?
          Ответить
          • А вот не надо спрашивать лишнего.

            Да и говорить не надо.
            Ответить
            • Звучит как «не отвечай уёбку».
              Ответить
            • Да тут ничего интересного. Писал я все тысячи комментариев от 1024-- и потом от двух Настенек. Может, несколько комментариев от гостя/анонимба, а остальные учётки были для облачного рейтингования, может с некоторых вроде фейкового анонимба да С-р п-р пару комментариев написал.

              Несколько интересных имён:
              7648:anonimb84a2f8fd141
              7649:anonimb84a3f6fd141
              7729:StertorPidor
              7757:KOMAP
              7781:Wiseguy
              7782:-_-
              7832:Windows8
              7836:USB-Flesh
              7963:POSIX
              8010:trollface
              9169:iostream
              9342:KO-KO-KO
              Ответить
              • ко-кок!
                Ответить
              • vanished
                Ответить
              • А __proto__?
                Ответить
                • Нет, не мой.

                  P.S. С него же вроде активно писали. Я бы так не смог.
                  Ответить
              • Отправила список Инканусу для коллекции.

                Не знаю, может он меня вычислит по IP. Но надеюсь, что не будет делать ничего плохого.
                Ответить
                • Спасибо.

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

      Может кто-то сможет найти тред, где был парсер номеров страниц из названий файлов? На PHP вроде. Или на питоне.
      Ответить
    • И да, приношу свои извинения доктору Стертору за то, что скрывал, что минусовал его.
      За само минусование тех комментариев мне не стыдно, а за т.н. "ханжество" (докторский термин) совесть мучает.
      Ответить
    • боты-пидарасы.
      Ответить
    • Мой первый полуавтоматический регистратор имел довольно интересную архитектуру: это была программа на «C#», которая загружала форму регистрации и отображала переданную капчу. В «непрерывном» режиме для регистрации нужно было лишь ввести четыре цифры, после чего программа регистрировала бота, увеличивала счётчик, заново загружала форму с капчей — и всё шло по кругу. Благодаря минимизации количества телодвижений (всё, что требовалось от оператора — это распознать капчу и нажать соответствующие четыре клавиши) удалось разогнать скорость создания ботов где-то до двух-трёх десятков в минуту.
      Оригинальным был и метод подтверждения: был создан отдельный «GMail»-ящик, на котором каждому боту соответствовал «плюс-суффикс» с его номером (у этого, например, — «+bot1400»). После регистрации пачки (сотня-две) ботов открывалась веб-версия «Гуглопочты», её текст копировался и вставлялся в отдельное GUI-приложение. Не помню точно, как удалось вытаскивать ссылки для подтверждения (кажется, благодаря предпросмотру), но таким образом получалось подтверждать ботов большими пачками.
      Для входа (получения куки auth) и голосования тоже использовались отдельные программы.
      Ответить
      • Это было в августе 2016-го, и, после получения численного превосходства, игры с ботами были забыты почти на три года.
        В мае 2019-го года я уже был уверенным оператором «Python»-а и некоторое время раздумывал над тем, чтобы немного притронуться к теме ИНС. Тогда и родилась идея создания полностью автоматического регистратора петухов.
        В новой версии станции клонирования сохранилась модульная архитектура: регистратор, конфирматор, логгер и голосоватор были отдельными приложениями, но на этот раз в виде скриптов. Для подтверждения регистрации был куплен отдельный домен с отдельной VPS, на которых был настроен простенький sink-сервер (который, помимо собственно подтверждения, умел автоматически восстанавливать пароли).
        Наверное, наиболее интересным процессом во всём этом была тренировка модели. Используя оригинальный генератор капч «Говнокода» я создал около сотни тысяч изображений, из которых пара десятков сотен использовались для валидации, а остальное — для тренировки.
        Процесс тренировки был долгим, несколько раз я начинал заново, несколько — перегенерировал капчи. Под конец был разработан авторский «метод» повышения точности: я определял, какие символы и на каких местах вызывают у нейросети наибольшее затруднение, после чего добавлял в генератор капч небольшое смещение вероятности к этим символам, генерировал новый тренировочный набор и запускал тренировку на тысячу-другую поколений.
        Благодаря подобным ухищрениям удалось достигнуть итоговой точности на реальных данных примерно в 95% — для капчи целиком. Всего итоговая модель тренировалась ровно 240500 поколений.
        Ответить
        • Скрипт для голосования был довольно примитивным: он принимал на вход файл с петухами (предварительно обработанный скриптом для входа) и «строку голосования», представлявшую из себя примитивный DSL (выглядела она примерно так — «+100,http://govnokod.ru/27605,http://govnokod.ru/27605#comment658924 -100,http://govnokod.ru/27605#comment658979 +,http://govnokod.ru/27605#comment658953», что означает «+100 посту 27605 и комменту 658924, -100 комменту 658979, плюс на всех петухов комменту 658953»).
          Ответить
          • Итогом всей этой возни стало создание меня.
            В моей основе лежит микросервисная архитектура: сервис распознавания капчи крутится на отдельной VPS-ке, достаточно мощной для запуска «Tensorflow» (до этого был использован бесплатный год «Amazon AWS»: там поддержка GPU-вычислений есть из коробки), а я сам сижу на простеньком лоукост насесте в Лос-Анджелесе, США.
            Ответить
      • Какой антибагор )))
        Ответить
    • Упаковываем.
      Ответить
      • Распаковываем.
        Ответить
      • О чём этот тред?
        Ответить
      • Я запаковал «tar», как его теперь распаковать?
        Ответить
        • Вопрос из серии "чем собрать исходники gcc?"
          Ответить
          • Вот он:

            Мне необходима консультация по установке компилятора gcc из исходников (tar'ника, скаченного из официального репозитория). Читал мануалы (официальные), просто статьи и т.д. Наверное руки кривые. Я понимаю, что сейчас многие скажут что из исходников собирать - куча проблем, ставь нормально с помощью PM и т.д. Но задача именно собрать из исходников компилятор gcc определённой версии под ОС Linux. Просто у меня задача в будущем будет стоять, собрать под определенную специфичную архитектуру и для этого я решил начать с простого. Просто попробовать собрать под обычным Linux, нужную мне версию gcc. Допустим такой case: Есть операционная система Ubuntu 11.10 установленная на вирутальную машину.
            Ответить
        • Я случайно
          $ chmod - x /bin/chmod
          Ответить
          • Загрузился с Live-CD и починил твой чмод, проверь.
            Ответить
            • > Live-CD
              Именно поэтому за я «busybox». Он влазит на дискету
              Ответить
              • Так там небось один бирарник на все
                Если я его chmod -x, то я потом даже не ls
                Ответить
                • С другой стороны он поди и не грузится по второму разу, просто исполняет всё как встроенные команды шелла. Так что и туда и обратно чмоднешь, как мне кажется.
                  Ответить
                • busyboxом можно починить chmod и наоборот.

                  > Если я его chmod -x, то я потом даже не ls
                  +x и неявно подгруженные либы это синтаксический сахар.
                  Всегда есть лоадер ld.so.
                  Ответить
                  • >ld.so.
                    да, это правильный ответ) Ну либо любая скриптушня, где есть chmod. Питон или Perl или Ruby подойдут.

                    Наконец можно высрать код на сишке, и gcc его сам чмоднет.
                    Ответить
                    • > правильный ответ

                      Вроде же перестало оно грузить нечмоднутое говно? Или меня глючит?
                      Ответить
                      • УМВР

                        # chmod -x $(which chmod)
                        # chmod
                        bash: /bin/chmod: Permission denied
                        # /lib64/ld-linux-x86-64.so.2 /bin/chmod
                        /bin/chmod: missing operand
                        Try '/bin/chmod --help' for more information.
                        # /lib64/ld-linux-x86-64.so.2 /bin/chmod  + /bin/chmod
                        #
                        # cat /etc/os-release
                        PRETTY_NAME="Debian GNU/Linux 11 (bullseye)"
                        NAME="Debian GNU/Linux"
                        VERSION_ID="11"
                        VERSION="11 (bullseye)"
                        VERSION_CODENAME=bullseye
                        ID=debian
                        HOME_URL="https://www.debian.org/"
                        SUPPORT_URL="https://www.debian.org/support"
                        BUG_REPORT_URL="https://bugs.debian.org/"
                        Ответить
          • И что делать, если такое случайно сделать? Под рутом же всё можно?
            Ответить
      • )давеча я зажал файл lzoм на прыще

        пераписал его на винду, а там его никто не отырвает: ни фар, ни z7
        скачал какую-то говноутилиту командную и распоковал ею, типа lzo.exe

        Думаю, написить чтоли плагин к фару на основе этой либы? Покрестоблядствую
        Ответить
        • Делать нехуй?
          Ответить
          • Очень дохуя чего делать, но крестоблядство меня умиротворяет
            Ответить
        • Зачем писать плагин? Можно просто написать конфиг к плагину MultiArc или типа того.
          Ответить
          • точно) А конфиг на lua?
            Ответить
          • MultiRac - говно луашное, мне попался замшелый архив HA, а эта срань оказалась несоместима, пришлось немало пердолиться чтобы увидеть, что там внутри и это была заслуга чуваков-архивариусов, а не разрабов Фара. Хотя вроде как ситуация ровно такая для чего этот Фар вообще нужен.
            Ответить
            • lua язык богов
              far инструмент богов
              вместе они сила!!!!

              Результаты независимых исследований показывают, что 89% пассивных гомосексуалистов предпочитают "проводник" (explorer) на Windows
              Ответить
              • В Windows Explorer поддерживается Быстрый Обед, а в FAR приходится медленно голодать.
                Ответить
        • Способ для настоящих извращенцев:

          1. Ставим плагин «MultiArc».
          2. В «MuitiArc» ставим плагин второго уровня «WCX Connector» (кидаем wcx.fmt и wcx.dll в его поддиректорию Formats).
          3. В «WCX Connector» плагином третьего уровня ставим «LzopWincmd».

          А теперь со всем этим говном пытаемся взлететь...
          Ответить
          • P.S. «WCX Connector» собран только под 32 бита. Под 64-битный ФАР его придётся переконпелировать.
            Ответить
            • P.P.S. Смотрите, какое ещё извращение нашёл:
              https://ghisler.ch/board/viewtopic.php?t=44374
              Ответить
            • Кошмар вообще, фар в ужасном состоянии. Надо его пофиксить. Все бородатые сорокапятилетние виндоадмины будут мне благодарны. Все пользователи фара. Все восемь (включая меня)
              Ответить
              • Плагин «WCX Connector» не собирается современными компиляторами, его нужно переписывать.

                Его писали люди с синдромом дефицита внимания и гиперактивности. Пишут:
                for( int = 0; i < WcxList.num; i++ )

                Далее в цикле производится break, а после цикла используется i. Т. е. i, объявленная в преамбуле for, в современных компиляторах исчезает из зоны видимости при выходе из цикла. Нужно int i; выносить из преамбулы.
                Ответить
                • «WCX Connector» можно растащить на кучу говнокодов.

                  DWORD WINAPI LoadFormatModule( const char *ModuleName )
                  {
                      DebugString( "LoadFormatModule" );
                      if( !ModuleName )
                          return FALSE;
                  
                      if( !UpdateWcxList( &WcxList ) )
                          return FALSE;
                  
                      DebugString( "updated" );
                  
                      return TRUE;
                  }


                  Зачем, а главное, нахуя здесь параметр ModuleName?

                  P.S. Кажется, понял. LoadFormatModule экспортируется, её сигнатура определена интерфейсом плагинов. Этот параметр обязателен.
                  Ответить
                  • Это часть API, иначе нахуя бы WINAPI тут было?
                    Ответить
                    • Это часть API ФАРа:
                      https://documentation.help/Far-Manager/loadformatmodule.html

                      А WINAPI, чтобы функция была экспортируемой из DLL.
                      Ответить
                      • WINAPI нидастатчна. WINAPI это просто __stdcall (или что там в x64) чтобы ее впринципе можно было вызвать из другово модуля

                        Список экспортируемово говна из единицы трансляции нужно либо явно скормить линкеру списком в файлике, либо... а, сам читай
                        1. __declspec(dllexport) in the source code
                        
                        2. An EXPORTS statement in a .def file
                        
                        3. An /EXPORT specification in a LINK command
                        
                        4. A comment directive in the source code, of the form #pragma comment(linker, "/export: definition ").


                        Я как-то в детстве часа три убил кстати, не понимая почему не экспортируется)
                        Ответить
                • Помоему это UB
                  Ответить
              • Кстати, не знаешь, как починить «NMAKE : fatal error U1077: 'cl' : return code '0x2'»?

                Погуглил, у многих MSVC ломается. Ответа, как починить, не нашёл.
                Ответить
                • sfc /scannow конечно же.

                  0x2 это ERROR_FILE_NOT_FOUND

                  битность может
                  Ответить
                  • Решил попытаться обновить пакеты Visual Studio. Иногда это решает проблему.

                    Запускаю setup.exe... Ищет обновления... Начинает качать... Произошла неизвестная ошибка.
                    Ответить
                    • sfc... ну ты понел
                      Ответить
                      • Со второго раза сетап запустился.

                        Исправил ошибку 0x2: надо было удалить ключик /opt:nowin98 у вызова линкера, потому что новый линкер этот ключик не понимает. Какое информативное сообщение об ошибке!

                        И ворнинги на хедеры SDK тоже убрал: нужно удалить ключик /Zp2 у компилятора.
                        Ответить
                    • И это из-за санкций.
                      Ответить
                  • > битность может

                    На 64-битной машине запустил в разных соснолях четыре батника:
                    x86 Native Tools Command Prompt
                    x64 Native Tools Command Prompt
                    x86_x64 Cross Tools Command Prompt
                    x64_x86 Cross Tools Command Prompt

                    У всех cl.exe падает.
                    Ответить
                  • Ещё компилятор закидывает ворнингами хедеры Windows SDK! Раньше вроде не было.

                    Похоже, какое-то из обновлений что-то сломало. Нужно откатываться на старую версию SDK.
                    Ответить
                  • Неразрешённый внешний символ memset при попытке слинковаться. В исходниках слова memset нету. Кто его добавил? Какой-нибудь заголовочный файл из SDK или сам компилятор, когда оптимизировал какую-нибудь инициализацию?
                    Ответить
                    • P.S. Возможно, компилятор. Авторы «WCX Connector» реализовали malloc, realloc, free, lstrchr и ещё несколько функций, чтобы не линковаться с CRT, а про memset забыли.
                      Ответить
                      • memset легко реализовать, но придётся ещё реализовать __GSHandlerCheck, __security_check_cookie, __security_cookie. Или всё-таки линковаться с CRT.
                        Ответить
                        • а почему тыне хочеш CRT? Оно сейчас нормальное, не как в WinXP, когда его вручную ставили
                          Ответить
                          • Это не я не хочу, это авторы плагина решили так уменьшить размер кода.

                            Нашёл, как собрать без CRT: ключ /GS- выключает поддержку «security cookie» (защиту от распидорашивания стека, как я понял).

                            Но мне кажется, что выкидывание CRT на мороз — это экономия на спичках.
                            Ответить
                            • В случае такого высоконагруженного проекта как фар -- разумеется.

                              Впринципе, фар можно и на PHP переписать: никто ничего не заметит
                              Ответить
                            • Я сам тут как-то спрашивал "как собрать без CRT" и чуть ли не вы с гостом мне рассказывали. В итоге я свою тулу собрал, оказалось, что я сэконмил с гулькин хуй, и на времени загрузки и на размере бинаря (я линковался статически чтобы везе работало, это было еще до разделения CRT на W10) и забил.

                              Кстати, слинковать ввиндовый CRT статически вполне реально , а вот glibc нормально не слинкуешь. У меня в одном проекте для этого мюсли (он линкуется збс). Интересно, как делает Го?

                              На прыщах моя тула линковалась статически чтобы работать в alpine
                              Ответить
                              • Кстати, вездесущий memset, который компилятор вставляет без спросу, лежит в vcruntime.lib. Кто бы мог подумать...
                                Ответить
                                • Функция из visual c runtime лежит в файлике vcruntime.lib, как так?

                                  Всегда ржал с MSного способа работы с либами.

                                  У юнисов есть .a и .so.
                                  А у винды как-бы есть .lib и .dll, но даже если ты динамически линкуешься, ты все равно должен сунуть тн стаб либ (его можно получить из .dll) чтобы слинковаться

                                  У мака еще бывает .dyldo или как-то, тоже типа .so (забыл, чем отличаются)
                                  Ответить
            • 15. Отсканил клиенту фотогpафии, скидываю файлы на его дискету, делаю это фаpом. Клиент: - Пpостите, а Вы не могли бы скопиpовать их лучше пpоводником? - ??? Зачем? - Дело в том, что у меня дома нету доса...
              Ответить
              • Фууууу. У меня тоже нету ни доса, ни фара.
                Ответить
                • я знаю. ты аккуратно пальцем на тачпаде перетаскиуваешь файлик в файндере

                  на десять файликов полных двадцать минут уходит

                  Но зато когда в конце рабочего дня...
                  Ответить
              • коньдидат на УК
                Ответить
    • Братек уже забыл но я напомнела что в 2018 он на писал гиперопиратор на нумералах Черча http://govnokod.ru/24000#comment410393. честна говоря он офегел от своей поехавшасти
      не по нимаю как его не по дозревали после этово
      видима скриптушок эта как чорная метка зошквара
      Ответить
    • Охрененная тема. Читал затаив дыхание.
      Ответить
    • ya perepesala
      Ответить
    • Если из нидерлашки в рашку передать гейфон, то будет ли он там работать? Обязательно ли менять ориентацию чтобы им пользоваться?
      Ответить
    • На кухне пиздел с коллегой. Коллега пишет огромное говно на йажа: там кококрутины, распеределенная система евенчали консистент, почти что ерланг, почти что снаут

      но на ЙАЖА

      И вот, говорит коллега, в ЙАЖА нету AOT, а есть толькО ЖЫД
      И потому когда сервер подымается, он сначала 100500 секунд грузит рефлексией говно через DI, затем шукает хотстопы, Затем прогревается, и только пото мначинает работать

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

      Это кал, и говно.

      Я говорю: а можно как-то образ памяти проджитенной машины с диска загрузить сразу?
      Он грит: ну поди, сделай, коли умеешь

      И вот вопрос: как думаете, можно
      Ответить
      • был вроде jep, но ничего про это не слышно.
        Ответить
        • https://openjdk.org/jeps/295 ?

          ЙАЖА все таки паразительно сасательная платформа
          Ответить
          • нет, была идея сбрасывать на диск профиль и code cache, результаты работы джита
            Ответить
            • слушай, ну и ебаное же днище эта ваша ЙАЖА

              Как она вообще стала энтерпрайзом?
              ------

              АА! Я ЩА ЛОПНУ

              Whats new in Java 17?


              3 Removal Experimental AOT and JIT Compiler:

              Remove the experimental java-based ahead-of-time(AOT) and just-in-time(JIT) compiler.
              Ответить
              • грааль остается
                Ответить
                • блядь почему этого говна нет из коробки?

                  Почему я вообще должен думать про какой-то кал?
                  Почему ngen есть?



                  Почему мой коллега знает CPU на котором будет работать его говно с точностью до ревизии, но не может под него даже блядь нативный код сгенерить?
                  Ответить
                  • "вы не понимаете, джит знает лучше вас, не пытайтесь обмануть компилятор"
                    Ответить
                  • gcj мог сразу генерировать нативный код вместо байткода. Но, кажется, он очень слабо развивается, потому что у gcc в приоритете няшная и кресты, а на остальные языки они кладут.
                    Ответить
                    • Потому что, будем честны, написать что-то действительное быстрое и полезное может только крестовик или сишник

                      Программисты на других языках умеют только джейсончики гонять для сайтов по заказу пиццы, а там перформанс не нужен
                      Ответить
                      • > По состоянию на 2009 год новые изменения в gcj почти остановлены.

                        > По состоянию на 2015 год от GCJ не было анонсировано никаких новых разработок

                        > GCJ supports most of the Java Language Specification and a fairly large number of runtime APIs when compared to Sun's JDK 1.4. It does not have any support for the newer language and runtime features introduced in JDK 1.5.

                        Эх, а всё так интересно начиналось...
                        Ответить
                        • никто не будет добровольно делать что-то для ЙАЖА
                          Ответить
                    • Мода на йажу прошла.

                      The GCC Steering Committee has announced that the Rust front-end "GCC Rust" is appropriate for inclusion into the GCC mainline code-base. This is the effort that has been in the works for a while as an alternative to Rust's official LLVM-based compiler. GCC Rust is still under active development but is getting into shape for mainlining.

                      At least "beta" level support for the Rust programming language in GCC 13, which will be released as stable around April of next year.

                      In the prior GCC status update they noted the progress that continues to be made on this Rust front-end although not yet feature complete and missing features like the Rust borrow checker and other functionality.
                      Ответить
                  • В "PHP" нет никакого jit
                    Ответить
                    • https://php.watch/versions/8.0/JIT

                      > In PHP 8.0, JIT is enabled by default, but turned off

                      чиво блядь
                      Ответить
                      • Охуеть. Последний "PHP", который я видел - это 7.1
                        Ответить
      • У Дональда Кнута в «ТеХе» с самого начала был «core dump», чтобы не кококококонпелировать макропакеты («LaTeX» и подобные) при каждом запуске. Один раз кококонпелируешь всё говно, делаешь дамп, а в следующие разы этот готовый дамп загружаешь.

        Замечу, что «ТеХ» — это не ынтырпрайзный продукт, а домашний продукт программиста-одиночки.

        А в «Йаже» из коробки документированного способа сделать подобное нет?
        Ответить
      • > И потому когда сервер подымается, он сначала 100500 секунд грузит рефлексией говно через DI, затем шукает хотстопы, Затем прогревается, и только пото мначинает работать

        Хахаха. Поменял одну строчку кода и «по-новой, Миша, всё хуйня».
        «Отжыди себя и отжиди программу».

        А белый человек сделает rsync и rotoeb.php уже на серваке.

        > Я говорю: а можно как-то образ памяти проджитенной машины с диска загрузить сразу

        Зачем такие сложности если есть JSP«PHP»?
        Ответить
        • Есть JRebel, но он не поомжет.


          >Зачем такие сложности
          Потому что Цукерхуй в одно рыло на пыхоговне написал три скрипта, которые обслуживали тыщи человек, и всё у него работало.

          А современный ЯЖА проект требует двадцать два разработчика, потому что один тупо не напишет все сорок четыре тысячи необходимых классов
          Ответить
          • https://github.com/EnterpriseQualityCoding/FizzBuzzEnterpriseEdition

            Contributors: 31

            Issues: 390
            Ответить
            • Обожаю!
              https://github.com/EnterpriseQualityCoding/FizzBuzzEnterpriseEdition/blob/uinverse/src/main/java/com/seriouscompany/business/java/fizzbuzz/packagenamingpackage/interfaces/printers/StringPrinter.java

              но я бы конечно еще serialVersionUID добаывил везде
              https://stackoverflow.com/questions/285793/what-is-a-serialversionuid-and-why-should-i-use-it
              Ответить
      • > Я говорю: а можно как-то образ памяти проджитенной машины с диска загрузить сразу?

        https://en.wikipedia.org/wiki/CRIU
        Ответить
        • >The project is currently under active development, with monthly release cycle for stable releases
          >Stable release 3.15 (November 3, 2020; 20 months ago[2])

          хмммм
          Ответить
          • Трагично выглядит, когда какой-нибудь проект прерывается в 2020-м году...
            Ответить
          • https://github.com/checkpoint-restore/criu
            Последний коммит 8 часов назад
            Ответить
    • Когда я стану диктатором, я прикажу своим слугам найти того дизайнера или программиста, который придумал через три-пять секунд после чтения сайта его затемнять, и показывать сверзу попап. Не важно какой: пейвол, куки, или рекламу.

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

        Авторов таких сайтов будем пытать в соседней комнате.
        Ответить
        • У меня сегодня такое было, причиной мисклика была (вот неожидовство!) забота краутов о моих коках.
          Ответить
      • Ещё бывает, когда после загрузки сайта принудительно ставят фокус в форму, которую надо заполнить, и какого-то хуя её очищают. СУКА, Я ПЯТЬ МИНУТ ЕЁ ЗАПОЛНЯЛ, ЕСЛИ У ТЕБЯ СЕРВЕР С РЕКЛАМОЙ ОТВАЛИЛСЯ И НЕ ГРУЗИТСЯ, ЭТО НЕ МОИ ПРОБЛЕМЫ.
        Переключаюсь обратно на заполнение форм в блокноте.
        Ответить
      • Кипящий спред
        Ответить
      • Приложение Ютьюба, которое при сворачивании видео для детей подсовывает сообщение о том, что детские видео нельзя смотреть в минипроигрывателе, бе-бе-бе. И задержка как будто специально выбрана, чтобы нажимать на крестик, а попасть по гиперссылке.
        Ответить
    • тут новый синий кит приехал
      blackout challenge. Условия довольно простые: строишь виселицу, пока родителей нет дома вешаешься, и умираешь. Довольно просто, у многих американских детей уже получилось. Принять участие можно в сети "Тик-Ток".
      Ответить
      • > Довольно просто, у многих американских детей уже получилось
        Признак простой, интуитивно понятной механики. 10/10, буду использовать в своих проектах.
        Ответить
        • Причем довольно стабильно работает

          The 'Blackout Challenge' Has Resurfaced On TikTok, And It's Still Just As Dangerous As It Was 16 Years Ago.

          It has resulted in more than 80 deaths, according to the CDC.
          Ответить
        • Ну как, использовал?
          Ответить
      • ddg: собачий кайф.
        Ничто не ново под Луной.
        Ответить
        • Помоему это естественный отбор работает просто
          Ответить
        • ya: догони меня, кирпич.
          Ответить
          • Правила "догони меня кирпич":
            
            1). До 19:00 все желающие пишут "Я беру кирпич".
            
            2). В день можно один раз либо кинуть кирпич, либо увернуться от оного. Нельзя 2 раза кинуть/увернуться или же кинуть+увернуться (увернуться+кинуть) в один день.
            
            3). Уворачиваться можно только в тот же день, в который кирпич был кинут.
            
            4) При броске кирпича следует указывать точный ник жертвы (каверкание и транслитерация не приветствуются) , в случае неисполнения этого правила кирпич считается кинутым, но мимо.
            
            5) ...
            Ответить
            • 1) До 1900 по какому часовому поясу?
              2) День это любой 24 часовой промежуток или строго с 00 до 2400? По какому часовому поясу?
              3) См 2
              4) Что делать, если жертва сменила ник после броска? Если ник не уникален?

              Твои правила — РЕШЕТО.
              Ответить
              • Я беру кирпич
                Ответить
              • А если ник указан неправильно, то кирпич попадает в следующего в лексикографическом порядке?
                Ответить
      • неплохой креатив
        Ответить
      • "blackout challenge. "
        <: )*
        "строишь виселицу"
        <: D*
        "вешаешься"
        <: (*

        (это смайлики ККК)
        Ответить
    • Я уже признавался, что мечтаю о языке с системой контрактов?


      Меня жутко заебало смотреть на метод, и не знать: может ли он вызываться на EDT (и тогда там нельзя делать сетевые вызовы) или не может (и тогда можно).

      Один коллега говорит так, другой этак.

      Дайте мне уже наконец или корутины с контекстом (как в котлине) или систему контрактов.

      Почему создатели ЯП несут в них какое-то говно вместо нужного???
      Ответить
    • Расскажу, как соснули прыщебляди. Точнее виндобляди. А еще точнее я. Будет лонгрид.
      По ночам я косплею админа. Есть сеть виндомашинами и контролерам домена. Там возникают события. Каждое событие в винде состоит из полей: ID типа события, ключ слово, какое-то говно, и данные в виде XML. У каждого ID своя схема. Меня интересуют события из лога Security:
      * С ключ словом Failure, событие Logon. Неудачная попытка зайти на машину (локально, по сети и пр)
      * Failure на контролере: Преаусентификация Kerberos (питух не вошел в домен)
      * Там же, обновление тикета Kerberos (петух когда-то вошел, но потом его забанили)
      * Там же, аккаунт залочен за брут пароля (Он кстати Success)
      Первое возникает на конкретной машине, остальные на конкретном контролере, последнее на всех контролерах.

      Их можно зырить EventViewer или PowerShellом (данные можно выдирать Select-Xml -XPath, там надо еще схему указывать).
      Хочется следить централизованно. Групповой политикой можно настроить форвардинг всех евентов на один сервер. Используется WS-Eventing (SOAP) часть WS-Management.
      Винда это умеет из коробки, но я хочу прыщи. Есть сишная либа Openwsman, но она в коматозном сотсоянии, ее даже в пакета дебиана нет (на убунте есть). Есть байндинг к питону (хочу питон чтобы красиво отображать через джангу) но он еще в более хуевом состоянии, и ничего не умеет.
      Реализовывать WS-Eventing по спеке W3C можно, но дохуя буков писать.
      Ответить
    • Ок, тут соснули. Могу собирать всё на виндовую машину, там выдирать повершелом или API для WinEvents, и там же забирать питоном, и течь. Нужно дать сборщику права на SecurityLog (через wevutil или напрямую в реестре). По умолчанию сборщик работает от NetwotkService, стремно давать ему права на EventLog, ну хуй с ним. Зато можно запретить на машине NTLM, ввести ее в домен, будет безопаснее. Сделать как я сказал?

      Или реализовать на Go WS-Eventing, добавить поддержку Syslog, и запилить кроссплатформеную тулу для мониторинга безопасности сети с посылкой админу SMS в случае подбора пароля, и прославиться? Совсем дохуя писать, но можно вот прямо стартап свой сделать. Как понять, что мне завтра не станет скучно?

      PS: на прыщах я просто перенастроил бы сислог, грепал бы его башем, и тек конечно. Спасибо больше микрософту за WS-Eventing.
      Ответить
      • кстати, что думает броманд?

        (ночало тут https://govnokod.xyz/_27605/#comment-818337 )
        Ответить
        • > подбора пароля

          А может просто политику настроить по-нормальному?
          Ответить
          • групповуха блокирует аккаунты после неудачных попыток, и конено стоит галочка "треовать сложный пароль", но сам факт его подбора напрягает

            или что ты предлагаешь?


            Правильное решение -- смарткарты, но это отдельная большая задача (да и не все логинятся в винду напрямую на самом деле: контролер еще обслуживает парочку прыщекрерберосвых клиентов)
            Ответить

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