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

    +5

    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
    function insertComment(comment) {
        // todo: optimize this shit
        for (var j = 0; j < $scope.comments.length; ++j) {
            if ($scope.comments[j].thread_id == comment.thread_id) {
                $scope.comments[j] = comment;
                return;
            }
            if ($scope.comments[j].comment_id < comment.comment_id) {
                $scope.comments.splice(j, 0, comment);
                return;
            }
        }
        $scope.comments.push(comment);
    }
    
    for (var i = 0; i < data.length; ++i) {
        comment = data[i];
        comment.text = $sce.trustAsHtml(comment.text);
        comment.postedFuzzy = fuzzyDate(new Date(comment.posted), new Date());
        insertComment(comment);
    }

    Оптимальное набивание комментов в сток за O(n^2).

    http://146.185.130.46/ngk/

    Запостил: bormand, 06 Июня 2016

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

    • SEO-коммент
      Ответить
      • показать все, что скрыто> postedFuzzy
        ???
        Ответить
        • Дата в виде "позавчера" или "3 минуты назад".
          Ответить
          • А а почему ты не всегда можешь дату получить?
            Ответить
            • Всмысле? Даты всегда есть и они в UTC. А fuzzy date - это просто для вьюхи няшный вид.

              З.Ы. Перенесу этот fuzzy date во вьюху, не переживай.
              Ответить
      • а что такое 1720? voip?
        Nmap scan report for 146.185.130.46
        Host is up (0.015s latency).
        Not shown: 987 filtered ports
        PORT     STATE  SERVICE
        80/tcp   open   http
        1720/tcp open   H.323/Q.931
        6000/tcp closed X11
        6001/tcp closed X11:1
        6002/tcp closed X11:2
        6003/tcp closed X11:3
        6004/tcp closed X11:4
        6005/tcp closed X11:5
        6006/tcp closed X11:6
        6007/tcp closed X11:7
        6009/tcp closed X11:9
        6025/tcp closed x11
        6059/tcp closed X11:59
        Ответить
    • Что означает уровень синхронизации? И да, на клиенте коменты фильтровать можно так: Ты короче просто отправляешь на клиент из каждого треда все последние комменты всех юзеров из трэда. Берешь от этого верхушку и выводишь в сток. Если верхушка отфильтрована - берешь ниже.

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

        > и там уже фильтровать имхо
        Долбоёбы убежали/забанились, мотивации делать фильтр пока нету...
        Ответить
        • Можно продолжить некропостить отвечать на комментарии сбежавших юзеров. Есть шанс, что это разуплотнит сток.
          Ответить
          • > разуплотнит сток.
            поясни. и почему это повлияет?
            Ответить
            • Термин «разуплотнение стока» возник из Упячки во время очередной волны флуда. Вероятно, означал разбавление актуальных комментариев менее актуальными.

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

          Другое дело, что ссылку с айпишником я тут уже во все поля засветил, так что не отмазаться ;)
          Ответить
          • Ну я надеюсь страйко сделает несколько последних китайских предупреждений прежде чем банить
            Ответить
            • Ну тащемта 96% синхронизировано, дальше запросы будут редкие...
              Ответить
              • А откуда ты берешь проценты?
                Ответить
                • Сколько тредов засинкано / сколько тредов всего (там же написано в скобочках).
                  Ответить
    • Хотел снепшотик снять тупо select'ом...

      Out of memory: Kill process 27981 (postgres) score 276 or sacrifice child
      Ответить
      • Снепшотик ГК выложен на сайте :3
        Ответить
        • зожатие какое-то низковореционное 155 мега баты стало 34 1 мега баты причём PPMd 7 зип 18 9 мега баты
          Ответить
          • а бзип2 155 мега баты стало 23 мега баты выкинул лесные 11 мега баты относительно гзип
            Ответить
          • хз 155 мега баты стало 22 мега баты наодинменьше чем бзип2 но зожимает медленно

            лзма 155 мега баты стало тоже 22 мега баты но зожимает ещё медленнее

            лзоп 155 мега баты стало 39 мега баты мало вореций лзоп не нужен
            Ответить
            • ппмд 7 зип моксемальный словарь 64 мега баты слово 10 стало 18 2 мега баты
              http://i.imgur.com/jqXkMpD.png
              http://rgho.st/8XBmwfCLD
              Ответить
              • ха алгоритом HSC 155 мега баты стало 27 мега баты

                квантум зожатия вореций моксемальный словарь 2 мега баты 155 мега баты стало 28 мега баты

                freearc зожатие ультра (2 гига баты озу для разжатия) 155 мега баты стало 19 мега баты

                винрар -m5 -mc63:128t -md4m 155 мега баты стало 20 мега баты

                7 зип победил короче сильнее 18 2 мега баты не зожимается
                ппмд = прогамма прицимп мухи детерминированный

                155 это 34 1 гзип это 27 8 квантум это 27 4 ха это 23 3 бзип2 это 22 лзма это 20 5 вирар это 18 6 фриарк это 18 2 7 зип ппмд
                Ответить
                • Ну вот, я догенерировался до того, что все вореции понимаю. Ушёл звонить в дурку
                  Ответить
      • показать все, что скрытоshared_buffers какой? А свап? А рэм?
        Ответить
    • Годный сток. Автообновление - просто песня. Словно я на бирже слежу за курсом гречки, рбк работает, глава страны выступает, журналисты набигают, можно читать комменты.
      Немного странно с непривычки смотрится фон, из-за этого же не хватает номеров говнокодов. Хотя, и не нужны они.

      Наверно надо как-то помечать текущее состояние, более новым комментариям делать class="new-comment", сделать кнопку "открыть новые посты".

      P.S. Первая возможность у меня в одном скрипте реализована (правда, я её не выкладывал на гитхаб) - очень удобно, когда в стоке 5 комментариев с предложением соснуть подсвечены как новые, а остальные 15 - как старые, а иначе их и не отличишь. Кнопку открытия новых что-то я поленился сделать, а надо бы.

      P.P.S. А неоткомментированные посты с главной? Если всё равно посты качаются, интересно было бы запилить, чтоб не писать SEO-комменты как Ленин завещал. (был у меня скрипт "главная в стоке", который неупомянутые в стоке говнокоды с главной туда добавлял")
      Ответить
    • Да, прямо мечта, Спасибо!
      Добавь оповещения при приходе коммента, чтоб сразу дзынкало и\или мигало в иконке вкладки. Выключаемое) Можно в куках, а можно а можно реально заюзать вебдванольные оповещения с подпискаю
      Ответить
      • > а можно а можно реально заюзать вебдванольные оповещения с подпискаю
        а можно просто поднять джаббер транспорт
        у меня могли даже где-то сохраниться сорцы такой штуки (подписки, консоль, база пользователей)
        оторвать от них ненужный здесь граббер, и в путь
        Ответить
        • О, хоть где-то помнят про джаббер.
          Ответить
          • джвабер не нужен. исчезните старперы
            Ответить
            • не нравится Jabber -- можно в IRC
              Ответить
              • http://risovach.ru/upload/2013/05/mem/tvoe-vyrazhenie-lica_18556356_orig_.jpeg
                на костер
                Ответить
              • показать все, что скрыто>>Jabber
                "Beware the Jabberwock, my son!
                The jaws that bite, the claws that catch!
                Beware the Jubjub bird, and shun
                The frumious Bandersnatch!"
                He took his vorpal sword in hand:
                Long time the manxome foe he sought --
                So rested he by the Tumtum tree,
                And stood awhile in thought.
                And, as in uffish thought he stood,
                The Jabberwock, with eyes of flame,
                Came whiffling through the tulgey wood,
                And burbled as it came!
                One, two! One, two! And through and through
                The vorpal blade went snicker-snack!
                He left it dead, and with its head
                He went galumphing back.
                "And, has thou slain the Jabberwock?
                Come to my arms, my beamish boy!
                O frabjous day! Callooh! Callay!'
                He chortled in his joy.
                Ответить
            • Джаббер интересен, особенно когда у него есть транспорты в другие сети. С другой стороны, наоборот, если он на собственном сервере с TLS, то его «прослушать» труднее, чем Скайп или Ватсап. Даже без шифрования он всё равно интересен тем, что можно поднять свой сервер и не зависеть от сомнительных компаний.

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

                    Аналогичное мучение - на форуме Василия.
                    > В теме могут быть ещё ответы, но это единственное уведомление, которое вы получите, пока не посетите форум.
                    Написал 3_14dar про лямбды в питоне - мне можно не отвечать, но на форум зайти и прочитать то же самое - придётся, иначе я уже никогда не узнаю, что кто-то после него написал "JavaScript - говно", на что мне обязательно нужно ответить длинным бугуртотекстом.

                    Возможно, нужна кнопка "отложить чат". Мне бы она точно пригодилась.
                    Пишет кто-то "привет", "я был в Америке", "у нас тут завезли новую порцию матрёшек", - телефон пищит, я слежу за этим и читаю в уведомлениях. Затем он начинает "вот у нас есть один проект", "надо запилить трёхмерную модель как на http://mode.li/661", "займёшься?" Здесь я уже понимаю, что не могу просто так безмолвно следить за сообщениями поглядывая на уведомления, поскольку занят. Жму на кнопку "отложить", он что-то пишет про модель, но я это увижу только когда освобожусь и изучу вопрос подробно.
                    Ответить
        • нашёл
          там правда код говнецо -- писался он на заре изучения хацкеля
          Ответить
    • фичреквест: опция "говнотвиттер", показывающая не просто последние посты по тредам, а ленту всех новых комментариев
      Ответить
      • хз как тут разворачивать деревья коментов
        Ответить
        • у всех постов есть невидимый таймстемп, вот по нему и сортировать
          Ответить
      • столько нафичреквестили, что борманд проследовал вслед за борланд.
        Ответить
    • фига ты заморочился. даже время тикает у комментов. реально круто. прямчувствую себя трейдером или наблюдателем за отчетами с ядерной станции
      Ответить
    • ngk не может в обновление редактированных комментариев?
      Ответить
    • ни кочайте. у меня визуалстудия умерла от твоего джисона
      Ответить
    • нодпад плюс плюс тоже твой файл не открыл. но он по крайней мере не упал. просто показал что файл пуст спустя некоторое время.

      если у кого-то где-то откроется - пишите. мне в линух перегружатся лень
      Ответить
      • FAR в режиме редактирования (F4) долго пытается прочитать файл. Я не дождался, прервал процесс. В режиме же просмотра (F3) ФАР всё показывает.
        Ответить
    • сток нового поколения офигенен. больше не закрываю.
      былоб круто, еслиб ты писал приблизительное число юзеров твоего стока. а то вдруг тока я один
      Ответить
    • интересно было просто зажать PgDwn и быстро листать до самого дна
      эоны сменяют друг друга, проносятся разные палеонтологические пласты: борманда, потом лурика, geg moroza; время от времени вспыхивают сверхновые гоатсе
      Ответить
    • если оставить прокрученый вниз нгк, то с добавлением постов сверху - прокрутка постепенно уплывает
      Ответить
    • У гуеста неправильная ава

      И у тех у кого её нет - тоже не привычно
      Ответить
      • реквестирую гесту отдельную аву, а так ава годная
        Ответить
    • Феникс, восставший из пепла: https://github.com/bormand/ngk

      Синхронизация 12%, уровень LCL в норме.

      З.Ы. Дизайн в стиле "так верстают только мудаки", сорри.
      Ответить
      • показать все, что скрыто> bormand насрал в #20136
        ахахахаах
        Ответить
      • показать все, что скрытоКак фильтруешь долбоебов?
        Ответить
        • if ((comment.user_id == 1) && comment.text.match('http://'))
          Жаль, конечно, что нормальные ссылки от гостей проебутся.
          Ответить
      • показать все, что скрыто> Синхронизация 12%

        Теперь понятно почему сайт утром лежал
        Ответить
        • > почему сайт утром лежал
          Не, это не я уронил. Глянь в исходнике, там запросы не чаще раза в 5 секунд.
          Ответить
      • показать все, что скрыто
        Ответить
      • Синхронизация 65%.

        Багров пришлось на время скрыть из выдачи.
        Ответить
      • Для людей, проебавших скилл заучивания айпишников - http://bormand.gq.
        Ответить
        • потом как и токелау захотят баблишка?
          Ответить
          • Это и есть фрином. Мой карманный домен там уже пять лет живёт и жрать не просит.
            Ответить
            • А ты юзаешь делегирование или их говнофрейм? У меня делегирование было. Возможно, что с говнофреймом они лояльнее относятся.

              В любом случае, я с этими пидорасами больше не хочу связываться. Мне одного раза хватило.
              Ответить
              • Делегирование. Причём домен словарный вообще.
                Ответить
                • Хех, значит у меня везение не прокачано.
                  Ответить
                  • показать все, что скрытоЯ собираюсь пошурундить Ваш сайт...
                    Теперь Вы знаекомы с моим IP.
                    Ответить
                    • Да эту бедную VPS'ку шурундят 24/7 с самого её рождения (как и любой другой сервер в интернете, впрочем)... Я ещё ссылку никуда выложить не успел, а уже шурундили. Так что не переживай, не познакомлюсь я с твоим ойпи.
                      Ответить
                      • Хм. Ну так они шурундят по путям /, /root.php, /admin, а мы по /ngk и т.д.
                        Ответить
                        • Эх, надо было сделать путь /ngk.php вместо /ngk.
                          Ответить
                          • > Эх, надо было сделать путь /ngk.php вместо /ngk.

                            вот ещё, пусть сами указывают Accept: text/php
                            Ответить
                    • Посмотрел логи. Только боты, ищущие типичные вордпрессные дыры, ничего интересного. Точно мой сайт шурундите?
                      Ответить
                      • показать все, что скрытоСсылку на сайт.
                        Ответить
                      • А какие там типичные дыры?
                        Ответить
                        • 107.150.49.58 - - [16/Apr/2017:15:36:22 +0000] "POST /wp-admin/admin-ajax.php HTTP/1.1"


                          Как-то так. Ещё пытаются залить .php и выполнить его из upload. Обычно примерно десять айпишников в день постят всякое.
                          Ответить
                          • > /wp-admin/admin-ajax.php HTTP/1.1
                            И что постят?

                            А как конкретно пытаются залить? Я просто сейчас работаю с Wordpress, мне интересно.
                            Ответить
                            • 107.150.49.58 - - [16/Apr/2017:15:33:44 +0000] "POST /wp-content/plugins/wpfootes.php?z3=Y3dSdkd1LnBocA%3d%3d&z4=L3dwLWNvbnRlbnQvcGx1Z2lucy8%3d HTTP/1.1"
                              Ответить
                            • Не, как они вредоносный код пытаются залить?
                              Ответить
        • А чё айпишник левый? Там какая-то прокся крутится? Да ещё и все хедеры поперемял...
          Ответить
          • ну, к примеру, тем же нжинксом запроксировать - дело пары инструкций
            Ответить
            • Вопрос в том, нахуя? Dxd решил в man-in-the-middle поиграть? Ааа, дык это говнофрейм как на токелау. Всё понятно.
              Ответить
          • Стандартная фриномовская прокся.
            Ответить
        • Для людей, проебавших скилл заучивания айпишников, есть ссылка на гитхабе. Всё лучше, чем этот богомерзкий фрейм от фришного днс'а, который через год отберут и начнут вымогать бабло...
          Ответить
          • выбирай tld
            .party
            .faith
            .fail
            .life
            и многие другие
            Ответить
          • Да кто там бабло вымогает? Может, срок домена кончился, а при продлении кто-то раскрывающийся список не раскрыл?
            Prodlit' domen [12 mesyatsev @ 100500$]

            Потом кликаешь, раскрываешь список, а там:
            Prodlit' domen [1 mesyats @ besplatno   ]
                           |2 mesyatsa @ besplatno  |
                           |2 mesyatsa @ besplatno  |
                           |4 mesyatsa @ besplatno  |
                           |5 mesyatsev @ besplatno |
                           |6 mesyatsev @ besplatno |
                           |12 mesyatsev @ besplatno|
                           |12 mesyatsev @ 100500$  |
                           |2 goda @ 100500$        |
                           |3 goda @ 100500$        |
                           |5 let @ 100500$         |
                           --------------------------

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

        Краткое содержание следующей серии: борманд изучает роутинг в ангуляре и прикручивает отображение постов.
        Ответить
        • показать все, что скрытоНе проще запилить трансляцию в открытый чат в телеграмме/слаке, чем ебаться с роутингом в ангуляре?
          Ответить
          • Чем вам этот телеграм так нравится?
            Ответить
            • показать все, что скрытоНичем не нравится, просто там есть тот же journali.st, где часть твоих задач, по-моему, уже решена. Не, ну если хочется поебаться в воскресную ночь с ангуляшкой, то мы только за...
              Ответить
        • Нахуя тебе внгуляр для двустраничного сайта? Не будь выебоном
          Ответить
    • показать все, что скрытоПривет всем! Класный у вас сайт!
      Нашел интересные новости на этом сайте: https://himaan.ru/ :
      https://himaan.ru/foto-prikoly-interesnoe/2904-yuvelirnyy-brend-repossi-pokazal-novuyu-kollekciyu.html
      <a href=https://himaan.ru/foto-prikoly-interesnoe/761-mir-krasoty-i-dobroty-dlya-docheri.html> Мир красоты и доброты для дочери </a>
      <b> Симметрия дерева </b> https://himaan.ru/foto-prikoly-interesnoe/1357-simmetriya-dereva.html
      <a href=https://himaan.ru/foto-prikoly-interesnoe/5199-druzhelyubnye-monstry.html> Дружелюбные монстры </a>
      <b> Как работают автоматические паркинги в Вольфсбурге </b> https://himaan.ru/foto-prikoly-interesnoe/139-kak-rabotayut-avtomaticheskie-parkingi-v-volfsburge.html
      <b> Мастер фотошопа Мартин Де Паскуале </b> https://himaan.ru/foto-prikoly-interesnoe/253-master-fotoshopa-martin-de-paskuale.html
      Ответить

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