1. C++ / Говнокод #13280

    +21

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    #include <iostream>
    using namespace std;
    int main() {
        for(int i = 0; i<((cout<<'c'), 5); ((cout<<'i'), ++i)) cout<<"b";
            cout<<endl;
        return 0;
    }

    38 летний программист справа написал зачем-то такой код и сказал, что проверяет себя.
    http://ideone.com/zg6SFB

    Запостил: LispGovno, 02 Июля 2013

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

    • Неужели это старость? Во сколько программисты начинают терять свои навыки?
      Ответить
    • Тролльский отступ в пятой строке меня почти подловил ;)

      А проверял он порядок вызовов фрагментов фора (условие-тело-инкремент)?
      Ответить
      • Кстати, проверял, вероятно, обжёгшись на молоке, потому что в других языках при включенной оптимизации всё может быть иначе:
        http://ideone.com/sEL1h8
        Ответить
        • показать все, что скрытоВсё клали на твои другие тормазнутые, бездарные, говяные, бесполеные и избыточные недоязыки.


          Наглядный пример - паскальпитух сделал 25-ю строчками то, что на сишке делается за 1, с функциями как у тебя - за 5-6.
          Ответить
          • Примеры программ на сишке аналогичного функционала в 1 строку и в 5-6 строк в студию!
            Ответить
            • Сам говнокод - аналог твоего кода без буф функций. Правда твой оптимизатор в паскале говно, но чтож поделать. Ровно 1строчка.

              Так же, добавить функции - это 2 строки(одна) на функции - их у тебя 3 - посчитай.
              Ответить
              • Говно — это фор в сишке, потому что он дублирует функционал while. Но ты и сам знаешь, что фор в сишечке не нужен.

                Паскалевский фор начальное и конечное значение счётчика вычисляет только один раз и сохраняет в регистрах. Для реализации такого же функционала в сишечке придётся заводить временные переменные и копировать начальное и конечное значения в них. Ага, паскалевское
                for i := StartValue(...) to EndValue(...) do
                придётся переписывать в
                int sv = StartValue(...), ev = EndValue(...);
                for(i = sv; i <= ev; i++) ...
                Чтобы не было потери перфоманса, придётся питушиному компилятору указывать директивы, чтобы он разместил sv и ev в регистрах. Я уже не говорю, что код будет выглядеть, как говно.
                Ответить
                • while, конечно, кошерен, но с for якобы легче следить за инвариантами, ибо проверить начальное состояние, сам инвариант и закон итерации проще, когда всё собрано в одном месте.

                  Преобразование поциента for -> do крайне доставило, ибо сделало цикл некорректным, т.к. условие не проверяется перед входом в цикл.
                  Ответить
                  • > т.к. условие не проверяется перед входом в цикл.
                    Пустые списки и пустые строки в функции передают только анскильные питушки. Царь проверяет инварианты заранее, при вводе, а затем не нарушает их. Поэтому в его случае такое преобразование правомочно.
                    Ответить
                    • Честно говоря, сначала я так и подумал. К сожалению, это противоречит Царскому условию максимальной компактности кода, т.к. условие начинает занимать как минимум в два раза больше места.
                      Ответить
                      • > условие начинает занимать как минимум в два раза больше места
                        А вдруг он написал валидаторы для типичных случаев, и для проверки ввода достаточно поюзать уже готовый валидатор?
                        Ответить
                        • Ок, вызывать функции с невалидными параметрами могут только анскильные питушки, а их к царскому коду никто не пустит.
                          Ответить
                        • Разве он неосилятор, чтобы юзать готовые валидаторы? Долой шаблонный ширпотреб! Каждая строчка кода должна быть произведением искусства, рождаться каждый раз заново. Готовый валидатор в данной ситуации может иметь неоптимальный перфоманс.
                          Ответить
                      • Ты питушара упоролся? Как такие животное вообще обитают в этом мире. Открою тебе тайну, питух - нормальный код сам поодерживает свой инвариант - никогда нормальный код мемкопи для пустоты не вызывает. Или животное memcpy(s, t, 0) юзает?

                        Код сам следит за выравниванием, ибо если бы люди писали как ты, животное, - ты бы даже киношку не осилил поглядеть. Но ты, анскильный питух, лучше всех всё знаешь и несёшь такую херню. Это просто 5фейспалмов в секунду.
                        Ответить
                  • Животное анскильное - тот цикл корректен. Питушара - иди учи матчасть. Есжи ты настолько ущербан, что будешь копировать мемкопи 8байт - ты ущербан, а мемкопи за тебя тормазить не обязана.


                    Ты, тупое животное, ты нихрена не знаешь о перфомансе. Ты не хрена не знаешь о логике - ты тупая питушара. Кукарекаешь о не корректности, но питух не осилит написать даже мемкопи нормально - но он кукарекает.

                    Питух, а теперь объясни мне, ущербанище упоротое, зачем мне вызывать мемкопи для ПУСТОТЫ? А, ты реально слишком туп чтобы это понять, либо притворяешься? Мб мне там тебе надо выравнивание сделать, а то авось питух типат ебя передаст туда не выравненное.

                    Или ты, питух анскильный, думаешь, что мне проверять - авось и конец не выровнен, авось блин там 123байте сегфолт? Не смиши мои тапки и не неси херню, животное.
                    Ответить
                    • А если заранее не известно, какого размера блок будет (допустим, блок переменного размера), то прямо в основной программе нужно каждый раз делать проверки, вызывать твою функцию или выполнять операцию другим способом?
                      Ответить
                      • Животное - блок всегда кратен минимальному шагу цикла. Запомни это. Никто в здравом уме не будет юзать мемкопи для 8байт.


                        Какой нахрен переменного размера? Ты что несёшь? Это ссешное копирование - там 16байтные типы.


                        Обрабатываемые блоки всегда минимум 16байт и всегда кратны 16байтам. Никакие проверки делать не надо, глупая лалка.

                        Возьми картиночку/кинцо - посчитай сколько там пикселей и раздели на 16. Подумай, почему про-пацаны делают сетку по степеням двойки и т.п.

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

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


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


                              Я называю вас питухами только потому, что вы: а) нихрена не понимание, не умеете и несёте херню. И это даже не самое страшное - вы нихрена не делаете выводов - вы думаете, что слиться и попитросянить - схавитить плюсов и свести разговор к ха-ха делает вам чести - но только по этому вы питухи. б) Вы слишком анскильны и не доросли ещё до уровня своей наглости.
                              Ответить
                              • Рот закрой, тварь. Тебе не давали право говорить.
                                Ответить
                              • Единственный дебил, который несет херню - это ты. Ничтожество, которое не участвовало в реальных проектах, дает тут свои вредные советы. Да ты прав насчет царя, ты - Царь Говнокода.
                                Ответить
                            • Градус неадеквата скоро выйдет в открытый космос.
                              Ответить
                              • Запасаемся попкорном и смотрим.
                                Ответить
                                • Забавно смотреть на то, как народ срывается с катушек и начинает орать на тролля в духе "я твой дом труба шатал". Это означает только одно - тролль победил. Он ведь этого и добивался ;)
                                  Ответить
                            • О, какой массивный троллинг, я что-то пропустил?
                              Ответить
                              • Троллинг — новый мем ньюфагов. Если ты используешь слово троллинг, твой пинус длиннее автоматически, ты крут и плевал на всех. Кто-то предлагает соснуть хуйца? Он троллит. Кто-то фейлит или троллит? Он тролль. Заебали куклофаги? Тролль. Быдло? Небыдло? То же самое. Кто-то опускает тебя в треде, который ты создал? Знай, он тролль. Выебали нигры? Это НАСТОЯЩИЕ тролли. Ничего не бойся, со словом тролли ты превратишь всех в говно. Дерзай же!

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

                                  anonimb84a2f6fd141 , а не пошел бы ты на хуй?
                                  Ответить
                    • Отец твой петух и животное, заебал всех оскорблять.
                      Ответить
                      • Cpp, есть высказывание, которое приписывают Ф. Ницше; вот это высказывание:
                        "Мне всегда немного грустно, когда красноречиво, изящно и тонко оскорбляешь человека, а он слишком глуп, чтобы это понять ..." Сделайте выводы для себя, или по крайней мере перестаньте "кормить троллей" - поддаваться на провокации.
                        Ответить
                • > int sv = StartValue(...), ev = EndValue(...);
                  > for(i = sv; i <= ev; i++)

                  Ну и в С99 я бы написал так
                  for (int i = lbound(), e = hbound(); i < e; ++i)
                  Ответить
                • >Чтобы не было потери перфоманса, придётся питушиному компилятору указывать директивы, чтобы он разместил sv и ev в регистрах. Я уже не говорю, что код будет выглядеть, как говно.
                  Ты чего абкурился, анскильность тотальная? Какие директивны, какие регистры - ты не путай Си-конпеляторы(нормальные) и твоё паскаль говно.

                  >int sv = StartValue(...), ev = EndValue(...);
                  Ой питух, ой анскиллед. i = StartValue(...) - работает как в твоём паскале. ev ты тоже можешь заменить на EndValue(...), если твоя EndValue() не говно.


                  Зачем ты несёшь такую херню? Ты нихрена не знаешь про Си конпеляторы, но кукарекаешь.
                  Ответить
                  • Маэстро, выше roman-kashitsyn написал, как нужно правильно делать. Между
                    for (int i = lbound(), e = hbound(); i < e; ++i)
                    и
                    for (int i = lbound(); i <  hbound(); ++i)
                    есть разница: в первом случае hbound() вызовется один раз, а во втором будет вызываться на каждой итерации цикла. Если ты не понимаешь разницы, то ты питух анскильный.

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

                      Тыж раньше кукарекал, что:
                      >придётся переписывать в
                      >int sv = StartValue(...), ev = EndValue(...); i = sv;
                      Почему ты, питух, сразу не написал i = StartValue(...);

                      >есть разница: в первом случае hbound() вызовется один раз, а во втором будет вызываться на каждой итерации цикла. Если ты не понимаешь разницы, то ты питух анскильный.
                      Животное, если ты осилишь атрибуты у функций, если ты осилишь мозг - то ты питух не будешь нести херню.


                      >Если hbound() имеет побочный эффект (например, читает из внешнего источника), то результаты выполнения будут разными.
                      Т.е. твоя hbound() говно? Ну и, куда она читает? Зачем она читает? Почему её надо тут юзать?

                      Т.е. это не работает для 10% функций, у которых есть побочный эффект, а для остальных работает - ещё раз питушок прокукарекался.

                      Расскажу тебе одну вещь, котору ты пока, в силу своей малоразвитости, понять не можешь - функции с побочным эффектом в сишке никто не пишет так, как ты это написал. Ибо она бессмысленна.
                      Ответить
                      • > Почему ты, питух, сразу не написал i = StartValue(...);

                        Признаю, здесь я поторопился.

                        > функции с побочным эффектом в сишке никто не пишет так, как ты это написал

                        А как пишут? Функция может брать данные откуда угодно и они могут меняться между вызовами. Я уже не говорю о том, что вызов функции на каждой итерации — это потеря производительности (даже если функцию заинлайнить).
                        Ответить
                        • >А как пишут? Функция может брать данные откуда угодно и они могут меняться между вызовами. Я уже не говорю о том, что вызов функции на каждой итерации — это потеря производительности (даже если функцию заинлайнить).
                          Ты нихрена не знаешь о производительности - не кукарекай.

                          Понимаешь в чём дело - в нормальном коде ничто не может само меняться. Что будут менять твои побочные эффекты? Это сиколы? Хотя куда вам. Либо какие-нибудь глобальные переменны? Тогда в чём смысл?

                          Ты заюзал f() - которое вернула тебе, допустим, длинну строки - по твоей же логике она имеет побочный эффект и меня эту же строку, либо эту строку меняет что-то из вне. Тогда твой цикл не корректен.

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


                          Допустим у тебя есть независимо пополняемый пулл, который ты обрабатываешь и по твоей логике Сишный фор работает не правильно - юзай вычислялку длинны так:
                          __attribute__((const)) char * strlen_p(char * str) {
                            while(*(++str) != '\0');
                            return str;
                          }


                          for(char * p = str; p != strlen_p(str); ++p); - будет работать так же, как твой паскаль.
                          Ответить
                          • > for(char * p = str; p != strlen_p(str); ++p); - будет работать так же, как твой паскаль.

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


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

                              Ты питух несёшь тотальную херню, хотя тыж нормального кода в жизни не писал - откуда тебе знать зачем пацаны придумали атрибуты. От жешь ведь.
                              Ответить
                          • Питух ты гамбургский: http://ideone.com/yFXlGQ

                            Твой код работает так же, как обычный while. А аналог паскалевского кода будет
                            for(char * p = str, char * q = strlen_p(str); p != q; ++p);
                            Ответить
                            • Ты животное нахрена ты впиндюрил туда принтф?

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

                              __attribute__((const)) char * strlen_p(char * str) {
                                while(*(++str) != '\0');
                                printf("strlen_p() called\n");
                                return str;
                              }
                               
                              int main() {
                               char * str ="kokoko";
                               for(char * p = str; p != strlen_p(str); ++p)
                                 fprintf(stderr, "%c", *p);
                               fprintf(stderr, "\n");
                              }
                              
                              //strlen_p() called
                              //kokoko
                              //


                              Был бы ты не тупым животным, и понял бы, что c99 игнорит атрибуты, которых нет в с99. И осилил бы -std=gnu11 - ты был бы не питухом, а так - ты бездарное животное, которые нихрена не понимает и кукарекает.
                              Ответить
                      • во всем есть смысл, даже в функции без аргументов с побочным эффектом, особенно когда это касается аншкольного питушка
                        int hbound() {
                            static int pitucount = 0;
                            printf("pitu-shock #%u\n", pitucount++);
                            return 42;
                        }
                        Ответить
                        • А теперь, животное, объясни - как ты прифигачишь эту функцию к фору и зачем, животно.
                          Ответить
                          • сверху все написано
                            но ты все же бот

                            настоящий суп-и-харчиллер первым же своим вбросом демонстрировал бинд в сишке
                            Ответить
                            • А ну и тут ты слился. Ок.


                              Мой бинд имел смысл, был крут и как-то соотносился с контекстом треда, а ты же питух наваял говное, смысла в котором нет.
                              Ответить
                              • нихуя се нет смысла
                                42 раза написать тебе, что ты питушок
                                это самые полезные 5 строк кода, которые я сегодня написал!
                                Ответить
                                • Животное, ты даже считать не умеешь. Ты настолько тупое животное, что ты не осилил даже прочитать тред, в котором об этом говорилось.

                                  Она напишет больше 42раз, но тыж питух только кукарекать можешь.
                                  Ответить
                                • > 42 раза
                                  Может больше, может меньше, зависит от lbound().
                                  Ответить
    • Можете пожалуйста объяснить как работает условие i<((cout<<'c'), 5) ?
      Ответить
      • Оператор запятая отбрасывает левый аргумент и возвращает правый. Поэтому это условие выводит 'c', а затем сравнивает i с пятью.
        Ответить
        • Ясно, спасибо.
          Ответить
        • Не отбрасывает, а выполняет (evaluate) же!

          // Но результатом выполнения всего выражения является результат выполнения последнего подвыражения :)
          Ответить
          • Ну ок, слишком уж неформально написал ;) Отбрасывает результат вычисления левого аргумента :)
            Ответить
    • показать все, что скрытоСлабо - обычный код. Анскилледы боятся скобок и запятых, а текже тела без скобок. Питушки анскильные - они и есть питушки анскильные, которые привыкли к изимодным конструкциям и не способны понимать даже while((++i) != 100500); оправдывая это тем, что видители так питуш только идиоты, хотя на самом деле - они просто анскильны.
      Ответить
      • Золотые петушки зажигают
        Ответить
      • Т.е. ты одобряешь такие долбоебические конструкции в коде? Тут дело не в том, что все анскильные и не могут разобраться, а в том, что не нужно усложнять код на пустом месте, показывая свой скилл. Поверь, больше ценится умение писать простой код.
        Ответить
        • показать все, что скрытоcpp, ты не золотой, а платиновый петушок!
          Ответить
          • А ты видимо очередной ебанутый школьник, который страдает манией величия, как superhackkiller1997.
            Ответить
            • показать все, что скрытоКак я люблю, когда анскильности начинают вонять. Бездарный питух рассуждает о мании величия. Яб понимал ты был бы где-то на уровне этих школьников, я уж не говорю о выше, но ты на днище и со днища орёшь на кого-то.


              Запомни раз и навсегда - пока я тут царь, и лучше меня тут никто и ничто не напишет.
              Ответить
              • Нормальный человек никогда не назовет себя царем. Тем более какой-то сомнительный ты царь, типичный говнокодер.
                Ответить
              • Ещё скажи, что великие люди манией величия не страдают, ага.
                Ответить
            • показать все, что скрытоА-ах, cpp на царя руку поднял! Теперь тебя тут натянут. Очко смажь.
              Ответить
          • о, еще один гуру высрался. вы там на пару с хак киллером долбитесь да?
            Ответить
        • показать все, что скрытоГлупая лалка. Как я люблю эту анскильную подмену понятий. Любой идиот пытается изимодность(лёгкость) выдать за простоту.


          Простой код - это минималистичный, конкретный, красивый код. Код питушков, типа тебя - это избыточное говно, основанное на ущербанских абстракциях. Питушки типа тебя ваяют избыточное говно, делая 200строчками то, что пацан делает 20-ю - длинна строк одинаковая.


          Вот как ты, питух, будешь писать цикл на 10итераций? for(uint64_t i = 0; i != 10; ++i) {}; - в лучшем случае, обычно питушня типа тебя даже ++i не осиливает написать, а уж !=(<) для вас вообще нереально. Питухи всегда юзают <=. uint64_t i = 10; do {} while(--i);


          Как питух, типа тебя, захреначит обход "массивов" - как питух, через форы, массивы со скобочками, счётчиками. А уж если массив 2д, то питушки ваяют такое говно, что просто пичаль.

          Вот как питух, типа тебя, напишет сложение одногого массива с другим - правильно, как питух, а пацан напишет как-то так:
          inline void add_b_to_a(__m128 * a, __m128 * b, uint64_t N) {
            __m128 * end = b + (N >> 4);
            do {
              *a += *b;
            } while(++a, ++b != end);//пацаны обычно это анролят, поэтоу тут что-то типа ((a += 4), (b += 4) != end);
          }



          Правда пацаны даже N не юзают, а юзает end, как вас, питухов, пытается приучить стл, но вы же тупые питухи. До сих пор у питухов везде счётчики на циклах, даже в стл.


          Ты тотальная, жалкая анскильность, которая оправдываёт свою криволапость и маломозглость подменой понятий.


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


              В каком месте он не кроссплатформенный? Замени uint64_t на fast тип, если пишешь для 32битного говна. Для маздайки никакой вменяемый человек не пишет, ибо маздайка и перфоманс, предсказуемость, масштабируемость не совместимые понятия.

              Нормальный код не пишут для 32битного говна - максимум какие-то либы для прикладухи.

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


              >Вот ты тут всех критикуешь, какие все тупые
              Объективно - ты туп, твой код говно.

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

              >наверняка даже девушки нет
              Сказал питух, у которого даже намёка на девушку нет. Как я люблю этих питушков, которые явно сливаются выкладывая все свои проблемы как аргументы.

              Питушок, я с 17 лет и до сих пор живу со своей женой.

              >вот ты тут и отрываешься.
              Зачем мне тут отыгрываться? На ком? Ты думаешь мне интересно с тобой говорить? Я абсалютно клал на дебилушек, типа вас. Я написал своё мнение о коде - ты мог пройти мимо, но ты же сам начал со мной спорить? А я не плюблю, когда анскильные питухи позволяют себе даже в мою сторону смотреть.


              Вобщем ответов нет, тотальный слив в питушок стайле. Аргументы на уровне детсада: "тебя никто не любит - ты поэтому меня не любишь".
              Ответить
              • > и в страхе убигаю
                U say!
                Ответить
              • > superhackkiller1997
                >> Питушок, я с 17 лет и до сих пор живу со своей женой.
                Ты сделал мой день. Это ты в следующем году решил завести жену или первый день женат?
                Ответить
            • > наверняка даже девушки нет
              Ты так говоришь, как-будто это что-то плохое.
              Ответить
              • Ты так говоришь, как будто это что-то хорошее.
                Ответить
                • Вы все тут так говорите, как будто адекватность зависит от наличия девушки.
                  Ответить
                  • Нет, блин, парня.
                    Ответить
                    • А вот наличие парня у парня уже связано с адекватностью.
                      Ответить
                      • Придется искать парня ;( Не хочу быть неадекватным.
                        Ответить
                        • Могу предложить свою кандидатуру. Я сладкий.
                          Ответить
          • Что я вижу? do...while. А ведь своим примером на другом языке я как раз и хотел показать ненужность for в Си. В других языках, которые царь не изучает, for и while имеют разную семантику, а в Си for — это избыточный псевдоним для while.

            Да, в Си for(x; y; z){тело} эквивалентно x; while(y){тело; z} Но зачем, ведь for в данном случае и читается хуже, и менее гибкий?
            Ответить
            • показать все, что скрытоМеня не интересуют другие языки, которые способны только на примитивные задачи. Тебе будет интересно изучать язык, которым ты можешь выразить только 5-10% своих мыслей? Мне нет.


              Си позволяет писать всё, а другие языки не позволяют писать ничего.

              Пропацаны фор не юзают. x; while(y){тело; z} - так пишут только питухи. Фор в твоём случае читается хуже, а в моём лучше.

              Зачем ты мне рассказываешь про бесполезность фора? Ты рассказывай это другим питушкам.
              Ответить
          • Ебать ты говно написал.
            Ответить
        • показать все, что скрытоЭй, питух, тут абсалютно логичные конструкции - без запятой, питух, ты не напишешь даже перебора пары указателей в цикле. Юзая скобки для тела из одной строчки - ты пораждаешь ещё 2строчки, которые не несут смысловой нагрузки, ладно бы заедушные питухи, типа тебя, юзали бы стиль, аля: for() {, но вы же питухи пишите скобку на следующей строчке.


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


                cpp, загляни сюда
                xyecoc.net
                Ответить
              • Похоже этот сайт скоро заполнится неадекватными придурками.
                Ответить
                • показать все, что скрытоПОШЕЛ НАХУЙ ОТСЮДА
                  Ответить
                • Срр, я не хочу, чтобы Вы ушли с плохим впечатлением. Скажите, Вам знаком такой термин, как троллинг? Так вот, Вы очень легко поддаетесь на провокации такого рода. Существует множество троллей разнообразных мастей, но чаще встречаются "толстые" и "тонкие" тролли. В данном случае Вы стали жертвой банального толстого троллинга - все стебают одного. Но Вы сами виноваты - кормили троллей.
                  Ответить
            • показать все, что скрыто>Я, в отличии от тебя, получаю хорошую зп
              1k$? Не смеши мои тапки.

              >пока ты сидишь на шее родителей.
              Живу сам по себе с 17лет, да и вообще какая тебе разница? Я конкретно описал тебе - почему твйо код говно, а ты начинаешь сливаться на родителей.

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

              >По твоему стиль написания скобок определяет качество программиста?
              Да, только анскильное животное тратит 2лишние строчки без профита. Тыж там говорил - зачем юзать то, что не приносит профита - вот тебе пример твоего узкого и примитивного мышление.

              >Скажи это Crytek (которые ставят скобки с новой строки) например, хотя да, они же тоже питухи, куда им до тебя.
              Питух - ты видел хоть раз в жизни ядро их движка? Движки состоят из 95% обвеса, которые пишут животные типа тебя, а работают другие 5% - это ядро, которое питуш более-менее норм пацаны, которое вы никогда не видите и судите по обёрткам.

              Хотя да, безвольные питухи пишут так, как им сказали. Поэтому приводить изимодное говно как пример - глупо.
              Ответить
              • Странно, почему тебя еще не забанили, тролль.
                Ответить
                • показать все, что скрытоВ каком месте я тролль? Я конкретно, объективно и аргументированно объяснил, почему cpp и иже с ним питухи. Не согласен - поспорь со мной, но ты не осилишь и убежишь в ужасе. Поэтому о5 ко-ко-ко - хаккилер троль.
                  Ответить
                  • superhackkiller1997, гостя нельзя переспорить.
                    Ответить
              • Слушай, а что значит число 1997 в твоем нике? Just curious.
                Ответить
                • То, что я в следующем году женюсь и ухожу из дома.
                  Ответить
                  • аттестат забрать не забудь
                    Ответить
                  • http://govnokod.ru/13280#comment185365

                    Ну зачем ты раскрыл все карты? Я только хотел прослыть провидцем.
                    Ответить
                  • >Живу сам по себе с 17лет
                    >То, что я в следующем году женюсь и ухожу из дома.
                    Пиздитите батенька 146%
                    Ответить
                    • Ну вот ему сейчас 16. В следующем году ему будет 17. Он женится и уйдет из дома. Через год кто-нибудь придет, прочтет этот тред, и слова Царя уже будут правдой)
                      Ответить
                • > что значит число 1997
                  петлю в простанственно-временном континууме
                  Ответить
              • Кстати, ты написал много проектов для себя. Расскажи, какие уже сделал или доделываешь? А вот я пока ни одного не осилил, но набираюсь опыта у прозжённых профффи говнокода.
                Ответить
                • Тут нет профи - тут тарас заедушный плюсовой говнарь, который питух плюсы знает ещё хуже, чем делфи, которые никому не нужны.

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

                  Больше тут никого, кроме бездарных плюсовых, заедушных питухов нет.

                  Я не делаю никакие проекты - я реализую нормально те вещи, которые мне интересны. http://www.linux.org.ru/forum/development/9250769/ - кури, я там описывал "как стать прокодером".


                  Я уже говорил, что я делаю - я пишу идеальные обходы для 4-32мегабайтных 2д массивов, которые обходить надо тысячи раз, причем обходит отдельные части нельзя - только весь целиком. Для того, чтобы слить питухов-математиков. Последние 2недели я убил на сбор инфы о процессорах, ибо для запила идеала - мне нужен подходящий проц. Мой старый штеуд не имеет нужных мне фич. Я решил слинять на амд, но в интернетах нету вменяемых бенчей - благо братуха и лор помогли.


                  Для справки - бульдозер в одной нити на чтении памяти сливает i7 в 2(1.7) раза в зависимости от прфетча, nt чтения и прочего.

                  Вот теперь мне надо дожаться когда мне прийдут мои железки, и потом пилить дальше.


                  И самое смешное знаешь что? Написание даже банального идеального обхода того же массива сольёт у тебя тысячи времени, а питушок это даже вообще не осилит.


                  Вот теперь посчитай - осилить в иделе сишку. Осилить в идеале ОС. Осилить в идеале конпелятор. Осилить в идеале железо. Осилить в идеале вначале либо плис, либо схематехнику. Запилить идеальный процессор. Слить всех в мире не только софтварно, но и хардварно. Имея опыт в ЧПУ захреначить свой цех фотолитографии, либо сборки из елементов. И слить всех просто в говно.


                  Это требует для <1% человека лет 10 - посчитай на что ты потратишь время, на это, либо на заедушное накидывания кнопок на формочку.
                  Ответить
                  • Для полноты картины, приведу содержимое трех постов пациента из означенной ссылки:

                    1. Cкобки на новой строке 100% признак анскилледа.
                    А про код - пиши оптимальный код, будешь писать оптимальный код - будет писать проще, а простота основа труЪ кода.
                    И самое главное пойми, что плюсовик даже близко не сишник. Из 100% «сишников» на лоре, да и в мире 90% плюсовиков, а плюсовик тебя хорошему не научит.
                    И раз ты не собираешься продавать себя, то пойми одну вещь - никогда не пытайся потакать анскилледу. Думая «а что если дебилушка с кодегайдом головного мозга не поймёт мой if» - ты 95% напишешь гумно.
                    2. И да, с таким стилем только в гуйню, мылогонятели, либо ещё что-то.
                    Вменяемые люди привыкли не разбазариваться местом на экране, а так же всем остальным. Если ты клал на код - ты клал на всё, и тебе ничего не светит.
                    3. Ты хочешь батл?
                    Прокодер похож на автора, прокодер не программист - а просто школьник, хобби которого играть в программиста.

                    Это и есть описание "как стать прокодером"?
                    Ответить
                    • Да, я описал всё, что делать НЕ НАДО, либо тебе нужно описание того, что делать НАДО? На это уйдётт 100ккстрок. Иди попробуй поменять законы и вместо того, чтобы писать "что делать не надо" - пиши "что делать надо" - удивишься.
                      Ответить
                      • Но ты описал всего три вещи которые делать "НЕ НАДО" (писать на С++, переносить скобку на новую строку и писать понятный "анскилледу" код). А надо, очевидно, писать бесполезные обходы 32-х мегабайтных массивов. Кстати, разве на GPU не будет быстрее?
                        Ответить
                        • >Но ты описал всего три вещи которые делать "НЕ НАДО" (писать на С++, переносить скобку на новую строку и писать понятный "анскилледу" код).

                          Плюсовик - животное. Тратят что-то бессмысленно только питухи, будь-то такты, строки, память и прочее. Писать код, не думая об анскилледах. Там ещё штук 5 основных правил, которые тыпроигнорил.

                          >А надо, очевидно, писать бесполезные обходы 32-х мегабайтных массивов. Кстати, разве на GPU не будет быстрее?
                          Бесполезные? Ты глупышка, даже не знаешь, что такое гпу и кукарекаешь. На гпу будут те же проблемы, что и на цпу.

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

                            >Поэтому да, можно - но суть в цпушных горематематиках.
                            Если на гпу можно, то писать это на цпу - анскильное питушарство, разве нет?

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

                              >Если на гпу можно, то писать это на цпу - анскильное питушарство, разве нет?
                              Будет не особо быстрее и нахрен не упало.


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

                                >Никому не нужный. Глупый питошок.
                                Он хоть многопоточный, этот перебор?
                                Ответить
                                • >Ты что же это, такты не экономишь?
                                  Питух, иди кукарекай в другое место.


                                  >Он хоть многопоточный, этот перебор?
                                  Питушок даже не знает особенности железа - ой жалкая питушня. Иди погугли чтоли, а то прочитал в википедии "многопоточный" и кукарекаешь.
                                  Ответить
                                  • Тебя опять слили)))
                                    Ответить
                                    • Реальнэ?
                                      Это хасвелл, 4вс1нить. Причем из одной нити можно спокойно выжать в районе 21 - тут кривое нтачтение. На 2-х нитях уже 22.
                                      SSE (nt)  Copy:      22432.74 MB/s  [NTA prefetch]
                                      SSE (nt)  Copy:      19379.17 MB/s  [NTA prefetch]
                                      Это кора2 1в2 нити:
                                      SSE (nt)  Copy:      8220.00 MB/s  [NTA prefetch]
                                      SSE (nt)  Copy:      8236.68 MB/s  [NTA prefetch]


                                      На 2-хканальных штеудах профита от юза больше 2-х нитей нет. Профит есть только на 2011 и на амдеговне.

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

                                          Причем тут гпу, питух? Оно не идеально ложится - ты прочитал это в другом комменте? МОлолец, питух, только ты несёшь полную херню.

                                          Это не левый тест, питух анскильный - это nt запись с nta префетчем - самое быстрое, что может быть на на рядовом х86.

                                          Ладно сливалка, ты мне всё ровно не ответишь.
                                          Ответить
                                          • Ну а на что отвечать. Если заботишься о скорости - делаешь задачу на гпу. Если не заботишься, а просто хочешь попонтоваться - почему не используешь все ядра?
                                            Если в задаче боттлнек - доступ к памяти, то в чем смысл баттла - потестить кто быстрее умеет обращаться к памяти? Если вычисления тоже играют роль - многоядерный код будет быстрее, без разницы с какой скоростью процессор умеет читать и писать в память. Но нет, я думаю ты просто не умеешь ни писать на гпу, ни использовать многопоточность.
                                            Ответить
                                            • Поддвачну многопоточность. Пока питуз будет пихать байты в порты и считать такты, многопоточный питузок парой строк кода распараллелит код на ядра, еще десятком - даже на симд инструкции перепишет.
                                              Некий платный переборщик паролей до сих пор не поддерживает многоядерность, про симд молчу. Байтоебы ебанулись вообще, как 10 лет назад писали, так и сейчас пишут.
                                              Ответить
                                              • Очередная питушня, которая нихрена понимает в том, что она несёт?

                                                Какие ядра - чиго ты там распаралелишь? Обращения к памяти? Зачем? Если овер 2 нити на штеуде не дают профита. Будешь питушить кеш чтением? Даже на сотне вёдер ты не выдашь даже 50% нормального мнонитеевого обхода.

                                                Если ты запилишь нормальное чтение/запасиь памяти, не питуша кеш - у тебя в неё упрётся уже на одном ведре. Второе ведро тебе даст в районе 5%, остальные вёдра 0.

                                                Ты выучил новое слово? Иди питушок хоть посчитай, что такое симд.
                                                Ответить
                                                • Сучечка, я без тебя, пидараса, знаю, что такое симд.
                                                  Ответить
                                                  • Что? Удиви. В википедии прочитал?

                                                    А ты знал, что симд быстрее памяти в десятки раз? Чтобы сложить 8флоатов - тебе надо прочитать из памяти 16 флоатов, а складутся они из за такт. Память работает со скорость 20гигов в секунду, а кешлайн 64байта - это 15тактов на кешлайн. Один avx мув - это 32байта - т.е. читает задержка на 1кешлайн в среднем 13тактов. Т.е. чтобы прочитать 8флатов из разных кешлайнов - тебе надо 26тактов - один из которых, предположим - ты будешь их скаладывать.

                                                    Что ты будешь делать остальные 25тактов? Вывод - ты нихрена не знаешь о симд.
                                                    Ответить
                                                    • У меня не было ситуации, когда я бы упирался в скорость памяти, я не занимаюсь байтодрочерством, пиханием байтиков по портикам и прочей хуйней.
                                                      Ответить
                                                    • Собсно: кому нахуя нужны твои изыскания? От них какая-то практическая польза есть? Хочешь повыебываться? Пиши на перле, он для этого создан.
                                                      Ответить
                                                      • Какая польза - буст перфоманса на порядок.
                                                        Ответить
                                                        • Сравнительные цифры приведи, и пример, где это надо будет. Пока что у тебя вырисовывается синтетический тест памяти.
                                                          Ответить
                                                          • Я тебе уже написал - мемкопи. Обход массивов. Любая числодробилка. Всё это на х86 упирается в память. Все алгоритмы, которые пацаны реализуют - настроенны на то, чтобы обойти эти ограничения памяти.


                                                            Знаешь почему результаты синтетики отличаются от ширпотребного кода? Потомучто ширпотребный код говно. Нормальный код ведёт себя так же, как синтетика.

                                                            Знаешь почему тот же новомодный хасвелл быстрее коре2? Нет, глупышка. 90% его быстроты - это память, это скорость памяти и понтовость контроллера памяти. Код работает на i7 быстрее лишь потому, что память быстрее.

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

                                              >Если в задаче боттлнек - доступ к памяти, то в чем смысл баттла - потестить кто быстрее умеет обращаться к памяти?
                                              Да, в этом и суть - глупая лалка. Производительно процессора 40, либо 80гигафлопс на ведро. Производительность памяти 5гигафлопс. Ты понимаешь всю бредовость бреда, который ты несёшь?

                                              На каждый прочитаный из памяти флоат - процессор может делать ещё чутьли не 10 операций, но ты же кукарекаешь.


                                              >без разницы с какой скоростью процессор умеет читать и писать в память.
                                              Ты животное понимаешь вообще что ты несёшь? Ты не понимаешь, почему на гпу совершенно иная память?

                                              Имеет смысл что-то считать в нескольких нитях только тогда, когда ты упираешься в кеш, в остальных случаях - профита нет, кроме тех случаев когда у тебя лга2011 и иже с ним.

                                              >Но нет, я думаю ты просто не умеешь ни писать на гпу, ни использовать многопоточность.
                                              Что там уметь, питух? И что тут уметь, питух? На гпу написать это ещё проще. Нитей пихай хоть сколько - считай первый 2 ряда в 1-м нити, вторые во второй и так сколько угодно.

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

                                              Авотхуй. Поищи в гугле формулу зависимости производительности от количества процов и "распараллеливаемости" задачи. Формула Амдала, кажется, запамятовал название.

                                              Так вот. Формула гласит, что даже если мы не упираемся в пропускную способность памяти, и всего десятая часть вычислений должна исполняться последовательно (т.к. зависит от предыдущих результатов), то хоть 200 процов, хоть 100500, хоть дохуялиард, больше чем в 10 раз ты ускорить вычисления не сможешь. Никак.
                                              Ответить
                                              • Конечно есть нераспараллеливаемые задачи. Но эта то задача почти идеально параллелится, так что 4 ядра мы вполне можем задействовать.

                                                >Суть в том, что у матиков есть цпу - это задача помогает понять цпу, и гпу - ибо там теже самый проблемы с обходом.
                                                А, ну т.е. это не реальная полезная задача, а питушиная обучающая? Ну так бы сразу и сказал.
                                                Ответить
                                                • >Конечно есть нераспараллеливаемые задачи. Но эта то задача почти идеально параллелится, так что 4 ядра мы вполне можем задействовать.
                                                  Ты идиот или притворяешься? Какие нахрен 4 ядра, если одно ядро считает в 10раз читает и считает в 10раз быстрее, а 90% тактов процессор тупо простаивает и ничего не делает.

                                                  Ты предлогаешь считать это на 4ядра, хотя это уже на 1-м упирается память - чтобы это жрало в 4раза больше инергии. А чё, у нас же одно ведро выкидывает 90% тактов на ветер - пусть и остальные 3 выкинуть по 99% тактов на ветер - круто же.

                                                  >А, ну т.е. это не реальная полезная задача, а питушиная обучающая? Ну так бы сразу и сказал.
                                                  Это основа для всего. Так сичитается всё. Похоже строится и общитывется дискритизация любых процессов. Только добавляются множители и граничные условия.

                                                  Ты обычная анскильная кукарекалка, которая нихрена не понимает в том, о чём кукарекает. Я тебу уже это 10раз говорил и ещё раз скажу, питух. Не неси херню, питух. Иди почитай, питух.

                                                  Ещё раз повторю, тебе животное - 1ядро даст тебе 5% профита - ещё 2 ядра 0% профита - ты получишь 105% перфоманса одного ведра и 300% енергопотребления одного ведра.

                                                  Что ты будешь считать на своих остальных 3-х вёдрах?
                                                  Ответить
                                                  • > Ты предлогаешь считать это на 4ядра, хотя это уже на 1-м упирается память - чтобы это жрало в 4раза больше инергии. А чё, у нас же одно ведро выкидывает 90% тактов на ветер - пусть и остальные 3 выкинуть по 99% тактов на ветер - круто же.
                                                    Надо же, какой заботливый. А не все ли тебе равно, выкинет ядро такты на ветер от того что твоему потоку нечем его загрузить, или от того что ты ничем его не загрузил? И с каких пор в питушковых (не связанных с реальностью) задачах стали заботиться об энергопотреблении?

                                                    >Ты обычная анскильная кукарекалка, которая нихрена не понимает в том, о чём кукарекает. Я тебу уже это 10раз говорил и ещё раз скажу, питух. Не неси херню, питух. Иди почитай, питух.
                                                    А ты - школота которая не знает ни синуса, ни физики 7-го класса. Одним словом, "питух".

                                                    >Ещё раз повторю, тебе животное - 1ядро даст тебе 5% профита - ещё 2 ядра 0% профита - ты получишь 105% перфоманса одного ведра и 300% енергопотребления одного ведра.
                                                    А я еще раз повторю - гпу даст 400% профита (условно, тем более промежуточные результаты оттуда нет никакого смысла каждый шаг считывать, ты бы еще предложил их на винт сохранять), 2 ядра даст 5% (как ты сам признал). Т.е. если ты заботишься об эффективности - пишешь на гпу (или хотя бы масштабируемый код), если просто хочешь попонтоваться использованием процессора на 100% - задействуешь хотя бы второе ядро.
                                                    Ответить
                                                    • Ты что несёшь, животное. В чём профит твоего масштабирования на 100500 ядер, если уже больше чем на 1-м профита нет считать? Просто так, потомучто идиот типат ебя слился в споре и начал гнать херню? Ок, бро.

                                                      Мне похрен что такое синус, а также похрен на физику 7-го класса.

                                                      >А я еще раз повторю - гпу даст 400% профита (условно, тем более промежуточные результаты оттуда нет никакого смысла каждый шаг считывать, ты бы еще предложил их на винт сохранять)
                                                      Упоролся? Какие 400% профита. С чего-это не надо. В том и смысл, что надо. Ты будешь считать дифур не сбрасывая промежуточные результаты? Куллстори.


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


                                                      И да, животное - на цпу и на гпу это пишется одинакого.
                                                      Ответить
                                                      • >Упоролся? Какие 400% профита. С чего-это не надо. В том и смысл, что надо. Ты будешь считать дифур не сбрасывая промежуточные результаты? Куллстори.
                                                        Каждый шаг - результаты не нужны. А если даже нужны - смысл тогда твоих оптимизаций, если ты все равно после каждого шаг будешь копировать весь массив в область хранения?

                                                        >С чего ты, анскильный питушок, вообще кукарекаешь мне тут? Ты нихрена не знаешь ни про цпу, ни про гпу. Ты несёшь тотальную херню. Я уже тебе говорил - может мне мне взять здл и закатать это в кристалл? Быстрее ведь будет.
                                                        Быстрее. Но дороже. А на видеокарте - дешевле. Ну а заказывать себе процессор покруче вместо того чтоб осилить наконец гпу - так вообще идиотизм. Да и не знаешь про гпу именно ты. Ты кроме убогой сишки для х86\64 ничего не знаешь - ни физики, ни математики, ни структур данных.

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

                                                          >Быстрее. Но дороже. А на видеокарте - дешевле. Ну а заказывать себе процессор покруче вместо того чтоб осилить наконец гпу - так вообще идиотизм. Да и не знаешь про гпу именно ты. Ты кроме убогой сишки для х86\64 ничего не знаешь - ни физики, ни математики, ни структур данных.
                                                          Стиль написания на гпу не отличается от моего стиля написания. Причем тут покруче - суть в том, что писать что-то на моей коре2 1.86 смысла нет.

                                                          Для меня дешевле купить хасвелл и запилить нормально. Если я и заплю это на гпу, то уже после того, как запилю это НОРМАЛЬНО на цпу. Тогда я смогу пацанам показать - вот цпу код, который идеален. А вот гпу код, который сливает хасвелл на карточке за те же 10-11к.

                                                          >Да и не знаешь про гпу именно ты.
                                                          Что именно? Удиви. Стиль написания там примитивный - захреначил мастрицу в память - натравил сотню-тысячу юнитов - нажал wait() - прошел - хреначишь следующий цикл.

                                                          >Ты кроме убогой сишки для х86\64 ничего не знаешь
                                                          Для? Вообще-то я знаю чистую сишку. Я знаю гну-сишку, которая работает на всех аппаратных платформах - на которых есть гцц. Я знаю и гас и гис. х86 популярная, ширпотребная архитектура. Есть более лучшие, но не менее быстрые архитектуры - но они не популярны. Где мне их брать? Затариваться старьём на ебее?
                                                          Ответить
                                                        • >ни физики, ни математики
                                                          Я не знаю только примитивных матмоделей.

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

                                                          >Ну так если одинаково - что же сразу на гпу не пишешь.
                                                          Я уже описал. Я пишу на том, что мне нужно и на чём мне интересно. Напишу предельный код для х86 - авось захочу написать это на гпу.

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

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

                                                              >float питушней называешь.
                                                              Это итак питушня. Не тормазит она только на х86, на которых тупо тормазит алу и получается так, что типа в конвейеере float не тормазит. Думаешь просто так добавляют mull_add? Иди почитай в штеудмануале таблички с перфомансом интрукций.

                                                              >Куда тебе до каких-то матмоделей?
                                                              А они мне и не упали - матмодели для бездарных питушков.

                                                              >Ну я уже понял что у тебя питушиная задача, попонтоваться перед питушками.
                                                              Я уже понял, что ты, питушок, нихрена не понимаешь. О5 съехал с темы и перешел на питушков? Животинушка.

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

                                                                >Что мне о нём надо знать?
                                                                Хотя бы школьную программу. Смешно же читать как ты сливаешься начиная лепетать что-то про "графиг похож на полукруг, просто там другой масштаб".

                                                                >Это итак питушня. Не тормазит она только на х86, на которых тупо тормазит алу и получается так, что типа в конвейеере float не тормазит. Думаешь просто так добавляют mull_add?
                                                                Да-да, и армы и интелы очевидно проектируют питухи, зачем-то добавляя в них поддержку плавающей точки.

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

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

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

                                                                  >Нет, питух, я стараюсь поддерживать твой стиль общения. В прошлых темах ты утверждал, что не занимаешься питушиными задачами, которые не имеют приложения в реальной жизни. А теперь, питух, вот занялся, пишешь на цпу вместо гпу только чтобы доказать что-то каким-то питухам.
                                                                  Все задачи для гпу/цпу являются такими же задачами. Я делаю её не для того, чтобы только питухам доказать что-то - мне интересно, смогу ли я написать идеальный код.

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

                                                                    Нет, вся графа, шейдеры, видосы и числодробилки кроме обхода массива включают в себя собственно алгоритм (который и нужно оптимизировать), именно этим была вызвана чья-то ирония насчет foreach. У числодробилок кроме ДУ в частных производных есть, скажем, линейное\нелинейное программирование. В графе нужно работать с разнородными данными - полигонами\вершинами\вокселями, а не только блюрить текстуры 4096*4096. Вот насчет видео врать не буду - никогда не интересовался. Но и там, несомненно, вся суть тоже не в обходе массива.

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

                                                                      >У числодробилок кроме ДУ в частных производных есть, скажем, линейное\нелинейное программирование.
                                                                      ко-ко-ко.

                                                                      >В графе нужно работать с разнородными данными - полигонами\вершинами\вокселями, а не только блюрить текстуры 4096*4096.
                                                                      Это не блюр, питух. Это усреднение точки по её самой и соседям. Всё шейдеры работают так же. Все переходы рендерятся так же. Все воксели раскрашиваются так же. Питух несёт херню не понимая о чём он вообще несёт.

                                                                      >Вот насчет видео врать не буду - никогда не интересовался. Но и там, несомненно, вся суть тоже не в обходе массива.
                                                                      Вся суть какраз-таки в обходе массива. Берёшь x264 - берёшь интеловскйи sb без е и с e. Они отличаются контроллерами памяти - в остальном одинаковые. Сравниваешь - удивляешься, перестаёшь писать херню.

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

                                                                        >ко-ко-ко.
                                                                        Не кукарекай, питух, а отвечай давай. Где в симплекс методе сравнение с соседними элементами? А в Гомори где?

                                                                        >Все вычисления упираются в память
                                                                        Питух, а при чем тут твой обход массива?
                                                                        Ответить
                                                                        • > Где в симплекс методе сравнение с соседними элементами?
                                                                          А что симплекс? Симплекс тоже упрется в память, причем походу даже без SIMD. Там же во время преобразования всего 2 операции на ячейку - умножение да вычитание. А поиском строки и столбца, по сравнению со временем преобразования, можно пренебречь.

                                                                          Что-нибудь посложнее надо в пример приводить ;)
                                                                          Ответить
                                                                          • Я не отрицаю что он упрется в память, я говорю что там метод оптимизации из ветки ниже не имеет никакого смысла. Оптимизировать там надо более высокоуровневыми способами.
                                                                            Ответить
                                                                            • > Оптимизировать там надо более высокоуровневыми способами.
                                                                              Ну разве что другой метод выбрать...

                                                                              А как бы вы оптимизировали симплекс, если не секрет?
                                                                              Ответить
                                                                              • Посмотрел бы, как можно упростить задачу. Все равно в коммерческом решателе ничего не поменяешь и модель на другой решатель переписывать не станешь.
                                                                                Ответить
                                                                                • > Посмотрел бы, как можно упростить задачу.
                                                                                  Ну да, тоже вариант. Правда, обычно, такие задачи не особо упрощаются т.к. количество переменных и уравнений зависит от реальных данных.
                                                                                  Ответить
                                                                                  • Ну, вот сейчас с одной моделью энергетики работаю - иногда мне кажется что ее можно было урезать с 10 миллионов до трех с половиной уравнений. Но нет, экономисты-шарлатаны просят добавлить туда новые и новые условия. Возможно в более научных сферах ситуация другая.
                                                                                    Ответить
                                                                        • >Что, и рейкаст, и освещение работает также? Тоже усредняя по соседним точкам? Впрочем, питух, не зная что такое синус, ты в компьютерной графике все равно ничего не поймешь - максимум, в гугле названия прочитаешь, питух.
                                                                          Тоже обходом точек. Устреднение - это одна из операций, которую можно получить из сетки. Любой обход сетки - упирается в память, а ты слился питух.


                                                                          >Не кукарекай, питух, а отвечай давай. Где в симплекс методе сравнение с соседними элементами? А в Гомори где?
                                                                          А кто с ними сравнивает? Ты сам-то питух, отвел на все мои строчку, или силлся? Ты слился питух, а я отвечаю на все.

                                                                          Устреднение в данном примере взято потому, что в 90% задач значение точки зависит от её соседей. В остальных 10% ты можешь читерить и считать значение для каждой точки отдельно.


                                                                          >Питух, а при чем тут твой обход массива?
                                                                          Тем, что обходится массив - и именно его обход и упирается в память.
                                                                          Ответить
                                                                          • Да, ты прав, я слился. Сам не знаю что на меня нашло. Извини за ненужные придирки и удачи в оптимизации.
                                                                            Ответить
                                                  • суперхацкер локальная память ядра на гпу имхо читается гораздо быстрее, если тебе не часто надо обмениваться данными - то, что надо будет, питушок анскилльный.
                                                    Ответить
                                                    • Сколько там памяти на ведро? Это частности, которые зависят от кол-ва вёдер, моего массива и прочего.
                                                      Ответить
                                                      • >Сколько там памяти на ведро?
                                                        Раздели память на ведра - получишь порядок. Если получится на порядок лучше твоего, ты повесишься? Интересно, что будет делать поциент, если внезапно! выяснится, что он - чемпион в нахуй не нужной дисциплине?
                                                        Ответить
                                              • >Авотхуй. Поищи в гугле формулу зависимости производительности от количества процов и "распараллеливаемости" задачи. Формула Амдала, кажется, запамятовал название.
                                                Это тоже фуфло, которое придумал анскильный бездарь, а другие бездари ему вторят - лижбы не писать нормальный код.

                                                >Так вот. Формула гласит, что даже если мы не упираемся в пропускную способность памяти, и всего десятая часть вычислений должна исполняться последовательно (т.к. зависит от предыдущих результатов), то хоть 200 процов, хоть 100500, хоть дохуялиард, больше чем в 10 раз ты ускорить вычисления не сможешь. Никак.
                                                Это не формула питушка гласит - это здравая логика гласит. Только конкретно в этой задаче время обработки одной сетки может стремиться к нулю, поэтому это для неё не работает.


                                                Как именно ты будешь уменьшать время обработки сетки - по ведру на каждую точку, по ведру на лайн, если это конвейер и прочее.

                                                Хотя этот питушок кукарекает просто ради того, чтобы кукарекать - конкретно тут от сотни ядер был бы профит, если бы не память. Но питушки никогда не думают о памяти - поэтому они и питушки. Они даже примитивной кучей руками рулить не могут - какая им память. В этом вся и проблема.

                                                Ну и да, мы можем устремить 90% задачи к нулевому времени, но остальные 10% задачи будет выполнятся за время t, поэтому даже при идальном стечении обстаятельств - мы не сделаем быстрее, чем за t, которое с текущим техаппаратом устремлять даже близко к нулю не можем.
                                                Ответить
                        • Надо писать не на С++, не переносить скобку и писать непонятный код. Тогда ты станешь профи.
                          Ой, да я же в ещё 14 лет профи был!
                          Ответить
                          • ко-ко-ко. Надо писать не на С++, с учётом того, что в мире есть один вменяемый ЯП - это Си, а С++ как сишка с классами.


                            Не переносить скобку.


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

                                >Про твой быстрый код мы уже видели.
                                Где? Удиви.

                                >Зато я умел писать непонятный код.
                                Ты всегда говно писал и будешь писать.
                                Ответить
                  • > я пишу идеальные обходы для 4-32мегабайтных 2д массивов
                    Пишешь свой foreach? И давно ты его пишешь? :D
                    Ответить
                    • Анука, питух - берёшь float[4096][4096] - проходишь все точки, заменя каждую точку на средние значение из её соседей и её самой. float[256][256] = ((float[256][256] + float[256][255] float[256][257] + float[255][256] + float[257][256])/5); Причем заметь, изменять сразу float[256][256] ты не можешь, ибо если ты её изменишь - у тебя будет неправильный результат, ибо от неё зависят ещё много точек, которые ты пока не посчитал.
                      float[4096][4096], float2[4096][4096];
                      ...
                      float2[256][256] = ((float[256][256] + float[256][255] float[256][257] + float[255][256] + float[257][256])/5);
                      ...
                      memcpy(float2, float, 4096*4096*4);

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


                          Ты питушок и дальше будешь кукарекать, нихрена не зная о матчасти? Причем тут гпу? Он жешь это хотел сделать форичём - пусь сделает форичем, хоть на гпу - я поржу.
                          Ответить
                        • Это же практически blur-фильтр, если я не ошибаюсь. Ну только диагонали квадрата не используются.
                          Ответить
                        • > на гпу эта хуита очень неплохо будет считаться
                          Судя по словам "изменять сразу float[256][256] ты не можешь, ибо если ты её изменишь - у тебя будет неправильный результат, ибо от неё зависят ещё много точек, которые ты пока не посчитал.", выхлоп зависит только от входа, и совершенно не юзает промежуточных результатов. Да еще и флоаты. Эта задача просто идеальна для расчетов на GPU.

                          P.S. Когда-то для прикола заливал в текстуру 8192х8192 карту нашего городка, врубал построение мипмапок, и показывал ее на экране со скроллингом\зумом\поворотами. Нагрузка вообще не ощущалась.
                          Ответить
                          • Повторю вопрос про практическую пользу от байтоебства.
                            Ответить
                            • Животное, берёшь такую всем известную вещь как мемкопи - животное типа тебя напишет её так, что она не упрётся в память.

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

                                  Да, моя мемкопи быстрее твоей мемкопи, и быстрее самой быстрой gnu memcpy(), а она одна из самых быстрых в мире. Быстрее моей мемкопи запилить нереально.

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

                                  Поэтому твой удел, питух, писать говно и кукарекать.
                                  Ответить
                                  • Сколько тебе за твою мемкопи заплатили, питузок, или на сколько ты рассчитываешь? Кому нужно твое байтоебство? Тебе кто-то дал право писать системные библиотеки сишки? Нахуя это все?
                                    Ответить
                                    • Т.е. ты слился? Ок. Спроси автора самой быстрой мемкопи, на которой питух ты живёшь - сколько автору заплатили.
                                      Ответить
                      • Нашёл проблему. Много памяти займёт одна строка? Заводишь floatl[4096]. При подсчёте строки №256 результат пишешь не во float[256][i], а во floatl[i]. Когда будешь считать строку 257, результат будешь писать снова во floatl[i], помещая старое значение floatl[i] во float[256][i]:
                        tmp = floatl[i];
                        floatl[i] =  ((float[j][i] + float[j-1][i] + float[j+1][i] + float[j][i-1] + float[j][i+1])/5);
                        float[j-1][i] = tmp;
                        Ответить
                        • А теперь питух, приходи когда напишешь это так, чтобы оно упёрлось в память. Причем тут сколько памяти займёт одна строка?

                          Потом приходи, когда напишешь это так, чтобы оно было быстрее памяти.

                          Посчитал ты нулевую строку - сохранил во floatl[]; - начал считать вторую - надо считать о5 во floatl[], но ты питушок не можешь записать флоатл назад, и бо теперешний твоё счёт зависит от предидущих записей - думай лучше - кукарекай меньше.
                          Ответить
                          • Для среднего по пяти точкам работает. Для кого переменная tmp? Итого вместо 4096*4096 мой код жрёт 4096*4097 + 1.

                            Если же нужно посчитать среднее по девяти точкам, то да, работать не будет. Придётся сохранять ещё одну строку (но это уже лишнее)... либо три темпа вместо одного. Итого при втором варианте расход будет 4096*4097 + 3.
                            Ответить
                            • Не работает.

                              0 0 0 0 0 - посчитал, записал в tmp - в темпе лежат не нули.
                              1 1 1 1 1 - тут ты куда будешь считать? Записать tmp в строку выше ты не можешь - значит нужен ещё один tmp.

                              О5 начинаешь кукарекать, вместо того, чтобы подумать.
                              Ответить
                      • > memcpy(float2, float, 4096*4096*4);
                        Нахуя тут memcpy? Свапай указатели и погнали дальше, на следующую итерацию.

                        P.S. Ну если указатели не нравятся, а массивы в глобалках - напиши две копии расчетного цикла - один из float во float2, второй наоборот. И исполняй их по очереди.
                        Ответить
                        • Иди прочиатй про свап указателей на лорбатле, глупая лалка.

                          А так же - "твоя идея" со свапом отменяет мемкопи, но не отменяет х2 по памяти. А х2 по памяти - в 2раза медленее.
                          Ответить
                          • > х2 по памяти
                            x2 по памяти тут написал ты, в качестве примера.
                            Ответить
                            • Да, вообще-то это написал не я, но ладно. Я упрощенно написал референс, чтобы эти животные его поняли - если бы я написал нормальный обход - никто из них нихрена бы не понял.


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

                            Дальше код в духе a[y][x] = (a[y][x] + a[y+1][x-1] + a[y+1][x+1] + a[y+1][x] + a[y+2][x])/5. Для крайних строк и столбцов не забываем выкинуть лишние слагаемые.

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


                              Сколько строк тут не принципиально, если они валяются в л1 - на худой конец в л2.
                              Ответить
                              • > там надо больше одной строки
                                Что-то я туплю сегодня, почему там не хватит одной строки?
                                Ответить
                                • 0 0 0 0 0 - посчитал, записал в tmp - в темпе лежат не нули.
                                  1 1 1 1 1 - тут ты куда будешь считать? Записать tmp в строку выше ты не можешь - значит нужен ещё один tmp.

                                  У тебя минимум 2 линии взаимозависимые:

                                  0 0 0 0 -- ты не можешь сразу сюда писать - у тебя следующая зависит от этой.
                                  1 1 1 1 -- ты не можешь ни сюда, ни в предыдущую сразу писать - у тебя зависит от предыдущей.
                                  2 2 2 2 -- только сейчас ты можешь начать писать в нулевую.
                                  3 3 3 3 -- а сейчас в первую.

                                  Как-то так.
                                  Ответить
                                  • > Как-то так.
                                    Не, смотри:
                                    0 1 2 3 - добавленная строка
                                    4 5 6 7 - то что было в нулевой
                                    8 9 A B - то что было в первой
                                    C D E F - то что было во второй
                                    G H I J - то что было в третьей
                                    ...

                                    0 = (4+5+8)/3, 1 = (4+5+6+9)/4, 2 = (5+6+7+A)/4...
                                    В нулевой строке теперь есть одна из строк ответа, исходные данные пока не задеты.

                                    4 = (4+8+9+C)/4, 5 = (5+8+9+A+D)/5, 6 = (6+9+A+B+E)/5...
                                    Здесь я затер одну из исходных строк, но для вычисления последующих она уже не нужна.

                                    8 = (8+C+D+G)/4, 9 = (9+C+D+E+H)/5, A = (A+D+E+F+I)/5
                                    И так далее.
                                    Ответить
                                    • А теперь пройди второй раз - будешь ещё одну строку добавлять? А пройди тысячу раз.


                                      Ты не юзаешь строку как буфер, а смещает ответ вверх - там самым выбивая те же 2строки.


                                      В конце итерации - тебе надо либо юзать ту же мемкопи, причём ещё более медленную - либо юзать кастыли на ммапе и madvise().
                                      Ответить
                                      • > А теперь пройди второй раз - будешь ещё одну строку добавлять?
                                        Ну ты дочитай, пожалуйста, до конца тот коммент, в котором я предлагал свою идею: "По окончании прохода у нас внизу остается ненужная строка, и следующая итерация пойдет снизу вверх.".

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

                                          Это надо фигачить ещё одну функцию - и уже не факт, что у тебя это всё добро влезит в л1. Для 1024 мои банальный анрольный обход без махинаций занимает 30% l1i на ссе.

                                          Причем, смотри - тебе надо один хрен юзать буферы - ибо тут нельзя юзать не nt r/w, в противном случае - будет тормазить, а в этом - тебе о5 надо будет читать оперативу, что тормазит.

                                          Ты читаешь первую строку в буфер - меняешь настоящую, потом на следующем лайне - ты читаешь предедыдущую уже из буфера, а не из лайна. Записываешь настоящую - а следующую читаешь о5 из буферы. Тут надо в районе больше 3-х буферных строки - с махинациями ещё больше.

                                          Так ты на данном примере даже сэкономишь такты, но я подумаю над твоим предложением.
                                          Ответить
                                          • > нельзя юзать не nt r/w
                                            А если не секрет, сколько процентов прироста получил от использования non-temporal чтений\записей? Емнип они же почти не дадут профита для самого цикла, а в основном спасают кеши от засирания L3 нашей матрицей.

                                            А как насчет вот такого варианта - 3 буферных строки, на которые ссылаются указатели old, cur, new. Считаем нечто типа a[y][x] = (old[x]+new[x]+cur[x-1]+cur[x+1]+cur[x])/5 пачкой на SSE, записывая кусочек результата в матрицу через non-temporal write. old[x] заменяем на a[y][x+2], загруженное через non-temporal read. В конце строки крутим указатели tmp = old; old = current; current = new; new = old.

                                            Здесь, по идее, 3 буфера спокойно влезут в L2 при ширине матрицы до 16к, и имеется только необходимый минимум non-temporal загрузок/сохранений - на каждом проходе каждый байт читается из оперативы 1 раз и пишется в нее 1 раз.

                                            Возможно еще с префетчем поиграться придется, чтобы a[y][x+2] не тупил.

                                            P.S. Кто-то минусует все твои посты по инерции ;)
                                            Ответить
                                            • >А если не секрет, сколько процентов прироста получил от использования non-temporal чтений\записей?
                                              Разы. Хотя именно разы дёт nt+префетч.

                                              >Емнип они же почти не дадут профита для самого цикла, а в основном спасают кеши от засирания L3 нашей матрицей.
                                              И этим дают профит - они не засирают наш кеш и мы можем обрабатывать почти со скорость оперативы/2. Без махинаций - мы можем вообще попробовать навечно оставить часть массива в кеше. Если у нас есть 8-10метров л3 - даст буст чутьли не дополовины на 16метровых массивах.

                                              Это вариации того, что я описал - можешь юзать что хочешь - что будет быстрее - то оставь.

                                              Их и надо в районе 3-х - остальные - это махинации с будущим. Да, суть субферов в том, чтобы свести скорость обхода до минимум 50% оперативы.


                                              Да, псевдо nt чтение реализуется через префетч на старых штеудах. Префетч естественно нужен - без него будут тотальная лажа.


                                              Мне похрен на минусяторов - пацан объяснит в чём я не прав - животное минусанёт. Норм пацаны минусуют только откровенную ересь - мне просто лень что-то минусовать вообще.
                                              Ответить
                                            • Вот наглядный пример профита от nt:
                                              Код абсалютно одинаков:
                                              movntps	%xmm0, 0(%r8)
                                              	movntps	%xmm0, 16(%r8)
                                              	movntps	%xmm0, 32(%r8)
                                              	movntps	%xmm0, 48(%r8)

                                              Равно:
                                              51373517 L1-dcache-stores
                                              9644658 L1-dcache-store-misses
                                              328818 L1-dcache-prefetches
                                              738148 LLC-stores
                                              87704 LLC-store-misses


                                              Заменяем movntps на movaps:

                                              8646830855 L1-dcache-stores
                                              5000251996 L1-dcache-store-misses
                                              475194 L1-dcache-prefetches
                                              1343854676 LLC-stores
                                              26990813 LLC-store-misses


                                              Код записывает 32мегабайтный массив 8гигабайт раз.
                                              Ответить
                                              • > L1-dcache-stores
                                                Кстати, подскажешь, чем можно посмотреть эту статистику?
                                                Ответить
                                                • У линукс ведра есть тулзы, одна из которых perf. linux/tools/perf/.

                                                  Есть oprofile, но он слишком сложен для рядового юза.

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

                                                  Есть valgrind, вернее его часть - но он тормазит. Вроде под маздайку даже есть, а может и нет.

                                                  Это сделанно перфом. Перф умеет считать всё: http://pastebin.com/fytzs0Y3 - на новомодных штеудах возможно ещё дохрена чего добавили.
                                                  Ответить
                                                • >Кстати, подскажешь, чем можно посмотреть эту статистику?
                                                  IPCM же.
                                                  http://software.intel.com/en-us/articles/intel-performance-counter-monitor/
                                                  https://secure-software.intel.com/en-us/system/files/article/326559/intelperformancecountermonitorv2.4.zip


                                                  Помню и под athlon-64 была чудесная тулза. Лет 7 назад смотрел ею.
                                                  ЧСХ больше всего память любят архиваторы. Самое большое число промахов в обоих кешах и непредсказанных бранчей выдавал мне winRar.
                                                  Ответить
                                                  • Вторая ссылка изменилась:
                                                    s/v2.4/v2.5.1/
                                                    Ответить
                                                  • > IPCM же
                                                    Спасибо, посмотрю.
                                                    Ответить
                                                    • Только под винды у меня mingw не захотел его собирать, надо либо студию ставить, либо лезть и править сырцы.
                                                      Ответить
                                                      • > Только под винды у меня mingw не захотел его собирать
                                                        Да на фейхуя мне под винду, под линь без проблем собралось... Вот только:
                                                        Error: unsupported processor. Only Intel(R) processors are supported (Atom(R) and microarchitecture codename Nehalem, Westmere, Sandy Bridge and Ivy Bridge). CPU model number: 23 Brand: "Pentium(R) Dual-Core CPU E5400 @ 2.70GHz"
                                                        :(
                                                        Ответить
                                                        • >Pentium(R) Dual-Core CPU E5400
                                                          Облом, одного поколения не хватило. У меня почти такой же: E5200 в старом компе стоит.
                                                          >под линь без проблем собралось.
                                                          Да там и фич больше кстати.
                                                          >Nehalem, Westmere, Sandy Bridge and Ivy Bridge
                                                          А Haswell?
                                                          Интел в этих процах запилили чудо-технологию TSX - транзакционную память. Давно хочу попробовать.
                                                          Ответить
                                                      • Кстати, забавно, но в отличие от IPCM царский линуксовый perf работает.
                                                        Ответить
                                                        • Потому что соответствующие счетчики для мониторинга событий появились еще в core 1.
                                                          http://oprofile.sourceforge.net/docs/intel-core-events.php
                                                          Кстати в кои-то веки я плюсанул петушиного Царя, который.
                                                          Ответить
                                            • В цифрах:
                                              Запись:
                                              Кора2:
                                              16384 Kb block: 3369.59 MB/s
                                              16384 Kb block: 8167.27 MB/s

                                              Запись 16-ти метров 8гигов раз. На любом другом штеуде картина похоже - на амд так же, на последних бульдозерах там ситуация чуть равне на паре нитей, ибо контроллер говно - на 4+нитях - там ситуация та же.
                                              Ответить
                                • Кстати, почему твои питушки меня минусуют? Я разве где-то не прав?
                                  Ответить
                                • показать все, что скрытоА теперь ещё одно - заметь какие вы питушки. Когда вы пишите на сишке, а я говрю: "пишите на нормальном конпеляторе - проблем не будет" - вы говорите: "мы пишем на том, что у нас и что нам требуется". Когда я пишу на цпу и питушки поняли, что попец пригорел - начали кукарекать про гпу, хотя нихрена про гпу не знают. А мои аргументы "я пишу под то, что мне надо" - их не интересует.


                                  Ты не видишь тут произвол и двойные стандарты?
                                  Ответить
                                  • Ваше величество, не кажется ли Вам, что пора капельницу ставить?
                                    Ответить
                                  • А что значит "тебе надо"? Определи критерии надобности. Или ты пишешь под то, что тебе хочется?
                                    Ответить
                  • >>Вот теперь посчитай - осилить в иделе сишку. Осилить в идеале ОС. Осилить в идеале конпелятор. Осилить в идеале железо. Осилить в идеале вначале либо плис, либо схематехнику. Запилить идеальный процессор. Слить всех в мире не только софтварно, но и хардварно. Имея опыт в ЧПУ захреначить свой цех фотолитографии, либо сборки из елементов. И слить всех просто в говно.

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

                    Но зачем мне все это нужно? Я выбрал не выбирать си...
                    Я выбрал заедушное накидывание кнопок на формочку. Почему? Да потому что какие могут быть почему, когда тебе платят деньги.

                    >>Я не делаю никакие проекты
                    Это уже интересно.
                    Ответить
                    • >Но зачем мне все это нужно? Я выбрал не выбирать си...
                      Я и не говорю, что тебе это нужно.

                      >Я выбрал заедушное накидывание кнопок на формочку. Почему? Да потому что какие могут быть почему, когда тебе платят деньги.
                      В том и суть - для тебя программирование - просто дело, сливая на которое время - ты получаешь бабло.

                      Ты можешь сливать время не только за бабло, на и обновременно с этим на своё развитие - это средний путь.

                      Для меня программирование - хобби, на которое я сливаю время потому, что мне это интересно.


                      Естественно для тебя важным является простота - ибо тебе лень сливать больше сил, если бабла в итоге столько же. Для меня это не аргумент - поэтому мы не понимаем друг друга.

                      >Это уже интересно.
                      Что конкретно?
                      Ответить
            • > По твоему стиль написания скобок определяет качество программиста?
              Если фигурные скобки есть, то как бы сказал тарас, погроммист низкого качества.
              Ответить
    • Мало проверок. Мы должны пойти дальше: http://ideone.com/TWaqEF
      Ответить
    • О, Кащенит!
      Ответить
      • О, в нашем полку прибыло. Добро пожаловать)
        Ответить
    • Молчаать! Что за хуйня у вас тут творится? На работу иди. Иди на работу. Говно чистить. Чисти говно. Говно чисти. Вот так: раз-раз-раз. Чисти.
      Ответить
      • Иди (Под_струю);
        Сука {
        	Мойся();
        }Чтобы (Чистый_был);
        
        (Ты_понял)                                 ?  //check condition
        Чтобы( Через(5,Минут) ) Сука {Чистый_был} : //timeout
        Или Я(тебя).Придушу(*Вот->Этими.Руками)	  ;	//or die
        С неохотой отписываюсь в зашквареном треде.
        Ответить
    • superhackkiller1997, даже если ты 100% прав, не надо называть всех питухами.
      Ответить
      • Да что-то мне уже начинает казаться, что это не тролль, а юноша, со свойственными в его возрасте максимализмом и ЧСВ, у которого выработалась такая защитная реакция из-за того что вместо того, чтобы спокойно пояснить ему ошибки, в инете все пытались втоптать его в говно...

        Мы сами сделали из него монстра.
        Ответить
        • Нет, у него выросло ЧСВ, в качестве защитной реакции или нет.
          >в инете все пытались втоптать его в говно...
          Рунет такой рунет. Не унизив спрашивающего, никто отвечать не будет. Вот и научили малолетнего долбоеба.
          Ответить
          • > выросло ЧСВ
            Да мне кажется, что оно было изначально. Все-таки когда в юности кто-то в чем-то разбирается лучше своих друзей (а судя по разговорам Царь все-таки шарит в low-level оптимизациях), то он считает, что он может свернуть горы, и ЧСВ зашкаливает...

            > Вот и научили малолетнего долбоеба.
            На свою голову. Каюсь, "шел бы ты отсюда петушок" написал ему я. До этого он вроде слова "питушок" и "питушня" не употреблял...
            Ответить
            • Хорошо бы обьяснить Царю, что далеко не всякую гору стоит сворачивать. Что самим фактом сворачивания абстрактной горы он может разве что выебнуться перед корефанами, а остальным он станет сколько-нибудь интересным, когда его работа станет кому-то нужной.
              Ответить
              • Я думаю это пройдет с возрастом.

                Я тоже когда-то сворачивал абстрактные горы типа эмуляции 8080 проца на 40мГц машинке (с кнопкой турбо!) и вбивания 4кб хекс кодов из журнала только ради того чтобы поиграться с этой древней прогой в шахматы ;)
                Ответить
                • Кстати, у NEC v20 (80186) была аппаратная эмуляция 8080, для чего в сетке инструкций был код, переводящий в этот режим...
                  Ответить
              • Это интересно мне - на остальное я клал. Не сварачивал бы я всякую гору - я был бы тотальным анскилледом. А так я за годик поднял своей скилл с нуля до 1-2% илиты. Я не считаю, что я слил своё время зря.

                Теперь я лучше понимаю всё, а я не люблю что-то делать, когда я чего-то не понимаю.

                Я делаю вещь так, что я мог сам себе сказать, что я сделал хорошо - а спрос с моего кода у меня ещё выше, чем с тех, кого я хаю. А как ты понимаешь - я не могу с себя спрашивать, если я чего-то не понимаю в коде - поэтому ДО ТОГО, как что-то писать - я должен абсалютно полность научится понимать код и всё то, что под ним.

                В противном случае - моё дело станет мне не интересным.
                Ответить
            • >Да мне кажется, что оно было изначально.
              Да, царь всегда был царём. Даже в детсаде царь был наровне со взрослыми. Хотя, что самое интересно - пока детки маленькие - они не строят из себя что-то, а слушают и внемлят. Потом, когда детки становятся школотронами и лет до 25-30 - они тотальная потеря для взразумления. Поидее я всегда считал, что большие дяди должны вести себя как 5-ти летние детки - у них не должно быть предвзятости, боязни за свою жопу, боязни слить спор, боязни показаться неправым. Дядям уже должно быть интересно БЫТЬ правым, а не казаться правым в глазах анскилледа.

              >Все-таки когда в юности кто-то в чем-то разбирается лучше своих друзей
              Да нет у меня никаких друзей и небыло никогда. Мне не интересно быть царём в глазах анскилледов - мне интересно стать царём слив сильных мира сего.

              >а судя по разговорам Царь все-таки шарит в low-level оптимизациях
              Нихрена я нивчём не шарю. Я пару лет назад начал писать на плюсах, кутишках и прочих. Через полгода одалело, я увидил сишку - в ней небыло всего того, что меня одалевало в плюсах. Я думал: А как пацаны пишут на сишке без крутых С++ фич. Поэтому первым делом я осилил сишку, пиля всевозможные идеальные конструкции - и потом я понял, что сишка сливает питухплюсы просто в говно, ибо я могу реализовать всё, что угодно и даже лучше, чем в плюсах.

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

              В конечном итоге я последний год пишу на сишке - и я рад, но когда я смотрел код сишников - я дивлялся, как эти люди, писавшие на сишке десятилетиям, могут писать такое говна, аля свичи на 500строк. Поэтому у меня ненависть к питух Си. Я считаю, что это неосиляторство позорит сишку - и моя задача донести суть сишки до тех, кто не понимает сишки.

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


                  Будет такая же ситуация как с сишкой - я буду знать её как царь, но больше её никто так не знает(меньше 1% программистов) - поэтому всем похрен.
                  Ответить
                  • заткнись уже со своим царем, уебок.
                    Ответить
                  • Блядь, где-то же была паста Карманова, весь блог проебал, петух. Примерно такая: пучеглазые лузеры, не добившиеся ничего в общепризнанных видах спорта, изобретают свой, отведение гири 6 килограмм в сторону. Вот в такой дисциплине у нас Царь чемпион.
                    Ответить
                  • Нет, надо прислушаться к eth0. Ясное изложение, элементарная вежливость - и вот уже ты признанный царь. К чему вести себя как неадекват, если оппонента можно легко задавить аргументом?
                    Только те самые анскильные питушки начинают питушиться, ведь им нечего ответить, у них есть только бугурт. Не пойму, зачем со своими сишкознаниями опускаться до их уровня.
                    Царь не перестанет быть царём, если будет предельно вежливо говорить с остальными. Наоборот, он так велик, что его не заботят мелкие тролли.

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

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

              >шел бы ты отсюда петушок
              А в этом и суть. Это называется предвзятость - вы увидили непонятноу конструкцию и сразу вынесли вердикт - "питушня", даже не подумав, почему она не работает. Теперь всех, кто говорит неподумав - я назваю питушками.
              Ответить
          • > Рунет такой рунет.
            Вот, кстати, да. На иностранных тематических форумах\конфах почему-то я такого отношения к спрашивающим почти не встречал.
            Ответить
            • Раз. http://python.su/forum/post/58544/
              Ответить
              • А я бы asilyator'а послал бы нахуй за его тон, а не кидал бы ему скрипт. Пускай сначала научится нормально общаться, без давления на того, у кого он просит поддержки.
                Ответить
                • Возможно, на англоязычных форумах отвечают вежливее потому, что вежливее спрашивают.
                  Ответить
                • А это нормально, что человек написал скрипт так, поприкалываться, и ему даже в голову не пришлось им поделиться? Нахуя он вообще в тред зашел? Что сказали бы о таких на "зарубежных" форумах?

                  И не нравится тон - ну так пиздуй дальше, или лучше, вообще форума. Тут любители побрюзжать не нужны.
                  Ответить
                  • > Нахуя он вообще в тред зашел?
                    Он ответил в какую сторону копать, предложил юзать xpath+html5lib вместо beautifulsoup. Когда ОП попросил выложить пример скрипта - он выложил.

                    > Что сказали бы о таких на "зарубежных" форумах?
                    Да ничего бы не сказали ;) Там почему-то не принято переходить на личности и разводить срачи по пустякам. Ну или мне просто попадаются удачные странички, когда я что-то ищу.

                    > И не нравится тон - ну так пиздуй дальше, или лучше, вообще форума.
                    Судя по этой фразе - вы типичный представитель рунета ;)

                    > Тут любители побрюзжать не нужны.
                    Посмотрите в зеркало, пожалуйста ;)

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

                      >Он ответил в какую сторону копать
                      Мне не копать нужно было, а конкретный код.

                      >Да ничего бы не сказали ;) Там почему-то не принято переходить на личности и разводить срачи по пустякам. Ну или мне просто попадаются удачные странички, когда я что-то ищу.
                      Тебе, наверно, SO попадается? Там все чистят просто.

                      >Посмотрите в зеркало, пожалуйста ;)
                      Я не начинаю издеваться над каждым, кто просит помощи (а по-другому это не назовешь).

                      >/thread
                      Ты не модератор, сучечка.
                      Ответить
                      • > человек лишний раз заставляет себя просить
                        > Мне не копать нужно было, а конкретный код.
                        Об этом можно было написать в первом посте - "скиньте, пожалуйста, пример как это правильно сделать". Вменяемо и вежливо сформулировать свои запросы, чтобы их не приходилось угадывать другим, это так сложно для представителя рунета?

                        > Тебе, наверно, SO попадается?
                        В основном да. Ну и мэйллисты.

                        > Я не начинаю издеваться над каждым, кто просит помощи
                        Оп это вы? Ну где там над вами издевались, кроме коммента #7? Посчитали строчки тайком да код не сразу кинули... Вселенская катастрофа...

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

                          >Ну где там над вами издевались, кроме коммента #7? Посчитали строчки тайком да код не сразу кинули... Вселенская катастрофа...
                          Этого мало? Не не сразу кинули, а вообще не кинули. Спрашивается, если ты решил повыебываться, пообсирать вместо того, чтобы помочь - ну нахуя ты пришел на форум, нахуя отвечаешь? Рашка, или не рашка. ЧСВ-шное мудачье, вот в чем суть.

                          >В основном да.
                          У меня для тебя плохие новости - SO для спрашивающих ДАЛЕКО не такой пушистый, как для тех, кто пришел из гугла, собсно, это такая база ответов, которую заставляют заполнять хомячков, этакий пылесос. На корректно поставленный вопрос могут как качественно ответить, так и не ответить вообще, заминусовать или просто закрыть к хуям собачим без особых обьяснений, причем это все рандомно. И разборки в вопросах там трут, или сами юзеры, или мочераторы.
                          Так что ты сначала позадавай там вопросы, а потом рассказывай.
                          Ответить
                  • Это вантузятская натура - натура проприетарных говнарей. Оба питухи - один не погуглил на ответ - второй написав, не показал пацану как надо.
                    Ответить
                    • КОНСОЛЕЧКА в СРАЧЕЧКЕ не ЖМЕт, бггг?
                      Ответить
                      • Нет, норм. А во, это как анскильные питухи спорят, что консолечка сливает гую и её нельзя юзать.

                        Хотя любой вменяемый человек понимает, что в 90% случаев консолечька сливает гуйню в хлам. В остальных 10% тоже, просто там крысный интерактив.
                        Ответить
                        • FAQ ПО ПЕРДОЛИКАМ:

                          * Пердолики АНАЛьно ПЕРДОЛЯтся с консолью.

                          * Пердолики мечтают, что бы все другие тоже ПЕРДОЛились с консолью. Им обидно что никто кроме них не хочет, так яростно ПЕРДОЛИТСЯ.

                          * Пердолики яростно флюдоросят, вылизывая АНУСЫ друг у друга и яростно дрочат на любое проявление ПЕРДОЛИКСА™, особенно на ПЕРДОЛЕНИЕ консолью в жопу.

                          * По мнению пердоликов ПОПЕРДОЛИТСЯ КОНСОЛЬЮ на ночь, днем и еще вечерком пару раз - есть естественное желание любого нормального человека. (ЛОЛШТО?). Остальные просто не поняли этого.

                          * СВОБОДА И НЕ_СВОБОДА. По мнению пердоликов СВОБОДА днями и ночами ПЕРДОЛИТСЯ С ПЕРДОЛИКСОМ лучше СВОБОДЫ не_ПЕРДОЛИТСЯ днями и ночами с другими ОС.
                          Причем СВОБОДА НЕ_ПЕРДОЛИТСЯ в ужасе называется НЕ_СВОБОДОЙ ПЕРДОЛИКАМИ.

                          * СВОБОДА пердоликов имеет странный вкус. ВКУС_ГОВНА. Остальные просто не поняли всю прелесть вкуса ГОВНА из АНАЛа.

                          * Пердолики всегда стремится АНАЛЬНО огородится. Любой БУГУРТ провоцирует выпил постов/тредов. ЛЕГИОН призирает пердоликов за это. Особенно того пердолика что выпиливает посты на сосаче. БУГУРТ, да?
                          Ответить
                        • Причину, по которой нормальные люди называют пользователей линукс петушками, объяснить просто. Это самый обычный термин, а не просто взятое понятие с потолка или во время обострения баттхерта.
                          Пользователь линукс — по сути жертва обстоятельств, анальный клован, у него очень дохуя времени надрачивать компьютер в полной мере, ведь он или не работает, живя на мамкиной шее (если ему 20 и больше), или школьник. Поэтому пердопетушки остаются вечными дитями, с горем пополам освоившими заправку картриджей, не вникая в тонкости общения с реальными людьми. Называть их иначе как петушками совесть у людей не позволяет.
                          А вопли некоторых пердоликов, называющих виндовс «питухос», это чисто из-за баттхерта и неимения аргументов, как бы голословное утверждение. Это как в детском садике:
                          — Вася, ты все-таки не из той пизды уродился, туповат ты.
                          — Сам дурак!! САМ ДУРАААААК!!!
                          Ответить
                        • Конечно, куда уж нам до пердоликов с их пету САМОЙ ЛУЧШЕЙ ОТКРЫТОЙ И СТАБИЛЬНОЙ ОС, когда каждый уважающий себя пердолик перед тем, как пропихнуть консолечку в срачельничек на достаточную глубину, тщательно изучает каждую строчку исходников и всех обновлений по мере их выхода, и уж он-то точно знает, что делает каждая строчка кода, и, что уж в его-то только что обновлённой версии ПЕРДОЛИКС™ ЖМУ/АНАЛИКС'а нет ни единого злого-презлого демона, который отправляет его супир-пупир сикретные хэккерские данные в Майкрософт, и которыми, как известно, кишит самая плохая-расплохая ОС Windows.
                          Ответить
                        • называй вещи своими именами:
                          дегенeраты, чмошники, высерки, лохи, лузеры обреченные годами сидеть у папы с мамой на шее и пердолится консолью в сраку ПЕРДОЛИКС™ [spoiler]ЖМУ/АНАЛИКС™[/spoiler] до 30 лет. потом у них просветление в 30 и они идут картриджи заправлять/менять.
                          Но к ним я отношусь хорошо, как и к наркоманам. Наркоманы должны сколотся и сдохнуть. А пердолики, своего рода КАЛ от IT, должны пребывать на социальном дне и освободить рабочие места в IT для адекватных людей. Это естественный отбор, слабые должны умереть. Ничего личного.
                          Ответить
                        • ты прав бро. всю мощь анальной ебли консолью можно узнать только на реальной машине. когда файлы и ПАПКИ в опасносте. Добро пожаловать в наш небольшой, пол-процентный клуб консольных анало-пердоликов. Надеюсь тебе понрaвится круглосуточное анальное сношение с системой. И незабудь постить сюда о своих проблемах, все мы весело поржем над недоумком с раздолбленным аналом консолью. Двачую бро, ты на верном пути. [spoiler]бггг[/spoiler]
                          Ответить
                        • ОЛОЛОЛО, апофеоз ПЕРДОЦИРКА.
                          план адептов штульмана прост и понятен абычнаму пользователю: приходим, говорим, что всё говно, костыли, за деньги, закрытая проприетарщина, а ПЕРДОЛИКС рулит. когда нам приводят контраргументы, говорим, что пост не имеет смысла! или еще лучше, говорим, что у оппонента не хватает ПЕРДОзнаний! занавес!
                          Ответить
                        • Знаем мы эту вашу швободку, вам бы только консолью пердолиться и кукарекать про мегагитлеркрутость швободных программ, а то, что они не работают и глючат, так это кококо спермачи неосиляторы кококо, кококо напиши патч и исправь кококо
                          Ответить
                    • Кстати, как будто среди питухов ЧСВ-шного говна вроде тебя мало?
                      Ответить
                      • Суть в том, что я царь - а они нет. Я прав в овер 95% случаев. Если я кукарекаю про сишку - я знаю сишку. Если я про что-то говорю - я представляю как это должно работать.

                        Споря с лалками, в 95% случаев я теряю в ремя - в 5% я наткнусь на человека, который будет в чём-то прав. И уже в следующий раз я буду ещё лучше знать и понимать тему, и ещё больше буду прав. Профит от этих 5% людей перевешивает слив времени на питушков, хотя иногда и питушки могут сказать что-то интересное мне.

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

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

                            А Приходить в интернет с мыслью о том, что вам кто-то что-то обязан, глупо.
                            Ответить
                            • Я прихожу с мыслью, что рано или просто кто-то да ответит. А не хочешь отвечать, а хочешь выебываться - пездуй мимо. На фриланс, например.
                              Ответить
                • А я бы чморил таких как ты. Их на форумах меньшинство, и для меня лично без таких личностей форум ничего не потеряет. Мне нужны люди попроще. Да, может быть даже надо было с пхп начать.
                  Ответить
        • Выростили монстра, да. Но не поэтому - я таким был всегда. Моё ЧСВ у меня заслуженно, ибо тот, кто хочет от меня не ЧСВ - должен вести себя соотвественно. Если я вижу, что питушок, который нихрена не может с уровнемр азвития на уровне 40% - мне лениво говорить с идиотом - я его солью.


          И да, я с вами начал разговаривать нормально - про питуха начал кукарекать ты, неудасуживщись разобраться в вовпросе.
          Ответить
          • superhackkiller1997, пойми, всем похуй на то, что ты изобрел свою собственную дисциплину и в ней крут, пока ты не докажешь всем крутость и полезность этой дисциплине. 1) Я мало что понимаю в низкоуровневой оптимизации и 2) Мне похуй. До сих пор я от этого не страдал. Если ты расскажешь, где твое дрочево может быть полезно, я может и внему, а пока..

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


              Я пишу то, что нравится мне - мне не нравится говно - я не могу писать говно, ибо мне проще ничего не писать.


              А где полезно - везде. Всё написанно как говно - куда не глянь. Броузер на 50вкладок жрёт 2гига оперативы, торрентокачалка качая насилует диск просто в хлам: 10метров/с на запись, блок 4метра - 550тпс. Как можно было написать такое говно - я не представляю. И это банальная прикладуха. Даже портеж и тот написан как говно. Самое нахрен скилловое комьюнити у генты, но портеж написал как говно.

              На уровне не прикладухи всё ещё пичальней. Что делать? Мне купить ссд для торентокачалки? Купить 20гигов оперативы для броузера?


              Да банально - парсить файлы НИКТО НЕ УМЕЕТ, даже такую банальщину. Всё это пичально и мне не нравится, поэтому у меня такое отношение к тем, кто не захотел написать нормально. Ладно блин нахрен маздайщик-делфятник заедушный, аля тарас, который просто неспособен что-то написать. Но когда откровенное говно пишет сишное спо-комьюнити - мне становится грустно.
              Ответить
              • Торрентокачалку (имя можно) можно привести к нормальному виду без дрочерства с тактами и кешем процессора, более того - написана она может быть хоть на яве, хоть на питоне, хоть на руби, оно абсолютно общее для всех языков. Или мне СИШКОПРОБЛЕМЫ припомнить?

                Насчет браузеров - это беда. Они, наверно, имеют суперпупервыебанные фичи, но 95% вебмастеров ими не пользуются, а память браузеры жрут больше на всех сайтах. И вообще, форк пришел с юнипсов, где форки бесплатны, пока процесс не изменит страницу памяти (copy on write), на винде это не так. Но это уже обсуждение браузеров.
                Ответить
                • Торрентокачалку - все. Конкретно трансмиссия.

                  >можно привести к нормальному виду без дрочерства с тактами и кешем процессора, более того - написана она может быть хоть на яве, хоть на питоне, хоть на руби, оно абсолютно общее для всех языков. Или мне СИШКОПРОБЛЕМЫ припомнить?
                  Нет, именно оно и нужно. Нужно нормально написать кеша( на жабе/руби/питоне ты это не сможешь), вычислялки контрольных сумм, strcmp(), нормальную работу с сокетами.

                  Где на жабе/питоне/руби епуллина и нормальные калбеки? Нету - в этом и проблема. Где нормальное посиксапи? Нету - поэтому код и говно.

                  Где на жабе/питоне/руби нормальное управление памятью? Как я буду строить свои систему кешей, чтобы добится <1 иопса в секунду? Нету - в этом и проблема. Где нормальное посикс апи? Где лсики, где madvise(), mmap()?

                  Проблема торрентокачалок именно в том, что они написанны на сишке так же, как и на жабе/питоне/рубях - в них нет нормального кеша, нормального балансёра, нормальной работы с сетью - в них скорость на блоках скачен - они неспособны нормально обрабатывать тысячи коннектов в секунду. Их sha1() еле-еле выдаёт 5-6гигов в секунду, а кеша работают на уровне 20гигов в секунду.

                  Браузеры говно по определению - их уже не спасти.
                  Ответить
                  • Попробуй переписать по-царски, если тебе будет интересно. Ссылки на спеки торрент-протокола могу подкинуть, недавно их читал. Ничего особо страшного и сложного в протоколе нет. Дерзай ;)
                    Ответить
                    • Давай, перепишу - давай спеки. Парсер торрентов я уже начал написать - осталось найти спеки протоколов.
                      Ответить
                      • http://bittorrent.org/beps/bep_0003.html - от автора, не особо подробная.
                        https://wiki.theory.org/BitTorrentSpecification - вот тут получше расписано.
                        http://bittorrent.org/beps/bep_0005.html - DHT, без него вполне работает.
                        Ответить
                        • У DHT есть две реализации: одна от Битторрента, другая от Vuze/Azureus. Есть ещё PEX и снова такая же проблема: существует несколько протоколов (как минимум протокол Vuze/Azureus и мю-торрента).

                          Так что DHT и PEX можно отложить на потом.
                          Ответить
                        • Нихрена не ясно - о5 прийдётся жить весь день в обнимку с wireshark'ом.
                          Ответить
                          • Вброшу-ка пару ссылок:
                            http://download-origin.transmissionbt.com/files/ Да, libtransmission написана на сишечке. Стоп! Она уже упомянута выше.

                            http://mldonkey.sourceforge.net/BitTorrent

                            Тут коллекция ссылок на протоколы.
                            Ответить
                            • В том и суть, что она написанна на сишке, но написанна как говно - в этом и суть.


                              А описание протолов - говно. Что как - куда пихать. Всё это для меня логики не имеет, поэтому мне нежун пример. Поэтому мне проще взять трансмиссию, взять wireshark и отснифать.

                              Я вообще не представляю, что нужно в протоколе, кроме пары оппкодов. GET_BLOCK;TORRENT_ID;BLOCK_ID; - тебе в ответ клиент посылает этот блок, в конце вы обмениваетесь статусами - Всё ок, спасибо, либо Всё ок, дай ещё пару блочков. Если это поверх tcp.
                              Ответить
                              • Если я всё правильно понял, то общение с трекером идёт либо через HTTP (обычный GET-запрос), либо через UDP. Через udp так:
                                http://bittorrent.org/beps/bep_0015.html

                                А между клиентами хитрее. Там может быть tcp, а может быть uTP — ересь, придуманная мюторрентом:
                                http://bittorrent.org/beps/bep_0029.html
                                Ответить
                                • Да, да - это оно, спс. Я не нагуглил.
                                  Ответить
                                  • Все эти ссылки есть в первом документе, упомянутом Бормандом, а именно в
                                    http://bittorrent.org/beps/bep_0003.html

                                    Возможно, проблема в том, что такой свиток текста плохо читается. Его приходится просматривать несколько раз целиком.
                                    Ответить
                                • На ересь, между прочим, есть библиотека под public domain.
                                  Ответить
                                  • Ну еп твою мать - Царь кого-то благодарит!
                                    Ответить
                                • рутракер питух - удп не держит, питух. Все держут - этот питух нет. Питух. Нахрен так жить? Ещё одну байду фигачить.
                                  Ответить
                              • Ты же Царь, разберешься.
                                Ответить
                                • Я и не говорю, что я не разберусь. Просто я не нашел на тем ссылкам внятного описания протоколов, поэтому фигачу по старинке.

                                  Что вам не нравится - я не понимаю.
                                  Ответить
                    • Какое же говно этот битторрент. Тотальное, избыточное говно.

                      Ладно udp анонсер ещё можно понять, хотя без слёз не взглянешь, но http анонсер - лютая фекалия.

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

                      П.С. Да, это будет моя жжешечка.
                      Ответить
                  • >епуллина
                    Чтоэта?
                    >Где на жабе/питоне/руби епуллина и нормальные калбеки
                    Ебанулся? Твои каллбеки называются замыкания и есть они почти в любом языке, кроме явы, конечно.

                    >вычислялки контрольных сумм,
                    Стандартная библиотека.

                    >Нужно нормально написать кеша( на жабе/руби/питоне ты это не сможешь)
                    Пруфов, конечно, не будет. Про азуреус не слышал? Он явовый.

                    >Их sha1() еле-еле выдаёт 5-6гигов в секунду, а кеша работают на уровне 20гигов в секунду.
                    Это, блядь, просто пушка! В каком месте вычисление хеша узкое место? Откуда ты собрался с такой скоростью читать? Так и знал - диванный кукаретик-синтет. Можно игнорить.

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

                    Блядь, да у тебя еще и кругозор нулевой, кукаретик. Синдров утенка и АССЕМБЛЕР в срачле.

                    Зато в других языках нет СИШКОПРОБЛЕМ, как ручное управление памятью и связаные с этим радости вроде сегфолтов и утечек, про ПЕРЕПОЛНЕНИЯ БУФЕРА вообще молчу, есть исключения, а значит, они безопасны по умолчанию, в отличие от сишки, где забыл проверить код возврата - и получил рнр, где главное продолжать работу любой ценой.
                    Ответить
                    • Управление памятью — спорная тема. В той же Яве сбор мусора может не произойти вовремя и потребляемая память будет распухать.
                      Ответить
                    • >Чтоэта?
                      man epoll

                      >Ебанулся? Твои каллбеки называются замыкания и есть они почти в любом языке, кроме явы, конечно.
                      Как мне записать указатель на этот калбек в кернелспес, чтобы сразу вызывать его? Иди почитай как работает епуллина.

                      >Стандартная библиотека.
                      ко-ко-ко, говно твоя стандартная библиотека.

                      >Пруфов, конечно, не будет. Про азуреус не слышал? Он явовый.
                      Ты упоролся? Предел для твоих кешей в яве - гигабайты. Предел для сишных кешей - десятки гигабайт. Посчитай.

                      >Это, блядь, просто пушка! В каком месте вычисление хеша узкое место? Откуда ты собрался с такой скоростью читать? Так и знал - диванный кукаретик-синтет. Можно игнорить.
                      Я скачал блок в кеш, на твоей питух яве я обработаю его(посчитаю кеш, сравню, запишу на диск) за 100к тактов, на сишке за 10к. А если мне надо скинуть 10блоков? Опа уже ггц, опа уже я сожру у юзера целое ведро. А на сишке будет всплеск на 100к тактов.


                      >Все это можно написать только пердолясь низкоуровневыми оптимизациями под конкретную модель процессора?
                      Не под модель, а под х86. Хватит кукарекать в тех темах, в которых не шаришь. Всё это "конкретная модель процессора, чипсета и т.п." ушло лет 10назад.

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

                      >При чем тут сишка-то?
                      Ну посчитай - в сишке 10к тактов на калбек - в яве 100к. Когда ведро загнётся? Ты думаешь треды в твоей яве просто так придумали?
                      Ответить
                    • >Блядь, да у тебя еще и кругозор нулевой, кукаретик. Синдров утенка и АССЕМБЛЕР в срачле.
                      О5 мне кукарекает питушок, который нихрена о работе ОС, ЯП, подсистем памяти не знает.

                      >Зато в других языках нет СИШКОПРОБЛЕМ, как ручное управление памятью и связаные с этим радости вроде сегфолтов и утечек, про ПЕРЕПОЛНЕНИЯ БУФЕРА вообще молчу, есть исключения, а значит, они безопасны по умолчанию, в отличие от сишки, где забыл проверить код возврата - и получил рнр, где главное продолжать работу любой ценой.

                      Сишкапроблемы удел питухов. У меня нет ручного управления памятью, утечек и сегфолтов. Несуществует никакого переполнения буфера в х86, просто питухи типат ебя об этом не знают - вот и вояют говно.

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

                        >Именно, и для чего-то более большого сишка уже начинает мешать.


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

                        /thread
                        Ответить
                        • >Именно, и для чего-то более большого сишка уже начинает мешать.
                          Мешать анскильным питухам. Людям только помогает. Зачем мне бороться с гц в яве, юзать какие-то питух классы, тормазящие либы. Жрать в 5раз больше памяти. Думать о какой-то жвм. Мне проще взять и просто написать на сишке, или ты думаешь, что если сишка подходит для самых сложных и больших программ в мире: ОС, конпеляторы, перфоманс - это самые сложные задачи в мире, то для решения простых задач она не подходит?


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

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

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

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

                              А вот, если его возмёт питух - да, он его даже не поднимет. Поэтому удел питухов - забивать один гвоздь в минуту, ширпотребным говном.

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

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

                                >Поэтому проще купить 1000питух, которые забивают 1гвоздь в минуту, чем мастера, который забивает 1000гвоздей в минуту.
                                Реальность обычно выглядит иначе, прыщавый друк. Ресурсы растут экспоненциально, и 20 питухов будут в 10 раз быстрее мастера, а стоить так же, да и с ЧСВ у них будет попроще. А мастер будет сидеть у мамы на шее и рефрешить говнокод.

                                >Все клали на твоей спрос - меня не интересует сознание нищебродов.
                                /thread. Так и думал, сидишь у мамки на шее.
                                Ответить
                                • >>Твой мастер будет стоить дороже, чем стадо "питухов" - и пойдет твой мастер домой пиво пить, или же сам станет питухом

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

                                    Все это граничит с инфантилизмом, Вам не кажется?
                                    Ответить
                                    • А ты питух у питухов, питух, рот закрой - хуем воняет.
                                      Ответить
                                      • Толсто, толсто!

                                        В слове "петух" нет буквы "и", а обращение обособляется - на заметку тебе...
                                        Ответить
                                        • Не учи меня обращаться с питухами, питух.
                                          Ответить
                                          • Закирой, закирой своего нечистого рта, кяфир!!!

                                            Аллах накажет тибея.
                                            Ответить
                                            • показать все, что скрытоКефир - это то, что льется из хуев тебе в рот.
                                              Ответить
                                              • KEFIR NE VINOVAT
                                                Ответить
                                              • У меня для такого случая было припасено заклинание, которое мне поведал дедушка двоюродного брата сестры тестя бабушки великого Али-бабы.
                                                Как же оно звучало, как -то так:

                                                Косяк, забейся!
                                                Нет, не то.

                                                Коньяк, разлейся!

                                                Опять не то. Ах вот оно!!! Я вспомнил!

                                                Кяфир, закиройса!!
                                                Ответить
                                          • Наверно, ты даже в школе не учился, ведь петухов не принимают в школу.
                                            Ответить
                                            • Участник, прошу тебя: не поленись, пройди по анкетам и поставь всем минусы.
                                              Минуисуя участников, ты помогаешш обществу снижать ЧСВ.
                                              Ответить
    • У питухов бомбануло
      Ответить

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