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

    +159

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    function get_recaptcha(id)
        {
            var id;
            if(id==1)
            {
                $.ajax({
                    type: "POST",
            		url: "classes/get_captcha.php",
            		cache: false,
                    data: "recaptcha=1",
            		success: function(html)
                    {
                        $('#captcha_reg').html(html);
                    }
               });
            }
            else if (id==2)
            {
                $.ajax({
                    type: "POST",
            		url: "classes/get_captcha.php",
            		cache: false,
                    data: "recaptcha=1",
            		success: function(html)
                    {
                        $('#captcha_forget').html(html);
                    }
               });
            }
        }

    История одного проекта.. Часть 3

    Запостил: reilag, 07 Августа 2014

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

    • function get_recaptcha(id)
          {
              var id;


      Это вообще как? Локальная переменная переопределяет аргумент функции?
      Ответить
    • Ну и такое бывает.
      В JS даже такая конструкция часто применяется:
      function lala(id) {
      var id = id || 1;
      }
      Ответить
      • Весело. Не знал, что не переопределяет.
        Ответить
        • По факту это переопределение.
          Ответить
          • Дык а аргументы функции разве не считаются var'ами изначально?
            Ответить
          • > По факту это переопределение.
            > someone: А что будет, если написать просто var id; без инициализации, как в приведённом коде?
            Вот как раз в ситуации someone не переопределяет.
            > (function f(id){ var id; id = 3; return arguments[0]; })(4);
            3

            var тут, если смотреть реализацию (можете сослаться на стандарт, если я полагаюсь на кривой интерпретатор), ведёт себя, как и прежде: если переменной в данном лексическом контексте нет, то объявить все её упоминания упоминаниями локальной переменной, если есть, то оставить как было.
            Ответить
            • arguments ещё и мутабелен? Да ещё и через присвоение аргументам по именам? М-да...
              Ответить
              • Но такие объекты в JS нередко встречаются. Где-то wvxvw говорил про парадоксы arguments...

                Но, хоть и не удалось переопределить аргументы, можно переопределять аргументы:
                When control enters an execution context for function code, an arguments object is created unless (as specified in 10.5) the identifier arguments occurs as an Identifier in the function‘s FormalParameterList or occurs as the Identifier of a VariableDeclaration or FunctionDeclaration contained in the function code.
                Ответить
                • > (function f(id) { arguments = [42]; return id; })(4)
                  4

                  > (function f(id) { arguments[0] = 42; return id; })(4)
                  42

                  Лол. Т.е. arguments - это не массив, а особая коллекция ссылок на реальные аргументы? При этом такую коллекцию другими способами замутить нельзя?
                  Ответить
                  • > Т.е. arguments - это не массив, а особая коллекция ссылок на реальные аргументы?
                    Я уже хотел сказать "да", но открыл консоль:
                    > (function(a){ a = 4; return [a, arguments[0]] })()
                    [4, undefined]
                    > (function(a){ arguments[0] = 4; return [a, arguments[0]] })()
                    [undefined, 4]
                    > (function(a){ a = 4; return [a, arguments[0]] })(3)
                    [4, 4]
                    > (function(a){ arguments[0] = 4; return [a, arguments[0]] })(3)
                    [4, 4]

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

                    > При этом такую коллекцию другими способами замутить нельзя?
                    Ну, схожий эффект даёт результат document.getElementsBy<Something>
                    Ответить
                    • > Я уже хотел сказать "да", но
                      Да всё предсказуемо, тащемта. Это доказывает, что это именно коллекция ссылок на аргументы. Если аргументов не было - она пуста, отсюда и отсутствие связи между a и arguments[0] в первых двух примерах.

                      Вот что смущает - в жс же нельзя замутить ссылку на переменную, ну кроме как захватом в замыкание. А тут как-то сделали. Ёбаная уличная магия.
                      Ответить
                  • > При этом такую коллекцию другими способами замутить нельзя?
                    Подумал - оказалось, что можно.
                    var x = 42, y = 43, z = 44, args = {
                      set 0(val){ x = val; },
                      set 1(val){ y = val; },
                      set 2(val){ z = val; },
                      get 0(){ return x; },
                      get 1(){ return y; },
                      get 2(){ return z; },
                      get length(){ return 3; }, // можно for(var i=0;; ++i) if(!this.haveOwnProperty(i)) return i;
                      // можно set length(v){ удаляем все элементы после v }
                      __proto__: Array.prototype // мне стыдно за __proto__. Впрочем, arguments без этого и оставили
                    };

                    Такое работает в ES5.1. В ES6 можно будет на proxy сделать что-нибудь более годное.

                    > отсюда и отсутствие связи между a и arguments[0]
                    arguments.length не растёт, а arguments[0] появляется.
                    Раз уж позволяют так поганить arguments, раз уж a может меняться (т.е. всё равно под неё место где-то находится), могли бы связь прописать...
                    Ответить
                    • > set 0(val)
                      Что означает этот странный синтаксис?
                      Ответить
                      • Новая математическая нотация: о-малое на JS!
                        Геттеры/сеттеры из ES5.1
                        Ответить
                    • В общем, чувствую, лучше каждый раз перегонять arguments в настоящий массив, а то мало ли кто его может попортить.
                      Ответить
                      • Да нафиг... эти arguments нужны очень редко. Я вот их ни разу не юзал (хотя я - не показатель, я на жс мало пишу).
                        Ответить
                        • Кстати, можно попортить arguments снаружи функции посреди вычислений:
                          > function g(){ yield arguments; yield arguments; }
                          undefined
                          > f = g(1,2,3)
                          Generator {  }
                          > args = f.next()
                          Arguments { 0: 1, 1: 2, 2: 3, ещё 2… }
                          > args[0] = 6
                          6
                          > f.next()
                          Arguments { 0: 6, 1: 2, 2: 3, ещё 2… }
                          Ответить
            • > (function f(id){ var id = 3; return arguments[0]; })(4);
              И так тоже не переопределяет.

              В общем, походу, этот id изначально считается var'ом.
              Ответить
              • Логично. Зачем заморачиваться? В js никакой защиты фактически нет. С чего бы вдруг они стали бы аргументы экранить? Вар да вар
                Ответить
            • В strict mode'е не выйдет ;)
              Ответить
        • А что будет, если написать просто var id; без инициализации, как в приведённом коде?
          Ответить
    • sudo cast "wvxvw"
      Ответить
      • А че, тут уже все обсудили без меня. Могу от себя только добавить, что в некоторый проприетарных расширениях этого языка была у arguments еще одна интересная фишка: caller и callee. Одно указывающее на функцию чьими аргументами оно являлось, а второе на контекст откуда эта функция вызывалась (кажется, давно это было). Вобщем было интересно, через них вроде можно было в рантайме почти получить стек вызовов.
        Ответить
        • Ещё год-два назад я caller и callee видел не то в Firefox, не то в Chrome. А сейчас caller выпилили, а callee готовят к випиливанию.
          Ответить
          • Вроде бы вполне себе живы, если strict mode не использовать?
            Ответить
            • Хм... Недовипилили. arguments.caller выпилили, но оставили arguments.callee.caller
              Ответить
              • [петросян]
                caller - от "кал"?
                Говнарь штоле?
                [/петросян]
                Ответить
                • В этой шутке есть доля правды. Устарело и тормозит. Кто использует - тот, возможно, говнарь.
                  Ответить
                • caller от "кол". Садись, "кол" по английскому языку.
                  Ответить
      • Что или кто такое, этот "wvxvw"? О_о Ибо Я, видимо, не знаком с местными легендами.
        Да смилуется господь над моей грешной душенькой простит меня обладатель этого ника.
        Ответить
        • Сверху кастанулся же.
          Ответить
          • Смею заверить, что по своей невнимательности, я сумел заметить вышеуказанный, как вы выражаетесь, каст только через несколько минут после отправки своего комментария.
            Что сделано - то сделано. Я волен понести заслуженное наказание и приму его с честью!
            Ответить
            • Главное - не кастуйте Кегдана, а то он опять предложит битву на ножах.
              Ответить
              • Лишь бы не на львах.
                Ответить
              • на баграх
                Ответить
                • Это Вас необходимо бояться? Говорят, Вы способны предложить битву. Извольте, но на ножах ведь опасно? Можно и пораниться.
                  Ответить
                  • Так у тебя ножа и не будет
                    Ответить
                    • Но сударь! Не соблаговолите ли Вы отказаться от затеи и решить все мирным путем?
                      Ответить
                      • но я уже достал нож
                        Ответить
                        • О нет, постойте, Сударь! Я молю Вас! Чем заслужил Я наказание?
                          Быть может в вас проснется благоразумие?
                          Ответить
                          • я в школе на бейсике писал - у меня травма, так что... Ноуп
                            Ответить
                            • Я в школе лишь с паскалем был знаком,
                              Так что извольте, нож ваш сбросить.
                              Ведь я Гекатой II вооружен,
                              Чья мощь решит всю Вашу участь .
                              Ответить
                              • Я в школе бейсик изучал
                                Безумия познал оскал
                                Твое оружие - фигня
                                Ведь 10 KNIFE есть у меня
                                Ответить
                                • Ты ведь еще писаешь в постель, да?
                                  Ответить
                                • И чем Ваш KNIFE поможет Вам?
                                  Он точно спор наш не решит,
                                  Он лишь добавит злобы Вам,
                                  Что бейсик Вам привил!
                                  Ответить
                                  • Тот KNIFE - отчаянья кинжал
                                    Был создан, что бы ты визжал
                                    Схвачу тебя - без лишних фраз
                                    Интерпертирую тот час!
                                    Ответить
                              • Кегдан подкрался со спины,
                                И снайпера пырнул ножом,
                                Не ждал удар с той стороны,
                                Тот, кто с паскалем был знаком.
                                Ответить
                                • О нет! Не лезьте в наш рассказ,
                                  Вы портите тут все! Иди, иди..
                                  Вы словно рыцарь черных лет,
                                  Вы лишь погибель принесли.

                                  И как мне быть? С кровоточащей раной..
                                  Быть может kegdan в раз решит,
                                  Что путь не верный был им избран,
                                  Что был он слеп, спеша меня побить.
                                  Ответить
                                  • Не верю слепо я судьбе
                                    Монады спрятал в рукаве
                                    Коль не разрежу на куски
                                    Взорву монадой вам мозги
                                    Ответить
                                    • Вы не своею монадой пугайте ,
                                      Ведь не страшат нас рисунки твои!
                                      Вы, словно дикий, так крови хотите?
                                      Лучше побойтесь тяжелой судьбы!
                                      Ответить
                                      • Твои угрозы и молитвы
                                        Не оградят тебя от битвы -
                                        Давай, омой свой меч в крови
                                        Иль смерть достойную прими!
                                        Ответить
                                        • Раз не поможет мне сила слова,
                                          И противник поник в своих страхах и стонах,
                                          То битву Я Вашу с полным вздохом встречаю,
                                          Очень тихо и плавно, свой меч обнажая.
                                          Ответить
                                          • Не я не пОник, я другой
                                            И дружбомагии не знаю
                                            Я кексики спеку с тобой
                                            Улыбкой рот твой истязаю
                                            Ответить
                                            • Ты, вижу, зазнался, от ярости слеп!
                                              Бейсик убил доброты в тебе след.
                                              Ни минуты теряя, к врагу подлетаю,
                                              Мечем замахнувшись, ухмылку стираю.
                                              Ответить
                                              • Не понял ты свою ошибку,
                                                Живешь в своем дельфиньем мире -
                                                Нельзя стереть мечем улыбку
                                                Но можно сделать ее шире
                                                Ответить
                                                • Мечем не стирают, мечем разрубают,
                                                  И опять ты зазнался, Я делфи не знаю!
                                                  Ты словно ребенок - пародия Джокера,
                                                  Мой меч для тебя - последние зрелище.
                                                  Ответить
                                                  • Мне кажется мы уже всех заебали
                                                    А посему ты меч свой из стали
                                                    Засунь ка поглубже в жёпу свою
                                                    И изучать отправляйся делфю
                                                    Ответить
                                                    • Нет, в этом говнозале
                                                      Два воина поэзии
                                                      Ещё не заебали.
                                                      Напрасные претензии.
                                                      Ответить
                                                      • Они сошлись как шарп и джава
                                                        Плюсы и хаскель, лисп и скала
                                                        Устроили кровавый бой
                                                        Не столь различны меж собой
                                                        Ответить
                                                    • И ни гадал, что поражение
                                                      Ты признаешь быстро.
                                                      Учить я делфи не намерен,
                                                      А вот тебе желаю счастья.
                                                      Ответить
                                                      • Не признаю я поражения -
                                                        Счастливая моя звезда
                                                        У вас, мой друг, проблемы зрения
                                                        Вам нужно выколоть глаза!
                                                        Ответить
                                                        • Смирение, друг мой, лишь смирение,
                                                          Позволит истину понять Вам:
                                                          Что нужно критику мышления,
                                                          Искоренять Вам под корню.
                                                          Ответить
                                                          • Своим мечем тебя я рифму
                                                            Душой заставлю полюбить
                                                            При этом будешь зло вопить
                                                            Так, словно ты у Пана нимфа
                                                            Ответить
                                                            • Перед свиньёй мы бисер мечем,
                                                              Мы мечем вечером и днём.
                                                              Когда ответить больше нечем,
                                                              Мечом, мы машем, бл*ть, мечом.
                                                              Ответить
                                                              • Милы ему объятья Пана
                                                                Раз не выходит на поклон
                                                                Поклонник оперы знать он
                                                                Как в ренессанс шептали дамы
                                                                Ответить
                                                                • А я, мой друг, совсем уж прост.
                                                                  Давно на оперу ходил,
                                                                  Сейчас один металл мне мил
                                                                  И лисьи ушки, лапы, хвост.
                                                                  Ответить
                                                                  • Стать было любите зверей
                                                                    Они конечно всех милей
                                                                    Но, я предпочитаю женщин -
                                                                    Они пышнее и умней
                                                                    Ответить
                                                                    • И находясь в уме я здравом,
                                                                      И твердой памяти, молвлю:
                                                                      Явился в зад, на суд народа,
                                                                      Но тут о женщинах молвят О_о
                                                                      Ответить
                                                                      • О вас, лазурью окрыленных
                                                                        Мы тоже можем говорить
                                                                        И пусть у вас другое лоно -
                                                                        Подходит разговора нить
                                                                        Ответить
                                • Стертор в ночную стоит на посту
                                  Пишет не делфи опять хуету
                                  Сзади с ножом подхожу с нему ловко-
                                  Нет, не познает он quick сортировку
                                  Ответить
                                  • Прокудин был глуп - это знали все. Но кольнет же, иногда!..
                                    Ответить
                                  • собрались в треде маньяки литературные
                                    too long; didn't read'ные стихи сочиняют
                                    иногда не очень, а иногда и культурные
                                    kegdan, reilag, 2 в десятом, ну и guest тут воняет
                                    Ответить
                                    • Мы маньяки от Бога,
                                      И живем только кодом,
                                      Нас Паскали и Бейсик,
                                      К философии гонят.
                                      Мы не знаем другого,
                                      Хоть из пушки стреляйте,
                                      Но вернемся Мы к миру,
                                      Лишь мозг как поправят.
                                      Ответить
                                      • Холоп, тебе настал черед
                                        Уйти, растаять, испариться
                                        Исчезнуть словно в небе птица
                                        Твоя манера трогать слово
                                        Ершом мне ухо теребит
                                        Воск раскаленный больше льстит
                                        Рукам проказою больного!
                                        Открыл в себе не тот талант -
                                        Тебе нужна прочистка гланд
                                        Ответить
                                    • Совсем коротко -
                                      Очень быстро
                                      Словно облако
                                      И без смысла
                                      Ответить
                                      • Kind of god
                                        Enlarges his penis
                                        Gives a fuck
                                        Does he killed genius?
                                        Angry people asking him
                                        No i didn't
                                        -эт не я, это василий
                                        Положил свой хуй на стол
                                        Из избы в тот вечер зимний. вышел
                                        Дядюшка рассол
                                        Огненной рукой замерзшей
                                        Руку петьке оторвал
                                        . (точка) все хуйню такую больше я писать ебал
                                        Ответить
                                        • Не бесись, не плачь
                                          Хором старых дев -
                                          Через боль и гнев
                                          Шьешь свою судьбу
                                          Не гори в огне -
                                          Собери в себе
                                          Синь да красоту
                                          Ответить
                                    • Не метал, товарищ, слушаешь, а рэп:
                                      Я по ритму вижу этот твой секрет.
                                      А поняшке плюс большой за акростих,
                                      Мир поэтов горько плачет без таких.
                                      Ответить
                                      • Тот паук, что ебошит метал
                                        Говорит, что рэп, тащемта, кал
                                        Я не полный дурак
                                        Говорить - "все не так!"
                                        Пауку, что ебошит метал

                                        лимерик так то
                                        Ответить
                                        • Подскажите мне, коллега,
                                          Я не знаю наперёд.
                                          С битой тот паук придёт?
                                          Он найдёт меня до снега?
                                          Ответить
                                        • Жил-был странный упоротый конь
                                          Говорили, что конь не такой
                                          Он любил Пе Хе Пе
                                          Написал ОСь себе
                                          Вот так странный упоротый конь!

                                          /*
                                             Третья строчка - просто ад
                                             Очень сложен сей формат.
                                             Я привык, что строчку можно
                                             Растянуть как львину рожу.
                                          */
                                          Ответить
                                          • вот тоже интересная лит игра http://vk.com/club73519394
                                            играй, а я тебя деаномизирую
                                            Ответить
                                            • > деанонимизирую
                                              Переноси куда-нибудь на анонимные каналы, вк не рулит ;)
                                              Ответить
                                              • Сюда что ли?
                                                Ответить
                                                • Михаил, ну зачем сразу сюда? Можно на канал добра, к примеру.
                                                  Ответить
                                                  • пусчай 1024 создает, и ссыль дает, а я постараюсь еще людей найти.
                                                    Ответить
                                                    • Меня запугали, ссылку боюсь открывать :)
                                                      Но если там что-то, что поместится сюда, то можно на gvforum пойти, там всё равно все отсюда и всё равно ничего другого не пишут.
                                                      Ответить
                                                      • давай ссыль, че
                                                        Ответить
                                                        • Ссыль на http://gvforum.ru или на новую тему?
                                                          Посмотрел, что в группе творится... Противный формат, я максимум пару СМС напишу и всё.
                                                          Ответить
                                                          • http://gvforum.ru/viewtopic.php?pid=2130#p2130
                                                            Ответить
                                                          • товарищ, вы на форум идете?
                                                            Ответить
                                                            • Добавил в закладки, подписался :) Мне в голову пришла идея написать пару скриптов, я занялся ими вместо поэзии.

                                                              Во-первых, при открытии стока/главной/поста с новыми комментариями сохранять номера постов, копить их и отображать их у себя в кабинке как:

                                                              Изменённые посты: "675,701,744,6417,16285,16418,16450,16459,16488,16497,16500,16503..16512" удалить

                                                              Во-вторых, запилить скрипт "чозамужик?", который в кабинке пользователя %user% отобразит, что за мужик такой этот %user%. (почти как http://govnokod.ru/13534, только параметров больше, чем ID и флаг isBormand).
                                                              Ответить
                                                              • кинь ссыль на гитхаб, а то скучно, мож поковыряюсь
                                                                Ответить
                                                                • https://gist.github.com/anonymous/1afd5ab802a03176e585
                                                                  Я git и github не осилил ещё, потому пусть будет копипаста.
                                                                  Ответить
                                                                  • прокомментируй код, прокомментируй его еще раз!
                                                                    Ответить
                                                                    • прокомментировал (только вот зачем?)
                                                                      https://gist.github.com/anonymous/6458ecc823cd37cfdbad
                                                                      Ответить
                                                                      • Что бы быть сурьезным программистом

                                                                        Ну не каждую же строку)

                                                                        А впрочем...
                                                                        Ответить
                                                                      • а пчему оно храниться ввиде хеша с значениями тру? Это тру способ?
                                                                        Ответить
                                                                        • Хранится-то оно в строке в localStorage...
                                                                          А это - чтобы вставить со сложностью (# вставляемого) * (ln # вставленного).
                                                                          Хотя, для малого числа постов подошло бы и копирование массивов, но это лень писать. Плюс, преобразование {} -> [] всё равно уже делается.
                                                                          Ответить
                                                                          • я не могу понять какие посты выбирает этот скрипт (лоботомия сказывается)
                                                                            и jq все же надо подключать
                                                                            Ответить
                                                                            • Со стока - все, с главной ГК - все, для какого-то конкретного поста - если там есть новые комментарии. (По-хорошему, надо не учитывать, посты из стока/с главной, которые не изменились с момента предыдущего нажатия "удалить", но пока и так сойдёт).
                                                                              jQuery на ГК уже подключено, иначе я бы сразу написал на чистом JS.
                                                                              Ответить
                                                                              • нужно добавлять те, в которых есть новые и удалять те, в которых новых нет. О как. а если зашел в пост - то все прочитал - значит там новых точно нет - удалять нах
                                                                                Ответить
                                                                                • А мне надо бы добавлять те посты, которые были созданы/изменились с момента начала сбора данных/нажатия на "удалить", чтобы можно было последить месяц, а потом их скачать и обновить статистику.

                                                                                  А вот - "чозамужик", прототип: https://gist.github.com/anonymous/a2d972ad7667d14f84c4
                                                                                  Ответить
                                                                                  • я так сделал себе

                                                                                    https://gist.github.com/Kegdan/25867cf28b5784f17fb6

                                                                                    я так с вами скрипты научусь писать


                                                                                    >>А вот - "чозамужик"

                                                                                    это я называю - писдетц
                                                                                    Ответить
                                                                                  • digits = "ABCDEFGHIJKLMNOPQRSTUVWXYZ
                                                                                    abcdefghijklmnopqrstuvwxyz0123456789`~!@#$%^&*()_+=/;<>,?[]{}'".split('');


                                                                                    O.o
                                                                                    Ответить
                                                                                  • Комментарии всмятку:

                                                                                    properties - массиив свойств (UserProperty) пользователя
                                                                                    UserProperty - свойство пользователя, т.е. набор из имени, русского имени, функции преобразования пользователя из моей базы в число (осталась в скрипте, который генерил этот скрипт), функция, преобразующая пользователя из изерскрипта в строку или null для отображения
                                                                                    числа кодируются цифрами digits, даты считаются от ноября 2008 или от ещё какой даты,
                                                                                    данные для пользователя - массив с порядком как в properties, записывается как строка с разделителем ".",
                                                                                    все пользователи собраны в единый массив, записывается как строка с разделителем "|".
                                                                                    В init - инициализация переменных, общих для этого скрипта и скрипта-генератора, в main - собственно, скрипт.
                                                                                    На странице пользователя выводит много всего про него.
                                                                                    Ответить
                                                                                    • Тебе зачем?)
                                                                                      Ответить
                                                                                      • Чтоб посмотреть, что за пользователь тут на ГК, если я его не знаю. Надо только добавить более информативные характеристики, а то пока мало что видно.
                                                                                        Ответить
                                                                                  • https://gist.github.com/anonymous/971fbd02ca86cb89fb23
                                                                                    Больше параметров, использование производных параметров, компактный вывод.
                                                                                    Показывает адекватность пользователя!!!1111
                                                                                    Да простит меня Борманд за такое... Но это сгенерированная питушня, ей версии не особо нужны.
                                                                                    Ответить
                                                                                    • > адекватность пользователя
                                                                                      О_о. Как?

                                                                                      P.S. А всё, нашел, по оценкам:
                                                                                      var p = 50 + 50 * (u.goodPosts - u.badPosts) / (u.posts||1);
                                                                                      А инфа о юзерах в localStorage копится?
                                                                                      Ответить
                                                                                    • А что за пиздец в параметре main'а? Захардкоженный снепшот с инфой о всех юзерах ГК?
                                                                                      Ответить
                                                                                      • Да. Вот как раз это - параметры пользователей :)

                                                                                        А это идея - парсить новые комментарии и посты на клиенте и добавлять их к уже известной информации, но писать долго.
                                                                                        Ответить
                                                                                        • Да надо вообще мониторить сток ajax'ом и показывать где-нибудь в углу индикатор новых постов как в социалках.
                                                                                          Ответить
                                                                                          • Мне пока F5 хватает. Только плохо, что не все пишут промо-комменты.
                                                                                            Ответить
                                                                                            • > F5
                                                                                              Да лень же постоянно рефрешить... У меня вон на сотике govnotify запущено из-за этого.

                                                                                              А тут - индикатор на самой странице + моргание заголовком вкладки.

                                                                                              Минус - если открыто много вкладок, то будет сканить много раз, лишняя нагрузка на сервак. Но это парируется плюсом - можно не открывать 100500 вкладок из стока, а тупо читать по одной, пока все уведомления не исчезнут или пока не надоест.
                                                                                              Ответить
                                                                                              • Наверное добавлю в свой скрипт эту плюшку. Заодно совместимость с новой гризманки починю...
                                                                                                Ответить
                                                                                                • Заодно можно ajax'ом дергать новые треды с главной, раз не все пишут seo комменты.
                                                                                                  Ответить
                                                                                    • http://pastebin.com/S01qNWYh
                                                                                      Ответить
                                                                                      • можно поинтересоваться что это за генерированый трэш?
                                                                                        Ответить
                                                                                        • > генерированый трэш

                                                                                          > Захардкоженный снепшот с инфой о всех юзерах ГК?
                                                                                          Да.
                                                                                          Ответить
                                                                                          • вон оно че, михалыч, вон оно че. То бишь дефолтная инфа
                                                                                            Ответить
                                                                                            • Предлагаю прописать добычу не дефолтной (парсинг открытых пользователем страничек, сохранение в localStorage со сжатием с помощью https://github.com/pieroxy/lz-string, корректирование параметров по умолчанию) для повышения квалификации и пользы людей.
                                                                                              Ответить
                                                                                        • А я писал уже...
                                                                                          числа кодируются цифрами digits, даты считаются от ноября 2008 или от ещё какой даты,
                                                                                          данные для пользователя - массив с порядком как в properties, записывается как строка с разделителем ".",
                                                                                          все пользователи собраны в единый массив, записывается как строка с разделителем "|".

                                                                                          Только в новой версии ещё N повторяющихся символов X заменяются на !NX. Например, "||||||" -> "!6|". Так экономится килобайт 20.
                                                                                          Ответить
                                                                                          • и че там за инфа, обо мне например? ставить лень
                                                                                            Ответить
                                                                                            • Некоторые параметры: сколько постов, комментариев, суммарный рейтинг и т.п. Плюс вычислимые параметры.
                                                                                              Ответить
                                                                                              • стата, побед, убийств в ближнем...
                                                                                                Ответить
                                                                                                • http://rghost.ru/57414839.view
                                                                                                  Ответить
                                                                                                  • теперь меня (честно, мне только моя стата и интересна)
                                                                                                    Ответить
                                                                                                    • Адекватность: 44.00% по постам; 54.80% по комментариям
                                                                                                      Крутизна: -14.59 по постам; 25.44 по комментариям
                                                                                                      Постов: 25 всего; 10 (40.00%) хороших; 13 (52.00%) плохих; 6 (24.00%) заминусованных
                                                                                                      Рейтинг постов: -66 в сумме; -2.64 на пост; -1 медиана
                                                                                                      Создаёт постов: 0.05 в день; 17.41 в год
                                                                                                      Комментариев: 5146 всего; 1383 (26.88%) хороших; 889 (17.28%) плохих; 80 (1.55%) заминусованных
                                                                                                      Рейтинг комментариев: -155 в сумме; -0.03 на комментарий; 0 медиана
                                                                                                      Создаёт комментариев: 9.81 в день; 3582.83 в год
                                                                                                      Объём комментариев: 521271 суммарный; 101.30 средний; 58 медиана
                                                                                                      Символов: 993.64 в день; 362927.40 в год
                                                                                                      Известные действия: c 04.03.2013, 22:33:00 по 11.08.2014, 13:07:00
                                                                                                      Ответить
                                                                              • Итить - мадрить. В стоке вообще никак не выделяются новые сообщения. В принципе. Они все одинаковые.
                                                                                Ответить
                                                                                • > В стоке вообще никак не выделяются новые сообщения. В принципе. Они все одинаковые.
                                                                                  Ну дык сверь список тредов с предыдущим. И узнаешь, какие обновились.

                                                                                  Вот и мап как раз пригодится: тред -> последний коммент.
                                                                                  Ответить
                                                                                  • я тупо по времени добавляю. Все что появилось после последнего обновления - новое
                                                                                    Ответить
                                                                                  • https://gist.github.com/Kegdan/444fe7b58bb7c1eb59be

                                                                                    Чем больше вы будете меня материть по делу - тем лучше для меня.

                                                                                    Первый скрипт комом
                                                                                    Ответить
                                                                                    • Блин, че вы все гитхаб юзаете как пастбин ;)

                                                                                      Зарегай нормальную репу да коммить в нее...
                                                                                      Ответить
                                                                                      • зануда

                                                                                        https://github.com/Kegdan/Jabiy-Scrip/blob/master/NewInGovnokod.js
                                                                                        Ответить
                                                                                        • var res = [String(posts[0])];
                                                                                              // диапазоны нинужны
                                                                                              for(var i=1; i<posts.length; ++i){
                                                                                                
                                                                                                  res.push(',', String(posts[i]));
                                                                                                
                                                                                              }
                                                                                          
                                                                                              return res.join(''); // соберём строку (StringBuilder.toString());

                                                                                          Годный рефакторинг, но можно было ещё короче: return posts.join(',')
                                                                                          P.S. Диапазоны понимал мой скрипт-парсер.
                                                                                          Ответить
                                                                                          • а, ну да. Тут я явно думал не о том
                                                                                            Ответить
                                                                                            • // удаляем все, что видим - потом добавляем все, у которых есть новые комменты (в js нуб может можно лучше сделать)
                                                                                                  removePosts($('li.hentry'))
                                                                                                  appendPosts($('.entry-comments-new').parents('li.hentry'));

                                                                                              Можно было var posts = unpack(ls.posts || ''); и ls.posts = pack(posts); вынести наружу add/remove для перфоманса. У меня так и было, но позже оказалось, что посты добавляются один раз за запуск скрипта.
                                                                                              Ответить
                                                                                              • я тоже о этом думал, но мне стало лень
                                                                                                Ответить
                                                                                                • appendPosts($('.published').filter(function() {return new Date($(this).attr('title')) >= new Date(ls.time);}).parents('li.hentry'));

                                                                                                  Жуткое говно. Полезная строка, надо её в мой вариант утащить. Но ls.time у меня будет меняться только при удалении всех.
                                                                                                  Ответить
                                                                                                  • ну и засунь ее в обработчик кнопки. А че говно? Я js не знаю, ты учи меня)
                                                                                                    Ответить
                                                                                                    • Да не говно.

                                                                                                      Ну или немного говно из-за того, что в одну строку (хотя, наверное, весь код на JS выглядит как говно, различие - в адекватности автора). Или >= вместо >: старый пост может проскочить (но маловероятно). Или можно ещё new Date(ls.time) закешировать. Но всё это не JS, а общие проблемы программирования и философии.

                                                                                                      return [String(posts[0])].join(',');

                                                                                                      Вот - годный рефакторинг, лол :)
                                                                                                      Ответить
                                                                                                      • пчему лол?
                                                                                                        Ответить
                                                                                                        • posts - массив чисел с номерами, а return [String(posts[0])].join(','); эквивалентно return String(posts[0]);, т.е. отображаться должен только пост с наименьшим номером.
                                                                                                          Мужик, у себя в браузере скрипт запускал?

                                                                                                          str.split(',').map(function(group){

                                                                                                          А это - моё говнонаследие :) Тут надо было forEach писать.
                                                                                                          Ответить
                                                                                                          • Я немного сплю.
                                                                                                            ну да,
                                                                                                            posts.join(',');

                                                                                                            а не один гуй - форыч или мар?
                                                                                                            Ответить
                                                                                                            • > а не один гуй - форыч или мар?
                                                                                                              В нашей ситуации эквивалентны.
                                                                                                              Ответить
                                                                                                              • Ну так я о чем? а если нет разницы - зачем стирать белье?
                                                                                                                Ответить
                                                                                                                • Но перфоманс...
                                                                                                                  Хотя, судя по http://jsperf.com/for-vs-foreach/49, они одинаково тормозят.
                                                                                                                  Ответить
                                                                                                                  • Ну так Map и написан через тот же форыч или фор.
                                                                                                                    Ответить
                                                                                                              • Я решил написать книгу

                                                                                                                "Верстка, блестки, жабий крик для царей"

                                                                                                                Подниму тонны денег же
                                                                                                                Ответить
                                                                                                      • >>хотя, наверное, весь код на JS выглядит как говно

                                                                                                        JavaScript - это Жабий Скрип. Этим все сказано
                                                                                                        Ответить
                                                                                    • Мужики, вы вообще спите?
                                                                                      Кстати, если смотреть активность пользователей по часам, некоторые придерживаются режима и пишут комментарии только в определённые часы (в ночное время они ни разу не написали ничего), а некоторые пишут почти в рандомные часы (как мы с вами), только распределение, естественно, не равномерное: вероятность написать днём/вечером больше.
                                                                                      Ответить
                                                                                      • Я не спал, я бетмен.
                                                                                        Скриптик, потом немного хаски, потом олимпиадные задачи по математике.
                                                                                        О господи, я же задрот
                                                                                        Ответить
                                                                                  • > сверь список тредов с предыдущим
                                                                                    Можно дату из каждого сообщения вынимать, сверяя только с последней датой (надо мне это для стока прописать)
                                                                                    Как лучше с главной отфильтровать то, что было до нажатия "удалить" - не знаю.

                                                                                    А, kegdan как раз по времени, заметил.
                                                                                    Ответить
                                                                                    • и так, господа, я проспался и у меня появился резонный вопрос - нах мне этот скрипт? я все равно им не пользуюсь.
                                                                                      Ответить
                                                                                      • Чтобы написать в резюме "глубокие знания JavaScript".
                                                                                        Ответить
                                                                                        • ага, что бы меня заставили на нем работать?
                                                                                          Ответить
                                                                                          • бежать тебе надо, Никитка!
                                                                                            к нашим беги!
                                                                                            Ответить
                                                                                            • К вашим - это куда?
                                                                                              Ответить
                                                                                              • В Кресты.
                                                                                                Ответить
                                                                                                • меж сциллой и харибдой...
                                                                                                  Ответить
                                                                                                  • Сам пишет у себя в уголке за решёткой, а в Кресты не хочет. Странно.
                                                                                                    Ответить
                                                                                                    • так шарп простой (или я его плохо знаю?), а крестами все пугают
                                                                                                      Ответить
                                                                                                      • Пугают, наверно, длиной ошибок шаблонов шаблонов шаблонов шаблона.
                                                                                                        Но может просто не хватить опыта, чтобы написать что-то достаточно упоротое, чтобы получить достаточно длинную ошибку. А запутаться и с C# можно.

                                                                                                        Зато в C++ можно как минимум унаследоваться от кого попало:
                                                                                                        template<class Something>
                                                                                                        class Class : public Something {
                                                                                                        
                                                                                                        };

                                                                                                        А C#, прикрываясь статической типизацией, говорит, что так нельзя.
                                                                                                        Ответить
                                                                                                        • это его и пугает
                                                                                                          если ты долго смотришь в бездну, то бездна тоже смотрит в тебя
                                                                                                          Ответить
                                                                                                        • > Пугают, наверно, длиной ошибок шаблонов шаблонов шаблонов шаблона.
                                                                                                          Кегдан на хаскеле писал. Так что этим его уже не напугать.
                                                                                                          Ответить
                                                                                                          • [минутка восторга]
                                                                                                            хаскел - это по сути шаблонный язык - подстановка, подстановка, подстановка, редукция, редукция, редукция, 42. Изи же. Язык простой и выразительный. Какому нибудь доктору физмата проще будет хаски освоить, чем ту же сишку. Я вообще был удивлен - думал что все будет сложнее, что мой мозк сварится в собственном соку. А еще круто что все исходники доступны - открыл да посмотрел как метод написан, понял че именно он делает и как нормальные люди код пишут. Думаю еще пару книжек и хаски мне будет как родной.
                                                                                                            [/минутка]
                                                                                                            Ответить
                                                                                                            • Попугай моде он

                                                                                                              Хаскель как язык очень прост и выразителен. Хаскель как набор концепций и экосистема рвёт мозг в клочки.
                                                                                                              Ответить
                                                                                                              • Я всегда любил и умел матан. Видимо по тому мне нравится концепция
                                                                                                                Ответить
                                                                                                              • > Хаскель как язык очень прост и выразителен.
                                                                                                                /0
                                                                                                                Язык анально ограничен в средствах выразительности (изза чего его проще компилировать, и скомпилированый код проще оптимизировать). В нем куда ни плюнь: то нельзя, то невозможно. Откуда возьмется выразительность?
                                                                                                                И при этом язык не прост:
                                                                                                                Есть охулион способов написать одно и то же. Нихера не понятно как код форматировать. Код может прочитать только автор, и то, только по горячим следам. В Хаскеле есть дохуя сущностей, специальных зарезервированых слов и конструкций, заклинаний и специальных комментариев и т.п. Ну он просто никак не может претендовать на звание простого, при том, что рядом стоят Ява, Питон, Лиспы разные, ж.скрипт, Си, Эрланг и еще куча других более простых языков.
                                                                                                                Ответить
                                                                                                                • > Есть охулион способов написать одно и то же.
                                                                                                                  Как и в любом вменяемом языке.

                                                                                                                  > Нихера не понятно как код форматировать.
                                                                                                                  google://stylish-haskell

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

                                                                                                                  > куча других более простых языков
                                                                                                                  Ой ли.
                                                                                                                  Ответить
                                                                                                                  • Да, более простых. Простота заключается в соотношениях: количество слов необходимых к количеству правил грамматики, частоты использования одних и тех же символов в разных качествах, количестве символов необходимых для выражения холистических идей (т.е. например, if x then y хуже чем if x y), на сколько экономно язык использует инструменты, которыми он построен.

                                                                                                                    Хаскель по всем статьям уступает практически чему угодно, наверное, кроме С++.

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

                                                                                                                    Хаскель на столько уебищен в форматировании с типографской точки зрения, что даже люди, которые его любят, сознательно избегают использовать некоторые конструкции, которые вполне валидные и популярные в других языках, но в Хаскеле выглядят как говно: например if then else. Это говно просто невозможо отформатировать так, чтобы не заплакать глядя на него.
                                                                                                                    Проблема в том, что язык создал человек, который абсолютно ничего не знал про то, как создавать языки. Полный нуб и в лингивстике и в типографии. Язык интересный и полезный с точки зрения что он делает, но на столько же уебищен с точки зрения как это выглядит и как это соотносится с человеческим восприятием информации.
                                                                                                                    Ответить
                                                                                                                    • > Это же относится и к "любому другому нормальному языку". Особенно, имея в виду, что человек любит самые уебищные языки врезультате отсутствующих знаний в необходимых областях
                                                                                                                      Неопытные выбирают говноязыки из-за недостатка знаний и опыта, привязываются к ним, отвергают все прочие при знакомстве с ними, приобретают опыт и продолжают использовать говноязыки и говнопарадигмы. Вы как-то зря надеетесь, что со знаниями приходит мудрость и критическое мышление, что все в результате становятся столь же рассудительными, как и Вы.
                                                                                                                      Тут скорее подойдёт устройство общества с нуля по рассчётам ИИ, о котором Вы недавно говорили.
                                                                                                                      Ответить
                                                                                                                      • синдром утенка. Тот же Стретор тут страдал, как бы ему под дотнет на делфе кодить.
                                                                                                                        Ответить
                                                                                                                    • >Хаскель по всем статьям уступает практически чему угодно, наверное, кроме С++.
                                                                                                                      Плюсанул!
                                                                                                                      Ответить
                                                                                                                      • Гость не может в плюс. И даже в минус не может. Гость может только в "какой багор".
                                                                                                                        Ответить
                                                                                                                  • >> Есть охулион способов написать одно и то же.
                                                                                                                    >Как и в любом вменяемом языке.

                                                                                                                    Ты щас всех питонистов с их питонвей обосрал)
                                                                                                                    Ответить
                                                                                                                    • > Ты щас всех питонистов с их питонвей обосрал)
                                                                                                                      В питоне есть много способов написать одно и то же. Просто иногда есть один предпочтительный, "питоничный" способ это написать. Примерно также в хаски.
                                                                                                                      Ответить
                                                                                          • Ну а что... Столько пользы. Можно ничего не знать и писать на JS - после хаскеля и изучения ООП стать мастером программирования в глазах народа. JS пихают во все дыры - написав библиотеку для чего-то одного, можно использовать её всю жизнь - она будет везде тормозить работать одинаково. Не надо думать (ну ладно, иногда придётся). Говнокод выглядит так же, как и обычный код.

                                                                                            Только switch и for нельзя пересекать и #define не напишешь, а так бы Windows переписали на wct JS.
                                                                                            Ответить
                                                                                            • да ясен пень, что полезно, но не то снача изучать надо. Если я овладею хаски да крестами, JS я получу в подарок. Как впрочем большую часть мейстримовых языков
                                                                                              Ответить
                                                                        • > а пчему оно храниться ввиде хеша с значениями тру
                                                                          Потому что в жс нету set'ов.
                                                                          Ответить
                                                                          • а сортированный массив, вставку-поиск-удаление писать долго. пнятьненько
                                                                            Ответить
                                            • Ай-ай-ай, сломал стиходиалог. А деанонить надо по комментариям: во-первых, я уже много написал; во-вторых, так интереснее с точки зрения экспериментатора.
                                              Ответить
                                              • Он стиходиалог сломал
                                                Своей невежества пЯтой.
                                                И предлагает нам вконтакт,
                                                С проэсэмэсочной игрой.
                                                Ответить
                                              • Я не поклонник срывов покровов -
                                                Любая из масок сидит хорошо
                                                Что б не потрескались - хозяина слово
                                                Теряю я в бездне тысячи слов
                                                Ответить
                    • Вспомнилось:
                      http://joyreactor.cc/post/1474748
                      Ответить
              • > Главное - не кастуйте Кегдана
                Ща кастанем: (void)kegdan
                Ответить
    • function get_recaptcha()
      {
              $.ajax({
                  type: "POST",
          		url: "classes/get_captcha.php",
          		cache: false,
                  data: "recaptcha=1",
          		success: function(html)
                  {
                      $('#captcha').html(html);
                  }
             });
      }


      В первозданном виде автор тестил разные капчи?
      Ответить
      • Не, одну и туже капчу автор использовал.
        Даже тестов не было. Написал и в продакшен.
        Ответить
    • Развожу морковь в домашних условиях. хотел бы побольше узнать об этом бизнесе если кто то разводит морковки дома. помогите, какая должна быть температура при выращивание?
      Если не сложно отпишитесь в ВК: [url=https://vk.com/yurik9527]Yurik9527[/url]
      А то с компьютера смогу зайти на форум только через 2 дня.
      Ответить
      • Развожу моркови в Яунде, температура выращивания плюс двадцать четыре градуса. Отписался тебе в комменты, проверь
        Ответить

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