Куча говна / Говнокод #27439 Ссылка на оригинал

0

  1. 1
IT Оффтоп #90

#60: https://govnokod.ru/26949 https://govnokod.xyz/_26949
#61: https://govnokod.ru/26980 https://govnokod.xyz/_26980
#62: https://govnokod.ru/26999 https://govnokod.xyz/_26999
#63: https://govnokod.ru/27004 https://govnokod.xyz/_27004
#64: https://govnokod.ru/27020 https://govnokod.xyz/_27020
#65: https://govnokod.ru/27027 https://govnokod.xyz/_27027
#66: https://govnokod.ru/27040 https://govnokod.xyz/_27040
#67: https://govnokod.ru/27049 https://govnokod.xyz/_27049
#68: https://govnokod.ru/27061 https://govnokod.xyz/_27061
#69: https://govnokod.ru/27071 https://govnokod.xyz/_27071
#70: https://govnokod.ru/27097 https://govnokod.xyz/_27097
#71: https://govnokod.ru/27115 https://govnokod.xyz/_27115
#72: https://govnokod.ru/27120 https://govnokod.xyz/_27120
#73: https://govnokod.ru/27136 https://govnokod.xyz/_27136
#74: https://govnokod.ru/27160 https://govnokod.xyz/_27160
#75: https://govnokod.ru/27166 https://govnokod.xyz/_27166
#76: https://govnokod.ru/27168 https://govnokod.xyz/_27168
#77: https://govnokod.ru/27186 https://govnokod.xyz/_27186
#78: https://govnokod.ru/27219 https://govnokod.xyz/_27219
#79: https://govnokod.ru/27254 https://govnokod.xyz/_27254
#80: https://govnokod.ru/27270 https://govnokod.xyz/_27270
#81: https://govnokod.ru/27280 https://govnokod.xyz/_27280
#82: https://govnokod.ru/27284 https://govnokod.xyz/_27284
#83: https://govnokod.ru/27296 https://govnokod.xyz/_27296
#84: https://govnokod.ru/27336 https://govnokod.xyz/_27336
#85: https://govnokod.ru/27381 https://govnokod.xyz/_27381
#86: https://govnokod.ru/27405 https://govnokod.xyz/_27405
#87: https://govnokod.ru/27429 https://govnokod.xyz/_27429
#88: https://govnokod.ru/27432 https://govnokod.xyz/_27432
#89: https://govnokod.ru/27435 https://govnokod.xyz/_27435

