1. PHP / Говнокод #12424

    +66

    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
    // генрация паролей
    function generatePassword($l = 8) {
    	function make_seed() {
    		list($usec, $sec) = explode(' ', microtime());
    		return (float) $sec + ((float) $usec * 100000);
    	}
    	$le = split('-', 'q-w-e-r-t-y-u-i-o-p-a-s-d-f-g-h-j-k-l-z-x-c-v-b-n-m-q-W-E-R-T-Y-U-I-O-P-A-S-D-F-G-H-J-K-L-Z-X-C-V-B-N-M-7-2-1-8-6-3-8-7-2-1-6-0-9-g-s-a-d-f-k-a-k-j-w-q-h-2-7-8-1-6-3-g-d-h-m-H-U-F-G-K-J-H-A-S-G-J-G');
    	$password = '';
    	while (strlen($password)<$l) {
    		srand(make_seed());
    		$rnd = rand(0, count($le)-1);
    		$password.=$le[$rnd];
    	}
    	return $password;
    }

    Крайне хардкорный генератор случайных паролей заданной длины. Особенно гениальна строчка №7. Всем говнокоду за мой счет!

    Запостил: SunnyMagadan, 15 Января 2013

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

    • показать все, что скрытоНу а что тебя не устраивает, тирешки?
      Ответить
      • если не ошибаюсь, в строке 12 можно было просто строку с нужными символами использовать вместо массива $le.

        Мне больше интересна строка 10 - каковы шансы что make_seed() будет возвращать одно и то же число в быстром цикле? И не приведет ли это к тому что генератор будет сбрасываться, и rand() будет вовзвращать одно и то же значение почти всегда?
        Ответить
        • > каковы шансы что make_seed() будет возвращать одно и то же число в быстром цикле
          100%, точность всего до микросекунд, а пхп всяко не настолько тормозной, чтобы за микросекунду не прогнать этот цикл.
          Ответить
        • Как сказано ниже, эту ф-цию нельзя более одного раза вызвать... Хотя может есть какая-нить настроечка, которая позволяет редекларить.
          Ответить
          • Слона-то я и не заметил. Но даже если вынести определение за цикл, все равно будет говно.

            Это ж прямо говнофрактал© какой-то.
            Ответить
          • А что, говнокод закрылся, да?
            Ответить
          • >Как сказано ниже, эту ф-цию нельзя более одного раза вызвать..

            удобно. Это в ПХП всегда так?
            Ответить
            • Я первый раз вижу такую конь-струкцию в ПХП. Писала очень изобретательная пыхомакака. У меня почему-то все функции многоразовые. Хотя, скорее всего, я ненастоящий пэхапэшник.
              Ответить
    • Одноразовая функция. На втором вызове повалится с Cannot redeclare make_seed()
      Ответить
      • А типа тебе нужно пароли пачками генерить?! Тогда покупай платную версию.
        Ответить
    • условие цикла тоже радует
      Ответить
    • а прописной Q в латинице оказывается нету!
      Ответить
      • Trolltech негодует...
        Ответить
        • Троллтеч - питухи. Какого хрена забросили кт? Вот оно теперь и неподдерживается нормально. Говорят в свежих сборках баг на багги рассекает.
          Ответить
          • Питухи - нокия. Надеюсь с дигией устаканится все через некоторое время... А то сейчас даже официальной сборки под mingw нет. Под виндой или визуалстудией собирать, или неофициальную пропатченную сборку качать.

            А как удобно было с сдк, которое обновлялось на новые версии парой кликов мышки...
            Ответить
            • очернения и наброса ради
              http://www.gamedev.ru/code/forum/?id=168969&page=3#m36
              Ответить
              • > я придерживаюсь мнения, что кодстайл нужно брать из стандарта языка
                Эта идея, которая не даёт мне покоя, я её уже поднимал как-то на ГК. Первой статьёй в моём бложике будет "Why I like STL/Boost naming conventions"
                Ответить
                • бложик обязан быть древовидным
                  иначе Тарас не оценит
                  Ответить
                • Ну резонно, java style в кутишных именах плохо сочетается с обычным крестокодом.

                  С другой стороны, мне такой стиль почему-то визуально приятней чем ехал_грека::через_реку::видит_грека_в_реке_рак, и если я пишу код с использованием Qt - я придерживаюсь их стиля, а если просто на крестах - то крестобустостиля (который I don't like, but must use to style consistency).
                  Ответить
                • А почему тебе нравится стиль буста? Мне тоже кстати
                  Ответить
                  • Опа, тема интересна, надо делать бложик платным
                    Куда только податься не знаю, нашёл вот blogger.com гугловый и github pages, пока склоняюсь ко второму. Кто-нибудь задавался таким вопросом?
                    Ответить
                  • Черновик пока здесь
                    http://tinyurl.com/ad8tu2n
                    Как разберусь с jekyll и github:pages, опубликую по-человечески.
                    Ответить
                    • осталось непонятным, зачем человеку с++ в уютном жабоскаломирке
                      Ответить
                      • Не хочешь, чтобы в рядах с++ говнокодеров прибыло? Можно понять.
                        Ответить
                        • нет, просто в с++ идут те, кто кроме бейсика/паскаля/дельфи в школе/институте не видели ничего хорошего
                          а кому уже нормально платят за энтерпрайз, писать на с++ считают ниже своего достоинства
                          поэтому ты нестандартный

                          ps я помню как у нас в конторе работал один хмырь, с вечерним образованием после морфлота, прочитал пару книжек по джаве, писал микросервлеты и считал себя элитой по сравнению с нашим сишкокрестоблядским отделом
                          Ответить
                          • Жабомирок не так уж и уютен. Быдлокодеров и там хватает, причём ЧСВ у многих зашкаливает, а уровень адекватности снижается с каждым выученным паттерном.
                            А мне пофигу, на чём писать. Если нужды проекта требуют библиотеки на c++, обкладываемся майером, страуструпом и александреску, и пишем на C++.
                            Ответить
                            • >а уровень адекватности снижается с каждым выученным паттерном
                              Ха-ха. Не в бровь, а в глаз!
                              Но многие-то выздоравливают. У кого мозг берет верх над модой, а лень и обилие работы заставляет писать проще.
                              Ответить
                            • > обкладываемся майером, страуструпом и александреску, и пишем на C++
                              - через полгода весь сектор/отдел знали сикресткрест, но ни одного тикета так и не закрыли

                              потому что учить плюсы и на них писать одновременно не хватит светового дня
                              Ответить
                    • QT - это Quick Time;

                      >QT avoids namespaces (sic!) and likes to use prefixes.
                      Необходимо писать неймспейс при использовании define из QMetaType и сигналов - потому они и бесполезны
                      Ответить
                      • > QT - это Quick Time;
                        Поправил.

                        > Необходимо писать неймспейс при использовании define ... и сигналов
                        Да, @bormand уже объяснял, но сути это не меняет - нэймспейсы Qt не использует.
                        Ответить
                    • ну как разобрался
                      Ответить
                      • Скажешь тоже. Крестоблядь не может в инструмент, для которого нет стандарта на 1170 страниц.

                        Потому только готовое решение, только софткор
                        Ответить
              • Хороший вброс, годный.

                Но давайте посмотрим, в каком году появилось Qt (1996), и в каком году появился boost (1999) и вменяемые крестокомпиляторы... Это и будет являться ответом на половину вопросов.

                1) Более-менее полноценные умные указатели в Qt появились не так давно, поэтому голые указатели - очередная дань совместимости.
                2) Тут согласен, один раз даже не хватало такой фишки.
                3,4,5) Какие-то извращенные желания, есть какие-то практические применения?
                6) Если объекты увязаны не в полный граф, а в дерево, то паренты удобны.
                7,8) Ну не было тогда вменяемых крестокомпиляторов, вот и пришлось мутить костыльный moc. В пятой наконец-то можно коннектиться к крестолямбдам.
                9) Я бы назвал идиотским вот_этот_кодестайл, но раз уж стандартная_либа::написана_в_нем, то так_и_быть, приходится_юзать в некутешном_коде. Когда же пишу на Qt - глаза и душа отдыхают, все-таки жабостайл, имхо, выглядит приятней.
                10) Есть такое.
                Ответить
                • QпОчеМу::ТЕбенРавиТСя::НероВныЙ::зАбор() ?
                  прописные буквы посреди строчных в С++ выглядят именно так
                  как и std::vector<QuitSpace::QName>
                  Ответить
                  • Из джвух зол выбирают меньшее:
                    QVector<QString> myMap;
                    myMap.append(...);
                    
                    std::vector<std::string> my_map;
                    my_map.push_back(...);
                    Ответить
                • 5) - нельзя оттемплейтить класс-наследник от QObject
                  это действительно так?
                  темплейты - это уже извращение?
                  Ответить
                  • > это действительно так?
                    Это из-за костыля под названием moc. Он генерит сишку с говнокодцем для каждого класса, у которых он найдет макро Q_OBJECT. Для темплейта он ее само-собой толком сгенерить не сможет.

                    > темплейты - это уже извращение?
                    Шаблонный виджет - имхо да. С QObject ситуация сложнее, там могло бы пригодиться.
                    Ответить
                • >Когда же пишу на Qt - глаза и душа отдыхают
                  яШкОлЬнИцАкОтОрАяПоЁт
                  Ответить
                  • нуЗачемТакЧастоМенятьРегистр?
                    Ответить
                    • QCпросиУСоздателейQt
                      Ответить
                      • QНуТамИменаКлассов неИзСловПоДжвеБуквы();

                        P.S. Как-будто я::шк_ол_ьн_иц_а::ко_то_ра_я::по_ёт выглядит лучше.
                        Ответить
            • Нокия же вроде среду неплохо допилила? Да Qt5 выкатила
              Ответить
              • Ну да, QtCreator няшка. Хоть его редактор толком не въезжает в темплейты, но среда годная.
                Ответить
            • > Питухи - нокия.
              Мудилы они сраные. Я желаю им сдохнуть.
              (Хотя, сначала я куплю себе телефон на миго и только потом.)
              Ответить
              • А что, говнокод закрылся, да?
                Ответить
              • Хм, а можно заказать ещё пару пожеланий на сдохнуть? У тебя вроде получается
                Ответить
                • Какие Death Notes )))
                  Ответить
                  • Lotus Death Notes. Я настолько старый, что видал автоматизацию мелкой фирмы на лотусе

                    Как тебе язык?
                    Sub Initialize
                         Dim session As New NotesSession
                         Dim db As NotesDatabase
                         Dim dc As NotesDocumentCollection
                         Dim doc As NotesDocument
                         Set db = session.CurrentDatabase
                         Set dc = db.AllDocuments
                         Set doc = dc.GetFirstDocument
                         While Not(doc Is Nothing)
                              category = doc.Category
                              totalSales = doc.TotalSales
                              Select Case totalSales(0)
                              Case Is >= 200000 : category(0) = "Above Quota"
                              Case Is >= 100000 : category(0) = "OK"
                              Case Else : category(0) = "Below Quota"
                              End Select
                              doc.Category = category
                              Call doc.Save(True, False)
                              Set doc = dc.GetNextDocument(doc)
                         Wend
                    End Sub
                    Ответить
                    • Я видел сайты на «Lotus Domino» (у них URL содержали «.nsf»).

                      А язык в твоём реальном примере — диалект Вижуал Барсика.
                      Ответить
                      • P.S. они и сейчас есть.

                        google: inurl:"index.nsf"
                        Ответить
                        • какие еще всратые вебхуйни мы знаем?
                          SSI?
                          Miva?
                          cold fusion?
                          Ответить
                          • Cold Fusion как раз вспомнил.

                            Был веб-браузер Hot Java с полной поддержкой HTML 3.2 (большая часть элементов HTML 3.x не вошла в HTML 4, но вдохновила создателей MathML и SVG). Браузер не взлетел, потому что Java — говно.
                            Ответить
                          • SSI я даже использовал на недохостингах типа Народа.

                            А Miva не помню.
                            Ответить
                            • на народе не могло быть SSI кмк, там сервер-сайда не было

                              А миву я сюда приносил. Это язык богов:


                              Признайся: захотелось?

                              А еще он платный
                              https://docs.miva.com/template-language/mvtcall



                              `gologub(`
                              Ответить
                              • <mvt:assign name="g.searchspring:json" value="glosub( glosub( g.searchspring:json, '\n', '' ), '\t', '' )" />
                                Ответить
                              • блядь инью заебал

                                верни текст!!!
                                Ответить
                                • Отредактировал текст со знаками «меньше» и «больше»?
                                  Ответить
                                  • Miva был создан в начале нулевых, когда всем было очевидно, что будущее за XML, потому весь mivascript на XML.

                                    Императивные конструкции типа циклов и условных ветвлений на XML это такая нямка
                                    Ответить
                              • > на народе не могло быть SSI кмк, там сервер-сайда не было

                                Я не помню, на каком именно хостинге это было (у Народа, у Почта.ру или у Апорта), но это был именно хостинг для статики без возможности исполнения скриптов на сервер-сайде, но вот SSI там было. Можно было собирать большой HTML из кусков и вставлять значения пельменных типа текущих времени и даты на момент запроса страницы.
                                Ответить
                                • А SSI не питуринг-полный (если не вставлять CGI конечно)?

                                  PS:
                                  [an error occurred while processing this directive]
                                  Ответить
                                  • Циклы на SSI создавать было нельзя. Для поограммирования не годится.
                                    Ответить
                      • Это Lotus Script.

                        nsfw тоже на нем написаны, как и гуй кмк
                        https://help.hcltechsw.com/dom_designer/9.0.1/appdev/H_LESSON_1_PRINTING_THE_TITLE_OF_A_DATAB ASE.html
                        Ответить
              • Ну как, купил?
                Ответить
            • Ну как, обстаканилось?
              Ответить
    • За завтраком Руслан молчал и избегал встречаться глазами с Витом. Когда они поели, тот уже собирался затеять серьёзный разговор, чтобы "его хищник" так сильно не убивался, но Руслан его опередил.
      Ответить
    • Сишник (выносит декларацию в `.h` файл, шарит его с клиентом)
      Джавист: ха-ха, в старом говне столько ебли, у нас в джаве это не нужно.
      Джавист (экстрактит интерфейс `Petuh` из класса `PetuhImpl`)
      Сишник: Что ты делаешь?
      Джавист: Отделяю интерфейс от имлементации, чтобы сделать его частью API, и отдать его клиентам. Сам не видишь что-ли?
      Ответить

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