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

    +1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    function *foo()
    {
       yield 1;
       yield 2;
       yield 3;
    }
    
    function main()
    {
        for (const o of foo())
        {
    	console.log (o);
        }
    
    }
    
    main();

    давайте посмотрим, как TS/JS имплементирует "елды". изначально код выглядит красиво. но заглянем под капот что генерит tsc для выполнение такого кода. мне придется разбить этот ужос

    Запостил: ASD_77, 24 Августа 2021

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

    • var __generator = (this && this.__generator) || function (thisArg, body) {
          var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
          return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
          function verb(n) { return function (v) { return step([n, v]); }; }
          function step(op) {
              if (f) throw new TypeError("Generator is already executing.");
              while (_) try {
                  if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
                  if (y = 0, t) op = [op[0] & 2, t.value];
                  switch (op[0]) {
                      case 0: case 1: t = op; break;
                      case 4: _.label++; return { value: op[1], done: false };
                      case 5: _.label++; y = op[1]; op = [0]; continue;
                      case 7: op = _.ops.pop(); _.trys.pop(); continue;
                      default:
                          if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
                          if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
                          if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
                          if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
                          if (t[2]) _.ops.pop();
                          _.trys.pop(); continue;
                  }
                  op = body.call(thisArg, _);
              } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
              if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
          }
      };
      Ответить
      • > как TS/JS имплементирует "елды". изначально код выглядит красиво.
        > но заглянем под капот что генерит tsc для выполнение такого кода. мне придется разбить этот ужос тадам...
        > все легко и просто

        Вот теперь я точно за Сишку.

        По сути «TS» это такой же препроцессор для «JS» только bloatware.

        Серьёзно, даже самые ужасные макросы j123123 не выглядят так ужасно.
        Ответить
        • >По сути «TS» это такой же препроцессор для «JS» только bloatware.

          По сути «High-level language» это такой же препроцессор для «compilation target» только bloatware.
          Ответить
          • > По сути «High-level language» это такой же препроцессор для «compilation target» только bloatware.
            Спорно.

            Во многих случаях компилятор не только не раздувает, а наоборот схлопывает анскильную дрисню погромиста.
            https://govnokod.ru/23832

            Так что умный ко-ко-ко может быть и shrinkware.
            Ответить
            • >Многих случаях компилятор не только не раздувает, а наоборот схлопывает анскильную дрисню погромиста

              такое возможно только если исходник содержит много избыточной информации или если язык сравним по мощности с compilation target
              Ответить
              • Не обязательно. Умный компилятор может посчитать что-то в статике и заменить длинное вычисление на константу.
                Ответить
                • ну посчитать константу в компайлтайме по-моему не сильно большой шаг в мощности языка

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

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

                    Но во многих ситуациях они потом юзаются не полностью, в каком-то частном виде.

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

                    Вот есть у нас метод filter(). Он очень обобщённый: принимает произвольную лямбду, работает с произвольным контейнером, прокачивает через себя произвольные типы.

                    Но зачастую мы его юзаем с каким-нибудь конкретным контейнером и простенькой известной заранее лямбдой в духе x => x.age < 35.

                    Хороший конпелятор для таких случаев не будет высирать тонны кода. Он заинлайнит и filter и лямбду и геттер age и итератор контейнера, уберёт все индирекции, смёржит всё это говно в простой императивный цикл, работающий над простыми "сишными" структурами.

                    И вот это как раз таки показывает мощность и высокоуровневость языка. Нам не пришлось вручную писать этот цикл вручную, мы просто поюзали filter и получили на выходе хороший, эффективный код.
                    Ответить
                    • А еще можно сгенерить код для конкретных типов

                      Ах ну да, кроме C++ и C# (очень ограниченно) так никто не умеет
                      Ответить
                      • > Ах ну да, кроме C++ и C# (очень ограниченно) так никто не умеет
                        > Ко-к-кок, куд-кудах

                        Сиплюструп украл идею крестошаблонов из «Ada».

                        В «Ada» нужно было объявлять что-то вроде typedef для специфичной реализации.

                        С одной стороны это заёб, с другой позволяет давать объектам нормальные имена, вместо питущарского манглинга.
                        Ответить
                        • Речь о мейнстриме конечно
                          Ответить
                          • Ada/SPARK — вполне промышленный язык. Используется в авионике:

                            For these reasons, the big three languages in use in embedded avionics today are:
                            
                                C++ (as a better C. The OO nature is often used only sparingly. Things like polymorphism are just too expensive to verify)
                                Ada (You may not like it, but a TON of current avionics are written in Ada, and are currently being maintained and updated with new features)
                                C - As close to the hardware as you want to get and still be highly productive (not intending to offend anyone who is productive in something else)

                            Генерики и «STL» появились в Аде ещё в 70-80х. Тогда все кудахтали «сложна», «нипанятна».
                            Ответить
                            • промышленный != мейнстрим

                              Много чего занимает особые ниши. Например язык ABAP.
                              Но я бы не назвал его мейнстримом
                              Ответить
                            • В течение всего "выступления" Катерины он смотрел в нашу сторону так, будто ненавидел её всей душой, а когда она меня обняла, так и вовсе мысленно четвертовал её.
                              Ответить
                            • В течение всего "выступления" Катерины он смотрел в нашу сторону так, будто ненавидел её всей душой, а когда она меня обняла, так и вовсе мысленно четвертовал её.
                              Ответить
                          • > промышленный != мейнстрим
                            Да, понимаю.

                            Всё-таки у «Spark» есть действительно интересные результаты.

                            Так например они работают над формальной верификацией корректности программ, используя GNATprove.

                            https://docs.adacore.com/spark2014-docs/html/ug/en/gnatprove.html

                            Так например проверки для мудуля отсутствия ошибок в рантайме и запись в memcached.

                            Интересно что скажет CHayT.
                            Ответить
                            • Про Ada Spark я знаю, но вроде большая часть ништяков там проприетарна.
                              Ответить
                              • https://docs.adacore.com/spark2014-docs/html/ug/en/source/how_to_write_loop_invariants.html

                                Вот эта часть выглядит серьёзной заявкой чтобы покончить с buffer overflow при оперировании царскими массивами.

                                Подозреваю лет через 10-15 можно ожидать их в С++/С# и других жопулярных язычках. Как это было и с другими фичами «Ada».
                                Ответить
                                • Проект iris, к которому я присматриваюсь, подобное тоже может делать для языков с произвольной сёмантикой. Но там адский rocket science, конечно.
                                  Ответить
                                  • Когда на душе плохо, нужно погрузится в работу с головой. Мне это всегда помогало, и я надеялся, что поможет и на этот раз. Я взял на себя больше нагрузки, задавал студентам кучу контрольных, которые проверял потом до ночи, после чего в бессилии просто падал на постель и отключался. Я даже начал задумываться над тем, чтобы начать писать какую-то научную работу, чтобы ещё и в выходные сидеть в библиотеках.
                                    Ответить
                                  • Когда на душе плохо, нужно погрузится в работу с головой. Мне это всегда помогало, и я надеялся, что поможет и на этот раз. Я взял на себя больше нагрузки, задавал студентам кучу контрольных, которые проверял потом до ночи, после чего в бессилии просто падал на постель и отключался. Я даже начал задумываться над тем, чтобы начать писать какую-то научную работу, чтобы ещё и в выходные сидеть в библиотеках.
                                    Ответить
                                • Естественно крики "Уууу", "Вау" и "Во даёт" были неизбежны. А у Паши глаза и вовсе на лоб чуть не полезли. Я ещё не видел его таким. Честно признаться, меня даже порадовала такая ревность с его стороны. Видимо, я ему был не безразличен. Может, не зря я всё-таки пять лет психологию зубрил; что-то я в людях смыслю! Ладно, пойдём на ту вечеринку. Думаю, ничего страшного не произойдёт.
                                  Ответить
                                • Естественно крики "Уууу", "Вау" и "Во даёт" были неизбежны. А у Паши глаза и вовсе на лоб чуть не полезли. Я ещё не видел его таким. Честно признаться, меня даже порадовала такая ревность с его стороны. Видимо, я ему был не безразличен. Может, не зря я всё-таки пять лет психологию зубрил; что-то я в людях смыслю! Ладно, пойдём на ту вечеринку. Думаю, ничего страшного не произойдёт.
                                  Ответить
                              • - Ура! - быстро крикнула Катя и поцеловала меня в щёку.
                                Ответить
                              • - Ура! - быстро крикнула Катя и поцеловала меня в щёку.
                                Ответить
                            • - Ну, ладно, уговорили; думаю, на часок заскочу, - решил я сдаться.
                              Ответить
                            • - Ну, ладно, уговорили; думаю, на часок заскочу, - решил я сдаться.
                              Ответить
                        • - Да, почему бы и нет? Лучше узнаете своих подопечных, - это был голос Рамашина.
                          Ответить
                    • >И вот это как раз таки показывает мощность и высокоуровневость языка

                      это не имеет никакого отношения к мощности языка, оптимизация компилятора - это деталь реализации
                      Ответить
                      • > это деталь реализации

                        Ну-ну, а потом программисты на "высокоуровневом" языке юзают одинарные кавычки вместо двойных потому что они быстрее...
                        Ответить
                        • тем не менее, оптимизации компилятора к мощности языка не имеют никакого отношения
                          Ответить
                          • Мой поинт был о том, что высокоуровневый язык не обязан генерить сраное говнище просто потому что он высокоуровневый.

                            Т.е. реализация TS со вменяемым таргетом могла бы сделать няшный красивый асм, а не эту дрисню из примеров выше. Но к сожалению таргет неудачный.
                            Ответить
                            • define "сраное говнище" пожалууйста



                              Если это "неоптимальный, медленный код", то ты прав.

                              Если это код, который дяде Пи глаз режет, то я не согласен.

                              Задачи "услаждать взгляд программиста выхлопом" у компилятора не стоит обычно.
                              Ответить
                            • Тред начался с того что 3.14159265 обосрал выхлоп тсц из елды

                              мой поинт заключается в том что высирать много кода из елды абсолютно нормально потому что генератор - это фича которая дает большой прирост мощности языка

                              ты можешь оптимизировать высер этой елды в куче частных случаев но в общем случае елда будет высирать больше кода и это нормально, в этом ее смысл
                              Ответить
                              • - Давай здесь сядем, - наконец проронил Паша, когда Кир по привычке пошёл на галёрку.
                                Ответить
                              • - Давай здесь сядем, - наконец проронил Паша, когда Кир по привычке пошёл на галёрку.
                                Ответить
                            • Дверь в аудиторию была открыта, и там уже сидели несколько студентов. Я сел за стол и принялся разгребать кучу бумаг, предназначенных для контрольной. Через несколько минут в дверь вошли двое парней. Да, это были Павел и Кирилл. И если Кир изо всех сил что-то пытался донести до Клевера, то второй всеми силами пытался его понять. Даже человеку, который первый раз увидел Рамашина, было бы ясно, что тот мыслями находится где-то очень далеко. Хотя я догадывался, где он был...
                              Ответить
                            • Дверь в аудиторию была открыта, и там уже сидели несколько студентов. Я сел за стол и принялся разгребать кучу бумаг, предназначенных для контрольной. Через несколько минут в дверь вошли двое парней. Да, это были Павел и Кирилл. И если Кир изо всех сил что-то пытался донести до Клевера, то второй всеми силами пытался его понять. Даже человеку, который первый раз увидел Рамашина, было бы ясно, что тот мыслями находится где-то очень далеко. Хотя я догадывался, где он был...
                              Ответить
                          • Как же непривычно ходить по здешним коридорам, когда в них мало народу. Ты слышишь собственные шаги, части разговоров студентов, которые почему-то тоже не спят.
                            Ответить
                          • Как же непривычно ходить по здешним коридорам, когда в них мало народу. Ты слышишь собственные шаги, части разговоров студентов, которые почему-то тоже не спят.
                            Ответить
                        • Это результат Великой Лжи скриптоблядей про "вы можете не думать, за вас все подумают".

                          Но я плюсану буткемпа.

                          Есть два языка: на одном задача $TASK реализуется в 22 строки, на другом в 954.

                          Какой из низ мощнее?
                          Ответить
                          • > Какой из низ мощнее?

                            Не знаю. Может быть на втором пытались решить более общую задачу или расписать её более понятно для читателя, а в первом какое-нибудь райт-онли говнище на перле без тестов.
                            Ответить
                            • Задача была ровно одна и та же, иначе вопроса бы не было)
                              Ответить
                            • - Ты чё, поучиться решил? - со смешком сказал Саламатин, но упираться не стал и сел прямо на первый ряд.
                              Ответить
                            • - Ты чё, поучиться решил? - со смешком сказал Саламатин, но упираться не стал и сел прямо на первый ряд.
                              Ответить
                        • Хотя и до начала пары было ещё далеко, но я уже шёл в аудиторию. Мне нужно было дописать планы и подготовить задания для очередной контрольной (такой ненавистной для моих подопечных).
                          Ответить
                        • Хотя и до начала пары было ещё далеко, но я уже шёл в аудиторию. Мне нужно было дописать планы и подготовить задания для очередной контрольной (такой ненавистной для моих подопечных).
                          Ответить
                      • Всегда был совой, и не поспать лишние пять минут утром было для меня кошмаром. Теперь вся сонливость куда-то улетучилась, и если я засыпал в 12 ночи, то просыпался в 6 утра, и спать мне больше не хотелось...
                        Ответить
                      • Всегда был совой, и не поспать лишние пять минут утром было для меня кошмаром. Теперь вся сонливость куда-то улетучилась, и если я засыпал в 12 ночи, то просыпался в 6 утра, и спать мне больше не хотелось...
                        Ответить
                    • Я не успел договорить, как из зала начались раздаваться протестующие крики.
                      Ответить
                  • - Все знают, что у меня скоро день рождения, и я хочу пригласить вас на вечеринку у меня дома. Можете взять с собой подружек или парней. Вас, Николай Олегович, я тоже приглашаю, - она посмотрела на меня, подошла сбоку и, положив руки мне на плечи, легонько прогнулась, заглядывая мне в глаза. - Вы не откажете имениннице? Сами же говорили, что разница в возрасте у нас небольшая и всё такое...
                    Ответить
                • Она встала с места, процокала тонкими каблучками по ступеньках и, встав возле меня, продолжила:
                  Ответить
              • - Нет-нет, подождите все, пожалуйста, - это была Катя Сомина.
                Ответить
            • - Ей, я вам не мешаю? - этот разговор мне всё больше не нравился. - Если нет вопросов, то можете быть свободны.
              Ответить
          • Кирилл только помахал головой с лёгкой ухмылкой, видно, хорошо зная выходки сестрёнки, а я подумал, что эта девочка не такая безобидная, как мне казалось раньше.
            Ответить
        • Сишка это всего лишь препроцессор для асемблера, только bloatware

          Серьёзно, даже самые ужасные макросы j123123 не выглядят так ужасно, как асемблерный код, сгенеренный GCC из С++ на -O3.

          Ты ведь регулярно читаешь асемблерный выхлоп компилятора, так же часто, как и JSный выхлоп TS, правда?
          Ответить
          • > регулярно читаешь асемблерный выхлоп компилятора

            Регулярно читаю...

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

              x86-64 выхлоп сишного Фибоначчи на YIELD
              typedef struct{
                  int state;	
                  int a;
                  int b;
                  int i;
              }  Fib;
              
              int fibs(Fib* ctx)
              {
                  static DECLARE();
                  int x;
                  BEGIN;
                      YIELD(ctx->a);
                      YIELD(ctx->b);
                      for (ctx->i=0;ctx->i<10;++ctx->i){
                          x = ctx->b;
                          ctx->b = ctx->b + ctx->a;
                          ctx->a = x;
                          YIELD(ctx->b);
                      }
                  END;
                  return 0;
              } 
              
              //замечу вполне читабельно.
              //номера строк с YIELD попали в ассемблерный выхлоп (жирным). Удобно.
              
              fibs(Fib*):                           # @fibs(Fib*)
                      mov     ecx, dword ptr [rip + fibs(Fib*)::state]
                      xor     eax, eax
                      cmp     rcx, 35
                      ja      .LBB0_7
                      jmp     qword ptr [8*rcx + .LJTI0_0]
              .LBB0_2:
                      mov     dword ptr [rip + fibs(Fib*)::state], 29
                      mov     eax, dword ptr [rdi + 4]
                      ret
              .LBB0_3:
                      mov     dword ptr [rip + fibs(Fib*)::state], 30
                      mov     eax, dword ptr [rdi + 8]
                      ret
              .LBB0_4:
                      mov     dword ptr [rdi + 12], 0
                      jmp     .LBB0_6
              .LBB0_5:
                      mov     ecx, dword ptr [rdi + 12]
                      lea     edx, [rcx + 1]
                      mov     dword ptr [rdi + 12], edx
                      cmp     ecx, 8
                      jg      .LBB0_7
              .LBB0_6:
                      mov     ecx, dword ptr [rdi + 8]
                      mov     eax, dword ptr [rdi + 4]
                      add     eax, ecx
                      mov     dword ptr [rdi + 8], eax
                      mov     dword ptr [rdi + 4], ecx
                      mov     dword ptr [rip + fibs(Fib*)::state], 35
              .LBB0_7:
                      ret

              https://godbolt.org/z/zxsn1Yq1f
              Ответить
        • - Что, правда в глаза колет? Я хоть не скрываю от всех, - с ещё большим ехидством заметила Инга.
          Ответить
      • > void 0

        Это как?
        Ответить
        • Это undefined. Но более скилльный

          Т.к. undefined можно было раньше переопеределить

          window.undefined=42;
          Ответить
          • void x это аналог (void)x в няшной?
            Ответить
            • Павел после последних слов друга резко поднял голову и уставился на меня. Вот, он понял, что я врал тогда, в кабинете. Я же смотрел в ответ на него и, как ни странно, не выражал никаких эмоций, хотя в душе творился кавардак. "Блин, и кто его за язык-то тянул?" - промелькнуло у меня в голове.
              Ответить
            • Павел после последних слов друга резко поднял голову и уставился на меня. Вот, он понял, что я врал тогда, в кабинете. Я же смотрел в ответ на него и, как ни странно, не выражал никаких эмоций, хотя в душе творился кавардак. "Блин, и кто его за язык-то тянул?" - промелькнуло у меня в голове.
              Ответить
          • > undefined можно было раньше переопеределить

            Т.е. реальное значение с типом undefined по счастливой случайности лежит в глобалке с именем undefined?
            Ответить
            • Раньше (очень давно) так можно было делать.
              undefined is a property of the global object. That is, it is a variable in global scope. The initial value of undefined is the primitive value undefined.
              
              In modern browsers (JavaScript 1.8.5 / Firefox 4+), undefined is a non-configurable, non-writable property, per the ECMAScript 5 specification.
              (Even when this is not the case, avoid overriding it.)
              Ответить
              • Про то, как прошла лекция, даже говорить не надо. Павел не сводил с меня глаз ни секунды, а я ещё раз похвалил сам себя за то, что дал студентам тот тест, потому что я и два слова по теме в кучу бы не связал.
                Ответить
              • Про то, как прошла лекция, даже говорить не надо. Павел не сводил с меня глаз ни секунды, а я ещё раз похвалил сам себя за то, что дал студентам тот тест, потому что я и два слова по теме в кучу бы не связал.
                Ответить
              • Эх, столько кода можно было сломать...
                Ответить
            • И тут, как всегда не вовремя, прозвонил звонок, в аудиторию завалилась вся та толпа, которая была в коридоре, и их разговор прекратился.
              Ответить
            • И тут, как всегда не вовремя, прозвонил звонок, в аудиторию завалилась вся та толпа, которая была в коридоре, и их разговор прекратился.
              Ответить
          • Какой багор )))
            Ответить
          • Их разговор я, конечно, слышал, и душа моя улетела в пятки. Коварный план, который я воплотил в жизнь и всё это время поддерживал, рухнул.
            Ответить
          • Их разговор я, конечно, слышал, и душа моя улетела в пятки. Коварный план, который я воплотил в жизнь и всё это время поддерживал, рухнул.
            Ответить
        • это способ выполнить выражение, но вернуть не его результат а undefined
          Ответить
          • Я уже приготовился к выяснению отношений в конце пары, но со звонком Рамашин просто вылетел из аудитории. Моему недоумению не было предела. "Я ему точно пофиг! - пытался успокоить я сам себя. - Ну, если бы любил, то он что-то, может, и попытался бы сказать, что-то соврать..."
            Ответить
          • Я уже приготовился к выяснению отношений в конце пары, но со звонком Рамашин просто вылетел из аудитории. Моему недоумению не было предела. "Я ему точно пофиг! - пытался успокоить я сам себя. - Ну, если бы любил, то он что-то, может, и попытался бы сказать, что-то соврать..."
            Ответить
        • - Клевер, блин, да что с тобой происходит? Ты как с креста снят! - Кирилл пытался хоть как то вывести друга на разговор, но тщетно. - Ты что, снова парня какого-то закадрить пытаешься, да? Мы вот с Николаем Олеговичем видели твою нынешнюю пассию там, на вечеринке. Нехило ты так прижимал его там, у туалета. Что, не дал?
          Ответить
        • - Клевер, блин, да что с тобой происходит? Ты как с креста снят! - Кирилл пытался хоть как то вывести друга на разговор, но тщетно. - Ты что, снова парня какого-то закадрить пытаешься, да? Мы вот с Николаем Олеговичем видели твою нынешнюю пассию там, на вечеринке. Нехило ты так прижимал его там, у туалета. Что, не дал?
          Ответить
      • - Саламатина, закрыла бы ты рот свой лесбийский, - чуть не кинулся на неё Серый.
        Ответить
    • var __values = (this && this.__values) || function(o) {
          var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
          if (m) return m.call(o);
          if (o && typeof o.length === "number") return {
              next: function () {
                  if (o && i >= o.length) o = void 0;
                  return { value: o && o[i++], done: !o };
              }
          };
          throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
      };
      var e_1, _a;
      function foo() {
          return __generator(this, function (_a) {
              switch (_a.label) {
                  case 0: return [4 /*yield*/, 1];
                  case 1:
                      _a.sent();
                      return [4 /*yield*/, 2];
                  case 2:
                      _a.sent();
                      return [4 /*yield*/, 3];
                  case 3:
                      _a.sent();
                      return [2 /*return*/];
              }
          });
      }
      ;
      try {
          for (var _b = __values(foo()), _c = _b.next(); !_c.done; _c = _b.next()) {
              var o = _c.value;
              console.log(o);
          }
      }
      catch (e_1_1) { e_1 = { error: e_1_1 }; }
      finally {
          try {
              if (_c && !_c.done && (_a = _b["return"])) _a.call(_b);
          }
          finally { if (e_1) throw e_1.error; }
      }
      Ответить
      • Я не мог врать самому себе. Несмотря на всю ту ересь, которую я нёс в кабинете, и на то, что на протяжении всего этого времени я старался о нём не думать, в глубине души всё равно таилась надежда, что он будет как-то пытаться мириться со мной. И чем дольше я его не видел, чем дольше я его не касался, тем сильнее мне хотелось его простить. А я ведь даже и не знаю, почему он сделал так тогда. Может, он был пьяный? Может, его соблазнили? Может, приревновал?! Точно, может же такое быть. Катька-то так тёрлась об меня, что только слепой не заметит, а Павел и подавно.
        Ответить
      • Я не мог врать самому себе. Несмотря на всю ту ересь, которую я нёс в кабинете, и на то, что на протяжении всего этого времени я старался о нём не думать, в глубине души всё равно таилась надежда, что он будет как-то пытаться мириться со мной. И чем дольше я его не видел, чем дольше я его не касался, тем сильнее мне хотелось его простить. А я ведь даже и не знаю, почему он сделал так тогда. Может, он был пьяный? Может, его соблазнили? Может, приревновал?! Точно, может же такое быть. Катька-то так тёрлась об меня, что только слепой не заметит, а Павел и подавно.
        Ответить
    • а теперь давайте посмотрим, как мы можем сами симулировать "yield" без всего этого говна...

      тадам... все легко и просто
      function foo()
      {
      	let step = 0;
      	return {
      		next() {
      			step++;
      			switch (step)
      			{
      			  	//yield 1;
      				case 1: 
      					return { value: 1, done: false; };
      			  	//yield 2;
      				case 2: 
      					return { value: 2, done: false; };
      			  	//yield 3;
      				case 3:
      					return { value: 3, done: false; };
      				default:
      					return { value: 3, done: true; };					
      			}
      		}
      	}
      
      };
      
      function main() {
      
          for (const o of foo())
          {
      	console.log(o);
          }
      
          console.log("done.");
      }
      
      main();
      Ответить
      • Как бы я ни ожидал, встречного шага с его стороны не было. Впрочем, как и самого Павла. После моей лекции на пары он так и не пришёл. Хотелось побыстрее прийти домой и нажраться... Да, я опять встаю на те же грабли, и ничем хорошим это не закончится. Но мне так хотелось забыться...
        Ответить
      • Как бы я ни ожидал, встречного шага с его стороны не было. Впрочем, как и самого Павла. После моей лекции на пары он так и не пришёл. Хотелось побыстрее прийти домой и нажраться... Да, я опять встаю на те же грабли, и ничем хорошим это не закончится. Но мне так хотелось забыться...
        Ответить
    • Объясните простым языком, зачем нужен "yield"?
      Ответить
      • для генерирования потока значений как в безлимитных множествах. например

        function *foo()
        {
           while (true)
                yield i++;
        }
        Ответить
        • > для генерирования потока значений как в безлимитных множествах

          Композиция функций уже похоже не в моде.
          function gen(from, step, to){
              var i=from;
              var _step = null==step ? 1 : step;
              function next(){
                 if (null!=to && to>i){
                      var r = i;
                      i += step;
                      return r;
                 } else {
                      return null;
                 }
              }
              return next;
          }
          
          x= gen(1, 2, 10)
          while (null!= (i=x())) console.log(i)
          Ответить
          • Причём это дерьмо будет работать в допотопных браузерах.

            В нём нету никаких модных for~of, функций со звёздочками, yield и прочей ES6 питушни.
            Ответить
            • Я прошёл дальше, на кухню и оторопел. Там был он. Мой Павел. Он стоял возле стола и ласково мне улыбался. Шикарный букет цветов стоял на подоконнике, на столе стояла уже открытая бутылка вина и много всяких вкусностей. Я даже слова проронить не смог, а рот мой сам собой открылся от увиденного.
              Ответить
          • Как-то так yield в функциональщине делается. Олег ещё придумал, как это всё сделать composable: http://okmij.org/ftp/Haskell/Iteratee/Iteratee.hs
            Ответить
            • - Добро пожаловать домой, милый, - как будто ничего не произошло, произнёс Павел.
              Ответить
          • Всё-таки я вошёл и учуял вкусные запахи. "Прикольные нынче бандиты. Пришли покушать или сами проголодались?"
            Ответить
          • Красиво. Вызов gen как бы является конструктором объекта: мы создаём новый контекст для замыкания.
            Ответить
            • Да. Причём у нашей переменной i настоящая приватность и пользователь не сможет испортить объект.

              А from, step, to не нужно лишний раз копировать в this.
              this.from = from
              this.step = step
              this.to = to
              Ответить
              • А время жизни контекста какое? Пока в переменной x хранится ссылка на полученное замыкание?
                Ответить
                • > Пока в переменной x хранится ссылка на полученное замыкание?

                  Да.

                  Я недавно кидал багор.

                  https://govnokod.ru/27555#comment654572

                  Они его пофиксили и теперь замыкания хватают далеко не весь контекст.
                  Ответить
        • Вставляю ключ в замочную скважину, но не успеваю повернуть его, как она открывается. "Неужели не закрыл?" - спросил я себя. В голову полезли мысли про грабителей, и я мысленно начал вспоминать, где у меня стоит бейсбольная бита.
          Ответить
      • или когда следующее значение зависит от предыдущего. вот например числа фибоначи не надо делать через рекурсию
        Ответить
        • - Ты какого хрена тут делаешь? Как сюда попал? И что это всё за хрень? - наконец-то меня прорвало.
          Ответить
      • Это такое ненужное говно для хранения контекста, примерно как статическая переменная в функции в Си, но чтобы иметь несколько экземпляров такого говна, но не писать много раз одну и ту же функцию
        Ответить
        • >yield
          > примерно как статическая переменная в функции в Си

          пиши еще
          Ответить
          • https://govnokod.ru/26982 - я уже писал.
            Ответить
            • Генераторы и корутины действительно можно попытаться реализовать через статическую переменную в сишке, но это не значит, что ключевое слово "елда" это "как статическая переменная в функции в Си"
              Ответить
              • А я и нигде не утверждал, что "yield" это ровно в точности то же самое, что и "static переменная внутри функции"
                Ответить
                • Зато я утвердждаю свой член в твоём анусе
                  Ответить
                  • - Обыкновенно... Коль, я тебя люблю. Очень. А то, что было на вечеринке, это самая большая глупость, которую я совершал за всю свою жизнь. С этим парнем мы встречаться когда-то пробовали, но у нас ничего не вышло. Просто эти дуры так к тебе клеились, а ты так ласково им отвечал, что я так взбесился, что сорвался. Но мы не переспали, там просто поцелуй был. Я же целовал его, а представлял тебя. Веришь?
                    Ответить
                • Он решил заставить меня вообще потерять дар речи? Или как?
                  Ответить
              • > через статическую переменную в сишке, но это не значит, что ключевое слово "елда"

                Всегда можно избавиться от статики и первым аргументом передавать конь-текст стейта.
                Это же Сишка.
                Ответить
                • Ну в общем-то да, в языках с лямблиями конь-текст просто передаётся неявно.
                  Ответить
                  • Я решил ничего не говорить в ответ. Я просто взял и поцеловал его. И он всё понял...
                    Ответить
                • "Боже, да верю, верю, верю! Почему же ты, паразитина, раньше молчал? Почему же он, это же я идиот! Вот кретин-то!"
                  Ответить
            • В «Си» есть __LINE__

              Именно поэтому я за «Си».

              https://ideone.com/nFyUxi
              #include <stdio.h>
              
              #define DECLARE() int state
              
              #define INIT() state = 0
              
              #define BEGIN switch (state) { \
                                    case 0:
              
              #define YIELD(val) do { \
                                      state = __LINE__;   \
                                      return val;         \
                                    case __LINE__:        \
                                      ;                   \
                                    } while (0)
              
              #define END }
              
              char* next()
              {
                  static DECLARE();
                  BEGIN;
                      YIELD("мама");
                      YIELD("мыла");
                      YIELD("лалку");
                  END;
                  return 0;
              }
              int main()
              {
                  char* str;
                  while (str = next()) {
                      printf("%s ", str);
                  }
                  return 0;
              }


              Портировал пример с крестов, где для этой цели используется инстанс класса Machine:
              https://govnokod.ru/24763#comment429616
              Ответить
              • А если у тебя номера строк в int не поместятся?

                Вообще, можно так:
                #include <stdio.h>
                
                #define DECLARE() int state
                
                #define INIT() state = 0
                
                #define BEGIN switch (state) { \
                                      case 0:
                
                #define YIELD(val) do { \
                                        state = ( (__COUNTER__+2) /2);   \
                                        return val;                      \
                                      case ( (__COUNTER__+2) /2):        \
                                        ;                                \
                                      } while (0)
                
                #define END }
                
                char* next()
                {
                    static DECLARE();
                    BEGIN;
                        YIELD("мама");
                        YIELD("мыла");
                        YIELD("лалку");
                    END;
                    return 0;
                }
                int main()
                {
                    char* str;
                    while (str = next()) {
                        printf("%s ", str);
                    }
                    return 0;
                }
                Ответить
                • Но это конечно тоже анскильно, счетчик не обнулить для какой-то другой хуйни с елдой, чтобы нумерация генеренных кейсов опять начиналась с единицы.
                  Ответить
                  • Я не помню, как мы оказались в постели, но такого секса у нас ещё не было. Мы будто заново изучали друг друга и не могли насытиться теми ощущениями, которые дарили друг другу. Пусть это прозвучит банально, но мы занимались не сексом, мы занимались любовью!
                    Ответить
                • Этой конструкции сильно помогает другая ключевая особенность Сишки (которая лалками считается говном).

                  Возможность switch поставить case где угодно и прыгнуть вовнутрь цикла или ifа.

                  Это предоставляет гибкость писать YIELD внутри других конструкций:
                  char* kakoi()
                  {
                  	static DECLARE();
                  	static int i;
                      BEGIN;
                          YIELD("Какой ");
                          YIELD("yield ");
                          for (i=0;i<3;++i)
                              YIELD(")");
                      END;
                      return 0;
                  }

                  А в анскильных сиподобных языках, даже при использовании препроцессора, такое бы просто не сконпелировалось.

                  https://ideone.com/nFyUxi
                  Повторюсь state и другие вспомогательные данные можно хранить не статически, а в struct Ctx.
                  Ответить
                  • Лишь под утро мы без сил упали на кровать - мокрые, измученные ласками и многочисленными оргазмами и счастливые. Признаюсь, таким счастливым я ещё не был. Хотелось летать, орать, танцевать, но... позже. Сейчас не было сил ни на что.
                    Ответить
                • Ну и пусть так. Я не хочу его терять. Не хочу! Не буду! И теперь уже никому не отдам!
                  Ответить
              • Очень трудно простить измену любимого человека, но ещё труднее жить без него. Знаете чувство, когда смотришь на человека, и мурашки бегут по коже. Когда хочется обнять и сжать так сильно, насколько только можно. Когда ты считаешь секунды до вашей встречи. Когда целуешь его и всегда как в первый раз. Когда он говорит: "Нам надо поговорить", - и у тебя сердце замирает, и, ещё ничего не услышав, ты начинаешь молить Бога о том, чтобы это не было что-то плохое. Вот это - любовь! Да - любовь. Чистая, искренняя, от всего сердца.
                Ответить
            • - Значит так, - начал он, отстранившись от меня, обалдевшего и снова "немого", - ты ключи мне сам дал, помнишь? Это, - показал он на цветы и стол, - цветы моему любимому и праздничный ужин; а праздничный он потому, что теперь я буду жить у тебя.
              Ответить
        • Он стоял и всё так же улыбался, а потом подошёл и поцеловал меня - нежно, ласково, будто впервые.
          Ответить
      • Это способ приостановить выполнение функции и что-то туда досрать уже по ходу

        Пример из MDN

        function* counter(value) {
         let step;
        
         while (true) {
           step = yield ++value;
        
           if (step) {
             value += step;
           }
         }
        }
        
        const generatorFunc = counter(0);
        console.log(generatorFunc.next().value);   // 1
        console.log(generatorFunc.next().value);   // 2
        console.log(generatorFunc.next().value);   // 3
        console.log(generatorFunc.next(10).value); // 14
        console.log(generatorFunc.next().value);   // 15
        console.log(generatorFunc.next(10).value); // 26


        при этом они еще умеют генерировать бесконечные потоки значений
        Ответить
        • - Я. Тебя. Люблю. Знаешь? - отдышавшись, произнёс Паша.
          Ответить
      • Лифт, как всегда, не работал. Подниматься на девятый этаж пришлось пешком. И если до пятого я молчал, то за остальные четыре этажа проклял всех лифтёров и весь состав ЖЭКа.
        Ответить
    • Как в анекдоте, "Вы туда что... гадите, что ли?"
      Ответить
      • - Знаю, - улыбнулся я. - Ты мне раз сто уже об этом говорил. Я тебя тоже люблю, Солнышко.
        Ответить
    • Макака, смени пароль.
      Ответить
      • Ты думаешь, у меня есть доступ к тому емейлу на 10 minutes mail?
        Ответить
        • Ня, пока.
          Ответить
        • Не надо было части моего ника в пароле использовать.
          Ответить
          • - Шутишь? Конечно, я не против. Но вот что твои скажут? И с универом сложно будет. Думаешь, никто не догадается?
            Ответить
          • - Шутишь? Конечно, я не против. Но вот что твои скажут? И с универом сложно будет. Думаешь, никто не догадается?
            Ответить
        • - Знаешь, а я ведь и вправду у тебя жить буду. Ты не против?
          Ответить
      • - А ты ещё не понял? - ответил я вопросом на вопрос.
        Ответить
    • Ничего интересного. В C# тоже методы с yield создают кучу всего. Этого норма.
      Ответить
      • я просто показал что никакого этого гавна не надо. все делается элементарно
        Ответить
        • JS вообще не нужен, как и TS

          Всё элементарно пишется на асемблере
          Ответить
          • если бы это было так - на нем бы и писали до сих пор. но нет.
            Ответить
            • Если бы yield был не нужен, то все бы писали
              if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
                          if (y = 0, t) op = [op[0] & 2, t.value];
                          switch (op[0]) {
                              case 0: case 1: t = op; break;
                              case 4: _.label++; return { value: op[1], done: false };
                              case 5: _.label++; y = op[1]; op = [0]; continue;
                              case 7: op = _.ops.pop(); _.trys.pop(); continue;
                              default:



              но нет
              Ответить
            • люди делают много унизительных вещей по привычке
              Ответить
              • - Слушай, но почему ты так относишься-то к ним. Прости, я немного знаю о твоих отношениях с Евгением Олеговичем. Он же вроде нормально к тебе относится.
                Ответить
              • - Слушай, но почему ты так относишься-то к ним. Прости, я немного знаю о твоих отношениях с Евгением Олеговичем. Он же вроде нормально к тебе относится.
                Ответить
            • Я стал ласкать их. У них, был свой вкус. Не такой, как у Наташкиных, и не такой, как у других женщин, а особый, только ей принадлежащий, волшебный вкус.
              Ответить
              • - Нормально?! - Павел резко встал. - Да из-за него мои родители и погибли! Отец мой с мамой у него в компании работали, он швейную фабрику держал. Дружили семьями. Папа мой бухгалтер, вёл финансы, а мама моя шила классно и была одним из главных дизайнеров одежды, которую и шили на фабрике. Им нужно было срочно лететь в Корею, налаживать какие-то дела. Лететь должны были частным самолётом, но погода испортилась. Папа предложил отложить поездку, но начальник только наорал на него, и они всё же полетели. Пилот не справился с управлением... Этого гада просто совесть грызёт, вот он и решил через меня свою вину искупить. Он даже бизнес свой продал и решил сюда пойти преподавать. Он ведь почему правой рукою деканши стал? Он универ спонсировал постоянно, вот и... Но я-то всё помню и прощать ему смерть родителей не собираюсь. Никогда!
                Ответить
              • - Нормально?! - Павел резко встал. - Да из-за него мои родители и погибли! Отец мой с мамой у него в компании работали, он швейную фабрику держал. Дружили семьями. Папа мой бухгалтер, вёл финансы, а мама моя шила классно и была одним из главных дизайнеров одежды, которую и шили на фабрике. Им нужно было срочно лететь в Корею, налаживать какие-то дела. Лететь должны были частным самолётом, но погода испортилась. Папа предложил отложить поездку, но начальник только наорал на него, и они всё же полетели. Пилот не справился с управлением... Этого гада просто совесть грызёт, вот он и решил через меня свою вину искупить. Он даже бизнес свой продал и решил сюда пойти преподавать. Он ведь почему правой рукою деканши стал? Он универ спонсировал постоянно, вот и... Но я-то всё помню и прощать ему смерть родителей не собираюсь. Никогда!
                Ответить
            • - А как же! Они хотели нормального, а я тут весь такой цвета неба.
              Ответить
            • - А как же! Они хотели нормального, а я тут весь такой цвета неба.
              Ответить
        • - У тебя вообще-то выбора нет. Я из дома ушёл, - абсолютно спокойным голосом просветил меня Павел.
          Ответить
        • - У тебя вообще-то выбора нет. Я из дома ушёл, - абсолютно спокойным голосом просветил меня Павел.
          Ответить
      • На краю кровати безжизненным телом лежала Настя ее всю в сенниках, ссадинах и кровоподтеках трахал какай-то пидар.
        Ответить
        • - Да никто не знал. Мало кто вообще знает о том, что я не родной ему. У него с женой своих детей нет, вот они всё мне и суют. Но воспитывать-то меня не нужно. Люди, которым было это позволено, умерли.
          Ответить
        • - Да никто не знал. Мало кто вообще знает о том, что я не родной ему. У него с женой своих детей нет, вот они всё мне и суют. Но воспитывать-то меня не нужно. Люди, которым было это позволено, умерли.
          Ответить
    • Меня никто не просил, но я перевёл на powershell

      function foo {
        1
        2
        3
      }
      Ответить
      • Вот как будет выглядеть функция чисел Фибоначчи как бы через yield на powershell
        function fib {
          $a, $b = 0, 1
          while ([double]::IsFinite($a)) { # при наличии этого условия всегда будет возвращаться конечный массив
            $a
            $a, $b = ($a + $b), $a
          }
        }
        
        # вариант использования для конечных массивов:
        # PS: каждый раз будет создаваться этот массив, поэтому этот способ лучше использовать с кешированием
        
        PS> (fib)[5] # 5-е число Фибоначчи
        5
        PS> (fib)[5, 10] # 5-е и 10-е числа
        5
        55
        PS> (fib)[5..9] # числа с 5-го по 9-е
        5
        8
        13
        21
        34
        
        # варианты использования для бесконечных "массивов":
        
        PS> fib | select -Skip 5 -First 1 # 5-е число Фибоначчи
        5
        PS> fib | select -Skip 5 -First 5 # числа с 5-го по 9-е
        5
        8
        13
        21
        34
        PS> fib | select -Index 5, 10 # 5-е и 10-е числа
        5
        55
        Ответить
        • красиво.. "но нет"
          Ответить
          • - Иди сюда, - я потянул его на себя и обнял. - Теперь всё будет хорошо. Я с тобой. Но хочешь ты этого или нет, а вставать нам нужно. Мне надо собираться на работу, а тебе на пары.
            Ответить
          • - Иди сюда, - я потянул его на себя и обнял. - Теперь всё будет хорошо. Я с тобой. Но хочешь ты этого или нет, а вставать нам нужно. Мне надо собираться на работу, а тебе на пары.
            Ответить
    • Рассказ Витька Вечером после работы и учёбы я наконец дошёл до дома, после вчерашнего в голове ещё остался шум,но не стал покупать выпивки,думал пройдёт так. Меня встретил дядя Миша,он стоял курил в коридоре
      Ответить
      • - Так, никаких сачкистов в моём доме не будет! - наигранно грозно сказал я.
        Ответить
      • - Так, никаких сачкистов в моём доме не будет! - наигранно грозно сказал я.
        Ответить
    • Меня забанили или ГК глючит? Application-halted-pitux всё время. При логине первый раз pitux, второй - нормально. Плюс/минус ставить могу, а комментарий писать - нет. С другой учётки тоже application-pitux.
      Есть мысль, что Страйкер забанил меня по IP вместе с доктором Смегмой.
      Ответить
      • С утра всё лагало и были application halted периодически. Сейчас вроде норм.
        Ответить
        • Буду надеяться, что восстановится. Мы-то в одном и том же часовом поясе, утро у меня тоже должно было закончиться.

          Вот такой багор: https://github.com/1024--/govnokod.ru-userscripts/pull/2#issuecomment-905319520

          Если забанили, то за то, что качал ГК для статистики для Десктопа )))
          Ответить
          • У Полины дампов нету случаем, а то поди можно и не напрягать сервер?
            Ответить
            • Какие-то дампы и на xyz должны быть.
              Ответить
              • В универ мы решили идти раздельно, чтобы не вызывать лишних сплетен, но не успел я зайти в преподавательскую, как ко мне бросилась Марина.
                Ответить
            • Уже успел скачать, к сожалению.
              Правда, пастбин не дал вставить вывод скрипта статистики: оффенсив питушня, можно постить только с платных аккаунтов как приватную пасту. Похоже, из-за логинов со словами на f.
              Ответить
              • Да пастбин вообще стрёмный стал, нафиг он сдался...

                В начале года они все блюпринты от факторио ёбнули, бейс64 видите ли им не нравится.

                З.Ы. Можешь через gist'ы выкладывать, у гитхаба вроде нету дебильных ограничений.
                Ответить
                • Как-то я смотрел летсплеи, и не очень понятно, нафиг вообще сдалась эта фактория, если можно просто программировать на функциональном языке программирования? Полезного будет явно больше, чем от построенных виртуальных конвейеров и производственных линий.

                  https://bartoszmilewski.com/2021/02/16/functorio/
                  Ответить
                  • Я шёл в деканат и чувствовал себя студентом, которого вызвали на ковёр и собираются песочить. Я догадывался, по какому поводу меня вызывают, хотя подсознание задавало вопрос: "Как, так быстро?".
                    Ответить
                • https://gist.github.com/1024--/13fe424ec0f31d9a870678d85fec93e8
                  Ответить
                  • Какой data science )))
                    Ответить
                    • Анна Сергеевна и вправду была как пантера. Её глаза метали молнии, а голос иногда издавал такой ультразвук, что слышать это было невозможно.
                      Ответить
                  • > Топ 250 пользователей по среднему объёму комментария:(всего 67641 штук)
                    > 129	superhackkiller1997 (#7225)	422.46 1094к
                    > 131	TheCalligrapher (#2091)	420.55 272к
                    > 143	wvxvw (#988)	397.84 5088к
                    
                    > Топ 250 пользователей по среднему количеству букв в комментарии:(всего 67641 штук)
                    > 116	superhackkiller1997 (#7225)	319.36 1094к
                    > 122	wvxvw (#988)	311.70 5088к


                    Слава wvxvw, как писателя длиннючих комментариев, несколько преувеличена.
                    Ответить
                    • - Я же вас предупреждала! Я же вам говорила, что никаких романов со студентами заводить нельзя. Так мало того, что вы меня ослушались, вы ещё и с парнем его закрутили. Так ещё и с каким? С Рамашевым! - затем её голос стал тише, и уже спокойным тоном она продолжила: - Его отец постоянно находит для нас спонсоров. В общем, мы закроем глаза на эту историю, если Павел вернётся домой. В противном случае мы вынуждены будем вас уволить...
                      Ответить
                  • Круто. Я аж устал листать.
                    Ответить
                  • А почему в моей базе имена длиннее 22 символов обрезались? Возможно, потому что я за основу взял чью-то базу, чтобы меньше напрягать сервер, и сканировал только оставшихся. Ладно, таких имён оказалось всего шесть, исправлю вручную.
                    Ответить
                    • Сначала жертве обрезают пароль до 14 символов и логин до 22 символов
                      Затем дополняют оставшееся место нулями
                      Затем преводят в верхний регистр
                      Ответить
                      • Зачем? Зачем?
                        Ответить
                      • Затем жертву заставляют назвать свой пароль.

                        Говорят, что делиться со всеми своим паролем — это хорошо.

                        Затем жертве говорят, что, если будет задумываться над происходящим, то её взломают.

                        Зомбирующий говорит : "Пароль? Пароль?"
                        Ассистенты зомбирующего повторяют: "Пароль? Пароль?"

                        Затем зомбирующий начинает подбирать пароли:

                        "частоиспользуемые пароли из словаря
                        пароли и цифровые вореции
                        цифробуквенные вореции"

                        ( Ворецируют несколько раз. )
                        Таким образом обеспечивается усиление смешивания цифр и букв.

                        Пароль подбирается 10-20 раз.
                        Затем текст меняют.
                        Ответить
                        • Сначала жертву заставляют привести свой адрес электронной почты в нижний регистр. Говорят, что хранить свой адрес в нижнем регистре — это хорошо, потому что он так занимает меньше места.

                          Затем просят посчитать от адреса, приведённого к нижнему регистру, контрольную сумму md5.

                          Затем убеждают опубликовать эту контрольную сумму. Говорят, что если жертва этого не сделает, то никто не увидит её лика.

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

                          Зомбирующий говорит: «Граватар! Граватар!»

                          Ассистенты зомбирующего повторяют: «Граватар! Граватар!»

                          Затем аватарку меняют.
                          Ответить
                • > блюпринты от факторио

                  Это типа скрипты, по которым можно через бота всякую питушню автоматически построить можно? Или там просто расположение, а тыкать мышкой надо вручную по какому-то референсу?
                  Ответить
                  • Просто чертёж с координатами и свойствами объектов. Можно руками расставлять по нему, можно роботами автоматически.
                    Ответить
                    • Тут проблема в том, что последовательность действий имеет значения. Скажем, если строить стенку 3 на 3, можно себя там тупо замуровать, если неудачно построить, т.е. :
                      ###
                      #@# // замурован в стене
                      ###


                      Хотя если роботы там только летающие, проблемы с этим быть не должно. Но если какими-то скриптами строить это самим протагонистом(есть ли для этого API?), такой багор вполне возможен.
                      Ответить
                      • Есть моды, которые строят скриптом персонажем на призраках.

                        https://mods.factorio.com/mod/autobuild

                        Ну есди ты сверху на себя чертёж ёбнул — ССЗБ, а иначе крайние построятся раньше, пока будешь подходить. Если не построились — у тебя нет нужных предметов, значит и не построятся. А вообще, ставь мод с джетпаком и на боись багров.
                        Ответить
                        • Я посмотрел летсплеи и пришел к выводу, что мне в это слишком лениво будет вникать. Я в "OpenTTD" и "The Incredible Machine" уже наигрался в своё время.
                          Ответить
                          • А что там в OpenTTD было вникать? Разобраться с тремя видами кривых сигналов?

                            Она ж на самом деле убогая шоппц
                            Ответить
                            • > тремя

                              В факторио всего джва ;(

                              А что там за третий тип помимо обычных и chain'ов?
                              Ответить
                              • Path. Который в принципе заменяет предыдущие два.
                                Ответить
                                • Технически Block signal в факторио это комбинация block и exit из TTD, а chain — кобенация entry и combo.
                                  Аналогов path signal в факторио нет.
                                  Ответить
                                  • Ну вот в факторио явно чего-то не хватает...

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

                                    В опенттд походу можно описать такую дорогу без ёбли с кобенаторами?
                                    Ответить
                                    • С кобенаторами есть проблема, что нужно либо сразу считать самый длинный теоретический тормозной путь с самого начала или корректировать систему на ходу. Если перекрыть блок, когда поезд уже не успеет затормозить — он проскочит сигнал (Попался так: сделал «безопасный» переход через рельсы. Когда перешёл с угля на ядерное топливо — поезд проскочил сигнал и всё же задавил меня).

                                      А двустороннее движение по одной рельсе — зашквар. Не зря сигналы по умолчанию односторонние.
                                      Ответить
                                      • > тормозной путь

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

                                        > А двустороннее движение по одной рельсе — зашквар.

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

                                          > Дёшево и сердито
                                          Будто рельсы стоят дорого. Я обычно строю типовой чертёж, потому что кто знает, куда мне захочется повести рельсы потом. Переиспользуемость и модульная конструкция!

                                          > А мне нравится.
                                          Имхо — геморроя много. Его при настройке станций хватает. Равномерная загрузка-разгрузка, расписания, отключение-включение станций, настройка количества поездов, загрузка/выгрузка только нужных предметов в нужном количестве...

                                          > Дёшево и сердито
                                          Будто рельсы стоят много. Я к тому же обчно строю типовыми чертежами, потому что кто знает, куда и откуда мне захочется повести рельсы потом. Модульность и переиспользуемость!
                                          Ответить
                                          • > Равномерная загрузка-разгрузка, расписания, отключение-включение станций, настройка количества поездов, загрузка/выгрузка только нужных предметов в нужном количестве

                                            – офигеть, это всё есть в факторио? Да тогда опенттд вообще грешно даже упоминать рядом
                                            Ответить
                                            • > Да тогда опенттд вообще грешно даже упоминать рядом

                                              Насколько помню, у них один из основных разрабов -- кто-то из старых опенттд'шников.
                                              Ответить
                                              • Не стоит забывать, что опентдд это не совсем оригинальная разработка
                                                Ответить
                                                • Я привык к жёсткому обращению к себе; ещё с учебки - к жёстким приказам. Привык, что никто не будет меня жалеть. Да я даже не знал нихуя, что со мной можно как-то по-другому. А Андрон возится со мной, как с хрустальной вазой, словно боится, что могу разбиться от неосторожного обращения. Целует, ласкает, сосёт так, что искры из глаз летят, разламывает... Мне хочется вывести его из себя, заставить разозлиться, чтоб у него сорвало крышу и чтоб он всё сделал больно, сильно, жёстко... И даже когда я оставляю засосы на его теле, специально, словно метки, утверждая на него свои права, хоть и временные, он молчит. А мне нравится эта иллюзия обладания, этот самообман.
                                                  Ответить
                                              • Я постоянно себе напоминаю, что как ни крути, а Андрей - не мой. Андрей - того парня, что на фотографии. И тут же говорю себе, что жизнь скоротечна и нужно пользоваться тем, что есть. Использовать её и наслаждаться временем, которое ещё осталось. Потому что рано или поздно наступит тот день, когда на пороге замаячит тот блондин с фото, и меня попросят удалиться. И вот тогда мне придёт пиздец. Я не буду скулить и жалеть себя, не буду устраивать истерик... это всё не моё. Я просто вздёрнусь у себя на кухне, не раздумывая ни секунды. Потому что не станет Андрея, не станет и меня. Один хуй, жизнь без Андрея смысл бы потеряла. Потому что я люблю как безумец, и мне жаль, что по-другому я не умею.
                                                Ответить
                                            • Разве это не выглядит... автоматизированным:
                                              https://i.imgur.com/T5ZabtB.png
                                              Ответить
                                              • О круто факторку обсуждают.
                                                Ответить
                                                • Я написал заявление по собственному. И вот теперь стою перед Андреем и слушаю гневную тираду в мой адрес. Он орёт так, что содрогаются окна в его кабинете, а я как долбоёб - смотрю на него и улыбаюсь. Разозлил!
                                                  Ответить
                                              • > https://i.imgur.com/T5ZabtB.png

                                                У меня это ассоциируется с https://i.imgur.com/PBZXDvp.jpg
                                                Ответить
                                                • > У меня это ассоциируется с https://i.imgur.com/PBZXDvp.jpg

                                                  https://i.redd.it/fs5i4kgon8b51.jpg
                                                  Ответить
                                                  • https://i.imgur.com/pPvm6y1.jpg
                                                    Ответить
                                                    • Выпавший коннектор внизу отлично дополняет картину.
                                                      Ответить
                                                      • - Хорошо... - доносится сверху, словно подстёгивая и провоцируя на дальнейшие действия.
                                                        Ответить
                                                    • они хоть подписаны
                                                      Ответить
                                                    • И ничто не кажется таким правильным, как расстегнуть его ремень. Подцепить бегунок его ширинки и стащить с него штаны. Я коротко облизываюсь, глядя на алую головку стоящего члена. Не делая ненужных фраз, не мучая ожиданием, просто накрываю губами его влажный от смазки член, втягивая его, как в вакуум.
                                                      Ответить
                                                  • - Падай, - приказным тоном говорю ему, указывая на диван.
                                                    Ответить
                                                • Да тут всё просто!
                                                  Зелёные провода идущие по правым столбам передают отрицательное среднее количество железа в одном блоке (сундуках относящихся к одному вагону). Красные провода в каждом блоке — показывают количество железа в текущем блоке. Эти провода попарно идут к каждому выкладывающему инсертеру, которые настроены выкладывать при общем сигнале железа >= 0.
                                                  Кобенаторы слева умножают количество железа в блоке на 1, создавая развязку между блоками, чтобы значения из соседних блоков не суммировались. Сверху есть кобенатор делящий общую сумму на отрицательное количество блоков, чтобы и передаёт результат по зелёной линии, о которой говорилось в начале. Красная линия, идущая по левым столбам, передаёт общую сумму на станцию, где на её основе принимается решение, нужно ли заказывать ещё один поезд.
                                                  Ответить
                                                  • Это верилогом генерилось или риталином?
                                                    Ответить
                                                    • - Вставай, - хриплая команда срывается с его уст.
                                                      Ответить
                                                  • Я ощущаю себя так, словно меня облили бензином и подожгли. Только этот жар чертовски приятен, и от члена во рту хочется стонать и усиленно работать языком. Солоноватый вкус члена настолько кайфовый, что, несмотря на явное сопротивление моего горла, я продолжаю заглатывать член до основания, словно от этого зависит моя жизнь. Колени саднят от постоянного скольжения, но дойти до конца - цель номер один. Я усиленно отсасываю, работаю, как машина, не сбиваясь и не сбавляя темпа... Полукруг языком по головке, губами по стволу и до упора внутрь. Раз за разом, чаще, охотнее. Пока густая струя спермы не ударяет по губам, не скатывается с подбородка и не падает на пол. Андрей дрожит, прикрыв глаза, дрожащими кончиками пальцев водит по моим губам, размазывает вязкую жидкость.
                                                    Ответить
                                                • Секунда, и Андрей влипает своими лопатками в холодную стену. Я заведён до предела, нетерпелив. Сметаю его губы своим поцелуем, вжимаюсь в него настолько, что задыхаемся. Чувствую взаимное желание и возбуждение. Мало воздуха, мало места, мало терпения. Губы пульсируют, щетина оставляет красные следы на лицах... насрать. Чувствую, что он пытается перехватить инициативу, и это не может не радовать. Ведь всё именно так, как хотелось давно: словно снимаемся с ручника и летим вперёд...
                                                  Ответить
                                              • Я хочу уйти, правда хочу. Потому что я боюсь, что потом будет сложнее, невозможнее, больнее. Я боюсь, что придётся унижаться, просить, чтобы он меня не бросал. И пока я при здравых мыслях, я хочу это сделать. Другое дело, что уйти нихуя не получается. Он мне звонит, и я иду, каждый раз давая себе обещание, что это в последний раз. Но стоит мне оказаться в его руках, почувствовать его стояк, который так нагло упирается в меня, как мне сносит крышу. И я нарушаю данное себе обещание...
                                                Ответить
                                            • Я всегда уважал силу и красоту, которой в моей жизни не хватало, поэтому я и научился распознавать их в других людях. А Андрюха обладал обоими этими качествами. Вообще от него веяло такой силой и уверенностью, что, казалось, все окружающее это чувствовали.
                                              Ответить
                                          • > Я обычно строю типовой чертёж

                                            Да я тоже, но мне лень их юзать пока роботов нету или они медленные.

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

                                            Сигналы руками расставлять скучно. А в дереве из джвунаправленных рельсов достаточно расставить сигналы на входе и выходе станций.

                                            Ну можно посолить chain'ами перекрёстки при желании, но и без них норм.
                                            Ответить
                                            • Сигналы тоже в типовом чертеже. У меня всё просто — размер сетки равен расстоянию между ЛЭП. В каждом чертеже присутствуют 2-4 ЛЭП (на выходах из блока сетки). ЛЭП идёт посередине между рельсами. Сигналы стоят по обе стороны от ЛЭП. При строительстве нужно совместить одну ЛЭП чертежа с ЛЭП к которой подводишь и красота — автоматически есть питание везде, все рельсы идут строго по сетке, если через 9000 часов решишь соединить одну часть сети с другой — всё сходится.
                                              Ответить
                                              • Покажи пример на Ютубе, пожалуйста
                                                Ответить
                                                • Сдерживаюсь. Цепляю пальцами презерватив и порционный лубрикант из кармана своих брюк. Между зубов - обёртку, на ладонь - холодный гель и пальцем - внутрь. Раскатываю латекс вдоль члена и не спеша начинаю входить, распирая мягкие стенки. Горячо. Настолько, что начинает лихорадить. Впиваюсь губами между его лопаток, покусываю, оставляя следы, и продолжаю вдалбливаться резче, сильнее, грубее - так, как хотелось давно. Я ускоряюсь, чувствую, как по моей спине стекают капли пота к копчику, чёлка прилипла ко лбу.
                                                  Ответить
                                              • Он плавно переворачивается на живот, выгибается в пояснице и смотрит через плечо, закусив нижнюю губу. Меня начинает вести, причем вести так беспощадно, что хочется просто вставить без подготовки и вытрахать каждый блядский стон из этих любимых губ...
                                                Ответить
                                            • - Повернись, - срывающимся голосом говорю ему.
                                              Ответить
                                          • А потом взгляд на фотографию, что на тумбочке, переводит, и у меня внутри всё ломается. Это гораздо больнее, чем если бы мне все рёбра сломали.
                                            Ответить
                                        • - Красивый ты, - говорит он с хрипотцой. - Ты красивый, Вань.
                                          Ответить
                                      • Я и в душе не ёб, что такого Андрей нашёл во мне. Красивый и статный мужик, большой начальник. Да при желании он мог позволить себе кого угодно, но почему-то трахается со мной. Всегда ловлю на себе его задумчивый и ласковый взгляд. Лёжа на кровати, он всегда ласкает своими пальцами мои переломанные уши, водит своими влажными губами по моим шрамам. От его жилистых и сильных рук моё тело превращается в пластилиновую поделку, которую швырнули в костёр и та, в свою очередь, тут же начинает закипать и изменять форму...
                                        Ответить
                                    • Тот, другой, был очень красивым. Вполне потянул бы на какую-то фотомодель. А я совсем не такой, даже близко. За пятнадцать лет тренировок в спортзале мне столько раз ломали нос и уши, разбивали губы, что я уже и не смог бы сосчитать. Статус начальника охраны обязывал быть в форме. Своим рельефным телом я ещё мог похвастаться, а на свою красоту я давно забил большой и толстый...
                                      Ответить
                                  • Я знал, что у Андрея есть любовь всей его жизни. В нашей крюинговой компании ходило много слухов на этот счёт. Кто-то говорил, что его любовник давно умер, кто-то - что его любовник подставил Андрея и ему пришлось разорвать с ним все отношения. Мне было похер на все эти разговоры. Я знал лишь одно: на прикроватной тумбочке Андрея стоит рамка с фотографией, где запечатлён он сам, улыбающийся и очень счастливый, обнимающий того самого парня.
                                    Ответить
                                • Я всегда смотрел трезво на жизнь. И никогда не обольщался на этот счёт. Я всегда напоминал себе, что я для Андрея - запасной аэродром. Знал, что с ним я просто потому, что крутые биг-боссы вовсе не цельнометаллические. Им тоже хочется простых человеческих удовольствий, им хочется человеческого тепла, разговоров ни о чём... и трахаться.
                                  Ответить
                              • Маршрутный (или проходной у них там называется, я уже не помню)
                                Входной
                                Выходной

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

                                И ещё какой-то там есть, типа самый обычный. Надо посмотреть в вику

                                В принципе, сёмантически наверное тоже два вида
                                Ответить
                                • Меняю угол наклона, задеваю его простату. Его дырка начинает пошло хлюпать, и из его рта вырывается протяжный стон. Биг-босс, блядь! Я держу его за задницу так сильно, что руки начинают дрожать и каждая вена видна на них. Хватаю его за горло - до страстного хрипа, слетающего с губ Андрея. К себе поближе, влипая мокрой от пота грудью в такую же спину. Целую шею, за ухом, щеку. Ловлю его губы, не сбавляя темпа, как сумасшедший. Вздрагиваю, вхожу по самые яйца, замираю на пару секунд, теряю возможность дышать, слышать и даже смотреть. В носу густой, концентрированный запах смазки пота и секса... Падаю на него сверху и замираю, чувствуя всем своим телом, как бешено колотится сердце Андрея и он подрагивает. Сука, кончил!
                                  Ответить
                              • Я не хочу даже думать о том, что было бы, если бы я тогда не взял из дома зонтик. Что было бы, если не пошёл дождь, если бы Пашу не окатила водой из лужи машина. Продолжать можно долго, но нужно ли? Не слишком ли много "если"? Судьба непредсказуема. Твоё счастье или разочарование ждёт тебя именно в тот момент, когда это нужно, и ты никак не можешь его изменить или ускорить. Время расставляет эти сюрпризы судьбы так, как нужно, и мы никто, чтобы этому сопротивляться. Нужно быть собой и идти прямо. И тогда время обязательно нам поможет... обрести счастье!
                                Ответить
                            • Вообще-то там сейчас 6 видов сигналов.

                              https://wiki.openttd.org/en/Manual/Signals#path-signals
                              Ответить
                              • Где ты там шесть насчитал?
                                Ответить
                                • https://wiki.openttd.org/uploads/en/Manual/Yapp%20signalgui.png - вот прямо тут
                                  Ответить
                                  • Через пару минут я покидаю офис компании и ухожу прочь...
                                    Ответить
                                • block
                                  one-way block
                                  path
                                  entry
                                  exit
                                  combo

                                  Но entry-exit-combo это семантически часть одной системы
                                  one-way block — способ указать на односторонность системы

                                  Семантически я бы выделял три вида сигналов всё-таки
                                  Ответить
                                  • Block и one way block это одно и то же

                                    Entry/exit/combo по сути тоже (одна система)

                                    У меня шесть не выходит. Ну это дело такое, никакой глубины игре все эти сигналы не добавляют, пусть их там будет 36
                                    Ответить
                                    • А вообще всё хуйня, у меня в «автомобилях» никаких «сигналов» нет. И в «самолётах» тоже.
                                      Ответить
                                      • Вы все пиздите о какой-то непонятной хуйне

                                        Давайте лучше про программирование, компьютеры, сети, операционные системы, или, на худой конец, о
                                        Ответить
                                      • > А вообще всё хуйня, у меня в «автомобилях» никаких «сигналов» нет.

                                        А как же «светофоры»? А «указатели поворотов»?
                                        Ответить
                                      • В твоём городе светофоры ещё не поставили?)) Или у вас все на автопилотах?
                                        Ответить
                                        • На регулировщиках с полосатыми палочками.
                                          Ответить
                                          • А можно регулировщицу в короткой юбочке?
                                            Ответить
                                            • Нельзя, аварийность поднимется.
                                              Ответить
                                              • Понятно, чего они в КНДР только и стоят: там регулировщиц больше, чем автомобилей
                                                Ответить
                                            • > регулировщицу

                                              С "палочкой"?
                                              Ответить
                                              • Что за палочка? Гомоккок?
                                                Ответить
                                                • Гомоиконы
                                                  Ответить
                                                • Homo_cock
                                                  Ответить
                                                • Ты как будто не в 2021-м году и не на говнокоде

                                                  Какие у регулировщиц палочки могут быть, угадай
                                                  Ответить
                                                  • Twix
                                                    Ответить
                                                    • левая или правая?
                                                      Ответить
                                                      • милкивей утонул
                                                        сладкая парочка развелась


                                                        кстати, куда делся милкивей?
                                                        Ответить
                                                      • Грудь?
                                                        Ответить
                                                        • Средняя

                                                          "вспомнить всё" смотрел?
                                                          Ответить
                                                        • Ни одобрения, ни возражения в ответ не последовало, а только грюкнула щеколда, и степенные шаги вынесли одного из них наружу. Второй повозился, спустил воду в унитазе, и сквозь шум воды я едва услышал удаляющиеся шаги.
                                                          Ответить
                                                    • Пепел озадаченно упал с сигареты, но я не решился затянуться снова, как не решился спуститься на пол и заглянуть под стенку. Несколько минут я пялился в дверь, возбуждаясь от звуков удовольствий, пока дыхание одного из них не сбилось и не затряслось, словно его прошиб сильный озноб. Вспыхнул скромный стон, который, я был уверен, издал обладатель ноги в белом кроссовке, и всё стихло. Зашуршала одежда, нога скрылась из проёма, и кто-то отчётливо прошептал:
                                                      Ответить
                                      • - Колючий, - смеётся Андрей. - И как мне теперь тебя целовать?
                                        Ответить
                                    • Андрей появился через две недели. И я с ужасом обнаружил, что его не было не полгода, как казалось, а всего четырнадцать дней. Он приехал прямо ко мне домой. Извинялся за что-то, рассказывал о проблемах в новом филиале и как ни в чём не бывало гладил моё лицо. И мне даже стало стыдно за то, что я всё это время не брился...
                                      Ответить
                                  • Я так сильно привык к мысли, что однажды мне придётся уйти и остаться одному, что совсем не был готов к этому. Я словно исчез ото всех. Словно меня и не было никогда. И вся моя жизнь медленно, но верно начала катиться по пизде. Я внезапно обнаружил, что у меня куча свободного времени и мне нечем занять эту пустоту. Я потерял вкус к еде, алкоголю, сну и тренировкам. Мне стало никак. Я начал брать дополнительные смены на новой работе, чтобы чувствовать себя живым и нужным. Новый начальник - сальный боров, сказочный долбоёб, и мне даже становится жаль, что его безопасности ничего не угрожает...
                                    Ответить
                                • - Мой прощальный подарок, - говорю я, охуевая от своей смелости...
                                  Ответить
                              • В «Bahn» мне сгнилизация больше нравится. Там можно самому расставлять датчики, самому задавать расписания...
                                Ответить
                                • о-па

                                  а ну покажи ссылку

                                  это случайно не Railroad X?
                                  Ответить
                                  • Нет.

                                    https://jbss.de/

                                    P.S. Графика в «Bahn», конечно, отстой, но ценность его в том, что в нём уже нарисовано 100500 схем для разных городов с реальным путевым развитием и с реальными расписаниями.
                                    Ответить
                                    • Да, ты уже приносил.

                                      Графика реально отстой. Лучше уж в Train Director позалипать
                                      Ответить
                                      • Я даже начинал писать конвертер графики из «OpenTTD» в «Bahn», но забросил.
                                        Ответить
                                        • Я стал мучить его взглядами. Поначалу это были взгляды задумавшегося человека, взгляды, случайно застывшие на его ушах или кадыке. Потом началась трусливая пальба в глаза с отводом взгляда всякий раз, когда он ловил его на себе. Прохвост клюнул. Мои взгляды стали мешать ему сосредоточиться на тренировке, на игре, на обычном созерцании жизни вокруг. Я не давал ему спокойно есть и пить. Я заставлял его оборачиваться на аллеях. Конечно, после такого артиллерийского огня Прохвост завёлся и уже сам сверлил меня взглядом. В поисках меня он рассеянно оглядывал трибуны, он невзначай появлялся на моих тренировках, в столовой он трогательно держал меня в поле обзора, чтобы успеть занять стол вместе со мной, что, в конце концов, ему удалось.
                                          Ответить
                                      • Однако Прохвоста я решил соблазнить. Пусть и для меня он разведёт свои ноги пошире.
                                        Ответить
                                    • Остаток дня прошёл в так-такном ликовании. Ещё бы! Вместо того, чтобы удовлетворять самого себя в туалете, можно в этом же туалете удовлетворяться вдвоём! Однако в столовой за столом, который вмещает четырёх парней, а приютились все шесть, ужин навёл меня на мысль о закрытом мужском обществе (пять пластилиновых девушек-гимнасток я не посчитал). И следом вторая мысль объявила, что туалетный секс двух парней не есть какое-то откровение, а простые мелочи жизни, которые происходят там и сям пусть и за хлипкими, но непрозрачными стенками.
                                      Ответить
                                  • "Так-так!.." - я плотоядно улыбнулся его спине и подождал, пока он скроется из виду.
                                    Ответить
                                • Я мысленно с ним пересёк зал, после чего мягко спрыгнул с унитаза, аккуратно, как взломщик, отодвинул щеколду и молниеносно распахнул дверь кабинки, чтобы та предательски не скрипнула. Двумя прыжками я добрался до выхода и осторожно выглянул на улицу. По тропинке, ведущей от туалета, шагах в пятнадцати удалялся парень в оливковой майке и шортах цвета стыдливого румянца. Я его узнал. Это было легкоатлет по кличке Прохвост. Бесцветный парень: не примечателен ни лицом, ни телом, ни голосом. Ходит с постоянной хитрой улыбкой и появляется везде, где собираются вместе больше пяти человек. Он не суёт нос не в своё дело, но всюду хлопает своими глазами с каким-то немужским разрезом.
                                  Ответить
                              • - Что это было? - выдыхает он шёпотом, куда-то в пустоту.
                                Ответить
                            • Мне не жаль той работы. Мне не жаль, что некоторые друзья отвернулись от меня, узнав о том, что я гей. Мне немного горько от того, что испортились отношения с родителями, но я не теряю надежду на то, что они меня поймут.
                              Ответить
                          • Он стоит у кухонной плиты, я подхожу к нему сзади и, как всегда, целую за ушком. Как же я счастлив!
                            Ответить
                        • - Привет, милый, ты уже дома? - спрашивает ласковый голосок.
                          Ответить
                      • > роботы там только летающие

                        Да, изкоробки только летающие. Они ещё забавно строят, выбирая объекты по рандому. Из-за этого иногда на конвейеры всякое говно попадает или кобенаторы в хуй пойми каком состоянии оказываются.

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

                              Какой unspecified behavior )))
                              Ответить
                              • - Идём! - он слегка кивнул головой и почти протянул мне руку.
                                Ответить
                            • Въебал на заполнение болшой кусок:
                              https://i.imgur.com/vsVnPvD.jpeg
                              https://i.imgur.com/q6fql2g.jpeg
                              https://i.imgur.com/WaYT4VD.jpeg
                              Вполне последовательность.

                              В реальной фабрике у тебя будет — роботы берутся с разных точек, берут из разных сундуков → прилетают неравномерно; не хватает на всех ботов → некоторые задания скипаются → когда бот освобождается, он летит на то задание, которое игра обрабатывает сейчас; не хватает ресурсов → смотри предыдущий пункт.

                              Когда все эти пункты накладываются (особенно часто это происходит при бетонировании больших площадей, потому что не у всех просто так лежит десяток тысяч роботов на случай, если кому захочется забетонировать квадрат 100х100), это начинает выглядеть, как случайный выбор.
                              Ответить
                              • > Вполне последовательность.

                                Эээ... А у меня оно выглядело как рандомные помехи на экране. Может у персонального и стационарного разная логика?
                                Ответить
                                • У персонального да, какая-то помесь глобальной со своей.
                                  Ответить
                                  • На крыше сарая, где серые гребни шифера в пятнах рыжих лишайников чередовались с зелёными канавками мха с позолотой спелых коробочек, Прохвост на цыпочках зашагал почти до противоположного конца и сел у самого края. Я посмотрел вниз, убедился, что падать высоко, и осторожно зашагал в его сторону.
                                    Ответить
                                • Я медленно поплёлся, сохраняя дистанцию приличия. Мы пересекли главную аллею и нырнули в ту часть леса, где я ещё ни разу не был. В нём поодаль стояли двухэтажные дома для сотрудников лагеря с тёмными круглыми окнами, отчего они казались удивлёнными. Прохвост ускорил шаг, но постоянно оборачивался с травинкой во рту, которую он сорвал по пути. За последним удивлённым домом, словно выйдя из зарослей, неожиданно возник сарай из добротных листов железа, который вплотную примыкал к забору. Прохвост легко взобрался на него, словно это был и не забор, а турник, довольно посмотрел на меня сверху и поднялся на крышу сарая. Пока я взбирался на забор, он оглядывался по сторонам и в конце подал мне руку, которую я не преминул сжать.
                                  Ответить
                              • О! Это был великий соблазн прикоснуться к нему, окружить его ладонь своими пальцами и сжать её, расслабить и снова сжать. Идти за ним с пульсирующей лаской.
                                Ответить
                            • На следующий день я лениво прогуливался, разнеженный чувством, что меня разыскивают. Прохвост не заставил себя долго ждать. Вскоре я увидел его, шагающего с напускной увлечённостью, метрах в сорока от меня, всё в тех же шортах и майке. Мы встретились взглядами. Минут через пять он нагнал меня, прошёл вперёд и обернулся.
                              Ответить
                          • > удовлетворяются первые

                            Походу очередь всё-таки проворачивается на рандомную позицию каждый тик, чтобы более честной балансировки добиться.
                            Ответить
                            • Надо было как в "G-code" делать (язык для станков с ЧПУ).

                              А для кучи роботов отдельный многопоточный вариант, чтоб с семафорами, мьютексами.
                              Ответить
                              • Ну g-code императивный. А блюпринты декларативные.
                                Ответить
                                • Прохвост посмотрел на меня торжествующим взглядом и прошептал:
                                  Ответить
                              • Медленно, съезжая попой с края крыши, я встал на забор и залез в окно, под которым лежал матрас. Впрочем, матрасы здесь были везде. Они плотными рядами высотой в два человеческих роста громоздились на сосновых стеллажах, поставленных в некоторых местах так тесно, что между ними и одному человеку пришлось бы пробираться боком. Кисло пахло отсыревшей тканью и пылью. От крыши парило.
                                Ответить
                            • Задачи, которые не удалось удовлетворить, кидаются в конец очереди, и ждут, пока она опять дойдёт до них. Так что из-за того что у тебя в начале оказалось 1000 задач на бетонирование, а бетона нет, вся система не встанет.
                              Ответить
                              • > конец очереди

                                А, ну вот видимо поэтому очередь и вращается постоянно.

                                Попробовали задиспатчить несколько задач, а свободных роботов в этой сети нету. Эти задачи ушли в конец очереди. На следующий тик, когда робот освободился, ему досталось уже что-то другое.
                                Ответить
                                • Да, именно так. Поэтому, когда роботов или ресурсов не хватает, начинает казаться что задачи выдаются рандомно.
                                  Ответить
                                  • - Никто не сказал, я видел вас, - выпалил я, охваченный страхом.
                                    Ответить
                                • - Кто тебе сказал? - наконец выдавил Конь, задыхаясь от гнева, вывалив вперёд нижнюю челюсть.
                                  Ответить
                              • Фраза застигла Коня врасплох. Я воспользовался его замешательством и попытался высвободиться. Полиэстеровые шорты любезно позволили мне перевернуться под Конём, и я с размаху ударил левой рукой ему в висок. Мы оба вскочили на четвереньки и замерли, испепеляя друг друга взглядом.
                                Ответить
                            • - Вставай на забор и залезай в окно, - сказал он хитро и, изогнувшись, исчез под крышей.
                              Ответить
                          • Даже если отбросить мою осведомлённость, что он занимался сексом с парнем в туалете, я был более чем уверен, что мои взгляды не дают ему покоя. Хитрецы любят интриговать, но не выносят, когда интригуют их.
                            Ответить
                        • Он сел напротив меня с мелким хитрым торжеством и долго, как аутист, расставлял содержимое подноса на столе. Ел он лениво, и взгляд его длинной дугой от тарелки к окну скользил по мне дважды. Пару оставшихся за столом мест заняли боксёры, которые увлечённо перекидывались между собой междометиями и странностей поведения Прохвоста не видели. Я прищуривался и внимательно смотрел Прохвосту в губы, отчего он, сам того не замечая, три раза их вытер и пять раз облизнул. К чему-то вспомнилось, что в туалете я не слышал поцелуев. Видимо, секс был без прелюдий. Тоже неплохо. Несколько раз он заглядывал мне в тарелку и ускорялся, дабы закончить трапезу вместе со мной, но я не доел и торопливо встал из-за стола. Прохвост посмотрел на меня сокрушённо, словно я недослушал его важный бессловесный монолог.
                          Ответить
                      • Захожу, как всегда, в квартиру. Пахнет чем-то вкусным.
                        Ответить
                    • Как же важен в нашей жизни выбор. Ведь если его сделать неверно, то вся жизнь может пойти под откос. Какой выбор сделал я тогда? Я выбрал семью...
                      Ответить
                  • На улице снова осень. Жёлтые листья шуршат под ногами, исполняя свою последнюю песню.
                    Ответить
                • - Тебя начальство обыскалось. Рвёт и мечет. Бросай всё и иди в деканат. Там, видимо, что-то серьёзное, потому что Анка в бешенстве.
                  Ответить
            • "Я его обожаю!", - подумал я и поцеловал парня в пухленькие губки.
              Ответить
            • "Я его обожаю!", - подумал я и поцеловал парня в пухленькие губки.
              Ответить
          • Напиши Пионеру Сталевару чтоб разбанил.
            Ответить
            • Да ладно, такой шанс заняться делами вместо ГК!
              Ответить
            • - Как ты разрабатывал ему очко в проходе между стеллажами.
              Ответить
          • > Мы-то в одном и том же часовом поясе, утро у меня тоже должно было закончиться.

            А как вычислили часовой пояс Смегмы?
            Ответить
            • Часовой пояс не Смегмы, а Борманда.
              Кстати, может быть IP Борманда тоже сначала захватили, если он выходил с того же провайдера, что я или смегма.
              Ответить
              • А как ты с Бормандом в одной таймзоне? Ты там в омском море купаешья что ли?
                Ответить
                • Нет, в Оби
                  Ответить
                  • Блядь, я и хотел написать "обское море", а случайно написал омское.

                    Борманд, а ты там купался?
                    Ответить
                    • Не знаю про Борманда, а я не купался. Максимум ноги мочил. Я не академпитушок.
                      Ответить
                      • В смысле ты не был в академгородке?

                        А хуль ты вообще там делаешь, а?
                        Ответить
                        • Я там был, но не живу.
                          Ответить
                          • А живешь ты где?
                            Ответить
                            • В Новосибирске, на правом берегу.
                              Ответить
                              • И давно?
                                Ответить
                                • Всю жизнь.
                                  Ответить
                                  • Ты меня не путай

                                    В Новосибе живут только Борманд и 1024, но они не пишут от гостя.


                                    Или ты, 1024, лишился своего ника в результате смегмовых войн?
                                    Ответить
                                    • Это и есть 1024, его забанили.
                                      Ответить
                                    • Я 1024--. Могу плюсовать/минусовать и читать.

                                      https://github.com/1024--/govnokod.ru-userscripts/pull/2#issuecomment-905319520

                                      Вчера писал во время вайпа и читал ГК скриптом (см. гист в этом треде с результатами). Только раз мне оставили право читать, забанили не за скрипт, а за комментарии.

                                      А в Новосибирске (точнее, в А-е) живёт ещё пара-тройка человек. Были тут какие-то студенты и преподаватели ФМШ и может НГУ.
                                      Ответить
                                      • Понятно

                                        Писать и читать роботом нужно с VPSки, видимо )
                                        Ответить
                                      • Тебе забанили айпи или аккаунт?
                                        Ответить
                                        • Думаю, IP, т.к. я со скриптового питуха (не путать со скриптовым) заходил и имел тот же эффект.
                                          Ответить
                                        • Конь переменился в лице и стремглав бросился ко мне. Он схватил меня за подмышки и почти что вздёрнул, неся вперёд, пока не припечатал к стенке душевого отсека. Острый угол вонзился мне в спину. От боли я выпрямил голову и ударился затылком об этот же самый угол. Вдобавок Конь головой ударил меня в живот. Дыхание спёрло, я беспомощно дёрнул руками, и он меня поставил на пол, локтем надавив мне на шею.
                                          Ответить
                    • Не, я боюсь в открытых водоёмах плавать. Да и идти туда далековато, я же не академовская.
                      Ответить
                      • > Не, я боюсь в открытых водоёмах плавать.
                        Чего?
                        Ответить
                        • - Я тебя понимаю, - засипел я от удушья. - Тебе нужно было разрядиться, вот Прохвост и отсосал тебе. Не ссы, я никому не скажу.
                          Ответить
                      • - Ты меня не за того принял, - он снова перешёл на ядовитый шёпот, но гнев уже покинул его, оставив рубец беспомощности. - Я тебе не пидор какой-нибудь, слышишь?!
                        Ответить
            • Конь сжал кулаки так, что костяшки побелели. Я окончательно пришёл в себя. Страх неприятными щупальцами томился где-то под животом, призывая мой разум разрядить обстановку.
              Ответить
        • - Ну, всё, всё, встаю. Ты яичницу с чем будешь? С помидорами или с ветчиной?
          Ответить
        • - Ну, всё, всё, встаю. Ты яичницу с чем будешь? С помидорами или с ветчиной?
          Ответить
    • А бан был ради рекламы хуза.
      Увидел знакомую панельку с тегами, прослезился. Только почему Иньо не вставляет в урлы превентификаторы пробелизации?
      Ответить
      • А, прошу прощения. Он вставляет, но уже в сам пост.
        Ответить
      • А что, у нас стока как на ГК, только длинного, больше нет? Я уже так привык к питушне вида
        SELECT *
        FROM ...
        WHERE comment_id IN
          (SELECT MAX(comment_id)
          FROM ...
          GROUP BY post_id)
        ORDER BY commend_id DESC
        LIMIT x, y
        Ответить
        • У Полины есть документация по правилам фильтрации?
          Можно ли задать состояние, или фильтр функционально чистый и инициализируется на каждый комментарий? С состоянием можно полинин сток фильтровать до состояния говнокодовского.
          Ответить
          • > состояние

            В глобалку сохрани, до релоада переживёт. Если надо дольше -- локалсторедж.

            Там можно даже основной код заманкипатчить...
            Ответить
            • Там какое-то тело функции в настройках. Надо пердолить питушню вида if (!window.aaa) window.aaa = {}; А вдруг Полина разрешила делать красивее.
              Ну и читать весь код ради того, чтобы понять фильтр, тоже не хочется.
              Ответить
              • Не, судя по коду всё как раньше -- просто парсится тело это при старте контроллера, потом вызывается перед вставкой каждого коммента.
                Ответить
                • Я понял, что в двух словах я не объясню, зачем я рассказал ему об этом. Отматывать события к началу, когда я вошёл в душевую, и признавать свою ошибку было бессмысленно. На помощь пришёл сам Конь, уже сбитый с толку:
                  Ответить
            • - А мне зачем сказал? - зло спросил Конь и сильнее надавил на горло.
              Ответить
          • А забанивание у Полины годное. Так в несколько кликов всё говно смегмы можно смыть и список Страйкеру передать.

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

              Да скопируй себе статику куда-нибудь и играйся, кросс-доменные запросы вроде открыты были.
              Ответить
              • - Давай, выкладывай, что тебе надо. Какие условия?
                Ответить
            • > забанивание у Полины годное.
              Фильтруйте смегму по частому постингу.

              datediff между постами в пару сек. всё это время был неплохой эвристикой.
              Ответить
              • Надо обучить нейронку для распознавания гомосятины.

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

                  Какой-нибудь debounce/throttle фильтр по времени для срунов.
                  Ответить
                  • Ну добавит он sleep(random), не особо интересное решение, имхо.
                    Ответить
                    • Конь резко двинул ногой по моим лодыжкам, и я всем своим весом рухнул на пол, прочувствовав седалищными костями пол в душевой.
                      Ответить
                  • Скорее просто банить "воскресших" через годы после последнего сообщения.
                    Ответить
                    • Тогда Смегма через моих обезъянок просочится
                      Ответить
                      • Их ведь поменьше, чем всех старых пользователей?
                        Ответить
                        • Да, не больше семи

                          а напомните, как Смегма старых ломает? Там хеш пароля в дампе?
                          Ответить
                          • Я думаю банальной активной атакой в ширину (подбирая юзера под простые пароли прямо запросом на сервер).
                            Ответить
                            • Это решается тротлингом при логине. Три раза обосрался с паролем -- подожди минутку

                              А еще лучше это решается гугл каптчей.

                              Если конечно Доктор Смегма не купил себе сетку на /8 двадцать лет назад.


                              Эта дырка -- какой-то феерический обсёр, даже для пыхера
                              Ответить
                              • > тротлингом при логине
                                > подбирая юзера под простые пароли

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

                                    Зря он что ли проверялку проксей на делфи писал несколько лет назад?
                                    Ответить
                                    • Вот это говно нужно банить просто автоматом
                                      https://geonode.com/free-proxy-list
                                      Ответить
                                    • Сколько у него проксей? Если порядка сотни, то ему придётся брутить десятки тысяч пользователей по нескольку раз, то и они кончатся.
                                      Ответить
                                      • В принципе да, он не китайский ботнет всё-таки.
                                        Ответить
                                        • Тот случай, когда дыры друг друга кэнселят: из-за слабой капчи при регистрации, теперь сложнее взломать существующих юзеров. Гениально!
                                          Ответить
                                          • Кстати тут говорили о пейволл как о средстве ограничения доступа к инфе.

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

                                    6 предлагает тротлить неудачные логины.

                                    Причём я бы сделал экспоненциально, как в андроиде.
                                    Сначала 30 сек, потом минуту, потом две...
                                    Ответить
                                    • Я едва успел открыть рот. Было дико неудобно: член вываливался изо рта, захватить его глубже мешала его рука, не отпускавшая шорты. Я пытался спустить их ниже, но он резко их поднял вверх. Я в удивлении поднял на него глаза. Он озирался и, увидев, что я бездействую, снова надавил мне на затылок. Мои губы поцеловали его пальцы. Тогда я попытался взять член в свои руки, но и здесь Конь меня осёк.
                                      Ответить
                                  • - Если кому скажешь - убью, и никто не определит, где у тебя лицо, а где - жопа!
                                    Ответить
                                • Ты ввел неверный логин пароль, я поставил плюсик твоему IP.
                                  Ты второй раз его неверно ввел -- я второй поставил.

                                  На третий раз я забанил тебя на минуту.

                                  На пятый неверный раз -- на пять минут.

                                  Что не так?
                                  Ответить
                                  • > Что не так?
                                    Прокси.
                                    Ответить
                                    • Во-первых список открытых прокси есть, по нему нужно банить всё (я не думаю, что Смегма Интернет сканирует в поисках проксей -- он его берет из открытых источников)

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

                                Можно поподробнее для тех кто пропустил прошлые серии?
                                Ответить
                                • Ну если я верно понял Борманда, то Др.Смегма тупо пытался логиниться от всех пользователей с простыми паролями, и сервер ему не мешал

                                  Блин, да даже винда мне после пяти неудачных попыток залогиниться предлагает попить чайку пару минут
                                  Ответить
                                  • > Там хеш пароля в дампе?

                                    Я не понял откуда у него дамп хешей паролей.
                                    Ответить
                                    • Нет хешей, он просто перебирает простые пароли для всех пользователей.
                                      Ответить
                                      • > перебирает простые пароли для всех пользователей
                                        Странно. У меня все эти годы был довольно простой пароль из одних цифр.

                                        Причём настолько простой, что я всё удивлялся как его не подобрали.
                                        Ответить
                                        • > У меня все эти годы был довольно простой пароль из одних цифр.

                                          https://imgur.com/a/ZusA6er
                                          Ответить
                                          • В следующий раз он настиг меня у душевой. Озираясь по сторонам, он схватил меня за футболку на спине и поволок за угол. Он не проронил ни слова. Резкими нервными движениями швырнул меня на ворох кленовых листьев и достал уже настоявшийся член. Но и теперь мне насладиться им не удалось. Правой рукой он быстро дрочил, а левой держал меня за лоб и отводил мою голову в сторону всякий раз, когда я пытался приблизиться к члену. Я лишь беспомощно, словно змея, высовывал язык. Мои попытки добраться до члена в конце концов привели к тому, что он схватил меня за волосы и отклонил голову назад. Я не понимал, зачем я ему здесь. И оргазм его прошёл мимо меня. Подёргиваясь телом, словно в сильной икоте, он тыкал членом в воздух перед моим лицом, выпуская струйки спермы, которые перелетали через мою голову и окропляли стену. Вдобавок к этому он потерял равновесие и шагнул на меня так, что я оказался почти что сбоку от него. Я решил воспользоваться его упадком сил и лизнул ему яйца. Конь словно очнулся и отпихнул меня за голову.
                                            Ответить
                                        • 3584?
                                          Ответить
                                          • Не, ну не настолько. Длина была 8 символов.
                                            Ответить
                                            • была 8? а щас сколько?
                                              Ответить
                                              • Он явно не собирался ничего отвечать и шуршал листьями, намереваясь пойти прочь.
                                                Ответить
                                            • > Длина была 8 символов.

                                              31415926?
                                              Ответить
                                              • Лол. Нет конечно.

                                                Вообще надо было и не менять. Интересно за сколько бы он подобрал.
                                                Ответить
                                                • Моё раздражение ему было понятно, но всё, что он мог сделать - это подойти ко мне и молниеносно провернуть захват головы правой рукой.
                                                  Ответить
                                              • Tам было что-то вроде «35843584»
                                                Ответить
                                                • Лучше всего использовать что-то вроде «D5\*_sW@jG(,>|3_W+ghHG»
                                                  Ответить
                                                  • А запоминать его как? Хранить в особом месте?
                                                    Ответить
                                                    • keep ass
                                                      Ответить
                                                      • - Пусти! - упирался я. - Если тебе стрёмно с парнями, так не приходи больше. Я обещал, что никому не скажу.
                                                        Ответить
                                                  • Лучше всего «correcthorsebatterystaple».

                                                    https://xkcd.com/936/
                                                    Ответить
                                                    • Раскрасневшийся, я яростно смотрел на него, готовый броситься с кулаками. Но он был доволен, как никогда. С хулиганской ухмылкой на лице он, как тогда в душевой, вяло не то ударил, не то погладил меня рукой по левой щеке, потом по правой щеке. Я ждал, что он ответит, но вместо ответа в меня полетел воздушный поцелуй, снова эта недопощёчина, после которой он приложил кулак к моим губам и легонько отклонил мою голову назад, словно удар в замедленном действии.
                                                      Ответить
                                                  • Но он не отпускал меня, а только елозил ладонью по волосам на моём темени.
                                                    Ответить
                                                • - Ты чего ворчишь, Топила? - игриво, с хулиганской интонацией пробубнил он.
                                                  Ответить
                                              • - Что, теперь и срать меня с собой возьмёшь? - не унимался я.
                                                Ответить
                                            • напомнило LANMAN
                                              1. Длина пароля пользователя ограничена 14-ю символами. 
                                              
                                              2. Если длина пароля больше 14 символов, хеш не может быть вычислен.
                                              
                                              3. Пароль приводится к верхнему регистру.
                                              4. Пароль кодируется в системе OEM code page.
                                              
                                              5. Пароль дополняется нулями до 14 байт.
                                              Ответить
                                              • > Пароль приводится к верхнему регистру

                                                Чтобы о капслоке не думать?
                                                Ответить
                                                • Ну да.

                                                  Ты можешь запомнить пароль в разном регистре длинее 14 символов? Я -- нет. Точно забуду регистр

                                                  Потому MS и позаботилась. Это, правда, было четверть века назад, но все помнят.

                                                  Как в анекдоте про выебать козу
                                                  Ответить
                                                  • > запомнить

                                                    Запомнить то я его запомню... Но вбивать каждый день я его реально заебусь.
                                                    Ответить
                                                    • У меня на компе длинный пароль, набивается на моторной памяти.
                                                      Ответить
                                                      • > набивается на моторной памяти

                                                        В этом и проблема, я такие пароли очень быстро набираю и порядок клавиш иногда путается. А медленно я его не помню.
                                                        Ответить
                                                        • самое время для touchid
                                                          Ответить
                                                          • > для touchid

                                                            Да можно сделать, сенсоры вроде не дорогие. Китайцы даже за штуку какое-то говно продают.

                                                            Для разлочки включенного компа само то.
                                                            Ответить
                                                            • сделаешь внешний блок и будешь по usb подключать? или по вячеславу блютусову?)
                                                              Ответить
                                                              • Ну там судя по картинке они уже usb'шные. Х.з. конечно что там за дрова эти сумрачные гении написали.
                                                                Ответить
                                                                • а отпечаток где хранится? внутри адской машинки? или в кейчейне нормальной оси?
                                                                  Ответить
                                                                  • Хрен знает... Мне кажется там всё-таки просто сенсор, а все алгоритмы уже на компе. Вряд ли хуйнюшка за тыщу рублей способна что-то там проверять и хранить.
                                                                    Ответить
                                                                    • Цель пути с каждой минутой приближалась. На горизонте уже были видны высотки родного города.
                                                                      Ответить
                                                                  • Нежданный попутчик заинтересованно осмотрел салон автомобиля, последил за стрелкой навигатора, указывающей наш путь на дисплее мультимедийника, согрелся и - как ему казалось, незаметно - стал посматривать на меня.
                                                                    Ответить
                                                                • Под колёса ложились километры. Боковым зрением посматривал на своего пассажира. Славянское лицо. Светлые глаза и светлая же непослушная чёлка, выбивающаяся из-под вязаной шапочки. Куртка размера на два больше, чем нужно, замызганные грязью джинсы и кроссовки. Обычный пацан, подобных полно на улицах. Заметно было, что он замёрз и тщательно пытается скрыть это.
                                                                  Ответить
                                                              • Несколько секунд поразмышляв, парнишка открыл дверь и робко примостился на пассажирском сиденье. Я закрыл приспущенное окно, переключил передачу и, пропустив попутку, влился в поток транспорта.
                                                                Ответить
                                                            • - У меня тоже временами их не бывает. Я еду в ...; если тебе по дороге, садись, подвезу.
                                                              Ответить
                                                          • Притормозил и приоткрыл стекло на передней пассажирской двери. В него недоверчиво заглянула облепленная снегом мордашка молоденького паренька.
                                                            Ответить
                                                        • Я очень долго задрачивала typeracer, чтобы не путался порядок. Скорость печати у меня так себе (всё-таки не надо писать public static final по сто раз на дню), но аккуратность вроде норм.
                                                          Ответить
                                                          • Показалось, что в голосе пацана промелькнула грусть.
                                                            Ответить
                                                        • Когда я проезжал соседний с моим город, фары выхватили бредущую по обочине дороги фигурку. Не раз вот так, на дороге, подбирал голосующих людей и подвозил их - мне всё равно по пути, а кому-то это могло помочь. Жизнь штука интересная, вдруг когда и сам так буду брести куда-то вдаль и какой-нибудь водила так же решит сделать небольшое доброе дело.
                                                          Ответить
                                                      • Конец марта. Пронзительный влажный ветер. Ледяная крупа сыпалась с неба, дворники моего автомобиля смывали льдинки с лобового стекла вместе с грязью, разлетающейся из-под колёс встречных машин. В салоне не громко играла любимая музыка, и каждый километр приближал меня к дому. Я возвращался с работы, отработав очередную вахту.
                                                        Ответить
                                                    • Конь пошёл было за мной, но вовремя спохватился, что от стояка топорщатся шорты. Он засунул руки в карманы, оттянув их вниз, и как будто с праздным видом направился в другую сторону.
                                                      Ответить
                                                • у кого кстати что на капслок стоит?
                                                  Ответить
                                                  • Капслок и стоит, я же не емаксоид.

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

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

                                                    – а никто не сталкивался с описанием протокола аськи раньше?
                                                    Ответить
                                                    • У них протокол 100500 раз менялся.

                                                      Когда «Аська» принадлежала израильской компании «Mirabilis», протокол добывали исключительно реверс-инжинирингом.

                                                      Когда её выкупила компания «AOL», протокол сменился на совместимый с «AIM», но с какими-то расширениями.

                                                      Хакеры публиковали протокол, но он через каждые несколько месяцев безнадёжно устаревал. Протокол из эпохи «AOL» можно нагуглить по названию «OSCAR».

                                                      Потом «Аську» выкупила компания «Mail.ru». Дальше я уже не следил, что было с протоколом, потому что она начала терять популярность. У мейлрушного «Агента» точно был свой протокол.
                                                      Ответить
                                                      • > Хакеры

                                                        – создатели квипа и миранды?
                                                        Ответить
                                                        • Ну да. Каждый раз, когда протокол менялся, нужно было ждать, пока создатели «квипа» и «миранды» его снова отреверсируют.
                                                          Ответить
                                                          • ну я думал, у тебя будут ссылки, ты же скилловый

                                                            ладно, как-нибудь погуглю OSCAR
                                                            Ответить
                                                            • На каком-то старом диске у меня лежат описания и фрагменты кода. Давно к аське не обращался.
                                                              Ответить
                                                              • - Пока готовится, иди в душ, шмотки свои грязные бросай в машинку, постираем.
                                                                Ответить
                                                            • Получив утвердительный ответ, налил и своему гостю. Порылся в шкафу, подал ему полотенце, одни из своих шорт и футболку.
                                                              Ответить
                                                          • Пока готовился кулеш из армейской тушёнки, достал из холодильника кусок сала и банку груздей. Налил себе рюмку. Спросил:
                                                            Ответить
                                                        • Гаражный кооператив находился в пяти минутах ходьбы от дома. Загнав своего железного коня в стойло, достал из ящика на стеллаже пару бутылок водки и упаковку армейского сухого пайка.
                                                          Ответить
                                                      • Я пользовался ICQ и ржал над мамкиными революционерами с их квипами и мирандами, когда у них по три дня нихуя не работало

                                                        --Почему не пользоваться аськой?
                                                        --Ну как же, она же показывает рекламу!
                                                        Ответить
                                                        • Я пользовался «Jimm», когда он был единственным клиентом «ICQ» для «J2ME». У меня просто не было выбора.

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

                                                              Внезапно ссылка на «OSCAR» нашлась тут:
                                                              https://ru.wikipedia.org/wiki/OSCAR
                                                              Ответить
                                                              • мобильная ось с настоящей многозадачностью

                                                                сегодня можем о таком только мечтать лол
                                                                Ответить
                                                                • Он изо всех сил старался выглядеть старше и значительней, пытался пить со мной наравне. Искоса наблюдал.
                                                                  Ответить
                                                              • - Забей. Живу один. Гости не часто бывают, наливай.
                                                                Ответить
                                                            • Оставив его на кухне, помылся сам. Запустил стирку и вернулся к своему гостю. Видно было, что пацан всё ещё стесняется. Так мило покраснел, сидя за столом, прям как девчонка.
                                                              Ответить
                                                          • Когда тот вышел из ванной, мои шорты, затянутые поясом, смотрелись на нём скорее как юбка, да и футболка была намного больше, чем нужно. Налил по второй.
                                                            Ответить
                                                        • я на аське сидел не очень долго, конечно

                                                          но что-то не припоминаю, чтобы там случалось "по три дня нихуя не работало"

                                                          а на оф клиенте я не сидел и дня, кажется
                                                          Ответить
                                                          • Плохое быстро забывается, это мозг так работает

                                                            https://www.cnews.ru/news/top/icq_otklyuchil_qip_i_miranda
                                                            Ответить
                                                            • Надо отдать должное разработчикам, что они за неделю всё чинили. А то ведь бывает, что прокрастинаторы-старпёры бросают своё детище...
                                                              Ответить
                                                              • >неделю

                                                                повторите для вооон того студента:)

                                                                наверное писать клиента меседжей интереснее, чем унылое говно на пхп, потому Пресвитер Синьор и забил
                                                                Ответить
                                                              • Перешли в комнату, парня после выпитого заметно пошатывало. Достал пару подушек, предложил ему располагаться, сам стал искать что-нибудь типа крема. Нашёлся тюбик вазелина.
                                                                Ответить
                                                            • А где тут про три дня?
                                                              Ответить
                                                              • Там написано как часто это происходило. Сколько времени занимает "первая возможность" вон вспомнил Инкаунс
                                                                Ответить
                                                                • не буду спорить, давно было, но три дня и тем более неделю даунтайма квипа мне вспомнить сложно, конечно

                                                                  впаша тогда кстати кмк ложился не сильно реже :-)
                                                                  Ответить
                                                                  • Я осторожно уселся сверху на его ноги, почти касаясь своей ширинкой задорно вздёрнутую вверх попку. Выдавил из тюбика несколько капель прямо на покрытую нежным пушком шею. Лёгкими, практически невесомыми касаниями, одними кончиками пальцев, рассредоточил смазку от розовых ушек до "кошачьей" точки. Нежно поглаживая от ушей до плеч, от кантика стрижки до лопаток, приступил непосредственно к массажу. Вверх-вниз, слева направо, справа налево, круговыми движениями лаская нежную, тёплую и такую приятную на ощупь кожу.
                                                                    Ответить
                                                              • А кончики ушей покраснели. Привстав, потянул вверх. Движения были уже не слишком скоординированы. Помог стянуть. Из-под футболки на свет показалось хорошо развитое молодое тело.
                                                                Ответить
                                                          • Сорокаградусная расслабила, и напряжение постепенно спадало. Сидели на кухне как старые знакомые и говорили ни о чём и обо всём. Пару раз выходили покурить на лоджию. Пацан вёл себя всё более естественно. Наконец заметил. Он старался как можно аккуратнее поворачивать шею. Скорее всего продуло. Бутылка подходила к концу, и я закинул удочку:
                                                            Ответить
                                                      • - Ставь сумку в ванную, там всё в стирку, пошли машину в гараж отгоним и зайдём в магазин.
                                                        Ответить
                                                    • Занесли сумки, я разулся, заскочил на кухню и, обследовав содержимое холодильника, сказал:
                                                      Ответить
                                                  • Тем временем подкатили к подъезду моего дома. Вышли из машины, открыв багажник, я вручил парню одну из сумок, сам взял вторую. Поднялись на этаж, открыл дверь и пропустил своего попутчика вперёд.
                                                    Ответить
                                              • >> Пароль кодируется в системе OEM code page.

                                                Если я с машины, использующей одну OEM-кодировку, по сети логинюсь в машину, использующую другую OEM-кодировку, мой пароль не распидорасит?
                                                Ответить
                                                • распидорасит, конечно

                                                  не используй там русские буквы, если сядешь потом на исландскую локаль
                                                  Ответить
                                                  • Хорошо, что в «Windows» кодировка «EBCDIC» не использовалась: можно было полагаться хотя бы на расположение латиницы, цифр и базовой пунктуации.
                                                    Ответить
                                            • - Это что было? - спросил я его, когда он пришёл в себя и запихнул член в шорты, отчего они стали топорщиться.
                                              Ответить
                                        • ловишь на живца?
                                          Ответить
                                          • Пацан подо мной, сначала немного напряжённый, расслаблялся всё больше и больше. Я начал потихоньку заигрывать, в конце прохода скрещивая руки и делая несколько поглаживаний от ушей до плеч тыльными сторонами ладоней. При этом как бы был вынужден сильнее наклоняться вперёд, касаясь через одежду своим членом то одной, то другой половинки, то пристраивая его между. Напрягшаяся было при первых касаниях попка после нескольких повторов, как мне показалось, стала едва заметно выпячиваться, подаваясь навстречу касающемуся её через одежду моему члену.
                                            Ответить
                                        • Я сел на пол и медленно вытер руками губы, сожалея, что ничего не вышло.
                                          Ответить
                                      • - П’шёл нах... - бросил он испуганно в ответ и направился к выходу.
                                        Ответить
                                    • Во влажных мечтах.

                                      Там просто вчера кто-то увидел в исходнике несолёный md5, вот речь и зашла о дампе. Самого дампа, я думаю, ни у кого нет.
                                      Ответить
                                      • Я просто спросил, как он брутит.

                                        Хорошо, что хешей нет (был бы пиздец).

                                        Плохо, что нет каптчи и тротлинга по айпи.

                                        Я бы поставил гугл каптчу: она смегмовы прокси сама знает, и заставит его искать светофоры.
                                        Ответить
                                        • Уж лучше уняк-ослоняк, чем гугл.
                                          Ответить
                                          • Религия не позволяет?

                                            Про освежитель спрашивать не буду)
                                            Ответить
                                            • Что лучше: маленькое и глупое зло, или вселенское и продвинутое?
                                              Ответить
                                              • В данном вопросе гуглкапча злом не является.

                                                Впрочем, можно сделать и свою каптчу. Только список зашкваренных сетей придется собирать самому
                                                Ответить
                                                • «Х-р» вообще при каждом логине показывает капчу и срать он хотел на то, кто из какой сети.
                                                  Ответить
                                                  • Хакер Секатор?
                                                    Ответить
                                                    • Вздох Максима, вырвавшийся при этом, был оглушительным. Не выпуская из руки твёрдого и горячего члена, несколько раз медленно вздрочнул его. Спина парня прогибалась навстречу моим движениям, а попка задиралась всё выше и выше.
                                                      Ответить
                                                  • Сам во все глаза смотрел на открывающуюся из-под медленно ползущей вниз полосы ткани ложбину. Ниже, ниже... впадина между ягодицами постепенно раскрывала скрытые до этого от меня тайны. Дойдя до половины открывающейся моим глазам восхитительной попки, шорты остановились. Сначала не понял причины, но, после того как заметил едва уловимое движение правой руки лежащего подо мной, быстро сообразил. Правой рукой проникнув под мешающуюся преграду, к паху парня, ощутил подтянувшиеся яички и, нежно обхватив довольно-таки приличный, такой горячий и напряжённый член своего нечаянного гостя, аккуратно провёл по стволу вверх, освобождая зацепившуюся за него ткань.
                                                    Ответить
                                              • Попавшее в мои загребущие руки прекрасное молодое тело реагировало на каждое движение пальцев, двигаясь им навстречу. Но продвижение вниз ограничивал пояс шорт и, собственно, сами шорты, поэтому, проникнув немного под них, пошёл в атаку. Пояс шорт был довольно-таки туго затянут, пальцы глубоко не проникали. Плавно повёл свои руки вдоль него от поясницы по бокам к втянувшемуся под моими горячими ладошками животику. Шаловливые пальчики расстегнули пряжку пояса, вернулись, проникнув под мешающийся кусок ткани. Я слегка привстал, ощущая обеими ладошками мягкий пушок ниже пупка, а пальцами нежно проводя по восхитительной на ощупь паховой области пацана (трусы тот тоже засунул в стирку), довёл руки до внешней стороны бёдер и, ощущая ладонями прохладную кожу, пальцами надавил на живот, заставляя его сползти с подушки мне навстречу и приподнять такие притягательные полушария, потянул шорты вниз.
                                                Ответить
                                          • Мягкими царапающими движениями прошёлся от плеч вниз по лопаткам, рёбрам, бокам и вдоль позвоночника, но копчик и то, что вокруг и около него, было скрыто моими старыми шортами. Начал пощипывающими движениями пальцев обеих рук спускаться вниз от шеи вдоль позвоночника.
                                            Ответить
                                        • Есть куча сайтов, на которых опубликован рейтинг самых слабых паролей. Уняку даже не нужно самому составлять словарь, всё сделали за него.
                                          Ответить
                                          • А Перу Сванте-Гюнтеру тоже не надо было самому пилить проверку пароля на слабость, а подключить cracklib, всё сделали за него.
                                            Ответить
                                            • Наконец он лежал передо мной полностью обнажённый.
                                              Ответить
                                          • намедни проходил тренинг по сесюрити

                                            посоветовали:
                                            1) белое не носить
                                            1) не использовать сериализацию
                                            2) если нельзя не использовать, то предпочесть джсон иксэмелю
                                            3) предпочесть ручное тестирование автоматизированному
                                            Ответить
                                            • > не использовать сериализацию

                                              Не обменивайся данными и тебя не взломают!
                                              Ответить
                                              • Отключите машину от Интернета

                                                Теперь вы в полной безопасности
                                                Ответить
                                                • > Теперь вы в полной безопасности

                                                  Неправда.

                                                  Вы забыли отключить машину от источника электричества.
                                                  Ответить
                                                  • Теперь питание компьютера можно отключить

                                                    ебать я старый
                                                    Ответить
                                                  • Сняв бёдра парня со своих, расставил его колени в стороны и приподнял таз так, что парнишка напоминал теперь лягушонка. Сам приподнялся на коленях и, придерживая его одной рукой за паховую область, второй направил свой давно уже твёрдокаменный член к отверстию. Головка легко ускользнула внутрь, даря непередаваемые ощущения. Затем Максим так подался назад, что член прямо-таки влетел на всю свою длину, а мои яйца хлопнули по его яйцам. Придерживая парня за ягодицы, дал ему немного времени на то, чтобы привыкнуть, а потом начал совершать осторожные движения.
                                                    Ответить
                                              • Выдавив на такое желанное отверстие входа вазелин из тюбика, обеими руками раздвинул ягодицы парня и большим пальцем правой руки начал вкруговую втирать его, нежно массируя. Смазав себе дорогу, взял в руку свой член и, проведя им несколько раз вверх-вниз, обнажил головку, мягко нажал ею на вход.
                                                Ответить
                                              • Максим подал попку навстречу моему члену и негромко простонал. Чуть не кончил при этом. Но я, раздвинув его ноги, уселся на колени, положив их себе на бёдра, обхватил левой рукой его уже давно готовый орган и стал его слегка подрачивать. Правой рукой судорожно открутил крышку с тюбика, приставил его к приоткрывшемуся отверстию и вкачал хорошую порцию смазки в прямую кишку. Следом за вазелином туда легко проник мой указательный палец. Нащупав простату, подушечкой пальца стал аккуратно гладить её, при этом совершая правой рукой возвратно-поступательное движение и наблюдая, как расширяется колечко ануса, а левой то слегка подрачивал пацану, то сжимал его яички. Затем в ход пошёл второй палец; они легко скользили благодаря смазке и расширившемуся отверстию. Через пару минут в ход пошёл и третий палец, не встречая никакого сопротивления, при этом сладкой музыкой в моих ушах звучали негромкие стоны парня.
                                                Ответить
                                            • Не использовать ios, потому что это проприетарная питушня, а Apple это evil company
                                              Ответить
                                              • > Apple это evil company
                                                > проприетарная питушня

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

                                                  И интелом тоже лучше не пользоваться: хуй знает чего они туда в чипсет насрали.
                                                  Ответить
                                                  • > И интелом тоже лучше не пользоваться: хуй знает чего они туда в чипсет насрали

                                                    В процессор и микрокод.

                                                    > Move over, Meltdown and Spectre. A new “Foreshadow” attack, alternatively called L1 Terminal Fault or L1TF, targets Intel’s Security Guard Extensions (SGX) within its Core chips.

                                                    Какое cесурити )))
                                                    Ответить
                                                    • Кончили мы практически одновременно, он упал грудью на подушку, а мой член, хоть и испустил струю семени, все ещё находился в напряжённом состоянии, и я, улёгшись на парня сверху, продолжал совершать фрикции до тех пор, пока член окончательно не обмяк.
                                                      Ответить
                                                  • > И интелом тоже лучше не пользоваться: хуй знает чего они туда в чипсет насрали.

                                                    Вот да. Надо чтобы RISC-V, и чтобы его можно было у себя в гараже распечатать на персональном ASIC-принтере.
                                                    Ответить
                                                    • > Вот да. Надо чтобы RISC-V, и чтобы его можно было у себя в гараже распечатать на персональном ASIC-принтере.

                                                      Блин! А я только писал что по-хорошему амуд и арм тоже говно.
                                                      И надо переходить на RISC-V, который спаяет на коленке j123123.

                                                      PS Кстати отрадно, что вы наконец-то смирились со смертью MIPS https://govnokod.ru/26528#comment536099
                                                      Ответить
                                                      • Так и лежали мы некоторое время, пытаясь отдышаться...
                                                        Ответить
                                                    • Сил уже практически не было. Не вынимая члена, наклонился, поцеловал своего теперь уже любовника в шею, повалился на левый бок, потянул его за собой, устроив его голову на сгибе левой руки, пальцами лаская один из его сосков, а правой сжимая его яички и одновременно прижимая парнишку к себе.
                                                      Ответить
                                                  • > хуй знает чего они туда в чипсет насрали

                                                    Дык известно же, эта хрень в чипсете умеет полное удалённое управление (AMT), в общем-то это и не скрывается.
                                                    Ответить
                                                    • >AMT
                                                      да, я на него и намекал

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

                                                      Начав с довольно слабого арма за несколько поколений обогнали десктопный core i5 по IPC.
                                                      За счёт покупки передовых нанометров у TSMC у них выходит и лучшая архитектура, и лучшие тех. процессы.

                                                      А по performance/Watt они кроют вообще все высокопроизводительные цпу.
                                                      Ответить
                                                      • Зачем, зачем мы всё время кривим душой, говорим слова, в которые не верим сами, целуем других, и этот поцелуй неприятен нам самим? Неужели все люди растеряли хоть какие-нибудь элементарные моральные принципы? Мы все считаем себя дьяволами во плоти, но ведь это не значит, что нужно реализовывать это состояние по отношению к другим. Почему бы не стать хоть на одну минуту ангелом и не подумать о том, как же больно мы делаем другим? Моя рана уже сочится больше 10 месяцев. Те, кто любил по-настоящему, меня поймут...
                                                        Ответить
                                                    • Я такой старый, что помню день, когда Apple решили что

                                                      > интелом лучше пользоваться
                                                      Ответить
                                                    • Я тебя люблю - три слова, которые возвышают до небес, когда их тебе говорят. Иногда бывает наоборот: услышав эти слова, хочется просто провалиться под землю, потому что человек этот тебе точно не нравиться - ну, если только в качестве друга. По крайней мере, для меня это так. Я лучше скажу правду о своих чувствах, чем просто буду дарить пустые надежды парню и тем самым дурить ему голову.
                                                      Ответить
                                                • Стоны переросли почти что в рёв, затем в тоненькие всхлипы. Максим приподнялся на руках и стал сам насаживаться, прогибая спину, как кошка, и стукаясь своей попкой о мои бёдра. Мне оставалось только стоять сзади него на коленях, придерживать за поясницу раздухарившегося партнёра, чтобы тот не соскочил с моего члена, и получать удовольствие.
                                                  Ответить
                                            • Уже не рассуждая, дёрнул завязки на своих штанах, мигом спустил их вместе с трусами и ногой откинул куда-то в угол. Уселся вновь на своё место. Руки вновь пошли гулять от шеи вниз по позвоночнику, теперь они не останавливались на пояснице, а мягко скользили вниз по прохладным, мягким и восхитительным на ощупь половинкам. Ладони при этом скользили по внешней стороне, а большие пальцы рук проходили по внутренней стороне, огибая по кругу и почти не касаясь розового колечка. При этом мой набравший силу орган то скользил по внутренней стороне бёдер, то, при наклоне вперёд, ложился на спину и проходился от копчика до подтянутых к животу яичек Максимки.
                                              Ответить
                                          • Отпустив попавшее в руку хозяйство парня, потянул шорты ниже. Взору открылось поросшее курчавыми волосиками розовое колечко ануса, небольшой шрамик на правой ягодице. Затем пришлось слезть, так как продвижению вниз мешал уже я сам. Стоя возле кровати, полностью снял с пацана шорты, при этом он извивался, почти как червяк, идя навстречу моему желанию, приподнимая то бёдра, то колени, то розовые ступни.
                                            Ответить
                                      • Даже у «Лурика» не было прямого доступа к серверу, насколько я понимаю. Ему просто выдали банхаммер.
                                        Ответить
                                        • Стояла прекрасная летняя погода. Было 28 августа 2010 г. Я впервые решился пойти с другом в гей-клуб. Для кого-то это покажется банальностью, но для меня это было целое событие. Конечно, ведь я шёл в гей-клуб! Поначалу было страшно - вдруг там я знакомых встречу или увижу такое, от чего у меня волосы дыбом встанут. Но и друзей я кинуть не мог... Ненавижу свой характер. Слишком уж я человечный, что ли. Но не в этом суть.
                                          Ответить
                                      • Сделав перерыв на несколько секунд, сорвал футболку с себя. Максим лежал, уткнувшись носом в подушку. Как говорят массажисты, воротниковая зона была уже достаточно, по моему мнению, обработана. Перешёл к следующей стадии.
                                        Ответить
                                    • Слава Богу нет.
                                      Ответить
                                    • Бегуны ушли, хлопнув дверью. Конь закрыл глаза и выдохнул. Я прижался к прохладной коже матов и шёпотом позвал его:
                                      Ответить
                                • В это время дверь склада распахнулась, и вместе со светом в него ворвались голоса. Конь присел, словно подкошенный, и, не отлипая руки от шорт, гуськом отполз от меня влево, дико озираясь сквозь стеллажи спортивной утвари. Бегуны принесли барьеры и громко составляли их вдоль стены. Нас они не видели и, думаю, даже не подозревали, что здесь кто-то есть. Однако на Коня страшно было смотреть, как он согнулся и таращил глаза, словно через бойницы наблюдал за неминуемо приближающимся врагом.
                                  Ответить
                              • Надо уже тренировать нейрушню.
                                Если на ГК не поверили в ко-ко-ко-пилот из-за его неспособности написать что-то годное, то проверять существующие коды и детектить антипаттерны чуть проще. Несолёный хэш из примера выше, например.

                                Чтобы на выходе после исправления питушни у программиста получался код, который хотя бы доктор Смегма не сломает.
                                Ответить
                                • s/md5/password_hash/
                                  Ответить
                                  • Некоторые форумные движки хэшируют пароли функциями СУБД. Если приходится менять СУБД (например, «MySQL» на «Postgre»), случается багор, потому что в «Постгресе» функций «sha1» и «sha2» нету. Есть расширение «pgcrypto» с функцией «digest», но чтобы его использовать, нужно дофига переписывать...
                                    Ответить
                                    • > хэшируют пароли функциями СУБД

                                      Начерта?

                                      > нужно дофига переписывать

                                      А что мешает хеширование унести в PHP, не натягивая ежа на ужа?
                                      Ответить
                                      • Тоже возник такой вопрос: почему валидировать не на сервере, а в базе.

                                        Кстати, а если я напишу for (i=0;i<1000;++i) hash=md5(hash);

                                        Это секурно? Или говно?
                                        Ответить
                                        • вроде был такой гк и даже не один
                                          Ответить
                                          • Почему спрашиваю.

                                            Допустим когда Страйкер писал ГК md5 был нормальным хешем. Но за 13 лет он перестал быть таковым.

                                            То есть имеет смысл сейчас писать for (i=0;i<1000;++i) hash=sha2(hash+salt);

                                            Чтобы если вдруг в ближайшие 15 лет sha2 сдуется, то было бы не так просто это всё распетушить.
                                            Ответить
                                            • А чего ты этим добьешься? Заставишь Смегму медленее (с нагрузкой на CPU) перебирать пароли?

                                              Лучше показать пользователю плашечку для ввода пароля и перехешировать его на ша2
                                              Ответить
                                              • > показать пользователю плашечку для ввода пароля

                                                А не надо ничего показывать. У тебя есть новый пароль, ты проверил его об старый хеш. Насчитывай новый хеш и радуйся.

                                                Или юзай password_hash из PHP, там уже всё это сделали как надо. Да, он умеет прозрачный апгрейд хеша во время логина!

                                                Именно поэтому я за PHP.
                                                Ответить
                                                • Так я про это и говорил

                                                  Пользователь логиница. Я беру его пароль, провеяб старый хеш, и перехеширую на новый

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

                                                  > Или юзай password_hash из PHP,
                                                  благодарю, но у меня более цисгендерные технологии

                                                  By default, Django uses the PBKDF2 algorithm with a SHA256 hash, a password stretching mechanism recommended by NIST.

                                                  Но я могу выбирать хешер, и даже Argon2.

                                                  https://docs.djangoproject.com/en/3.2/topics/auth/passwords/
                                                  Ответить
                                                  • > Так я про это и говорил

                                                    А, мне показалось "показать смену пароля".

                                                    Ну если ушёл в астрал -- останется с легаси хешем, что поделать. Не так это и страшно, на самом деле. Даже на MD5 до сих пор нету pre-image атак. Ну будет брутиться чуть быстрее, чем свежие.
                                                    Ответить
                                                • > Или юзай password_hash из PHP, там уже всё это сделали как надо. Да, он умеет прозрачный апгрейд хеша во время логина!

                                                  Звучит круто.

                                                  Только не пойму одного.
                                                  > Note that this constant is designed to change over time as new and stronger algorithms are added to PHP.

                                                  Если они будут менять алгоритмы от версии к версии, то как оно вычислит старый хеш для сверки при логине?
                                                  Ответить
                                                  • > то как оно вычислит старый хеш

                                                    Там в итоговый блоб сохраняются все параметры, а не только значение хеша. При проверке он будет юзать параметры из блоба, а не свежие дефолты. Потом пересчитает со свежими дефолтами и попросит тебя сохранить в базу обновлённый хеш.
                                                    Ответить
                                                    • А, то есть оно перед сверкой достаёт из хедера хеша используемый алгоритм+соль, вычисляет и если совпадает пишет новый алгоритм+соль+хеш?
                                                      Ответить
                                                      • Да, именно так. Реально грамотно всё сделали.
                                                        Ответить
                                                        • а почему ты про пхп удалил, бормондяша?
                                                          Ответить
                                                          • Мне тоже понравилось.

                                                            А встроенные для удобства кодеров эпсилоны в функции range() по плав. питухам это говно или нет?
                                                            Ответить
                                                            • > эпсилоны

                                                              При выводе чисел? Х.з., мне нравится эта идея. Кого там ебёт этот младший бит, погрешность вычислений всё равно намного больше как правило.
                                                              Ответить
                                                              • > При выводе чисел? Х.з., мне нравится эта идея.

                                                                А мы очень давно разбирали как реализованы плав. питух range во всяких языках.

                                                                https://govnokod.ru/11978#comment157376

                                                                И по-моему единственным языком где они работали более-менее нормально оказался именно «PHP».

                                                                https://govnokod.ru/11978#comment157356

                                                                Сразу видно где практический язык, а где теоретическая питузня для заедушных кукаретиков.
                                                                Ответить
                                                  • petuh_hash = 'MD5:[salt]:hash'
                                                    Ответить
                                                    • Хорошо зделали. По уму.

                                                      PHP — технология богов.
                                                      Ответить
                                                    • ну всё, приехали

                                                      На г-коде ПХП хвалят. Пойду я отсюда. Пускай вам Доктор Смегма про Артура Атарбековича в Лондоне расскажет
                                                      Ответить
                                                      • Он после этого комментария начал срать с новой силой.
                                                        Какой идиот ))) Такими темпами мы Страйкеру в понедельник полный список отправим. С учётом того, что в выходные будем пить, гулять и не записывать ни единого логина.
                                                        Ответить
                                                        • Ну да, в чём смысл тратить учётки, пока их не забанили?
                                                          Ответить
                                                      • > На г-коде ПХП хвалят

                                                        Постоянно.
                                                        https://govnokod.ru/16298#comment656848

                                                        А на чём по-твоему написаны ГК и Хуз?
                                                        Ответить
                                            • > было бы не так просто это всё распетушить

                                              Итереции, емнип, там совсем не ради сдутия алгоритма. А банально для защиты всяких макак с паролем 123.

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

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

                                                А вот сделать так, чтоб спиздя соль и хеш Смегма ломал бы по паролю в секунду пердя и грея атмосферу и платя за электричество -- вот это дело
                                                Ответить
                                            • >> Допустим когда Страйкер писал ГК md5 был нормальным хешем. Но за 13 лет он перестал быть таковым.

                                              А чем плох?

                                              Тем, что быстрый? Так можно «sleep» вставить.

                                              Или тем, что нашли коллизии? Так ведь легко сгенерировать пару паролей, у которых хэш совпадёт. В одном из этих паролей наверняка будут символы из эфиопского или из тайского языка. Сгенерировать пару, да так чтобы в обоих все символы были читаемыми, задача потруднее.

                                              А вот генерировать новый пароль по уже заданному хэшу пока ещё никто не умеет. По крайней мере, мне не попадался реальный пример «хорошего» хэша, к которому подходит 100500 паролей.

                                              Да и как правило коллизии обнаруживаются на больших данных (хотя бы больше килобайта), а тут у некоторых пароль из трёх символов.
                                              Ответить
                                              • > sleep вставить

                                                Лолшто? В хешкат?

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

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

                                                  Думаешь, захэшировали? Я нашёл дамп 90 миллионов учёток «Вконтакте» с паролями. Обнаружил там реальные пароли от своих старых учёток. Причём эти пароли не «123».
                                                  Ответить
                                                  • у тебя было несколько старых учёток?

                                                    впрочем, что я такое спрашиваю :-D
                                                    Ответить
                                                  • > Думаешь, захэшировали?

                                                    Олимпиадники Вконтакта решили, что хеширование сжигает слишком много тактов, и лучше сравнивать пароли через memcmp()
                                                    Ответить
                                              • А как правильно вставить sleep?

                                                Допустим, сделали задержку 10с. Смегмор сделал 1000 запросов, подождал 10с и получил 1000 результатов.

                                                С другой стороны, если сделать глобальную задержку на весь сайт, никто не сможет залогинится, пока Смегмор не подождёт 10000 секунд свои результаты.
                                                Ответить
                                                • > как правильно вставить sleep

                                                  Расслабить жопу и вставить...

                                                  Зачем тебе сервак блочить sleep'ом? Выдай юзеру ошибку в духе "подождите 50 секунд", сохрани таймштамп в базу. Если придёт раньше - ну скажешь "подождите ещё 20".
                                                  Ответить
                                                • Можно сделать задержку для IP-адреса. Тогда только те, кто сидит за тем же NAT-ом, не смогут залогиниться в течение 10000 секунд.
                                                  Ответить
                                        • > Это секурно? Или говно?

                                          Говно конечно. Соли нету, будет ломаться теми же табличками, что и просто md5().

                                          Посмотри как настоящий PBKDF2 устроен, к примеру.
                                          Ответить
                                          • >> будет ломаться теми же табличками, что и просто md5().

                                            Для этого сначала эти таблички нужно утащить с сервера.

                                            Гораздо хуже, что в «Граватаре» md5 и без соли, где хэши видны всему миру. А менять свой алгоритм «Граватар» не собирается.
                                            Ответить
                                        • Наконец, мы решили уйти из клуба. Со мной пошёл Азид и мой друг, который привёл меня в этот клуб. Домой идти не хотелось, и мы пошли в парк, посидели там ещё часа два, говоря ни о чём. Потом мы всё-таки решили идти по домам. Я, естественно, записал номер телефона моего нового знакомого. Пришёл домой, включил комп, но как-то не получалось у меня понять смысл того, что было написано на мониторе, мысли были где-то далеко-далеко.
                                          Ответить
                                      • Ночь подходила к концу. Было почти уже 5 утра. Тут включили медляк. Не раздумывая, мы с ним обняли друг друга и так танцевали - сердцем к сердцу.
                                        Ответить
                                      • Наткнулся на сообщение о том, что «Битрикс» даже некоторые вычисления через СУБД делает, например, считает разность между датами. Чувствую, если окунуться в «Битрикс», то «Говнокод» потонет в образцах «золотого» кода.
                                        Ответить
                                    • Через часа два я заметил парня, который очень лихо и красиво танцевал. Своим танцем он меня и привлёк. Я решил пойти и познакомиться с ним. Он представился как Азиз. Мы разговорились, потанцевали...
                                      Ответить
                                  • Пришли мы в клуб где-то в 10 вечера, но людей там уже было море. Для маленького Бишкека (Кыргызстан) это было, конечно, необычно. То, что я там увидел, быстро заглушило мой страх. Были очень симпатичные парни, белые, красные, чёрные, с задором в глазах - в общем, на любой цвет и вкус. Мы сели за столик. Рядом со мной сел друг и приобнял меня. Мне стало вдруг так хорошо! Мы пили, танцевали, орали - в общем, брали от этого вечера всё хорошее. То был праздник прощания с летом.
                                    Ответить
                            • Конь замолчал и нахмурил брови. Его нижняя челюсть медленно поползла вперёд. Он убрал ногу с плеча и посмотрел на меня сверху вниз, потом присел. Я видел, как бегал его взгляд от одного моего глаза к другому. Лицо было предельно внимательным, словно ему показывали нечто важное, от чего будет зависеть его жизнь. У меня ныл затылок и обе ягодицы, футболка спереди вымокла и липла к телу. Жутко хотелось всё это закончить, и уже было не важно, как.
                              Ответить
                        • И они уже все посчитаны.
                          Ответить
                      • Твои обезьянки уже встретились с Харамбе.
                        Ответить
                    • - Повторяю ещё раз! - он перешёл на крик и поставил свою ногу мне на плечо. - Я не пидор! Если кто кого и будет трахать, то это я - тебя!
                      Ответить
                  • - Условие одно, - сказал я, жадно глотая воздух. - Ты пойдёшь со мной в сарай.
                    Ответить
                • Байесовы питух будет плохо работать, т.к. у большинства здешних участников у самих речь довольно колоритная. Чтобы отделить стратегическое, глубокомысленное готсе от унякского готсе нужен general AI.
                  Ответить
                  • Байесовы питух средний азия ловит только примитивный спам из 90-х.
                    Не куплю, даже если бы фергана
                    Ответить
                • В меня с оглушительным свистом влетело ощущение избранности. Чудовищная ошибка мгновенно превратилась в бесплатный абонемент на посещение сарая в любое время с получением Коня в почти безраздельное пользование. И демарш самого Коня вылил на меня тонны благоухающего бальзама на душу, от которого я уже почти задыхался так же, как задыхался от его сильной руки, давящей на горло.
                  Ответить
              • Только теперь эта эвристика может перестать работать. Впрочем, никакие эвристики тут не нужны, это достаточно легко забанивается через NGK.
                Ответить
                • > Только теперь эта эвристика может перестать работать.
                  Знаю. Но как говорил один умный человек: «знания должны быть доступны всем». Мне интересно насколько нас внимательно читают
                  Ответить
                • Какой-никакой ratelimit зато.
                  Ответить
                  • > ratelimit

                    Кстати, он так и не смог пробить синхронизацию стока на нгк?
                    Ответить
                    • Инженерный отдел, судя по всему, озаботился этим вопросом.
                      https://github.com/gost-gk/ngk/commit/e6996f0ca8c3dd2b0cfbc8ac7b152015893d7111
                      Ответить
                      • а почему Полина не коммитит? а какой-то гост
                        Ответить
              • - Твоего молчания, - ответил он настолько презрительно, насколько неприятна была ему эта ситуация.
                Ответить
    • А доктора Смегму экскоммуницировали уже? можно вылазить?
      Ответить
      • Да спит поди или устал.
        Ответить
      • Страйкер ванишнул новые комменты!
        P.S. А 1024-- сгнил и всё ещё ридонли.
        Ответить
    • Доктор мудак потерял фантазию и постит старые фразы про натки и сенники. Теперь его легко забанить по словарю.
      Ответить
      • Так он ими и прошлый раз срал. Это с какого-то педогейского сайта с гомоэротическими рассказами. Стертор там узнал свое детство, и постит
        Ответить
    • ?
      Ответить
    • о а тут работает
      Ответить
    • хочу всем сообщить что код
      let c = 0;
      
      function* foo() {
          c++;
          yield 1;
          c++;
          yield 2;
          c++;
      }
      
      function main() {
          for (const o of foo()) {
              print(o);
          }
      
          assert(c == 3);
      
          print("done.");
      }


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

        Но вообще, учитывая что ты отошел от полного соответствия оригинальному тупосрипту (https://govnokod.ru/27606#comment659096 - "а у меня не точная копия TS. я шаманю как могу. главная задача это выеб..ать С и С++ :)" ) есть подозрение, что такой нетупосрипт никому нахуй не нужон будет
        Ответить
        • >типа сравнение твоего тупосрипт-компилятора с обычным тупосриптом-через-LLVM)
          Он уже сделал. У него получился код на С++ медленее, чем на TS. А у другого питуха тот же код на С++ отработал в 650 раз быстрее. Так что бенчмарки там специфисськие
          Ответить
        • еще один "nodejs" никому нах не надо. вариатов вагон и маленькая тележка. а вот С++ улучшенного варианта в мире нет... а теперь есть.. (D и Хаскел с Рустой не предлагать - это чуждые языки для нормальных людей...)
          Ответить
          • > а вот С++ улучшенного варианта в мире нет

            Твой "улучшенный C++" - нахуй не нужно. Обоснование: никто не будет писать на "улучшенном C++", если он не будет нормально обратносовместим с неулучшенным "C++". Твой "улучшенный C++" не имеет такой совместимости. Следовательно - нахуй ненужон
            Ответить
          • А вот "D" это как раз попытка сделать улучшенный вореант крестоговна. И по-моему не очень-то удачная, ибо они GC туда решили вхуячить (хотя не только поэтому, но это тема для отдельной беседы). И ты повторяешь ту же ошибку
            Ответить
            • > И по-моему не очень-то удачная, ибо они GC туда решили вхуячить

              Они пытались сесть на джва стула: и угодить набирающему моду тогда GC, и быть низкоуровневым убийцей крестов.

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

                    Если сильно метушиться, можно памяти лишиться.
                    Ответить
                    • >Промежуточный мусор от компайл-тайм вычислений в крестах удалить некому
                      ЧТО?
                      Там разве нет никаких питумизаций, которые вилочкой раз-раз-раз, чтобы чисто было?
                      Ответить
                      • > Там разве нет никаких питумизаций, которые вилочкой раз-раз-раз, чтобы чисто было?

                        Если у тебя охуиллиард шаблонопарашных хедеров в одной единице трансляции, нихуя там не чистится, пока единица трансляции не закончится.
                        Ответить
                      • Ну в экзешник то они не попадут конечно.
                        Ответить
              • ну GC у меня опционально. так что отрубывайте и манагите память хоть тресни. Проблема в том что придется писать много ворнингов где будет UB.. но это C++ девелоперы должны быть привыкшие к такому
                Ответить
                • > ну GC у меня опционально. так что отрубывайте и манагите память хоть тресни

                  Ты ведь понимаешь, что если GC может быть, а может не быть, у тебя будет по-сути два языка? Ну т.е. в одном языке у тебя нельзя будет писать эффективный xor-связный список, потому что его сожрет этот самый GC т.к. не распознает перексоренные указатели как референс на что-то там.
                  Ответить
                  • Интересная структура...

                    А какие ещё бывают, в которых адреса нужно вычислять?
                    Ответить
                    • > в которых адреса нужно вычислять?

                      Например если у тебя есть malloc() который работает определенным предсказуемым образом, ну допустим если его можно попросить чтобы он выделял адреса обязательно в диапазоне от 0xffff0000 до 0xffffffff, то указатели из такого malloc можно хранить в 16 битах. А если он еще и выделяет память, выравненную по определенным границам (реальный malloc гарантирует выровненность чтобы туда любой базовый тип можно было упихнуть), то можно еще наэкономить битиков. Если GC про такую питушню не знает, он ее может нахер удалить естественно.
                      Ответить
                      • > Например если у тебя есть malloc() который работает определенным предсказуемым образом, ну допустим если его можно попросить чтобы он выделял адреса обязательно в диапазоне от 0xffff0000 до 0xffffffff, то указатели из такого malloc можно хранить в 16 битах.

                        И в gc-языке можно сделать массив размером до 65536 и хранить индекс в 16 битах.
                        Ответить
                        • И это будет намного надёжнее.
                          * Работает с не только с массивами байтов, а с произвольными типами и с любым паддингом.
                          * Нет возможности ошибиться в постоянных кастах байтов в настоящий тип и ручных умножений на размер.
                          * Не ломается, когда реализация маллока изменилась.
                          * Не требует фрагментации памяти ради выравнивания по младшим битам.
                          Ответить
                          • Правда неизвестно когда этот массив удалится, потому нет деструкторов.
                            И в момент удаления всё может подвиснуть на секунду, но это такое
                            Ответить
                            • >И в момент удаления всё может подвиснуть на секунду

                              Наоборот. Чем больше мусора, и чем он крупнее, тем быстрее работает сборка.

                              > Правда неизвестно когда этот массив удалится, потому нет деструкторов.

                              asm.js так и работает: выделяет большой типизированный массив памяти.
                              И в них руками аллоцирует объекты.

                              Much of this performance gain over normal JavaScript is due to 100% type consistency and virtually no garbage collection (memory is manually managed in a large typed array). This simpler model with no dynamic behavior, no memory allocation or deallocation, just a narrow set of well-defined integer and floating point operations enables much greater performance and potential for optimization.
                              Ответить
                            • Да и пофиг.

                              Впрочем, индекс уделывает пердольный покусанный указатель и без ГЦ. Более поддерживаемый и надёжный код без хаков и багов обходится дешевле в поддержке.
                              Ответить
                            • Вообще есть статистика, из-за чего обычно виснут приложения?

                              Если сравнивать ГЦ, написанный серьёзным коллективом, который выжимал все соки из своего языка, с кривым говном от обычного заедушного питушка, то тормоза будут не по вине ГЦ.
                              Ответить
                              • К примеру, мой парсер постов ГК (работает с HTML-файлами постов на диске, которые скачал загрузчик) раньше мог распарсить не более 5К постов, от большего количества он тупо набирал 1.5ГБ и дох.
                                Сборщику мусора просто не давали нормально отработать, какие тут тормоза!
                                Сейчас он почему-то обработал и 10К постов за раз. Видимо, я просто поставил 64-битную версию Node.

                                Что интересно, от загрузки JSON со всем ГК парсер не падает. Вероятно, память жрётся из-за ошмётков объектов парсинга и кусков строк, от которых используется только небольшой слайс.
                                Ответить
                                • > раньше мог распарсить не более 5К постов, от большего количества он тупо набирал 1.5ГБ и дох.

                                  Интересно.

                                  А в чём проблема обрабатывать данные по одному посту и складывать распарсенную стату в объект/бд?

                                  Или оно со временем накапливается?

                                  > память жрётся из-за ошмётков объектов парсинга и кусков строк
                                  А если попробовать new String (в Жабе помогало).

                                  Я бы снял дамп и посмотрел что там собирается.
                                  Ответить
                                  • Там открывается JSON с базой, по одному посту последовательно парсится и добавляется в тот объект (и тут, видимо, добавленные питухи ссылаются на что-то), затем объект сохраняется как JSON.

                                    > Или оно со временем накапливается?
                                    Да

                                    > А если попробовать
                                    > Я бы снял дамп
                                    Лень. Да и код там такой, что я его перестал понимать ещё в 2013. Максимум всю эту питушню когда-нибудь на гитхаб выложить - пусть пердолики пердолятся, а хохмисты выкладывают на ГК.

                                    Сейчас надо, по идее, качать дампы Полины/Иньо, переписать скрипт статистики под них. У них всё равно самая свежая база, а я задолбаюсь изменения отслеживать, а закачивать всё - тоже не очень вариант.
                                    Ответить
                                    • Ещё по идее у тебя все комментарии guest8 - это "vanished", что искажает статистику длины насраного.
                                      Ответить
                                      • Это да.

                                        Где-то была у меня общая база, куда я добавлял версии комментариев. Хотя, она сгнила.

                                        Там какие-то пердольные команды "merge -input" перед скачиванием и "merge -output" после скачивания. Хрен знает, что они делают (по идее, как-то должно быть связано с диффом, но это неточно). Я в этот раз качал вручную и не сделал merge -input. Не знаю, чем это мне грозит. Хотя, файл полной базы я всё равно не обрабатывал.
                                        Ответить
                                    • > ещё в 2013

                                      Какой Пиздец )))

                                      Использовать технологию 8 (ВОСЕМЬ) лет и не разобраться почему в ней течёт память.

                                      Впрочем я походу понял в чём дело.
                                      Ответить
                                    • Перекат. https://govnokod.ru/27616
                                      Ответить
            • быстро ты разлюбил
              Ответить
              • А я его и не "любил". Мне-то сразу понятно было, что если ГОМОИКОННОСТИ нормальной нет, то хуита это.

                Другое дело, что там достаточно много хороших идей, которые потом можно реализовать в уже нормальном языке. К сожалению стандартизаторы "D" как и стандартизаторы "C++" (тот же Александреску и оттуда и оттуда) добавляют очень много всякой нахуй не нужной хуйни (вместо того чтоб сделать работу с AST через гомоиконность и таким образом уже добавлять всякую хуйню)
                Ответить
                • https://dlang.org/blog/2020/09/28/function-generation-in-d-the-good-the-bad-the-ugly-and-the-bolt/

                  Conclusion

                  Initially, D looked almost as good as Lisp for generating functions. As we tried to gain finer control of the generated function, our code started to look a lot more like C macros; in fact, in some respects, it was even worse: we had to put an entire function definition in a string mixin just to set its name.

                  This is due to the fact that D is not as “regular” a language as Lisp. Some of the people helming the evolution of D are working on changing this, and it is my hope that an improved D will emerge in the not-too-distant future.

                  In the meantime, the experimental refraction module from the bolts meta-programming library offers a saner, easier way of generating functions without compromising on the idiosyncrasies that come with them. It allows you to pretend that functions can be disassembled and reassembled at will, while hiding all the gory details of the string mixins that are necessarily involved in that task.
                  Ответить
                  • Вот кстати а есть ли пропозалы сделать кресты "as “regular” a language as Lisp." ?
                    Ответить
          • TS не может являться улучшенной копией С++, потому что

            * Там GC
            * Там нельзя выбирать где что и как размещать или копировать
            * Там крайне неудобно работать с байтами


            Просто взять скриптушню и скомпилировать ее в нативный код это НЕ способ побидить С++

            Иначе его можно победить с помощью "Go". Или с помощью Эйфории (она умеет скомпилироватьтся)
            Ответить
            • > Там крайне неудобно работать с байтами

              https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Int8Array

              > Там нельзя выбирать где что и как размещать или копировать
              Может это и хорошо.
              Ответить
              • >Int8Array
                Это и есть "крайне неудобно"

                Опиши мне структуру из трех полей: два байта, два байта, и четыре байта

                >Может это и хорошо.
                А может и нет
                Ответить
                • это не сложно
                  type int16 = 65535;
                  type int32 = 4294967295;
                  { v1: int16, v2: int16, v3: int32 }
                  [ int16, int 16, int 32 ]
                  Ответить
                  • Это у тебя в языке так?
                    Ответить
                    • ну да. я же знаю что С++ девелоперы бес POCO жить не могут. и это надо еще для коммуникации со С/C++ библиотеками. это мне надо по любому. ибо даже malloc нельзя было бы прикрутить.
                      Ответить
                      • А твой тупесрипт будет так https://govnokod.ru/27403#comment626280 уметь делать?
                        Ответить
    • Артур Атарбекович в Лондоне переговоры важные ведёт
      Ответить

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