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

    +131

    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
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    Шесть месяцев назад я нашёл в Интернете книжку "Dive into Python". Странная книжка, толстая,
    да ещё на не русском языке.
    Усердно прочитал её, методично и вдумываясь, но таки ничего и не понял.
    Но что-то не отпускало меня - я пошёл на python.org и стал изучать стандартную библиотеку,
    старательно, скурпулёзно, от корки до корки. Гугля примеры кода, я наткнулся на пост в блоге одного гуру,
    где было написано про PEP8.
    То, что рассказывал этот умудрённый опытом кодер, настолько впечатлило меня, что я словно в припадке
    безумия бросился зубрить эту конвенцию по написанию питоньего кода.
    У меня тряслись руки, по телу прокатывали волны возбуждения, я, можно сказать, бился в экстазе всё
    это время - и теперь могу процитировать наизусть любой пункт, даже если меня разбудить посреди 
    глубокой ночи.
    Новые знания окрыляли меня, я бросился писать (что бы вы подумали?) очередную имиджборду.
    Я не писал раньше имиджборд, эта была моей первой. По пути пришлось освоить азы вёрстки на html и css,
    но там всё оказалось совсем не сложно.
    Я плавно двигался вперёд, наращивая функционал. И знаете что? Я упёрся в недостаток
    производительности. Ну, так мне показалось. Я делал замеры, устранял места с тяжёлым кодом.
    Тысячи раз запускал ab, но так и не сумел перейти порог в 300 запросов в секунду.
    Я как-то ожидал большего и был немного разочарован.
    Гугл, снова гугл. Десятки статей и тем на форуме… Довольно быстро я заметил, что люди часто пишут про
    какие-то "асинхронные веб-сервера". Часто встречались названия Tornado и Gevent. Я прочитал про них
    подробнее - и был просто ошеломлён. Как мне это раньше не приходило в голову?!
    Это же, это просто гениально, чёрт меня побери!
    Исходники в ведро, всё переписать! Меня переполняло новое знание, поток мыслей ровно ложился в
    строчки кода. Я просто не мог остановиться. Чашка кофе… Ещё чашка…
    Мой небольшой кусочек софта приобретал кристалльную чистоту,
    я смертельно устал, но продолжал в умилении полировать его зудящими руками, нанося последние штрихи
    Пять тысяч. Я получил производительность в пять тысяч запросов в секунду. В ту ночь я так и не смог заснуть.
    Наиувлекательнейший мир хай-лоада открылся передо мной. Позже я изучил ещё много классных вещей
    типа сверхбыстрых асинхронных key-value-хранилищ, или, например, такого необычного подхода к
    обработке данных, как map-reduce.
    Это уже был другой я, новый, обновлённый. С незашоренным взглядом, с жаждой новых знаний и
    незнакомых концепций.
    Я летел вперёд, оставляя за спиной ступень за ступенью.
    За пол-года я сменил несколько мест работы, и моя зарплата взлетела до умопомрачительных сумм.
    Сотни замечательных мест открыли передо мной свои двери. Любые, самые изысканные девушки
    проявляли просто чудеса изобретательности, чтобы находиться рядом со мной.
    А ещё, я никогда не забуду тот момент, когда на одной из конференций я впервые в жизни поймал на
    себе завистливый взгляд.
    Это был взгляд какого-то сливающегося с толпой неудачника, взгляд преисполненный ненависти,
    презрения и желчного вожделения, направленного на мой Олимп. Наверное, он всю свою никчёмную
    жизнь писал на каком-нибудь си-шарпе или там на джаве, проводя долгие дни в одиночестве.
    И теперь начинал подсознательно догадываться, что долгие годы безуспешно пытался
    построить замок из навоза.

    Запостил: IKing, 30 Мая 2014

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

    • https://www.wchan.net/uploads/fullsize/1397144336555.png
      Ответить
    • Тухлстори, бро.
      Ответить
    • Переделанная копипаста dive into python? Алсо, как оно с технологиями, выброшенными в начале 90х (Кооперативная многозадачность была в 16 бит винде. При подвисоне любой проги висла винда.)?
      Ответить
      • > При подвисоне любой проги висла винда
        Не совсем корректное сравнение. Особой нужды изолировать друг от друга "псевдо-нити" в рамках одного сервера просто нет.
        Ответить
        • Если обработка одного запроса внезапно! станет долгой, сервер на это время повиснет.
          Ответить
      • > При подвисоне любой проги висла винда.
        Не сравнивай кооперативную многозадачность на уровне всей оси с ней же на уровне одного серверного процесса.

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

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

            P.S. В нормальный однопоточно-асинхронный код никто не вставляет сложные вычисления и блокирующие вызовы. Поэтому виснуть или долго считать там как бы и нечему... Большинство таких серваков тупо перекидывают пакеты между клиентами, базой, и чем-нибудь еще. Ну и немножко их обрабатывают.
            Ответить
            • + к этому такие серваки очень часто вешают за балансировщиком, и других клиентов на себя примут соседи.
              Ответить
              • Это если у тебя кластер?
                Ответить
                • > Это если у тебя кластер?
                  Да вроде даже на обычную четырехъядерку поднимают 4 ноды.жс.
                  Ответить
                  • Ага, то есть еще и синхронизацию продумывать?
                    Ответить
            • >Тред еще жив.
              Пользователи это оценят.

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

                    > Просто в нормальных языках можно делать по 500 тредов
                    Удачи.
                    Ответить
                    • А что, в отстутствии альтернатив недостатки становятся преимуществами, а говно - конфеткой?

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

                    > Что, в %твойязык% тоже нельзя?
                    А в твоем рантайме (что-то мне намекает, что это не эрланг), 500 активных тредов случаем не опускают КПД ниже плинтуса? И ты так и не рассказал, когда ты запускаешь эти треды, и что именно в них происходит. Без этих подробностей обсудить твою конфигурацию, увы, не выйдет.

                    > Если для серваков еще можно лепить асинхронную хрень, то для многопоточных клиентов - это перебор
                    Спасибо, кэп. Все и без тебя знают, что серебряной пули нет. Однопоточную асинхронную хрень пилили для i/o bound задачек. Если у тебя там cpu bound парсинг или какие-то вычисления - они явно не для тебя.

                    UPD: Бля, не на тот пост ответил. Это к 234031 и 234032.
                    Ответить
                    • Хочешь конструктивной критики - найми лектора. Ему и расскажешь про то, что нужно, а что нинужно. А я описываю недостатки подхода.

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

                      >А в твоем рантайме (что-то мне намекает, что это не эрланг), 500 активных тредов случаем не опускают КПД ниже плинтуса?
                      Проверялки прокси работают на ура, что-то пиздеца замечено не было.

                      >Однопоточную асинхронную хрень пилили для i/o bound задачек.
                      Однопоточную хрень лепили там, где многопоточная давала слишком большой оверхед. В остальном у нее одни недостатки. Иначе бы ее не пидорнули из винды и сидели с ней до сих пор.

                      Если ты все что я пишу "и так знаешь", может, перестанешь мои посты читать или хотя бы комментировать, как будто я не оправдал твои ожидания и мне что-то за это будет, да?
                      Ответить
      • > При подвисоне любой проги висла винда
        Ну и небольшой вброс: критикуешь - предлагай. Предложи свою альтернативу, и мы ее обсудим :)
        Ответить
        • Поскольку фитон не может нормально в многопоточность, кооперативную многозадачность приходится лепить гораздно раньше 10к соединений.
          Ответить
    • Копипаста:Вован
      Ответить
      • Когда появляются подобные темы, я понимаю что совсем не знал до этого некоторых людей. Они начинают постить жаргонизмы из их среды и субкультуры
        Ответить
      • lurkmore.to/Копипаста:Python же.
        Ответить
        • По стилю не сильно лучше. Для меня все эти жалкие копипасты на одно лицо.
          Ответить
      • Сopypaste is a dish best served hot.
        Ответить
        • * g o a t s e x * g o a t s e x * g o a t s e x *
          g                                               g  
          o /     \             \            /    \       o
          a|       |             \          |      |      a
          t|       `.             |         |       :     t
          s`        |             |        \|       |     s
          e \       | /       /  \\\   --__ \\       :    e
          x  \      \/   _--~~          ~--__| \     |    x  
          *   \      \_-~                    ~-_\    |    *
          g    \_     \        _.--------.______\|   |    g
          o      \     \______// _ ___ _ (_(__>  \   |    o
          a       \   .  C ___)  ______ (_(____>  |  /    a
          t       /\ |   C ____)/      \ (_____>  |_/     t
          s      / /\|   C_____)       |  (___>   /  \    s
          e     |   (   _C_____)\______/  // _/ /     \   e
          x     |    \  |__   \\_________// (__/       |  x
          *    | \    \____)   `----   --'             |  *
          g    |  \_          ___\       /_          _/ | g
          o   |              /    |     |  \            | o
          a   |             |    /       \  \           | a
          t   |          / /    |         |  \           |t
          s   |         / /      \__/\___/    |          |s
          e  |           /        |    |       |         |e
          x  |          |         |    |       |         |x
          * g o a t s e x * g o a t s e x * g o a t s e x *
          Ответить
          • У

            Н
            Е
            Г
            О

            У
            Ж
            Е

            В

            Т
            Е
            Ч
            Е
            Н
            И
            Е

            П
            О
            Л
            У
            Т
            О
            Р
            А

            Л
            Е
            Т

            К
            А
            Ж
            Д
            А
            Я

            Н
            О
            Ч
            Ь

            Б
            Ы
            Л
            А

            О
            Ч
            Е
            Н
            Ь

            Т
            Р
            У
            Д
            Н
            О
            Й
            ,

            И

            Т
            Е
            П
            Е
            Р
            Ь

            Е
            Г
            О

            А
            Н
            У
            С

            Б
            Ы
            Л

            Р
            А
            З
            Р
            А
            Б
            О
            Т
            А
            Н

            Н
            А
            С
            Т
            О
            Л
            Ь
            К
            О
            ,

            Ч
            Т
            О

            О
            Н

            Б
            Е
            З

            Т
            Р
            У
            Д
            А

            М
            О
            Г

            С
            П
            Р
            Я
            Т
            А
            Т
            Ь

            В

            Н
            Ё
            М

            Б
            А
            Н
            К
            У

            С
            Г
            У
            Щ
            Ё
            Н
            К
            И
            .

            У

            Н
            Е
            Г
            О

            У
            Ж
            Е

            В

            Т
            Е
            Ч
            Е
            Н
            И
            Е

            П
            О
            Л
            У
            Т
            О
            Р
            А

            Л
            Е
            Т

            К
            А
            Ж
            Д
            А
            Я

            Н
            О
            Ч
            Ь

            Б
            Ы
            Л
            А

            О
            Ч
            Е
            Н
            Ь

            Т
            Р
            У
            Д
            Н
            О
            Й
            ,

            И

            Т
            Е
            П
            Е
            Р
            Ь

            Е
            Г
            О

            А
            Н
            У
            С

            Б
            Ы
            Л

            Р
            А
            З
            Р
            А
            Б
            О
            Т
            А
            Н

            Н
            А
            С
            Т
            О
            Л
            Ь
            К
            О
            ,

            Ч
            Т
            О

            О
            Н

            Б
            Е
            З

            Т
            Р
            У
            Д
            А

            М
            О
            Г

            С
            П
            Р
            Я
            Т
            А
            Т
            Ь

            В

            Н
            Ё
            М

            Б
            А
            Н
            К
            У

            С
            Г
            У
            Щ
            Ё
            Н
            К
            И
            .

            У

            Н
            Е
            Г
            О

            У
            Ж
            Е

            В

            Т
            Е
            Ч
            Е
            Н
            И
            Е

            П
            О
            Л
            У
            Т
            О
            Р
            А

            Л
            Е
            Т

            К
            А
            Ж
            Д
            А
            Я

            Н
            О
            Ч
            Ь

            Б
            Ы
            Л
            А

            О
            Ч
            Е
            Н
            Ь

            Т
            Р
            У
            Д
            Н
            О
            Й
            ,

            И

            Т
            Е
            П
            Е
            Р
            Ь

            Е
            Г
            О

            А
            Н
            У
            С

            Б
            Ы
            Л

            Р
            А
            З
            Р
            А
            Б
            О
            Т
            А
            Н

            Н
            А
            С
            Т
            О
            Л
            Ь
            К
            О
            ,

            Ч
            Т
            О

            О
            Н

            Б
            Е
            З

            Т
            Р
            У
            Д
            А

            М
            О
            Г

            С
            П
            Р
            Я
            Т
            А
            Т
            Ь

            В

            Н
            Ё
            М

            Б
            А
            Н
            К
            У

            С
            Г
            У
            Щ
            Ё
            Н
            К
            И
            .

            У

            Н
            Е
            Г
            О

            У
            Ж
            Е

            В

            Т
            Е
            Ч
            Е
            Н
            И
            Е

            П
            О
            Л
            У
            Т
            О
            Р
            А

            Л
            Е
            Т

            К
            А
            Ж
            Д
            А
            Я

            Н
            О
            Ч
            Ь

            Б
            Ы
            Л
            А

            О
            Ч
            Е
            Н
            Ь

            Т
            Р
            У
            Д
            Н
            О
            Й
            ,

            И

            Т
            Е
            П
            Е
            Р
            Ь

            Е
            Г
            О

            А
            Н
            У
            С

            Б
            Ы
            Л

            Р
            А
            З
            Р
            А
            Б
            О
            Т
            А
            Н

            Н
            А
            С
            Т
            О
            Л
            Ь
            К
            О
            ,

            Ч
            Т
            О

            О
            Н

            Б
            Е
            З

            Т
            Р
            У
            Д
            А

            М
            О
            Г

            С
            П
            Р
            Я
            Т
            А
            Т
            Ь

            В

            Н
            Ё
            М

            Б
            А
            Н
            К
            У

            С
            Г
            У
            Щ
            Ё
            Н
            К
            И
            .

            У

            Н
            Е
            Г
            О

            У
            Ж
            Е

            В

            Т
            Е
            Ч
            Е
            Н
            И
            Е

            П
            О
            Л
            У
            Т
            О
            Р
            А

            Л
            Е
            Т

            К
            А
            Ж
            Д
            А
            Я

            Н
            О
            Ч
            Ь

            Б
            Ы
            Л
            А

            О
            Ч
            Е
            Н
            Ь

            Т
            Р
            У
            Д
            Н
            О
            Й
            ,

            И

            Т
            Е
            П
            Е
            Р
            Ь

            Е
            Г
            О

            А
            Н
            У
            С

            Б
            Ы
            Л

            Р
            А
            З
            Р
            А
            Б
            О
            Т
            А
            Н

            Н
            А
            С
            Т
            О
            Л
            Ь
            К
            О
            ,

            Ч
            Т
            О

            О
            Н

            Б
            Е
            З

            Т
            Р
            У
            Д
            А

            М
            О
            Г

            С
            П
            Р
            Я
            Т
            А
            Т
            Ь

            В

            Н
            Ё
            М

            Б
            А
            Н
            К
            У

            С
            Г
            У
            Щ
            Ё
            Н
            К
            И
            .

            У

            Н
            Е
            Г
            О

            У
            Ж
            Е

            В

            Т
            Е
            Ч
            Е
            Н
            И
            Е

            П
            О
            Л
            У
            Т
            О
            Р
            А

            Л
            Е
            Т

            К
            А
            Ж
            Д
            А
            Я

            Н
            О
            Ч
            Ь

            Б
            Ы
            Л
            А

            О
            Ч
            Е
            Н
            Ь

            Т
            Р
            У
            Д
            Н
            О
            Й
            ,

            И

            Т
            Е
            П
            Е
            Р
            Ь

            Е
            Г
            О

            А
            Н
            У
            С

            Б
            Ы
            Л

            Р
            А
            З
            Р
            А
            Б
            О
            Т
            А
            Н

            Н
            А
            С
            Т
            О
            Л
            Ь
            К
            О
            ,

            Ч
            Т
            О

            О
            Н

            Б
            Е
            З

            Т
            Р
            У
            Д
            А

            М
            О
            Г

            С
            П
            Р
            Я
            Т
            А
            Т
            Ь

            В

            Н
            Ё
            М

            Б
            А
            Н
            К
            У

            С
            Г
            У
            Щ
            Ё
            Н
            К
            И
            Ответить
          • Ставьте отличный юзерскрипт!
            https://github.com/bormand/govnokod-board/
            Он умеет всё это скрывать.
            Ответить
    • Ньюфаги не умеют.
      2+2_
      Ответить
      • * g o a t s e x * g o a t s e x * g o a t s e x *
        g                                               g  
        o /     \             \            /    \       o
        a|       |             \          |      |      a
        t|       `.             |         |       :     t
        s`        |             |        \|       |     s
        e \       | /       /  \\\   --__ \\       :    e
        x  \      \/   _--~~          ~--__| \     |    x  
        *   \      \_-~                    ~-_\    |    *
        g    \_     \        _.--------.______\|   |    g
        o      \     \______// _ ___ _ (_(__>  \   |    o
        a       \   .  C ___)  ______ (_(____>  |  /    a
        t       /\ |   C ____)/      \ (_____>  |_/     t
        s      / /\|   C_____)       |  (___>   /  \    s
        e     |   (   _C_____)\______/  // _/ /     \   e
        x     |    \  |__   \\_________// (__/       |  x
        *    | \    \____)   `----   --'             |  *
        g    |  \_          ___\       /_          _/ | g
        o   |              /    |     |  \            | o
        a   |             |    /       \  \           | a
        t   |          / /    |         |  \           |t
        s   |         / /      \__/\___/    |          |s
        e  |           /        |    |       |         |e
        x  |          |         |    |       |         |x
        * g o a t s e x * g o a t s e x * g o a t s e x *
        Ответить
    • ² | 2 _
      Ответить
      • * g o a t s e x * g o a t s e x * g o a t s e x *
        g                                               g  
        o /     \             \            /    \       o
        a|       |             \          |      |      a
        t|       `.             |         |       :     t
        s`        |             |        \|       |     s
        e \       | /       /  \\\   --__ \\       :    e
        x  \      \/   _--~~          ~--__| \     |    x  
        *   \      \_-~                    ~-_\    |    *
        g    \_     \        _.--------.______\|   |    g
        o      \     \______// _ ___ _ (_(__>  \   |    o
        a       \   .  C ___)  ______ (_(____>  |  /    a
        t       /\ |   C ____)/      \ (_____>  |_/     t
        s      / /\|   C_____)       |  (___>   /  \    s
        e     |   (   _C_____)\______/  // _/ /     \   e
        x     |    \  |__   \\_________// (__/       |  x
        *    | \    \____)   `----   --'             |  *
        g    |  \_          ___\       /_          _/ | g
        o   |              /    |     |  \            | o
        a   |             |    /       \  \           | a
        t   |          / /    |         |  \           |t
        s   |         / /      \__/\___/    |          |s
        e  |           /        |    |       |         |e
        x  |          |         |    |       |         |x
        * g o a t s e x * g o a t s e x * g o a t s e x *
        Ответить
    • Ответить
      • * g o a t s e x * g o a t s e x * g o a t s e x *
        g                                               g  
        o /     \             \            /    \       o
        a|       |             \          |      |      a
        t|       `.             |         |       :     t
        s`        |             |        \|       |     s
        e \       | /       /  \\\   --__ \\       :    e
        x  \      \/   _--~~          ~--__| \     |    x  
        *   \      \_-~                    ~-_\    |    *
        g    \_     \        _.--------.______\|   |    g
        o      \     \______// _ ___ _ (_(__>  \   |    o
        a       \   .  C ___)  ______ (_(____>  |  /    a
        t       /\ |   C ____)/      \ (_____>  |_/     t
        s      / /\|   C_____)       |  (___>   /  \    s
        e     |   (   _C_____)\______/  // _/ /     \   e
        x     |    \  |__   \\_________// (__/       |  x
        *    | \    \____)   `----   --'             |  *
        g    |  \_          ___\       /_          _/ | g
        o   |              /    |     |  \            | o
        a   |             |    /       \  \           | a
        t   |          / /    |         |  \           |t
        s   |         / /      \__/\___/    |          |s
        e  |           /        |    |       |         |e
        x  |          |         |    |       |         |x
        * g o a t s e x * g o a t s e x * g o a t s e x *
        Ответить
    • ШестьмесяцевназадянашёлвИнтернетекнижкуD iveintoPythonСтраннаякнижка,толстая,даещёнанерусскомязыке.Усерднопрочиталеё,методичноивдумываясь,нотакиничегоинепонял.Ночтотонеотпускаломеняяпошёлнаpython.orgистализучатьстандартнуюбиблиотеку,старательно,скурпулёзно,откоркидокорки.Гугляпримерыкода,янаткнулсянапоствблогеодногогуругдебылонаписанопроPEP8.То,чторассказывалэтотумудрённыйопытомкодер,настольковпечатлиломеня,чтоясловновприпадкебезумиябро силсязубритьэтуконвенциюпонаписаниюпитоньегокода.Уменятряслисьруки,потелупрокатываливолнывозбужденияяможносказать,билсявэкстазевсёэтовремя-итеперьмогупроцитироватьнаизустьлюбойпункт,дажееслименяразбудитьпосредиглубокойночи.Новыезнанияокрылялиеня,ябросилсяписать(чтобывыподумали?)очереднуюимиджборду.Янеписалраньшеимиджборд,этабыламоейперво й.Попутипришлосьосвоитьазывёрсткинаhtmlиcss,нотамвсёоказалосьсовсемнесложно.Яплавнодвигалсявперёд,наращиваяфункциона л.Изнаетечто?Яупёрсявнедостатокпроизводительности.Ну,такмнепоказалось.Яделалзамеры,устранялместастяжёлымкодом.
      Ответить
      • А теперь - вертикально.
        Ш
        е
        с
        т
        ь

        м
        е
        с
        я
        ц
        е
        в

        н
        а
        з
        а
        д

        я

        н
        а
        ш
        ё
        л

        в

        И
        н
        т
        е
        р
        н
        е
        т
        е

        к
        н
        и
        ж
        к
        у

        "
        D
        i
        v
        e

        i
        n
        t
        o

        P
        y
        t
        h
        o
        n
        "
        .

        С
        т
        р
        а
        н
        н
        а
        я

        к
        н
        и
        ж
        к
        а
        ,

        т
        о
        л
        с
        т
        а
        я
        ,

        д
        а

        е
        щ
        ё

        н
        а

        н
        е

        р
        у
        с
        с
        к
        о
        м

        я
        з
        ы
        к
        е
        .

        У
        с
        е
        р
        д
        н
        о

        п
        р
        о
        ч
        и
        т
        а
        л

        е
        ё
        ,

        м
        е
        т
        о
        д
        и
        ч
        н
        о

        и

        в
        д
        у
        м
        ы
        в
        а
        я
        с
        ь
        ,

        н
        о

        т
        а
        к
        и

        н
        и
        ч
        е
        г
        о

        и

        н
        е

        п
        о
        н
        я
        л
        .

        Н
        о

        ч
        т
        о
        -
        т
        о

        н
        е

        о
        т
        п
        у
        с
        к
        а
        л
        о

        м
        е
        н
        я

        -

        я

        п
        о
        ш
        ё
        л

        н
        а

        p
        y
        t
        h
        o
        n
        .
        o
        r
        g

        и

        с
        т
        а
        л

        и
        з
        у
        ч
        а
        т
        ь

        с
        т
        а
        н
        д
        а
        р
        т
        н
        у
        ю

        б
        и
        б
        л
        и
        о
        т
        е
        к
        у
        ,

        с
        т
        а
        р
        а
        т
        е
        л
        ь
        н
        о
        ,

        с
        к
        у
        р
        п
        у
        л
        ё
        з
        н
        о
        ,

        о
        т

        к
        о
        р
        к
        и

        д
        о

        к
        о
        р
        к
        и
        .

        Г
        у
        г
        л
        я

        п
        р
        и
        м
        е
        р
        ы

        к
        о
        д
        а
        ,

        я

        н
        а
        т
        к
        н
        у
        л
        с
        я

        н
        а

        п
        о
        с
        т

        в

        б
        л
        о
        г
        е

        о
        д
        н
        о
        г
        о

        г
        у
        р
        у
        ,

        г
        д
        е

        б
        ы
        л
        о

        н
        а
        п
        и
        с
        а
        н
        о

        п
        р
        о

        P
        E
        P
        8
        .

        Т
        о
        ,

        ч
        т
        о

        р
        а
        с
        с
        к
        а
        з
        ы
        в
        а
        л

        э
        т
        о
        т

        у
        м
        у
        д
        р
        ё
        н
        н
        ы
        й

        о
        п
        ы
        т
        о
        м

        к
        о
        д
        е
        р
        ,

        н
        а
        с
        т
        о
        л
        ь
        к
        о

        в
        п
        е
        ч
        а
        т
        л
        и
        л
        о

        м
        е
        н
        я
        ,

        ч
        т
        о

        я

        с
        л
        о
        в
        н
        о

        в

        п
        р
        и
        п
        а
        д
        к
        е

        б
        е
        з
        у
        м
        и
        я

        б
        р
        о
        с
        и
        л
        с
        я

        з
        у
        б
        р
        и
        т
        ь

        э
        т
        у

        к
        о
        н
        в
        е
        н
        ц
        и
        ю

        п
        о

        н
        а
        п
        и
        с
        а
        н
        и
        ю

        п
        и
        т
        о
        н
        ь
        е
        г
        о

        к
        о
        д
        а
        .

        У

        м
        е
        н
        я

        т
        р
        я
        с
        л
        и
        с
        ь

        р
        у
        к
        и
        ,

        п
        о

        т
        е
        л
        у

        п
        р
        о
        к
        а
        т
        ы
        в
        а
        л
        и

        в
        о
        л
        н
        ы

        в
        о
        з
        б
        у
        ж
        д
        е
        н
        и
        я
        ,

        я
        ,

        м
        о
        ж
        н
        о

        с
        к
        а
        з
        а
        т
        ь
        ,

        б
        и
        л
        с
        я

        в

        э
        к
        с
        т
        а
        з
        е

        в
        с
        ё

        э
        т
        о

        в
        р
        е
        м
        я

        -

        и

        т
        е
        п
        е
        р
        ь

        м
        о
        г
        у

        п
        р
        о
        ц
        и
        т
        и
        р
        о
        в
        а
        т
        ь

        н
        а
        и
        з
        у
        с
        т
        ь

        л
        ю
        б
        о
        й

        п
        у
        н
        к
        т
        ,

        д
        а
        ж
        е

        е
        с
        л
        и

        м
        е
        н
        я

        р
        а
        з
        б
        у
        д
        и
        т
        ь

        п
        о
        с
        р
        е
        д
        и


        г
        л
        у
        б
        о
        к
        о
        й

        н
        о
        ч
        и
        .

        Н
        о
        в
        ы
        е

        з
        н
        а
        н
        и
        я

        о
        к
        р
        ы
        л
        я
        л
        и

        м
        е
        н
        я
        ,

        я

        б
        р
        о
        с
        и
        л
        с
        я

        п
        и
        с
        а
        т
        ь

        (
        ч
        т
        о

        б
        ы

        в
        ы

        п
        о
        д
        у
        м
        а
        л
        и
        ?
        )

        о
        ч
        е
        р
        е
        д
        н
        у
        ю

        и
        м
        и
        д
        ж
        б
        о
        р
        д
        у
        .

        Я

        н
        е

        п
        и
        с
        а
        л

        р
        а
        н
        ь
        ш
        е

        и
        м
        и
        д
        ж
        б
        о
        р
        д
        ,

        э
        т
        а

        б
        ы
        л
        а

        м
        о
        е
        й

        п
        е
        р
        в
        о
        й
        .
        Ответить
        • вин!
          Ответить
        • * g o a t s e x * g o a t s e x * g o a t s e x *
          g                                               g  
          o /     \             \            /    \       o
          a|       |             \          |      |      a
          t|       `.             |         |       :     t
          s`        |             |        \|       |     s
          e \       | /       /  \\\   --__ \\       :    e
          x  \      \/   _--~~          ~--__| \     |    x  
          *   \      \_-~                    ~-_\    |    *
          g    \_     \        _.--------.______\|   |    g
          o      \     \______// _ ___ _ (_(__>  \   |    o
          a       \   .  C ___)  ______ (_(____>  |  /    a
          t       /\ |   C ____)/      \ (_____>  |_/     t
          s      / /\|   C_____)       |  (___>   /  \    s
          e     |   (   _C_____)\______/  // _/ /     \   e
          x     |    \  |__   \\_________// (__/       |  x
          *    | \    \____)   `----   --'             |  *
          g    |  \_          ___\       /_          _/ | g
          o   |              /    |     |  \            | o
          a   |             |    /       \  \           | a
          t   |          / /    |         |  \           |t
          s   |         / /      \__/\___/    |          |s
          e  |           /        |    |       |         |e
          x  |          |         |    |       |         |x
          * g o a t s e x * g o a t s e x * g o a t s e x *
          Ответить
      • * g o a t s e x * g o a t s e x * g o a t s e x *
        g                                               g  
        o /     \             \            /    \       o
        a|       |             \          |      |      a
        t|       `.             |         |       :     t
        s`        |             |        \|       |     s
        e \       | /       /  \\\   --__ \\       :    e
        x  \      \/   _--~~          ~--__| \     |    x  
        *   \      \_-~                    ~-_\    |    *
        g    \_     \        _.--------.______\|   |    g
        o      \     \______// _ ___ _ (_(__>  \   |    o
        a       \   .  C ___)  ______ (_(____>  |  /    a
        t       /\ |   C ____)/      \ (_____>  |_/     t
        s      / /\|   C_____)       |  (___>   /  \    s
        e     |   (   _C_____)\______/  // _/ /     \   e
        x     |    \  |__   \\_________// (__/       |  x
        *    | \    \____)   `----   --'             |  *
        g    |  \_          ___\       /_          _/ | g
        o   |              /    |     |  \            | o
        a   |             |    /       \  \           | a
        t   |          / /    |         |  \           |t
        s   |         / /      \__/\___/    |          |s
        e  |           /        |    |       |         |e
        x  |          |         |    |       |         |x
        * g o a t s e x * g o a t s e x * g o a t s e x *
        Ответить
    • ШестьмесяцевназадянашёлвИнтернетекнижкуDiveintoPythonСтраннаякнижка,толстая,даещёнанерусскомязыке.Усерднопрочиталеё,методичноивдумываясь,нотакиничегоинепонял.Ночтотонеотпускаломеняяпошёлнаpython.orgистализучатьстандартнуюбиблиотеку,старательно,скурпулёзно,откоркидокорки.Гугляпримерыкода,янаткнулсянапоствблогеодногогуругдебылонаписанопроPEP8.То,чторассказывалэтотумудрённыйопытомкодер,настольковпечатлиломеня,чтоясловновприпадкебезумиябросилсязубритьэтуконвенциюпонаписаниюпитоньегокода.Уменятряслисьруки,потелупрокатываливолнывозбужденияяможносказать,билсявэкстазевсёэтовремяитеперьмогупроцитироватьнаизустьлюбойпункт,дажееслименяразбудитьпосредиглубокойночи.Новыезнанияокрылялиеня,ябросилсяписать(чтобывыподумали?)очереднуюимиджборду.ЯнеписалраньшеимиджбордэтабыламоейпервойПопутипришлосьосвоитьазывёрсткинаhtmlиcss,нотамвсёоказалосьсовсемнесложно.Яплавнодвигалсявперёднаращиваяфункционал
      Ответить
      • * g o a t s e x * g o a t s e x * g o a t s e x *
        g                                               g  
        o /     \             \            /    \       o
        a|       |             \          |      |      a
        t|       `.             |         |       :     t
        s`        |             |        \|       |     s
        e \       | /       /  \\\   --__ \\       :    e
        x  \      \/   _--~~          ~--__| \     |    x  
        *   \      \_-~                    ~-_\    |    *
        g    \_     \        _.--------.______\|   |    g
        o      \     \______// _ ___ _ (_(__>  \   |    o
        a       \   .  C ___)  ______ (_(____>  |  /    a
        t       /\ |   C ____)/      \ (_____>  |_/     t
        s      / /\|   C_____)       |  (___>   /  \    s
        e     |   (   _C_____)\______/  // _/ /     \   e
        x     |    \  |__   \\_________// (__/       |  x
        *    | \    \____)   `----   --'             |  *
        g    |  \_          ___\       /_          _/ | g
        o   |              /    |     |  \            | o
        a   |             |    /       \  \           | a
        t   |          / /    |         |  \           |t
        s   |         / /      \__/\___/    |          |s
        e  |           /        |    |       |         |e
        x  |          |         |    |       |         |x
        * g o a t s e x * g o a t s e x * g o a t s e x *
        Ответить
    • Шесть месяцев назад я нашёл в Интернете книжку Dive into Python. Странная книжка, толстая,да ещё на не русском языке.Усердно прочитал её, методично и вдумываясь, но таки ничего и не понял.Но что то не отпускало меня - я пошёл на python.org и стал изучать стандартную библиотеку,старательно, скурпулёзно, от корки до корки. Гугля примеры кода, я наткнулся на пост в блоге одного гуру,где было написано про PEP8.То, что рассказывал этот умудрённый опытом кодер, настолько впечатлило меня, что я словно в припадкебезумия бросился зубрить эту конвенцию по написанию питоньего кода.У меня тряслись руки, по телу прокатывали волны возбуждения, я, можно сказать, бился в экстазе всёэто время - и теперь могу процитировать наизусть любой пункт, даже если меня разбудить посреди глубокой ночи.Новые знания окрыляли меня, я бросился писать (что бы вы подумали?) очередную имиджборду.Я не писал раньше имиджборд, эта была моей первой.
      Ответить
      • * g o a t s e x * g o a t s e x * g o a t s e x *
        g                                               g  
        o /     \             \            /    \       o
        a|       |             \          |      |      a
        t|       `.             |         |       :     t
        s`        |             |        \|       |     s
        e \       | /       /  \\\   --__ \\       :    e
        x  \      \/   _--~~          ~--__| \     |    x  
        *   \      \_-~                    ~-_\    |    *
        g    \_     \        _.--------.______\|   |    g
        o      \     \______// _ ___ _ (_(__>  \   |    o
        a       \   .  C ___)  ______ (_(____>  |  /    a
        t       /\ |   C ____)/      \ (_____>  |_/     t
        s      / /\|   C_____)       |  (___>   /  \    s
        e     |   (   _C_____)\______/  // _/ /     \   e
        x     |    \  |__   \\_________// (__/       |  x
        *    | \    \____)   `----   --'             |  *
        g    |  \_          ___\       /_          _/ | g
        o   |              /    |     |  \            | o
        a   |             |    /       \  \           | a
        t   |          / /    |         |  \           |t
        s   |         / /      \__/\___/    |          |s
        e  |           /        |    |       |         |e
        x  |          |         |    |       |         |x
        * g o a t s e x * g o a t s e x * g o a t s e x *
        Ответить
    • Шесть месяцев назад я нашёл в Интернете книжку Dive into Python. Странная книжка, толстая, да ещё на не русском языке. Усердно прочитал её, методично и вдумываясь, но таки ничего и не понял. Но что то не отпускало меня  я пошёл на python.org и стал изучать стандартную библиотеку, старательно, скурпулёзно, от корки до корки. Гугля примеры кода, я наткнулся на пост в блоге одного гуру, где было написано про PEP8. То, что рассказывал этот умудрённый опытом кодер, настолько впечатлило меня, что я словно в припадке безумия бросился зубрить эту конвенцию по написанию питоньего кода. У меня тряслись руки, по телу прокатывали волны возбуждения, я, можно сказать, бился в экстазе всё это время  и теперь могу процитировать наизусть любой пункт, даже если меня разбудить посреди  глубокой ночи. Новые знания окрыляли меня, я бросился писать (что бы вы подумали?) очередную имиджборду. Я не писал раньше имиджборд, эта была моей первой. По пути пришлось освоить азы вёрстки на html и css, но там всё оказалось совсем не сложно. Я плавно двигался вперёд, наращивая функционал. И знаете что? Я упёрся в недостаток производительности. Ну, так мне показалось. Я делал замеры, устранял места с тяжёлым кодом. Тысячи раз запускал ab, но так и не сумел перейти порог в 300 запросов в секунду. Я както ожидал большего и был немного разочарован. Гугл, снова гугл. Десятки статей и тем на форуме… Довольно быстро я заметил, что люди часто пишут про какието асинхронные вебсервера. Часто встречались названия Tornado и Gevent. Я прочитал про них подробнее  и был просто ошеломлён. Как мне это раньше не приходило в голову?! Это же, это просто гениально, чёрт меня побери! Исходники в ведро, всё переписать
      Ответить
      • * g o a t s e x * g o a t s e x * g o a t s e x *
        g                                               g  
        o /     \             \            /    \       o
        a|       |             \          |      |      a
        t|       `.             |         |       :     t
        s`        |             |        \|       |     s
        e \       | /       /  \\\   --__ \\       :    e
        x  \      \/   _--~~          ~--__| \     |    x  
        *   \      \_-~                    ~-_\    |    *
        g    \_     \        _.--------.______\|   |    g
        o      \     \______// _ ___ _ (_(__>  \   |    o
        a       \   .  C ___)  ______ (_(____>  |  /    a
        t       /\ |   C ____)/      \ (_____>  |_/     t
        s      / /\|   C_____)       |  (___>   /  \    s
        e     |   (   _C_____)\______/  // _/ /     \   e
        x     |    \  |__   \\_________// (__/       |  x
        *    | \    \____)   `----   --'             |  *
        g    |  \_          ___\       /_          _/ | g
        o   |              /    |     |  \            | o
        a   |             |    /       \  \           | a
        t   |          / /    |         |  \           |t
        s   |         / /      \__/\___/    |          |s
        e  |           /        |    |       |         |e
        x  |          |         |    |       |         |x
        * g o a t s e x * g o a t s e x * g o a t s e x *
        Ответить
    • Вс упрлс?
      Ответить
      • Добавь с скрипт ограничения коментов по высоте и ширине.
        Ответить
        • var maxHeight = 200;
          
          // принудительный разрыв жоп строк, чтобы не торчали вправо
          $(".entry-comment").css("word-wrap", "break-word");
          
          // вставляем ЧИТАТЬ ДАЛЕЕ >>>
          $(".entry-comment").each(function() {
              if ($(this).height() > maxHeight) {
                  $(this).css("height", maxHeight).css("", "inline-block").css("overflow-y", "hidden");
                  $("<div class='read-more' style='margin-left: 40px'><a href='#'>ЧИТАТЬ ДАЛЕЕ >>></a></div>").insertAfter($(this));
              }
          });
          $(".read-more").live("click", function () {
              $(this).parent().find(".entry-comment").removeAttr("style");
              $(this).remove(); return false;
          });
          Как-то так? Вечером закоммичу, если не забуду.
          Ответить
          • Быстрофикс:
            - $(this).css("height", maxHeight).css("", "inline-block").css("overflow-y", "hidden");
            + $(this).css("height", maxHeight).css("overflow-y", "hidden");
            
            - $(this).parent().find(".entry-comment").removeAttr("style");
            + $(this).parent().find(".entry-comment").css("height", "auto");
            Ответить
          • > Вечером закоммичу, если не забуду.
            done
            Ответить
            • Почему посреди слова рвёт?green
              Ответить
              • Потому что между словами не дают неразрывные пробелы. А порвать то надо.
                Ответить
                • Я знаю, лол. Я же их туда специально вставлял. Там green в спойлере.
                  Ответить
                  • * g o a t s e x * g o a t s e x * g o a t s e x *
                    g                                               g  
                    o /     \             \            /    \       o
                    a|       |             \          |      |      a
                    t|       `.             |         |       :     t
                    s`        |             |        \|       |     s
                    e \       | /       /  \\\   --__ \\       :    e
                    x  \      \/   _--~~          ~--__| \     |    x  
                    *   \      \_-~                    ~-_\    |    *
                    g    \_     \        _.--------.______\|   |    g
                    o      \     \______// _ ___ _ (_(__>  \   |    o
                    a       \   .  C ___)  ______ (_(____>  |  /    a
                    t       /\ |   C ____)/      \ (_____>  |_/     t
                    s      / /\|   C_____)       |  (___>   /  \    s
                    e     |   (   _C_____)\______/  // _/ /     \   e
                    x     |    \  |__   \\_________// (__/       |  x
                    *    | \    \____)   `----   --'             |  *
                    g    |  \_          ___\       /_          _/ | g
                    o   |              /    |     |  \            | o
                    a   |             |    /       \  \           | a
                    t   |          / /    |         |  \           |t
                    s   |         / /      \__/\___/    |          |s
                    e  |           /        |    |       |         |e
                    x  |          |         |    |       |         |x
                    * g o a t s e x * g o a t s e x * g o a t s e x *
                    Ответить
                • Там всего-лишь replace простой добавить и усё будет ок.
                  Ответить
                  • * g o a t s e x * g o a t s e x * g o a t s e x *
                    g                                               g  
                    o /     \             \            /    \       o
                    a|       |             \          |      |      a
                    t|       `.             |         |       :     t
                    s`        |             |        \|       |     s
                    e \       | /       /  \\\   --__ \\       :    e
                    x  \      \/   _--~~          ~--__| \     |    x  
                    *   \      \_-~                    ~-_\    |    *
                    g    \_     \        _.--------.______\|   |    g
                    o      \     \______// _ ___ _ (_(__>  \   |    o
                    a       \   .  C ___)  ______ (_(____>  |  /    a
                    t       /\ |   C ____)/      \ (_____>  |_/     t
                    s      / /\|   C_____)       |  (___>   /  \    s
                    e     |   (   _C_____)\______/  // _/ /     \   e
                    x     |    \  |__   \\_________// (__/       |  x
                    *    | \    \____)   `----   --'             |  *
                    g    |  \_          ___\       /_          _/ | g
                    o   |              /    |     |  \            | o
                    a   |             |    /       \  \           | a
                    t   |          / /    |         |  \           |t
                    s   |         / /      \__/\___/    |          |s
                    e  |           /        |    |       |         |e
                    x  |          |         |    |       |         |x
                    * g o a t s e x * g o a t s e x * g o a t s e x *
                    Ответить
              • * g o a t s e x * g o a t s e x * g o a t s e x *
                g                                               g  
                o /     \             \            /    \       o
                a|       |             \          |      |      a
                t|       `.             |         |       :     t
                s`        |             |        \|       |     s
                e \       | /       /  \\\   --__ \\       :    e
                x  \      \/   _--~~          ~--__| \     |    x  
                *   \      \_-~                    ~-_\    |    *
                g    \_     \        _.--------.______\|   |    g
                o      \     \______// _ ___ _ (_(__>  \   |    o
                a       \   .  C ___)  ______ (_(____>  |  /    a
                t       /\ |   C ____)/      \ (_____>  |_/     t
                s      / /\|   C_____)       |  (___>   /  \    s
                e     |   (   _C_____)\______/  // _/ /     \   e
                x     |    \  |__   \\_________// (__/       |  x
                *    | \    \____)   `----   --'             |  *
                g    |  \_          ___\       /_          _/ | g
                o   |              /    |     |  \            | o
                a   |             |    /       \  \           | a
                t   |          / /    |         |  \           |t
                s   |         / /      \__/\___/    |          |s
                e  |           /        |    |       |         |e
                x  |          |         |    |       |         |x
                * g o a t s e x * g o a t s e x * g o a t s e x *
                Ответить
        • А зачем по ширине ограничивать? Подобные комментарии всё равно никто не читает, а мешают только длинные (хотя, если перемещаться кнопками, уже не мешают). А в ширину раздался - ну и хрен с ним.
          Ответить
          • > А в ширину раздался - ну и хрен с ним.
            Тем более в ширину еще не каждый сможет.
            Ответить
            • Ответить
            • * g o a t s e x * g o a t s e x * g o a t s e x *
              g                                               g  
              o /     \             \            /    \       o
              a|       |             \          |      |      a
              t|       `.             |         |       :     t
              s`        |             |        \|       |     s
              e \       | /       /  \\\   --__ \\       :    e
              x  \      \/   _--~~          ~--__| \     |    x  
              *   \      \_-~                    ~-_\    |    *
              g    \_     \        _.--------.______\|   |    g
              o      \     \______// _ ___ _ (_(__>  \   |    o
              a       \   .  C ___)  ______ (_(____>  |  /    a
              t       /\ |   C ____)/      \ (_____>  |_/     t
              s      / /\|   C_____)       |  (___>   /  \    s
              e     |   (   _C_____)\______/  // _/ /     \   e
              x     |    \  |__   \\_________// (__/       |  x
              *    | \    \____)   `----   --'             |  *
              g    |  \_          ___\       /_          _/ | g
              o   |              /    |     |  \            | o
              a   |             |    /       \  \           | a
              t   |          / /    |         |  \           |t
              s   |         / /      \__/\___/    |          |s
              e  |           /        |    |       |         |e
              x  |          |         |    |       |         |x
              * g o a t s e x * g o a t s e x * g o a t s e x *
              Ответить
        • Скролл добавить.
          Ответить
          • > Скролл добавить.
            Х.з., я пробовал, мне не понравилось. Затестить можешь поменяв hidden на scroll в строке 325 и убрав строку 326:
            - $(this).css("height", maxHeight).css("overflow-y", "hidden");
            - $("<div class='read-more' style='margin-left: 40px'><a href='#'>ЧИТАТЬ ДАЛЕЕ >>></a></div>").insertAfter($(this));
            + $(this).css("height", maxHeight).css("overflow-y", "scroll");
            Ответить
    • * g o a t s e x * g o a t s e x * g o a t s e x *
      g g
      o / \ \ / \ o
      a| | \ | | a
      t| `. | | : t
      s` | | \| | s
      e \ | / / \\\ --__ \\ : e
      x \ \/ _--~~ ~--__| \ | x
      * \ \_-~ ~-_\ | *
      g \_ \ _.--------.______\| | g
      o \ \______// _ ___ _ (_(__> \ | o
      a \ . C ___) ______ (_(____> | / a
      t /\ | C ____)/ \ (_____> |_/ t
      s / /\| C_____) | (___> / \ s
      e | ( _C_____)\______/ // _/ / \ e
      x | \ |__ \\_________// (__/ | x
      * | \ \____) `---- --' | *
      g | \_ ___\ /_ _/ | g
      o | / | | \ | o
      a | | / \ \ | a
      t | / / | | \ |t
      s | / / \__/\___/ | |s
      e | / | | | |e
      x | | | | | |x
      * g o a t s e x * g o a t s e x * g o a t s e x *
      Ответить
    • * g o a t s e x * g o a t s e x * g o a t s e x *
      g                                               g  
      o /     \             \            /    \       o
      a|       |             \          |      |      a
      t|       `.             |         |       :     t
      s`        |             |        \|       |     s
      e \       | /       /  \\\   --__ \\       :    e
      x  \      \/   _--~~          ~--__| \     |    x  
      *   \      \_-~                    ~-_\    |    *
      g    \_     \        _.--------.______\|   |    g
      o      \     \______// _ ___ _ (_(__>  \   |    o
      a       \   .  C ___)  ______ (_(____>  |  /    a
      t       /\ |   C ____)/      \ (_____>  |_/     t
      s      / /\|   C_____)       |  (___>   /  \    s
      e     |   (   _C_____)\______/  // _/ /     \   e
      x     |    \  |__   \\_________// (__/       |  x
      *    | \    \____)   `----   --'             |  *
      g    |  \_          ___\       /_          _/ | g
      o   |              /    |     |  \            | o
      a   |             |    /       \  \           | a
      t   |          / /    |         |  \           |t
      s   |         / /      \__/\___/    |          |s
      e  |           /        |    |       |         |e
      x  |          |         |    |       |         |x
      * g o a t s e x * g o a t s e x * g o a t s e x *
      Ответить
    • * g o a t s e x * g o a t s e x * g o a t s e x *
      g                                               g  
      o /     \             \            /    \       o
      a|       |             \          |      |      a
      t|       `.             |         |       :     t
      s`        |             |        \|       |     s
      e \       | /       /  \\\   --__ \\       :    e
      x  \      \/   _--~~          ~--__| \     |    x  
      *   \      \_-~                    ~-_\    |    *
      g    \_     \        _.--------.______\|   |    g
      o      \     \______// _ ___ _ (_(__>  \   |    o
      a       \   .  C ___)  ______ (_(____>  |  /    a
      t       /\ |   C ____)/      \ (_____>  |_/     t
      s      / /\|   C_____)       |  (___>   /  \    s
      e     |   (   _C_____)\______/  // _/ /     \   e
      x     |    \  |__   \\_________// (__/       |  x
      *    | \    \____)   `----   --'             |  *
      g    |  \_          ___\       /_          _/ | g
      o   |              /    |     |  \            | o
      a   |             |    /       \  \           | a
      t   |          / /    |         |  \           |t
      s   |         / /      \__/\___/    |          |s
      e  |           /        |    |       |         |e
      x  |          |         |    |       |         |x
      * g o a t s e x * g o a t s e x * g o a t s e x *
      Ответить
      • Ставьте отличный юзерскрипт!
        https://github.com/bormand/govnokod-board/
        Он умеет всё это скрывать.
        Ответить
    • Тест ссылок
      http://govnokod.ru/16099#comment234219
      Ответить
    • * g o a t s e x * g o a t s e x * g o a t s e x *
      g g
      o / \ \ / \ o
      a| | \ | | a
      t| `. | | : t
      s` | | \| | s
      e \ | / / \\\ --__ \\ : e
      x \ \/ _--~~ ~--__| \ | x
      * \ \_-~ ~-_\ | *
      g \_ \ _.--------.______\| | g
      o \ \______// _ ___ _ (_(__> \ | o
      a \ . C ___) ______ (_(____> | / a
      t /\ | C ____)/ \ (_____> |_/ t
      s / /\| C_____) | (___> / \ s
      e | ( _C_____)\______/ // _/ / \ e
      x | \ |__ \\_________// (__/ | x
      * | \ \____) `---- --' | *
      g | \_ ___\ /_ _/ | g
      o | / | | \ | o
      a | | / \ \ | a
      t | / / | | \ |t
      s | / / \__/\___/ | |s
      e | / | | | |e
      x | | | | | |x
      * g o a t s e x * g o a t s e x * g o a t s e x *
      Ответить
    • - Дурак ты, дурак, - слезы как-то опять неожиданно затопили мои глаза и чтобы Пашка не видел их, а может и не из-за них вовсе, я прижал его к себе, обнял и терся о его щеку своей мокрой щекой. Так мы и стояли посреди чердака.
      Ответить

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