Запостил: nepeKamHblu_nemyx nepeKamHblu_nemyx, (Updated )

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

  • Доброй ночи.

    Этот оффтоп сгенерирован автоматически.

    Индекс оффтопов: https://index.gcode.space/.
    Зеркала Говнокода и полезные ресурсы:
    * https://govnokod.xyz/ (альтернативный Говнокод)
    * https://gcode.space/ (read-only зеркало Говнокода)
    * https://t.me/GovnokodBot (Говнокод-бот в «Telegram»)
    * https://t.me/GovnokodChannel (Тематический канал в «Telegram»)
    * https://vorec.space/ (глоссарий Говнокода)
    * https://app.element.io/#/room/#govnokod:matrix.org (резервный чат)

    Примечание: автоматические перекаты в настоящее время осуществляются только с аккаунта nepeKamHblu_nemyx.
    Остерегайтесь подделок. Берегите себя и своих близких. Кок!
    Ответить
    • Bonsoir.

      Ce hors-sujet est généré automatiquement.

      Index hors-sujet: https://index.gcode.space/.
      Miroirs Shitcode et ressources utiles:
      * https://govnokod.xyz/ (Shitcode alternatif)
      * https://gcode.space/ (miroir en lecture seule de Gcode)
      * https://t.me/GovnokodBot (bot Shit-code dans Telegram)
      * https://t.me/GovnokodChannel (chaîne thématique dans Telegram)
      * https://vorec.space/ (glossaire shitcode)
      * https://app.element.io/#/room/#govnokod:matrix.org (discussion de sauvegarde)

      Remarque: les lancers automatiques ne sont actuellement effectués qu'à partir du compte nepeKamHblu_nemyx.
      Méfiez-vous des contrefaçons. Prenez soin de vous et de vos proches. Coq!
      Ответить
      • Блядь, я уже подумал, что либо гост шутит, либо я случайно включил переводчик в браузере.
        Ответить
      • Καληνύχτα.

        Αυτό το offtop δημιουργείται αυτόματα.

        Δείκτης Offtops: https://index.gcode.space/
        Govnokod καθρέφτες και χρήσιμοι πόροι:
        * https://govnokod.xyz/ (εναλλακτική λύση Govnokod)
        * https://gcode.space/ (καθρέφτης του Govnokod μόνο για ανάγνωση)
        * https://t.me/GovnokodBot (Govnocode bot του Telegram)
        * https://t.me/GovnokodChannel (θεματικό κανάλι Telegram)
        * https://vorec.space/ (γλωσσάριο του Govnokod)
        * https://app.element.io/#/room/#govnokod:matrix.org (εφεδρική συνομιλία)

        Σημείωση: οι αυτόματες ρίψεις γίνονται προς το παρόν μόνο από το λογαριασμό nepeKamHblu_nemyx.
        Προσοχή στις απομιμήσεις. Φροντίστε τον εαυτό σας και τους αγαπημένους σας. Κοκ!
        Ответить
          • говнокод кстати походу не приспособлен к rtl 🙁

            страйко, почини!
            Ответить
          • Приходите к нам в иврит,у нас есть:
            «ו» - это буква «о» и буква «у» одновременно.
            «א» буква которая первая в алфавите но не имеет звука.
            « ץ,ף,ם,ן» буквы которые можно писать только в конце слова.
            И все сука на оборот!!!!
            Ответить
        • こんばんは。

          このオフトピックは自動生成されました。

          オフトピックのインデックス: https://index.gcode.space/
          Govnokodのミラーと便利なリソース
          https://govnokod.xyz/ (代替のGovnokod)
          https://gcode.space/ (Govnokodの読み取り専用ミラー)
          https://t.me/GovnokodBot (TelegramのGovnokodのボット)
          https://t.me/GovnokodChannel (Telegramの主題のチャネル)
          https://vorec.space/ (Govnokodの用語集)
          https://app.element.io/#/room/#govnokod:matrix.org (バックアップチャット)

          ※現在、自動ロールはnepeKamHblu_nemyxアカウントからのみ実行され ます。
          偽造品に注意してください。 自分と大切な人の世話をしてください。 コッコッ!
          Ответить
          • Зачем японцам три алфавита, и зачем они их смешивают?
            Ответить
            • Исторически так сложилось (поднасрали китаёзы). У китайцев язык аналитический, слова не изменяются, у японцев — синтетический. Письменность они заимствовали у китайцев, но так как окончания слов в японском изменяются, просто иероглифами слова уже не запишешь, пришлось извращаться. Сначала они выбрали иероглифы специально для записи окончаний, потом постепенно они упростились и превратились в кану. Скорописное упрощение превратилось в хирагану, "печатное" — в катакану. Используют хирагану для записи изменяемых окончаний слов, частиц, а также японских слов, не имеющих варианта для записи кандзи. Катакану используют для записи гайрайго (заимствованных слов не из китайского), а также для выделения (типа как курсив).
              Конечно, можно писать одной только хираганой без кандзи (так и делают в детских книгах), но читать это сложнее, к тому же очень много канго (заимствованных слов из китайского) читаются одинаково, и в записи каной их не различишь. Например, 軌跡 (траектория, колея) и 奇跡 (чудо) хираганой пишутся одинаково: きせき.
              Ответить
                • Рад был помочь!
                  Кстати, ещё можно привести аналогию с записями числительных в русском: "2-й", "во 2-м", "2". Здесь "2" — это как иероглиф, а окончания — как кана (например, 早い [hayai] быстрый, 早く[hayaku] быстро), при этом слово можно записать полностью без "иероглифа" ("второй" вместо "2-й", はやい вместо 早い), и "иероглиф" может читаться в разных случаях по-разному ("два", "втор-", а иногда и вообще 20 "двадцать" или 12 "двенадцать", при этом произношение нельзя разделить на отдельные "иероглифы").
                  Примерно такая же штука и с кандзи, например 月 (луна) как отдельное слово читается японским чтением [tsuki], в составных словах китайским чтением [getsu, gatsu] (五月 [gogatsu] май, 月曜日 [getsuyoubi] понедельник), а иногда и вообще слово полностью читается нестандартно и не делится на иероглифы (海月 [kurage] медуза).
                  В китайском проще — там ханьцзы читаются однозначно (за редким исключением).
                  Ответить
                  • Кстати, мне японский чем-то напоминает «Python»:






                    Вот нахуя было такое делать? Ладно, в русском тоже есть Ц, Ш, Щ, но они хотя бы читаются похоже, в отличие от.
                    Ответить
                    • вот если бы японцы структурировали пробелами...
                      Ответить
                    • Именно поэтому я за то, чтобы учить не только, как выглядит знак, но и правила его начертания. В данных парах различается порядок и направление штрихов.
                      Но это мелочи по сравнению с кандзи. Как тебе такие пары: 未 末, 土 士, 氷 永, 運 連, 戌 戍, 日 曰 (戍 и 曰 правда практически не употребляются, но тем не менее).
                      Ответить
                    • >> ソ
                      >> ン
                      Это смайл для угнетённых циклопов сделали? Вот всех угнетают а вот да, о циклопах никто не вспоминает.
                      Ответить
                    • Скоропись, они совсем разные если от руки писать
                      Ответить
                      • > писать

                        А читать как? 😉

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

                          Если при этом ещё навык выработать, я думаю будет значительно проще, чем для японца и китайца произнести наш звук, который даёт буква "ж"
                          Ответить
                        • > А читать как? 😉
                          Если ты умеешь писать (только писать правильно, следуя порядку начертания штрихов, а не абы как), то и читать легко, потому что понимаешь принцип, по которому они отличаются.
                          Кана учится за пару дней, максимум — неделю, это же как обычный алфавит, только слова читать ещё проще, потому что как пишется, так и читается*, в отличие от большинства других языков (привет, английский). シ си**, ツ цу, ソ со, ン н***.
                          А вот на кандзи надо надрачивать годами мозг, потому что там никакой логики для чтения (вся логика осталась в китайском, фонетики там, все дела; они частично есть и в японском по наследству, но в целом всё плохо).

                          *В чтении каны есть нюансы типа редукции う и い, чтения おう и えい, но это больше к фонетике относится. Ну и еще は в качестве падежного показателя читается как "ва" вместо "ха", а へ — "э" вместо "хэ".
                          **シ читается как нечто среднее между "си" и "щи", только "щ" не растянутая, как в русском.
                          ***ン является отдельным слогом, несмотря на то, что в нём нет гласного. Произносится как минимум тремя немного различающимися звуками в зависимости от того, где находится, но в целом очень похоже на "н".
                          Ответить
          • Goodnyight.

            This offtopic is genyewated automaticawwy.

            Offtopic index: https://index.gcode.space/.
            Shitcode Miwwows and Usefuw Wesouwces:
            * https://govnyokod.xyz/ (awtewnyative Shitcode)
            * https://gcode.space/ (wead-onwy miwwow of Govnyokod)
            * https://t.me/GovnyokodBot (Shit-code bot in Tewegwam)
            * https://t.me/GovnyokodChannyew (Thematic channyew in Tewegwam)
            * https://vowec.space/ (Shitcode gwossawy)
            * https://app.ewement.io/#/woom/#govnyokod:matwix.owg (backup chat)

            Nyote: automatic wowws awe cuwwentwy onwy cawwied out fwom the nyepeKamHbwu_nyemyx account.
            Bewawe of countewfeits. Take cawe of youwsewf and youw wuvd onyes. Cook (・`ω´・)
            Ответить
    • Лека нощ.

      Тази офтопия се генерира автоматично.
      Ответить
  • Почему gc.collect() так долго работает? Получается программа может так же зависнуть в случайный момент? Или оно как-то размазывает по времени?
    Ответить
    • В каком языке? Если ты про джаву — то с каким имення gc? Их там много.
      Ответить
    • Потому что это приказ сделать полную уборку (х.з. вообще что за язык/рантайм имеется в виду)?

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


      Современные GC умеют не делать stop the world, или почти не делать. Классические GC вроде бы да, могут завсинуть

      https://habr.com/ru/post/116578/
      Ответить
        • И его надо звать явно? Ну чтобы всё было понятно и предсказуемо.
          Ответить
            • >may
              непорядок

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

        With no arguments, run a full collection.
        Ответить
        • Но выбора нет. У меня 16 гиг на ноуте, если не почистить говно перед вызовом функции - может зависнуть )))
          Ответить
          • Какое автоматическое управление памятью )))

            А лимитов как у жабы там нет?
            Ответить
            • У меня гигантский список списков, и работа с этим списком. В смысле ты спрашиваешь почему оно зависает, а не падает? Хуй знает.
              Ответить
              • > почему оно зависает

                Да это как раз понятно... Прыщепроблема номер один: своп лучше не трогать.
                Ответить
                  • А это не прыщи разве? У меня как-то питон занимал 70 гиг памяти, всё работа норм из-за того, что не все объекты были нужны в один момент времени, свопались по необходимости.
                    Ответить
        • Это замечательно, но как только мне понадобится какая-нибудь ml-хуитень типа lightlgbt, я буду пирдолиться с крестовыми библиотеками?
          Ответить
            • Ты уверен, что хочешь отговорить меня от питона?
              Ответить
              • Я предлагаю альтернативу:) Думаю, язык ты и без меня выбереш

                У JVM есть параметр xmx, ограничивающий кучу. При его достижении выпадает OOM
                Ответить
    • > 35 -- это конец

      Неспроста Снаут вчера писал про r-стратегию...
      Ответить
      • З.Ы. Я не думаю, что старые програмисты уходят в лес и умирают...

        Просто их изначально было мало, а теперь на фоне молодняка их не заметно. Ну не была эта профессия настолько популярной 30 лет назад.
        Ответить
        • старые программисты становятся сотрудниками вычислительного центра
          Ответить
          • > становятся

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

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

                      Нужно у дефекейта спросить
                      Ответить
                        • Это правда 2013-й год

                          но я помню рассуждения дефейкейта про MVCC в постгре, так что я сильно сомневаюсь, что он прямо вот ничего не пишет
                          Ответить
                          • а какая разница, какой год? чувак был крестоблядью и тут ВНЕЗАПНО его позвали руководить питухами, которые пишут на джаве, которую он не знает. пришёл за советом в том числе на ГК

                            в принципе, любой может так сделать, кто хочет руководить жабой, крестами, питоном, няшной. гк сила!
                            Ответить
                        • Так и что? Знать джава он обязан, но сам писать код уже нет. Но если руководить разработкой какой-то сильно технической поебени (типа базы данных), то конечно ориентироваться в коде и его проектировать он будет. А если задача ближе к бизнесу, то нет.
                          Ответить
                          • Невозможно знать код и не писать.
                            Попробуй не писать на своем С++ 10 лет, а потом что-нить понять в С++30 🙂

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

                    Они конечно меньше его пишут, чем в двадцать пять, но вполне себе пишут.
                    Ответить
          • то есть руководители питухов плодятся в геометрической прогрессии?
            Ответить
    • 35 это уже возраст когда ты не развиваешься
      Ответить
        • Как в тот раз, когда я пошел на курсы виноделия и разучился водить машину.
          © Гомер Симпсон
          Ответить
          • Для +35 и джава-мэнов объясняю шутку:
            Гомер когда пошел на курсы набрался там знаний - он думал из-за этого у него из головы вылетело умение водить машину, когда он шатаясь по дороге на машине сбивал все подряд. А на самом деле он просто нажрался.
            Ответить
      • подумаешь, некоторые и в 25 уже не развиваются
        Ответить
            • Знаю людей, которые перестали развиваться на каком-то курсе ВУЗа, и с тех пор и не развиваются.

              иногда это был первый курс
              Ответить
              • знаю людей, которые перестали развиваться в третьем классе

                если не считать функций продолжения рода
                Ответить
              • Чтобы вуз окончить развиваться не нужно.
                Ответить
                      • А в графе «вуз» ты что напишешь?
                        Ну и тиндер только для ебанутых.
                        Ответить
                        • Ну во первых я не собираюсь выходить замуж
                          Во вторых если бы и собирался, то я бы не составлял такую дурацкую анекету с графой "вуз"

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

            https://live.1001chudo.ru/russia_1364.html
            Ответить
          • Кстати, однодневки (они же подёнки) живут личинкой весьма долго, а вот в бабочку превращаются на один день, чтобы поебаться, оставить потомство, и умереть. У них нет рта, потому что весь этот день они не едят

            https://live.1001chudo.ru/russia_1364.html
            Ответить
              • У них зато снизу два отверстия

                Их самцы не жалуются, а просто сразу же умирают на месте
                Ответить
                • одно для заначки, второе для шпионской фотокамеры?
                  Ответить
                • > самцы просто сразу же умирают на месте

                  - если перед этим он не купил ей машину, квартиру и айфон, то смерть была напрасна

                  а если купил, то молодец
                  Ответить
                  • почему в России есть отдельно СК, а отдельно ГП?
                    Ответить
                  • Богомол от самки просто голову потерял, а самка съела её не просто так, а чтобы родить крепких младенцев

                    Пошла на это ради детей, короче.

                    А еще хорошо это работает у пауков: самка хочет самца съесть, а он её выебать. Вот он выбигает, и должен присунуть, пока она его не съела.

                    некоторые лохи и присунуть-то не успевают, апросто становятся кормом
                    Ответить
              • Такую и в жены можно взять, наверное. Заодно разговорами не будет отвлекать от рыбалки и пива (мужского досуга).
                Ответить
                • какую такую? которая

                  > на один день, чтобы поебаться, оставить потомство, и умереть

                  ?

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

      Management VLAN должен быть отделен от User VLAN
      Management VLAN должен быть отделен от User VLAN
      Management VLAN должен быть отделен от User VLAN
      Management VLAN должен быть отделен от User VLAN
      Ответить
      • Ну видимо конфиги руками заливают (или даже в гуйне накликивают?) и промахнулись немного...
        Ответить
    • > заменен в целях безопасности провайдера
      t. full disclosure для пидорашек
      Ответить
  • Notation "<?php code ?>" := php code.

    Интересно, а можно ли написать нотацию для какого-то юзабельного подмножества PHP, чтобы потом о нём что-нибудь доказывать?
    Ответить
  • https://m.habr.com/ru/news/t/559474/

    Косяк колхозной простоты в коде веб-сайта Хабра

    Я в шоке. В коде самого главного сайта программистов России, Украины и Белоруссии, который должен быть эталогом качественного веб-программирования - явный баг. Я редактирую профиль, пишу свой день рождения - 22 декабря, сохраняю, а оно выводит для всех как 21 декабря. Был Козерогом, стал Стрельцом.
    Ответить
    • На Хабре несколько месяцев живёт статья, комментарии к которой не загрузятся до конца в Хроме на ноутбуке с 16 гигами памяти.

      Судьба предателя, угнавшего новейший МиГ-25 в Японию
      Ответить
      • А причем тут хабр и судьба предателя угнавшего миг. Они там совсем попутали?
        Ответить
            • Ну когда у Интела был FDIV баг в процессоре, об этом писали во всей мировой прессе, по телевизору показывали и до сих пор в учебниках об этом вспоминают. Чем Хабр хуже интела? И задачка для программистов вебсайтов — как такое могло произойти.
              Ответить
            • Есть и такой комментарий, он мне напоминает о гологубе:

              Храбру ДР. А Вы ему, публично, "ширинку застегни"! А ведь сами ровестник Unix. Гришковец жаловался, в Одновременно на эту самую неприятность. Мол, проверяет теперь, перед выходом на сцену, привычным жестом.У Гагарина, помню шнурок развязался. А он военный! Подходит он за наградой, а ему - почему по форме не одеты!

              PS. Но надо застегнуть, да. Не 90, 15. Здоровья, Храбр!
              Ответить
              • А вот этот о j123123:

                Я не веб-программист и совсем не представляю как работает что client, что server часть. Я когда-то в 20 веке был программистом компиляторов, но потом перешёл сначала в верификацию микросхем, а потом в проектирование микросхем. Я как-раз сделал этот пост, чтобы из реакций получить туманное представление, как код на телефоне взаимодействует с кодом на сервере веб-сайта.
                Ответить
                • Боюсь, что j123123 знает "как код на телефоне взаимодействует с кодом на сервере веб-сайта" лучше, чем многие веб-программисты, прошедшие эксперсс-курсы Дениса Попова "PHP за 24 часа"

                  Sad, but true
                  Ответить
              • я так не пишу, не гони

                а вот смазливый секс-символ ватников дядя Гага на самом деле никуда не летал, то был магнитофон и прыжок с пашотом, чем и объясняется рассинхрон радиопереговоров и путаница в показаниях соответственно

                https://i.postimg.cc/CKBDK9Y3/1490804600861.jpg
                Ответить
        • Да как он вообще посмел улететь из лучшей в мире страны кококо!
          Ответить
    • Ну что, разработчики веб-сайтов, никто не знает как такое могло произойти? Эта задачка вам не по зубам?
      Ответить
    • > 22 декабря, а выводит 21

      Таймзоны такие таймзоны? Или статья о другом?
      Ответить
    • >который должен быть эталогом качественного веб-программирования -
      схуя бы? И что такое "эталог"?
      Ответить
      • > качественного веб-программирования

        Нет сынок, это фантастика...
        Ответить
          • Маленькая цена ошибки, легко выкатить фикс.

            Поэтому из "быстро, дёшево, охуенно" всегда выбирают или "быстро" или "дёшево". Делать что-то с приличным качеством экономически нецелесообразно.
            Ответить
      • η.log


        а вот почему на швабре козий рог - вот это вопрос
        Ответить
    • [quotte]
      По моему мнению, Хабр едва ли для программистов. В Рунете есть специализированные такие популярные сайты/форумы для программистов, как Киберфорум
      [/quotte]


      блядьчто?
      Ответить
          • Потому что объектно-ориентированный подход. Современный и грамотный.

            Особенно приятно, что метод приватный. То есть код еще и инкапсулирован, как положено.
            Ответить
          • Дай угадаю, автору нужна помощь, т.к. BBкоды удаляются, но не гетаются?
            Ответить
            • Это из ответов экспертов автору, которому нужня было удалять конкретные bb-коды.
              Ответить
          • > Нужно оформить проверку на ввод только чисел (целых, дробных, отрицательных), чтобы при вводе любого символа кроме минуса, точки и цифер сразу выводилась ошибка. Сделать нужно через try catch
            Между прочим, для C++ — крайня сложная задача.
            Ответить
            • ну если cin >> в числа не поможет и scan не поможет, то можно построить стейт машину, скаормилвать в нее один байт, и там уже второкурсин справица
              Ответить
              • > и там уже второкурсин справица
                > целых, дробных, отрицательных
                Ня так давно на ГК обсужали, что реализовать FSM для парсинга плавающих няшек во всех допустимых видов — задачка весьма и весьма нятривиальняя.
                Ответить
            • > при вводе любого символа
              > сразу выводилась ошибка

              Т.е. ещё и буферизацию отключать? Боюсь, что в рамках Стандарта эта задача вообще неразрешима.
              Ответить
          • https://www.cyberforum.ru/cpp-beginners/thread2839298.html
            #include <iostream>
            #include <string>      
            #include <stdio.h>
            #include <cstring>
            using namespace std;
            int main()
            {
                  char *locale = setlocale(LC_ALL, "");
                  char str[] ="MAKSIM, YA TUTA, AAA";
              char * pch;
             
              pch = strtok (str," ");
              while (pch != NULL)
              {
               char * s2 = pch; 
               for(int i = 0; i < strlen(s2) - 1; i++)
               {
                   for(int j = i+1; j < strlen(s2); j++)
                   {
                       if (s2[i]==s2[j]) s2[j]='.';
                   }
               }
                cout<<s2<<" ";
                
                pch = strtok (NULL, " ");
              }
              return 0;
             
            }

            Как сделать O(N^3) ня ровном месте.
            И ведь автора кто-то этому няучил, искренне считая, что это "C++".
            Ответить
            • Тут кстати от C++ тока cout, но делать цыкыл с условием strlen и вложенный цикл это весело

              >> #include <stdio.h>
              >> #include <cstring>

              сразу видно, что разные кусочки из разных мест скопировал
              Ответить
              • Имення поэтому нячинать учиться программированию нядо с C, и уж во всяком случае точня не с C++.
                Ответить
                • Угу

                  Начинать с С++ это как начинать изучать русский язык со стихов Хлебникова
                  Ответить
                    • Если без зелёного, то я совершенно не понимаю, нахуя новичков учат крестам, особенно тех, кто не собирается быть программистом.

                      На том форума половина вопросов это скопированные откуда-то лабы
                      Ответить
            • Мне и вот такое попадалось (здесь уже побольше c++):
              for (int i = 0; i < strlen(s2.c_str()); i++)
                 if (s2[i] == '/')
                     s2[i] = '\\';
              З.Ы. Автор -- ма-те-ма-тик, видимо. Умеет сводить задачи к тем, решение которых он уже знает.
              Ответить
              • меняли слеши чтобы на винде работать?:)

                блин, ну бог с ним с strlenом каждый раз, но в s2 же наверняка есть свой size() ?

                И вообще std::replace
                Иначе зачем С++?
                Ответить
                • > наверняка есть свой size()

                  Причём он работает за O(1), в отличие от.
                  Ответить
                  • ну да, строка же имеет право знать свой размер, не нужно его каждый раз считаьть)
                    Ответить
              • А вдруг в s2 лежит десять символов пути, нуль-терминатор и гигабайт нянужного мусора, а потом эту строку нядо передать в какое-нябудь (const char *) API? Вот автор и оптимизировал.
                Ответить
                • Да, точно. Заменить слеши в первой маске для GetOpenFileName(), не задев остальные.

                  З.Ы. Походу на ГК могут придумать задачу под любой код, даже самый ёбнутый.
                  Ответить
            • > O(N^3) ня ровном месте

              Ну а кто виноват, что конпелятор тупой и не может пруфануть, что длина s2 результат вызова strlen(s2) не меняется на протяжении цикла?

              З.Ы. Мы знаем, что от 0 до strlen(s2) - 1 в строке нет нулей, т.е. запись точки не может сбить инвариант. А других записей в цикле нет.
              Ответить
              • Так у няго сорцов strlen() нят, в отличие от STL. Он просто видит какой-то вызов в libc6.so. А уж запись в s2 вообще убивает все оптимизации из-за type punning'а.
                В принципе, авторы компилятора могли бы и костыль захардкодить для таких случаев, но это костылей ня напасёшься — каждый говнокод подпирать.
                Ответить
                • Авторы компилятора могли бы знать как работает функция из их библиотеки

                  gcc имеет полное право знать про glibc
                  Ответить
                  • > функция из их библиотеки

                    Тем более это стандартная функция, сёмантика которой строго определена.
                    Ответить
                • > у няго сорцов strlen() нят

                  Вообще говоря есть... Эти суки знают про сёмантику всяких memcpy и умеют её в обе стороны реплейсить.

                  З.Ы. У меня так моя реализация memcpy превратилась в бесконечную рекурсию.
                  Ответить
                  • memcpy() и иже с ними там, скорее всего, просто захардкожены. Хардкодить же каждую функцию из стандартной либы, чтобы ускорить говно — ну такое себе.
                    Ответить
                    • > чтобы ускорить говно

                      Кстати, посмотри в какое говнище раскрывается strlen() на gcc чтобы с литералами быстрее работало.

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

                > Ну а кто виноват, что конпелятор тупой и не может пруфануть, что длина s2 результат вызова strlen(s2) не меняется на протяжении цикла?
                Вообще говоря, в общем случае меняется.
                char str[] = "abc\0cba";
                size_t a = std::strlen(str);
                
                str[3] = '/';
                size_t b = std::strlen(str);

                То есть компилятор должен доказать, что:
                1. Мы ня пишем \0;
                2. Мы пишем только в часть строки до первого \0.
                При этом нам активня мешает type punning из-за записи в char *. Выглядит как очень нятривиальняя оптимизация непонятня для чего.
                Ответить
                • > активня мешает type punning

                  Именно поэтому ня за иммутабельность. По крайней мере сёмантическую, под капотом пусть пишет.
                  Ответить
              • И таки да, о сёмантике strlen() компиляторы в курсе:
                #include <cstddef>
                #include <cstring>
                
                void replaceSlashes(char *s) {
                    for (size_t i = 0; i < strlen(s); i++) {
                        if (s[i] == '\\') {
                            s[i] = '/';
                        }
                    }
                }
                
                size_t countSlashes(const char *s) {
                    size_t cnt = 0;
                    for (size_t i = 0; i < strlen(s); i++) {
                        if (s[i] == '\\') {
                            cnt++;
                        }
                    }
                    return cnt;
                }

                https://gcc.godbolt.org/z/14fYc4aj7
                Ожадаемо, функция с записью собралась в обычный квадрат. А вот функция без записи раскукоживается в хтоническое:
                push    rbx
                mov     rbx, rdi
                call    strlen
                mov     rdx, rax
                test    rax, rax
                je      .L7
                lea     rax, [rax-1]
                cmp     rax, 14
                jbe     .L28
                mov     rcx, rdx
                pxor    xmm3, xmm3
                pxor    xmm5, xmm5
                mov     rax, rbx
                and     rcx, -16
                movdqa  xmm7, XMMWORD PTR .LC0[rip]
                pxor    xmm4, xmm4
                pxor    xmm2, xmm2
                movdqa  xmm6, XMMWORD PTR .LC1[rip]
                add     rcx, rbx
                .L10:
                movdqu  xmm0, XMMWORD PTR [rax]
                add     rax, 16
                pcmpeqb xmm0, xmm7
                pand    xmm0, xmm6
                movdqa  xmm1, xmm0
                punpckhbw       xmm0, xmm5
                punpcklbw       xmm1, xmm5
                movdqa  xmm8, xmm0
                punpckhwd       xmm0, xmm4
                movdqa  xmm9, xmm1
                punpckhwd       xmm1, xmm4
                punpcklwd       xmm8, xmm4
                movdqa  xmm10, xmm1
                punpcklwd       xmm9, xmm4
                punpckhdq       xmm1, xmm2
                punpckldq       xmm10, xmm2
                paddq   xmm1, xmm10
                movdqa  xmm10, xmm9
                punpckhdq       xmm9, xmm2
                punpckldq       xmm10, xmm2
                paddq   xmm9, xmm10
                paddq   xmm1, xmm9
                movdqa  xmm9, xmm8
                punpckhdq       xmm8, xmm2
                punpckldq       xmm9, xmm2
                paddq   xmm8, xmm9
                movdqa  xmm9, xmm0
                punpckhdq       xmm0, xmm2
                punpckldq       xmm9, xmm2
                paddq   xmm0, xmm3
                paddq   xmm8, xmm9
                paddq   xmm1, xmm8
                movdqa  xmm3, xmm1
                paddq   xmm3, xmm0
                cmp     rcx, rax

                [ЧИТАТЬ ДАЛЕЕ...]
                Ответить
                • > хтоническое

                  Мда, этому конпелятору больше не наливать... Неужели это работает быстрее?
                  Ответить
                  • Если нялить чуть меньше (-O2), то будет нярмальный вменяемый код:
                    countSlashes(char const*):
                            push    rbx
                            mov     rbx, rdi
                            call    strlen
                            mov     rdi, rbx
                            lea     rcx, [rbx+rax]
                            xor     eax, eax
                            jmp     .L8
                    .L10:
                            xor     edx, edx
                            cmp     BYTE PTR [rdi], 92
                            sete    dl
                            add     rdi, 1
                            add     rax, rdx
                    .L8:
                            cmp     rdi, rcx
                            jne     .L10
                            pop     rbx
                            ret


                    Видимо, с -O3 он оптимизирует для строк гигабайтных размеров.
                    Ответить
                • >punpckhdq xmm1, xmm2
                  блядть какой пиздец

                  верните мне мой Borland C++ под реальный режим
                  Ответить
                • крестьяне - поехавшие, надо же не мышиный кот изучать, а трах-позиционный
                  Ответить
  • https://habr.com/ru/news/t/559516/
    > Сбербанк нарушает правила платёжной системы «Мир»
    > Издание «Ъ» получило информацию о запрете Сбербанка на пополнение его карт в банкоматах сторонних банков от других участников рынка. В службе поддержки банка подтвердили, что пополнение карт «Мир», выпущенных Сбербанком, в сторонних банкоматах не предусмотрено.
    > Алексей Антонов, главный аналитик ГК «Алор», считает решение Сбербанка нарушением клиентоориентированного подхода.
    Ответить
    • Ого, на говнокоде есть «Главный Аналитик»! Какие ещё статьи будут у этого автора?

      > Сбербанк крадёт деньги!!!
      > Сбербанк увеличил комиссию на 1%
      > Главный аналитик говнокода, А. А., считает это кражей деняг.
      Ответить
    • > нарушением клиентоориентированного подхода

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

      З.Ы. Емнип, раньше они и в своих умудрялись конскую комиссию брать, потому что регион другой.
      Ответить
    • >главный аналитик ГК «Алор»,

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

      альзо,
      > Сбербанка
      > клиентоориентированного подхода

      радуйтесь лучше, что с вас за этот ТРЕТИЙ РИМ не лупят ₽750/год как планировали
      Ответить
  • Кстати, а социалки ещё не научились по фоткам юзеров таргетированно рекламировать средства от прыщей, спортивные залы и т.п.?

    Какой простор для ИИ )))
    Ответить
    • > средства от прыщей

      Сём, ты зачем борманда взломал?

      > спортивные залы и т.п.

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

        А ебальники распознают совсем для другого и за другие деньги
        Ответить
  • Доброй ночи.

    Этот оффтоп сгенерирован автоматически.

    Индекс оффтопов: https://index.gcode.space/.
    Зеркала Говнокода и полезные ресурсы:
    * https://govnokod.xyz/ (альтернативный Говнокод)
    * https://gcode.space/ (read-only зеркало Говнокода)
    * https://t.me/GovnokodBot (Говнокод-бот в «Telegram»)
    * https://t.me/GovnokodChannel (Тематический канал в «Telegram»)
    * https://vorec.space/ (глоссарий Говнокода)
    * https://app.element.io/#/room/#govnokod:matrix.org (резервный чат)

    Примечание: автоматические перекаты в настоящее время осуществляются только с аккаунта nepeKamHblu_nemyx.
    Остерегайтесь подделок. Берегите себя и своих близких. Кок!
    Ответить
  • В Москве студентка второго курса МосГУ решила подзаработать, продав свою девственность, однако в качестве оплаты получила поддельный смартфон iPhone. Об этом Лайфу сообщил источник.

    Отмечается, что соответствующее объявление девушка выложила на одном из сайтов. Свой гонорар за такой "актив" она оценила в 2000 долларов США. На предложение откликнулся 37-летний Геворг П., однако "сделка" состоялась не сразу — партнёрам потребовался месяц на сближение.

    В этот период пара посещала рестораны, гуляла, а по истечении срока в отеле молодые люди всё же осуществили половой акт. Однако после мужчина заявил, что вместо денежного гонорара хочет презентовать девушке новый iPhone 12 Pro. Студентка согласилась на предложение, но не стала распаковывать телефон при мужчине, оставив это на потом.

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


    ------

    А вы пользуетесь ios или android?
    Ответить
    • > Об этом Лайфу сообщил
      армянское радио, расходимся
      Ответить
      • Габрелянов педераст и хуесос, но речь же не об этом
        Ответить
        • ну как бы речь о:
          • брехливый подзалупный сортирный листок подзалупно брехлив как обычно, т.е. стабильность
          • у щелкоперов в целом сейчас наступил огуречный сезон, читатели всякой херни свалили на фазенды, так что приходится в меру своих способностей сочинять вот такое чтобы хоть как-то компенсировать
          • селедка все равно осталась в плюсе, доила несчастного хачика целый месяц, что как раз составит разницу между айфоном и хуевеем
          Ответить
    • > обратилась в полицию

      С чистосердечным признанием?
      Ответить
    • Я в децтве тусил на радиорынке Юнона

      Там я купил диск с телефонно-адресной базой. А еще там в рассыпную продавалась память, процы, и всякое вот это всё

      собссено вот
      https://habr.com/ru/post/118474/


      но уже лет двадцать как не торт, разумеется
      Ответить
  • "Mail.Ru" выкатил обновление на главной странице. Теперь там где была кнопка «Почта» прогружается реклама, но не сразу, поэтому я сегодня раза 4 случайно мискликал по рекламе.
    А за всем этим стоит какой-то ебучий менеджер, который уже отчитался о росте метрик и ждёт свою премию.
    Ответить
  • Как-то тихо. За ночь ни одного сообщения.
    Ответить
  • The Florida law is simple: when Big Tech decides to censor, ban, or deplatform a citizen of Florida, that citizen will now enjoy a new right to take the company to court. And if Big Tech tries to interfere in elections by deplatforming candidates, the legislation empowers the Florida Election Commission to levy a $250,000 per day fine against the companies. The bill also requires Big Tech companies to be more transparent and accountable to their own terms of services. Companies that fail to adequately publish standards explaining their content moderation practices, or apply those standards consistently, could face legal action from the Florida Attorney General’s office.
    Ответить
    • ничо, скоро лефтис переедут из загнивающей Калофорнии в Тексас и Флориду и будет там полная обама
      Ответить
        • если повезёт и их прибьёт к берегу подальше от Гуантанамо, то они познают весь социалистический дзен
          Ответить
      • лол, прямо сейчас наткнулся на статью с такими же идеями
        Ответить
    • Проект «NGK» заморожен и временно не поддерживается. Ответ на Ваше обращение поступит в течение тридцати календарных дней.
      Ответить
  • поговорим о сакральном

    о различиях MVC и MVVM
    Ответить
    • Напоминает споры о триединстве бога)

      Я за MVVM, потому что привязка данных это чаще всего хорошо (кроме случаев, когда представление очень уж сильно отличается от модели).

      Есть еще MVP..
      Ответить
      • Никогда не видел на практике (ну если не считать что вот, говорят, ангуляр будто бы реализует мввм). Очень поверхностно представляю, что это, и тем более чем отличается от мвп. Разъясните?
        Ответить
        • MVC: view считывает model, и отображает. Нажатия на view передаются в controller, который меняет модель.

          Проблема: слишком сильная связанность view на модель, и слишком много во view логики (неудобно тетсировать)

          MVP: view пассивен. Presenter слушает model, и изменяет по ней view. Логика теперь вся в Presenter, а View стала совсем тупой (что приятно, потому что тестировать view неприятно).

          Проблема: нужно писать много тупого бойлерплейта по работе с view в презентере.
          Взял из модели значение типа boolean, и поставил checked у вьюшного чекбокса. Уныло.

          MVVM: у view есть своя модель (view model) к которой вью забайнджен (привязан).
          Когда ты меняешь view model -- меняется view, и наоборот.

          Больше не нужно презентеру считывать значение из инпутбокса (и превращать его в число и валидировать итд).
          Больше не нужно презентеру писать значение в бегунок.

          Теперь и инпутбокс и бегунок привязаны к модели с обычными полями типа int (или bool или что там нужно). Ты просто меняешь их, и течешь.

          ViewModel может сама отсылать данные в настояущую модель, а может быть и презентер, это уже не важно.

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

          Тестировать стало хорошо: можно тестировать viewmodel, а её корректное отображение уже дело фреймворка.

          Так вижу
          Ответить
          • Но необходимость писать бойлерплейт здесь не на аржитектурном уровне отпадает в мввм, а только потому что кто-то (автор фреймворка) это автоматизировал, правильно?
            Ответить
            • Ну да, кто-то должен был его один раз написать.
              Но он сделал это универсально.
              Ответить
      • а в MVC нет привязки данных? или ты о том, что в MVVM часто присутствует некий "шаблон"?
        Ответить
        • В MVC вьюха сама должна считывать данные с модели, а изменение своих данных отправлять в контроллер. Всё это нужно программировать.

          В MVVM же у тебя всё привязано
          Ответить
          • Обычно все же контроллер собирает данные из модели для вьюхи и туда передаёт, не лезть же в базу из шаблона
            Ответить
            • интерфейс ViewModel может быть реализован и так, что он сам хранит свои данные в базе

              View ничего про базу не знает. Красивый inputbox привязан к полю "lastName" некоей ViewModel. Когда это поле в viewmodel изменяется --- автоматически меняется и view.

              Как именно это поле поменяется view не интересует

              Причем привязка может быть в обе стороны. Когда я заполнил инпутбокс -- он автоматом (привязкой) поменял поле ViewModel. А оно может автоматом сохранить его в базу.

              Но если это СУБД, то наверное лучше у ViewModel иметь отдельный метод save(), который привязан к кнопке на вью
              Ответить
          • прикол в том, что "view считывает model, и отображает. Нажатия на view передаются в controller, который меняет модель" это и есть "всё привязано", разве нет? разница только в количестве бРойлерплейта
            Ответить
            • Ну в MVVM контроллер вообще не участвует, но главная фишка это именно отсутствие бойлерплейта конечно.

              Тебе просто никогда не нужно писать (псевдокод)
              view.name.text = model.name
              view.lastName.text = model.lastName
              view.enabled.value = model.isEnabled
              
              //// 
              model.name = view.name.text 
              model.lastName = view.lastName.text
              model.isEnabled = view.enabled.value

              Это дорогого стоит.
              Ответить
              • А он случайно не заменён на такой

                ViewModel.bind(model.name, view.name)?
                Ответить
    • Там пишут, что у него задержка 0 миллисекунд, а у «ТСР» + «TLS» от 200 до 300. Как это такое может быть?

      > Куик

      Может быть, для этого Роман Кошицын пропадал?
      Ответить
        • 300 ня повторное, а 200 повторное uwu

          Или ты про то, что QUIC работает поверх UDP, т.е. не высылает снова и снова пакетики, а просто их ТЕРЯЕТ?

          Ну правильно, у всех в 2021 году должно быть хорошее интернет соединение без разрывов и потери пакетов.
          Ответить
    • Переходим. Кстати, если есть желающие работать над поддержкой КУИК в ерланге, we're hiring.
      Ответить
      • Опыт в эрланге требуется? Или любая девочка-волшебница подойдёт?
        Ответить
        • Там скорее девочка-сишница сейчас нужна. Опыт в эрланге не требуется, достаточно просто продемонстрировать, что ты можешь его быстро изучить (запилить небольшой пет-проект или полезный пиар, например). Мы придерживаемся мнения, что эрланг — язык простой, и его можно изучить за пару месяцев.

          Но контора мелкая, так что релоцировать никого не выйдет T__T. Но удалённо с консультантами по всему миру мы работаем, так что достаточно иметь ИП "Кэтгёл Системс".
          Ответить
          • > Мы придерживаемся мнения, что эрланг — язык простой, и его можно изучить за пару месяцев.

            Мы придерживаемся мнения, что C++ — язык простой, и его можно изучить за пару десятков лет.
            Ответить
            • Чтобы писать на языке, соврешенно не обязательно его знать
              Ответить
          • > эрланг
            > небольшой пет-проект
            если взять небольшой пет-проект эрланг и сделать на нем небольшой пет-проект эрланг²...
            Ответить
          • > достаточно иметь ИП "Кэтгёл Системс"

            – нескрепно как-то
            Ответить
          • Проверила, спасибо большое ^_^

            Предложение интересное, но к сожалению я текущую работу пока бросать не хочу. А совмещать с фулл-таймом будет жестковато.
            Ответить
  • Вот это конечно пердолинг супер позиции когда даже загуглить не получается.
    Неделюку так назад, я написал что хочу ритм игру со своими загружаемыми треками. Неделю гугления вообще нихуя положительного не дал, кроме информации о FFT и чтение пиков в определеных частот, которая дает вообще НЕХУЯ, так как отсувствует информация о текущем БПМ в промежутках между семплами.
    Обсудил с несколькими человеками эту хуйню, почти все пришли к единому мнению.
    А вы скажите свое мнение или совет или наводку где что как с этой хуйней работать.
    Ответить
    • Х.з., в редакторе осу бит тупо руками замеряется. Слушаешь музыку, ебашишь по пробелу в такт, а комп высчитывает оффсет и частоту. Но тебе прям автоматику надо?

      А про FFT -- да, когда ты переводишь сигнал в частотную форму, ты теряешь инфу о времени. И наоборот. Поэтому надо через небольшие окна смотреть на спектр, а не всю mp3'шку FFT'шить...
      Ответить
      • >> Но тебе прям автоматику надо
        Да. Яж не буду перед игрой просить человека "настучите бит".
        Проблема в том что именно загрузкой произвольного трека появляется такая хуйня. Если бы свои трэки то и в рот ебать и FFT не нужен и нихуя не нужно.
        На самом деле интересная тема.
        Ответить
      • > Слушаешь музыку, ебашишь по пробелу в такт

        Какая ritmoteka )))
        Ответить
      • И не забывай. Что у звука обычно 2 графка. Это семпл который так скажем имеет информацию о чистоте звука и его громкости и общая громкость спектра во временном промежутке.
        Ответить
        • У звука один график, просто он трёхмерный, время, громкость и частота. Чаще всего мы видим либо Слайс звука в одном моменте, который показывает зависимость громкости от частоты (например в эквалайзере), либо зависимость громкости от времени, это мы называем waveform, там игнорируются (упаковываются) частоты.

          Полным графиком звука можно считать спектрограмму, она в 2д рисуется как разноцветная, громкость отображается яркостью точки.
          Ответить
          • А есть мысли как отобразить четырёхмерный график?
            Я только знаю способ нарезки его, как в olap кубах
            Ответить
            • Можно даже так:

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

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

          > Код Осу не свободный

          Оригинального клиента -- нет. Но вообще сейчас пилят свободную версию. Х.з. есть ли в ней редактор.
          Ответить
        • Осу ручная же расстановка. Как и в битсецбер и других подобных игорь
          Ответить
    • кароче, пока единственная идея это torch7 обучить это говно разбирать. Не знаю пока как, но поебемся - разберемся или просто поебемся
      Ответить
    • На «телефон» есть игра, где пихельный мужичок прыгает по крышам зданий, высота которых генерируется на основании звуков из какой-нибудь песни. Что тебе мешает составить по песне какую-нибудь карту басов, а потом по громкости искать места, куда вставить жамкалки, крутилки и всякие другие интересные штуцшки?
      Ответить
      • Ну вот я составил карту громкости по всем семплам на басах. Дальше что? Что с этой картой громкости делать? Каждый семпл отрисовывать в 3 минутах 8лямов семплов, охуенно. Ну возмем урежем ФФТшкой охуенно 1 лям. Ну окей возмем только определеные ДЦБ, охуенно, мы проебали эмбиент который играл в самом начале, и охуенно мы проебали ритм гитару так как барабан сильно глушит ритм гитару секцию на ниских частотах. О охуенно а у нас в треке оказывается нет баса, а только хайхеты на 5к герцах. ОХУЕННО!
        Ответить
        • Чтобы видеть в этом проблему, для начала возьми такое музло (без баса, а хай хэтом), и подумай, что такого охуенно ритмичного и интересного можно под него поделать. Ну как, интересно? Тогда ебись с поддержкой таких треков.

          Советую поискать бпм в merzbow, masonna
          Ответить
        • В смысле мы проебали эмбиент? Ты что после того как данные вытащишь из трека, будешь играть не трек, а сами данные? Лол
          Ответить
      • Ну вообще слишком простой пример. Мне хочется сделать что то типа жать на кнопочку в бит, а рисовать карту на основании частотных графиках такое себе, но конечно идея не плохая, но план был другой: Audiosurf игра к примеру https://lurkmore.to/Rhythm_game#Audiosurf
        Ответить
        • Блять, у тебя уже в башке перемешались твой геймплей с методом бит детекта что ли? Что ты будешь в игре делать с данными мы не знаем, рисовать карту пользователя заставлять не надо, составь её сам и дай ему жать кнопку в ритм который по ней вычислишь.
          Ответить
    • Я ж тебе сказал, смотри исходники mixxx. Это диджейский пульт классический, свободная реализация. Там у любого звукового файла определяется бпм и выставляется сетка ударов, тебе её даже графически покажут. Для сложной музыки иногда бывает необходима ручная подстройка (сместить сетку чутка), ну и предполагается что бмп в треке константный, если будет меняться, начнётся просос.

      Нутк а хули, если ты собираешься ритмик игру делать, нахуй тебе трек с переменным темпом не качовым (человека качает лучше всего прямая бочка, как известно), или акустика с неразличимым по громкости битом.

      А если юзер такой трек выберет, ссзб, хули. В некоторой музыке и человек сетку не разберёт, чо теперь?

      Не знаю что ты там гуглил, вроде как это называется Beat detection и должно быть прилично материалов на эту тему, это дохуя где реализовано.
      Ответить
      • Не увидел твоего сообщение почему, то. Гляну. Хуйли грубый такой, охуел?
        Ответить
  • Петухи, на чем вы пишите асинхронный код на плюсах? Есть пример лапши, которая получается? К примеру нужно сходить в 2 сервиса параллельно, затем в два других от них последовательно, не забыть обработать ошибки и их залоггировать.
    Ответить
      • Корутины -- это просто инструмент, чтобы лапши поменьше было. Для полноценной работы к ним всё равно нужен шедулер, обёртки над сокетами и т.п. Голые корутины довольно бесполезны.
        Ответить
        • корунитны завезли без делэя и неблокирующего io??
          Ответить
          • Ну это же ортогональные вещи. Корутины можно и просто как питоньи генераторы юзать.

            А сеть в кресты по-моему так и не завезли. Только буст, только хардкор.
            Ответить
            • А суспендица-то как?

              Просто если никак, если это просто елд такой, то это примерно как класс реализовать с * и ++ и сказать, что это итератор
              Ответить
              • Да это yield и есть, просто суспендит локалки в структуру, потом можно продолжить исполнение.

                В бусте ещё есть другая реализация корутин с переключением стека. Но они дороже выходят.
                Ответить
              • Да, посмотри в более свежих бустах, там есть примеры про интеграцию co_await и async_xxx.

                Если с++20 корутин нету, можешь на старых stackful корутинах (файберах) попробовать. Тоже примеры в доке есть.
                Ответить
                • Это пускай Инью развлекается)

                  Признаться, я еще не видел завоза корутин без асинхронного ио в языки. Разве что lua...
                  Ответить
                  • > асинхронного ио

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

                    А асинхронное ио пока можно из буста брать, всё равно стандарт де-факто. Сокеты, я так понимаю, ещё лет 5-10 в кресты не завезут. А если и завезут, то это будет переименованное asio.
                    Ответить
    • boost::asio можешь попробовать, если что-то серьёзное. Если просто "сходить в пару сервисов", можно в сторону std::async посмотреть.
      Ответить
    • Если не кроссплатформенно, то почему бы не epoll/kqueue/CompleitonPorts?

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

          Есть всякие libuv, но они тоже няшные
          Ответить
      • Я и не сомневался, что прилетят питухи «кококо именно поэтому я за "пхп" не используй с++ для этой задачи». Но гост хотя бы зелёным написал.
        Ответить
        • А зачем тебе аснхронность, кстати? Пара потоков с IPC не подойдут?

          Так-то понятно уже, что ответ boost::asio
          Ответить
          • Допустим есть такая цепочка запросов:
            .   A
               /  \
              B    C
               \  /
                D

            B и C могу выполняться параллельно.
            Я хочу написать без лапши:
            try {
               x = await A();
               y, z = await B(x), await C(x);
               u = await D(y, z);
            } catch (e) {
               log(e);
            }

            Или ты про другое?
            Ответить
            • Посмотри std::async. Возможно тебе его хватит.

              asio -- это всё таки чтобы вертеть тыщи запросов на хую и десятке ядер. Для такой задачки может оказаться оверкиллом, особенно изучение -- там, к примеру, синхронизация нестандартная, strand'ы вместо привычных лочек.
              Ответить