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

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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
IT Оффтоп #51


#1: https://govnokod.ru/18142 https://govnokod.xyz/_18142
#2: https://govnokod.ru/18378 https://govnokod.xyz/_18378
#3: https://govnokod.ru/19667 https://govnokod.xyz/_19667
#4: https://govnokod.ru/21160 https://govnokod.xyz/_21160
#5: https://govnokod.ru/21772 https://govnokod.xyz/_21772
#6: (vanished) https://govnokod.xyz/_24063
#7: https://govnokod.ru/24538 https://govnokod.xyz/_24538
#8: (vanished) https://govnokod.xyz/_24815
#9: https://govnokod.ru/24867 https://govnokod.xyz/_24867
#10: https://govnokod.ru/25328 https://govnokod.xyz/_25328	
#11: (vanished) https://govnokod.xyz/_25436
#12: (vanished) https://govnokod.xyz/_25471
#13: (vanished) https://govnokod.xyz/_25590
#14: https://govnokod.ru/25684 https://govnokod.xyz/_25684
#15: https://govnokod.ru/25694 https://govnokod.xyz/_25694
#16: https://govnokod.ru/25725 https://govnokod.xyz/_25725
#17: https://govnokod.ru/25731 https://govnokod.xyz/_25731
#18: https://govnokod.ru/25762 https://govnokod.xyz/_25762
#19: https://govnokod.ru/25767 https://govnokod.xyz/_25767
#20: https://govnokod.ru/25776 https://govnokod.xyz/_25776
#21: https://govnokod.ru/25798 https://govnokod.xyz/_25798
#22: https://govnokod.ru/25811 https://govnokod.xyz/_25811
#23: https://govnokod.ru/25863 https://govnokod.xyz/_25863

#24: https://govnokod.ru/25941 https://govnokod.xyz/_25941
#25: https://govnokod.ru/26026 https://govnokod.xyz/_26026
#26: https://govnokod.ru/26050 https://govnokod.xyz/_26050
#27: https://govnokod.ru/26340 https://govnokod.xyz/_26340
#28: https://govnokod.ru/26372 https://govnokod.xyz/_26372
#29: https://govnokod.ru/26385 https://govnokod.xyz/_26385
#30: https://govnokod.ru/26413 https://govnokod.xyz/_26413
#31: https://govnokod.ru/26423 https://govnokod.xyz/_26423
#32: https://govnokod.ru/26440 https://govnokod.xyz/_26440
#33: https://govnokod.ru/26449 https://govnokod.xyz/_26449
#34: https://govnokod.ru/26456 https://govnokod.xyz/_26456
#35: https://govnokod.ru/26463 https://govnokod.xyz/_26463
#36: https://govnokod.ru/26508 https://govnokod.xyz/_26508
#37: https://govnokod.ru/26524 https://govnokod.xyz/_26524
#38: https://govnokod.ru/26539 https://govnokod.xyz/_26539
#39: https://govnokod.ru/26556 https://govnokod.xyz/_26556
#40: https://govnokod.ru/26568 https://govnokod.xyz/_26568
#41: https://govnokod.ru/26589 https://govnokod.xyz/_26589
#42: https://govnokod.ru/26600 https://govnokod.xyz/_26600
#43: https://govnokod.ru/26604 https://govnokod.xyz/_26604
#44: https://govnokod.ru/26627 https://govnokod.xyz/_26627
#45: https://govnokod.ru/26635 https://govnokod.xyz/_26635
#46: (vanished) https://govnokod.xyz/_26646
#46: (vanished) https://govnokod.xyz/_26654
#47: https://govnokod.ru/26671 https://govnokod.xyz/_26671
#48: https://govnokod.ru/26707 https://govnokod.xyz/_26707
#49: https://govnokod.ru/26750 https://govnokod.xyz/_26750
#49: https://govnokod.ru/26776 https://govnokod.xyz/_26776
#50: https://govnokod.ru/26804 https://govnokod.xyz/_26804

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

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

    • Снова передали в инженерный отдел заявку на создание автоматического перекатчика, о результатах сообщим позднее.
      Ответить
        • Подумать надо. Второй фильтр, работающий после загрузки?..
          Ответить
          • Хз.

            Может ангуляром скрывать дубли или сплющивать их до одного сообщения.
            Ответить
            • Хм, можно попробовать, но я не уверен, как фронт «NGK» отнесётся к удалению уже загруженных комментов.
              Ответить
        • Пиздец вы жестокие

          Я хотел поговорить про редакторы, номальная прогерская тема, а вы меня в фильтр записать хотите.

          Не стыдно??
          Ответить
            • а ты в каком редактоер пишешь
              Ответить
              • В Clion, PyCharm. Если что-то править на сервере не в обычной рабочей директории, то vim.
                Ответить
                    • Ну чтобы иметь те же хотки, что и в виме, чтобы экспириес везде одинагков
                      Ответить
                      • Не, я ж не ёбнутый (вернее, не в эту сторону ёбнутый).
                        Ответить
                        • то-есть тебе нравится везде иметь разные хотки?
                          Ответить
  • Петух, какая погода в Яунде, петух?
    Ответить
    • В Яунде сейчас +22°C, по области туман. Лёгкий западный ветер, возможен дождь.
      Ответить
      • А ты какими эдиторами пользуешься?
        Ответить
    • А ты какими эдиторами пользуешься?
      Ответить
    • > Ноль причин, почему Дуров сольет наши данные

      Я тоже так считаю.
      Дуров не будет сливать их данные.
      Они давно уже слиты.
      Ответить
      • А ты какими эдиторами пользуешься?
        Ответить
        • Я думаю на ГКшном спаме можно обучить бота-автоответчика.

          Чтобы он рандомно (не слишком часто) отвечал привычными overused-фразочками: «Именно поэтому я за...», «Какой багор )))» и то что сейчас форсят гости.

          Фразы форсов вполне тривиально детектятся алгоритмически проходом стока и подсчётом повторяющихся комментариев.

          Пора вернуть в юзер-скрипты фильтр
          var $=jQuery;var fireClick= function (i,e){ $(e).trigger('click'); },stat=function(i,e){ var text=$(e).text().toLowerCase().replace(/\s+/g, ''); if (!cmt[text]) cmt[text]=[]; cmt[text].push(e); }, cmt={}; $('div.entry-comment').each(stat); $('span.comment-text').each(stat); for (var msg in cmt){ var arr=cmt[msg]; var len=arr.length; if (len>2) for (var i=0;i<len;++i) if (arr[i]) $(arr[i]).parent().hide().find("a.comment-vote-against").each(fireClick);}
          Ответить
              • А ты какими эдиторами пользуешься?
                Ответить
                    • То ребята пользовались, а он просто рядом стоял
                      Ответить
                      • Моя подруга с её парнем как-то пользовались эдитором
                        Так вот она интересуется
                        Ответить
                        • Шок! Чтобы экономить электроэнергию, воду и ману, нужно всего лишь каждый день в эдитóре>>>читать далее
                          Ответить
                          • Ну кстати в емаксе это вполне реально
                            Ответить
                                  • Вот уже с полгода ты заносишь Fike в список стерторов, потом проверяешь и убираешь — затем, чтобы через месяц повторить всё с начала. Какая золотая рыбка )))
                                    Ответить
                                    • Я уже не помню почему я записал его в стерторы, скорее всего за очередную пиздежь с самим собой. Ладно, хуй с вами, пока амнистирую, но ещё припомните!
                                      Ответить
                                  • Файк это не стертор

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

                        я же серьезно спрашиваю
                        Ответить
    • А ты какими эдиторами пользуешься?
      Ответить
      • А ты какими эдиторами пользуешься?
        Ответить
  • Осторожно начинаю течь от emacs. Можно делать практически всё тоже самое, что и в vim, но во-первых проще, а во-вторых быстрее.

    Пример: допустим, я забыл какую-то команду в vim. Мне нужно читать мануал. В емаксе я жму alt+x, ввожу кусочек команды, и получаю комплишен и хотки.

    Еще пример: я хочу в половине экрана иметь терминал. Мне нужен tmux с vim, но я могу сказать Alt+x "shell" в emacs.

    А вы течете от емакс, или нет?
    Ответить
    • Осторожней с емаксом, им мизинец убить можно. Я только туториал прошёл и мне уже некомфортно было без ремаппинга.
      Ответить
          • А ты какими эдиторами пользуешься?
            Ответить
            • Какими попало. Что под руку попалось то и юзаю. Ну а для кода обычно IDE'шки.
              Ответить
              • А какие идешки? Студию под винду же используешь? А с решарпером или томатом? А intellij?
                Ответить
    • Emacs это, конечно, крутотень и веха, но юзать его в 2020-ом можно только, если:
      а) ты пишешь лишпушню
      б) тащишься от какого-то конкретного пакета, например, magit (риальне охуене)

      Так ты лет через 25 дойдёшь до NPP, а ко второй половине столетия и до VSCode
      Ответить
      • тащимто я для лиспушни и решил его попробовать, а вообще я живу задом наперед, как попугайчик Фотон, так что мне емакс в 2020 ок
        Ответить
        • > вообще я живу задом наперед

          - поделись инсайдом, что там впереди? Стоит ли уже или тщётно?
          Ответить
          • А ты какими эдиторами пользуешься?
            Ответить
            • Вообще я имел в виду, что ты мне расскажешь что-то ближе к курсу валют и акций или хотя бы результаты футбольных матчей.

              А так VSCode.
              Ответить
              • >ближе к курсу валют и акций
                Акции яббл и гугл будут и дальше расти.

                Рубль и дальше будет девальвировать.

                >результаты футбольных матчей
                Российская сборная опять обосрётся.

                Лалки опять забанят Царя.

                На говнокод опять набигут спаммеры.
                Ответить
                • Спасибо.

                  Наверное, правильнее говорить, не опять, а вспять, или какое-то другое слово наворецить.
                  Ответить
  • https://habr.com/ru/company/ruvds/blog/508708/

    Скриптообезьяна яростно набросилась на фреймворк, который отнимает у неё бананы.

    TLDR: Тильда — это рак, постепенно поглощающий здоровый рунет (и в гораздо меньших масштабах весь остальной интернет). Тильда забирает работу у разработчиков и дизайнеров и даёт её людям, которые справляются гораздо хуже. Она поспособствовала появлению целого пласта «специалистов», которые ничего не умеют, кроме визуальной верстки, но позиционируют и продают себя как крутых дизайнеров/разработчиков. Она генерирует более тяжелые страницы, чем вордпресс!

    Tilda — это визуальный редактор, возведенный в абсолют. В нём можно мышкой набросать статическую страницу произвольной длины и сложности, добавить туда немного динамического функционала, доступного из коробки, и в пару кликов всё это опубликовать. Это очень просто. Слишком просто.
    Ответить
    • О, тоже хотел это скинуть. Тупая обезьяна, клепающая говно на «Wordpress», жалуется на «WYSIWYG»-редактор. Какой багор )))
      >>> tl;dr: если вам нужно сделать лендос или простой магазин, не делайте это за 750р в месяц, а наймите фрилансеров за 100500++, которые сделают то же самое, только с багами, и добавление поля будет занимать не минуту, а неделю.
      Ответить
      • Ага. Пассаж про вордпрес особенно нажорист.

        Каждый раз когда очередная технология безжалостно выдавливает бездарное быдлецо с рынка, оно начинает истошно вопить про пирформанс и о необходимости «дорогих, крутых профессионалов».

        Там первые два коммента исчёрпывающие:
        Почему тильда зло, а средней руки веб-сайт с ангуляро-реактами на 20 мегабайт — добро? Оба зло.

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

        eternum
        29 июня 2020 в 18:06

        0 Да бросьте, сам веб по себе бесконечное добро. Люди которые на десктопных фреймворках пол жизни сидели, при входе в веб крестятся. Количество «секретов css» для создания чего-то смехотворного простого зашкаливает. Хороший html — мёртвый html. Количество мусора которые генерируют все ВИЗИВИГи это не злая шутка и не кривые руки, это необходимость. Ровно как и все раздутые фреймворки и транспиляторы — попытка смести под ковёр то, как оно будет выполняться в браузере.
        Ответить
        • > Каждый раз когда очередная технология безжалостно выдавливает бездарное быдлецо с рынка, оно начинает истошно вопить про пирформанс и о необходимости «дорогих, крутых профессионалов».

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

          https://pbs.twimg.com/media/EQWGthvWkAE57ON.jpg

          гуглить projekt melody, если что
          Ответить
          • Лол) реально, молодежь дрочит на такую вот не очень хорошо нарисованную анимешную модель?)

            У живых моделей и правда проблемы
            Ответить
            • > молодежь реально дрочит на такую вот не очень хорошо нарисованную анимешную модель?

              Деградация кругом.

              Даже двачеры испоганились. Реальные посоны всегда котировали джвумерных няшек из китайских порномультиков.

              Уже начинаю ностальгировать по старым-добрым анонам с их «3Д тян не нужны».
              Ответить
            • Живые модели тоже не всегда хорошо... нарисованы
              Ответить
              • Для этого у них есть косметика.

                А у наблюдателя -- водка)
                Ответить
          • Супер!

            Ждём вой таксистов, которые возят пасажира «с душой» и у которых начнут отбирать работу пездушные автопилоты.
            Ответить
            • Погромы будут, это гарантированно.
              Таксисты — это крайне агрессивная система, похожая на мафию. Попытки отпиздить конкурента с более низкими ценами — это для них совершенно нормально. Так что когда завезут автопеилоты, зрелище будет эпичным.
              Ответить
              • Так были же уже наезды на убер, причем говноёбы ссаные в правительстве одной европейской страны даже пошли у питухов наповоду

                Ебаные луддиты, из за них прогресс останавливается
                Ответить
                • Подтверждаю, эта мразота подлежит переработке в биореакторе центре перевоспитания.
                  https://auto.informpskov.ru/news/246917.html
                  >>> Отметим, ранее сообщалось, что в ряде российских регионов машины «Яндекс.Такси» становились объектами нападений со стороны конкурентов, обвинявших сервис в демпинге.
                  >>> в первые три дня работы «Яндекс.Такси» в Пскове было отмечено большое количество ложных вызовов. Он предположил, что искусственное создание ложных заказов связано с недоброкачественной конкуренцией и оно продолжается.
                  Ответить
                  • Забавно, что в странах соцлагеря важной частью пропаганды были как раз истории о том, как на западе рабочих заменят на роботов, а рабочих выгонят. См, например, "дознание Пиркса".
                    Ответить
                    • Ну, на западе тоже эта тема поднималась, например, можно вспомнить цикл Азимова.

                      Правда, мне кажется, там подобные произведения больше появлялись в рамках квазихристианского диспута о том, волен ли человек порождать новые формы жизни и отбирать работу у боженьки. Остров доктора Моро, Парк Юрского периода, вот это всё.
                      Ответить
                      • Ну не знаю, у Азимова, насколько я помню, больше рассматривались проблемы сосуществования людей и разумных роботов. Он не показывал машину как Абсолютное Зло, Которое Хочет Уничтожить Человечество. Да, разумеется, были у него и злые роботы, и дефектные, но акцента на том, что из-за них надо сломать всё железное и работать ручками, не было.
                        Ответить
                        • Он не показывал такого.

                          Но он, если мне не изменяет память, показывал, что много людей потеряли работу из-за автоматизации и вроде описывал бунты.
                          Ответить
                          • Да, что-то такое припоминаю. Но опять же, потеря работы низкоквалифицированными специалистами и вытекающие из неё социальные проблемы — процесс совершенно естественный и даже неизбежный. В отличие от по-умолчанию желающих захватить мир роботов.
                            Ответить
                            • Интересно, что хотели показать совки таким подходом? Что модернизация вредит "бесклассовому" обществу, а потому работай, быдло, на станке 1925 года выпуска?
                              Ответить
                              • Хуй знает. Скорее просто эксплуатировали страх среднестатистического рабочего оказаться ненужным.
                                Ответить
                              • Ну запад показывал, как у них всё автоматизировано, и чтобы отечественному рабочему от этого не было грустно, ему объястяли, что вот этот вот комптютер на заводе дженерал моторс оставил без работы человека, и теперь тому нечего кушать
                                Ответить
              • Да в общем, это и есть мафия. Картель.

                Убер, при всех его приколах, здорово дал им просраться.

                С другой стороны, даже те Ъ-таксисты, которые презрительно отзываются про "подвозил", отмечают, что работать в режиме убера без диспетчера лучше.
                Ответить
                • Достаточно вспомнить, сколько такси стоило 15 лет назад. Даже с учётом инфляции оно было дороже, чем современный убер и ятакси
                  Ответить
                  • Всё же Убер, по крайней мере, в наших краях не самый дешёвый перевозчик.

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

                    Убер дал возможность людям ещё в одном месте отказаться от нала. Убер дал возможность убрать один муторный шаг при заказе в виде диспетчера. Убер дал относительно качественную софтварную поддержку.

                    За такое можно даже и дороже платить.
                    Ответить
                    • Ну у нас с появлением таксо в духе убера и яндекс.такси всё сильно улучшилось.
                      Во-первых да: больше не нужно "остановите у банкомата" делать.

                      Во-вторых раньше было так:

                      ---В течение двадцати минут приедет шкода такая-то, стоимость 650 рублей.
                      А теперь стало
                      ---Через три минуты приедет, стоимость 185 рублей
                      Ответить
    • >ильда забирает работу у разработчиков и дизайнеров

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

    Отвечаем: "VPS на Linux с графическим интерфейсом: запускаем сервер VNC на Ubuntu 18.04"
    14 июля 2020 в 11:57
    https://habr.com/ru/company/ruvds/blog/510860/


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

      https://habr.com/ru/company/ruvds/blog/510860/#comment_21846100

      Основное отличие любого VNC от любого RDP — это потребляемые ресурсы. Первые очень прожорливы и требуют широкого канала для комфортной работы, всё что меньше 100 Mbit будет неприятно ощутимо. При включении компресии и прочих фишек для оптимизации ощутимо повышается нагрузка со стороны сервера (если это "недорогой" VPS).

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


      Интересно, какой у него канал, чтобы смотреть стримы на ютубе? GPON на 2.5гбит?
      Ответить
      • Так, блядь, а какая для «VNC» разница, что изображено на экране? Ну, предположим, какую-то компрессию от статики можно выиграть, но чтобы гигабит…

        PS, спокойно смотрю 4К-видео с «Ютуба» через «OpenVPN» на дешёвой впске со стамегабитным каналом (полнодуплексным). Неужели этого мало?
        Ответить
        • > 4К-видео с «Ютуба» через «OpenVPN» на дешёвой впске со стамегабитным каналом (
          через vnc?!! 3a4em?
          Ответить
          • Через «OpenVPN», конечно. Та впска даже иксы не факт что потянет, лол.
            Ответить
            • Ну то-есть рендерит твой локальный браузер? Ну хорошо, а то я подумал, что малось ебанутые все.

              Я так и не понял, зачем вообще нужен VNC на сервере.
              Я еще понимаю зачем нужно поднять локальные иксы, и сделать x11 forwarding. VNC вообще зачем не ясно
              Ответить
                • Очень просто! Пишешь админу своего шаред-хостинга, и просишь поставить
                  Ответить
              • > Я так и не понял, зачем вообще нужен VNC на сервере.
                Здоровые люди его используют для починки виртуалок, когда на них ОС не грузится (недавно на ГК обсуждали).
                А в статье долбоёбы занимаются какой-то хуйнёй.
                Ответить
                • Для этого провайдер должен предоставлять доступ к консоли через VNC (например, KVM так умеет, еще кажется vspehere).

                  Мой провайдер так умеет, пару раз это меня действительно спасало:)
                  Но на моей VPS нет никакого vnc: оно есть на KVM, и настроено моим провайдером
                  Ответить
                  • Подтверждаю.
                    >> А в статье долбоёбы занимаются какой-то хуйнёй.
                    Ответить
        • просто дядьке выдавали один процент от заявленного трафика на его ссаной виртуалке, и он, скрепя сердцем, заплатил за такой же виртуальный гигабит.
          другого сетевого опыта у него очевидно не было.
          Ответить
        • а я взял впс на хецнер клауде за три евро, там полный гигабит, и я вытягивал на своем десктопе полгигабита, хоть и с латенси в 60 мс и это всё еще и через 802.11ax, отсосите!
          Ответить
          • Какой скилл )))

            Я хостера подбирал с нормальным ToS, специально под личный «VPN».
            Он, конечно, не очень скилловый, и иногда ложится поспать, но зато явно разрешает «VPN» и находится в более-менее интернет-свободных странах (как физически, так и юридически). Я через него даже торренты гоняю.
            Ответить
            • ну, строго говоря 60мс это до серверов спидтеста, хер знает с чем связано, так-то он достаточно шустрый, чтобы через него постоянно сидеть
              Ответить
              • Ну Хецнер — это Германия, где-то для середины России 60 миллисекунд это норма. До моей впски, например, чуть меньше, но несущественно (55 миллисекунд дом->впс->8.8.8.8, 6.9 миллисекунд впс->8.8.8.8).
                Ответить
                • Pinging 8.8.8.8 with 32 bytes of data:
                  Reply from 8.8.8.8: bytes=32 time=26ms TTL=104
                  Reply from 8.8.8.8: bytes=32 time=26ms TTL=104

                  Курлы.

                  Ща ВПС проверю.

                  Прибалтийский ВПС мой..
                  Reply from 185.5.53.XXX: bytes=32 time=42ms TTL=50
                  Reply from 185.5.53.XXX: bytes=32 time=42ms TTL=50


                  Ну уж никак не 60
                  Ответить
                  • Именно поэтому я за «Америку».
                    PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
                    64 bytes from 8.8.8.8: icmp_seq=1 ttl=116 time=1.31 ms
                    64 bytes from 8.8.8.8: icmp_seq=2 ttl=116 time=1.32 ms
                    64 bytes from 8.8.8.8: icmp_seq=3 ttl=116 time=1.30 ms

                    (Правда, до этой впски у меня пинг порядка 250-ти миллисекунд, и работа в «SSH» на ней весьма… увлекательна.)
                    Ответить
                    • Мы друг друга не понели.
                      Это пинг из дому. Ты не видиш чтоли виндопинг?)

                      Из выпсы конечно тоже не лучше
                      64 bytes from 8.8.8.8: icmp_seq=1 ttl=121 time=22.9 ms

                      Правда
                      Ответить
                      • > Это пинг из дому.
                        Ага, я понял. У меня из дома всё печальнее.
                        $ ping 8.8.8.8
                        
                        Обмен пакетами с 8.8.8.8 по с 32 байтами данных:
                        Ответ от 8.8.8.8: число байт=32 время=40мс TTL=108
                        Ответ от 8.8.8.8: число байт=32 время=39мс TTL=108
                        Ответ от 8.8.8.8: число байт=32 время=39мс TTL=108
                        Ответ от 8.8.8.8: число байт=32 время=39мс TTL=108
                        Ответить
                  • > Ну уж никак не 60
                    Ну у Fike 60 — это сначала от дома до впски, а потом от впски до какого-то сервера «Спидтеста». У «8.8.8.8» всё явно гораздо лучше с маршрутизацией (именно поэтому я за «anycast»).
                    Ответить
                    • Я не знал, что 8.8.8.8 это anycast, только про корневые сервера знал.
                      Но судя по их faq, это действительно так
                      Ответить
                • У меня была история, как я на работу (в соседний район) по VPN ходил через Швецию.

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

                    потом я круглым глазами смотрел на пинг, который скакал с 10 до 30 мс и обратно

                    потом я узнал, что в общем-то по-хорошему трафик и должен через какую-то францию туда идти, просто мне иногда везло и он как-то пробирался напрямую
                    Ответить
                  • Попробую угадать город. Питер? Из Питера во многие сети (в том числе и в другие районы Питера) трафик идёт через Швецию. Роскомпетух уже много лет пытается это запретить (мол, трафик из России в Россию должен идти через Россию), но похоже, что даже обнуление Конституции не помогло.
                    Ответить
          • Про латенси : ты можешь в теории трейсануть хостера из дома, и трейсануть дом из хостера.
            Если увидишь, что пакеты идут через Камбоджу, то можешь написать провайдеру (если пакеты идут от тебя плохо) или хостеру (в обратном случае) и попросить настроить роутинг не через жопу.

            У меня один раз получилось, но обычно такие письма просто игнорируют, конечно
            Ответить
            • да мне просто лень разбираться, там еще нужно на другой диапазон перевесить, потому что с рабочим впн пересекается. сейчас впрочем проверил пинг - и вправду 60мс до впски (кажется, когда только настраивал, был в районе двадцати-тридцати), но когда-нибудь потом ебаться буду.
              Ответить
              • сука, всё-таки трейсроутнул (зачем? зачем? работа же стоит)

                из города трафик попадает в область. на границе города и области пинг взмывает от пяти миллисекунд до пятидесяти.

                какой ростелеком )))
                Ответить
                • Пинговать маршрутизаторы бесполезно, кстати: это часто ничего не показывает.

                  Маршрутизатор может передавать траффик ASICом, а на пинг отвечать медленной ОС, процессом с низким приоритетом, на говёном проце, или вообще на пинг не отвечать.
                  Ответить
                  • так я не пингую, мне трейсроут сообщает, через сколько ему уведомление пришло. да и вся цепочка после этого хоста идет с такой же задержкой + копейки
                    Ответить
                      • Подтверждаю. Реальный пример:
                        root@mail:~# traceroute -n 8.8.8.8
                        traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets
                         1  45.151.253.145  4.331 ms  4.347 ms  4.329 ms
                         2  161.8.19.1  16.422 ms  16.418 ms  16.397 ms
                         3  63.251.209.145  0.848 ms  0.888 ms  0.833 ms
                         4  216.52.234.45  1.069 ms  1.049 ms  0.983 ms
                         5  216.52.255.15  1.485 ms 216.52.255.74  1.463 ms  1.536 ms
                         6  157.130.246.181  0.999 ms 157.130.246.189  0.962 ms  0.941 ms
                         7  * * *
                         8  157.130.245.166  1.272 ms  1.241 ms  1.249 ms
                         9  * * *
                        10  8.8.8.8  1.222 ms  1.199 ms  1.180 ms

                        На втором хопе задержка (якобы) 16 миллисекунд, при этом пинг до 8.8.8.8 — чуть больше одной.
                        Ответить
                        • А попрробуй на прыще тулу ``mtr``, и сравни
                          Ответить
                          • The following additional packages will be installed:
                              adwaita-icon-theme fontconfig fontconfig-config fonts-dejavu-core gtk-update-icon-cache hicolor-icon-theme
                              libatk1.0-0 libatk1.0-data libavahi-client3 libavahi-common-data libavahi-common3 libcairo2 libcroco3 libcups2
                              libdatrie1 libfontconfig1 libgail-common libgail18 libgdk-pixbuf2.0-0 libgdk-pixbuf2.0-bin
                              libgdk-pixbuf2.0-common libgraphite2-3 libgtk2.0-0 libgtk2.0-bin libgtk2.0-common libharfbuzz0b libjbig0
                              libjpeg62-turbo libpango-1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0 libpixman-1-0 librsvg2-2 librsvg2-common
                              libthai-data libthai0 libtiff5 libwebp6 libxcb-render0 libxcb-shm0 libxcomposite1 libxcursor1 libxdamage1
                              libxfixes3 libxi6 libxinerama1 libxrandr2 libxrender1

                            Wtf?
                            Ответить
                          • Packets               Pings
                             Host                                                                   Loss%   Snt   Last   Avg  Best  Wrst StDev
                             1. 45.151.253.145                                                       0.0%    32    4.1   2.3   0.9   9.2   2.1
                             2. 161.8.19.1                                                           0.0%    32    9.2  16.5   8.9  57.8   8.6
                             3. edge1.ae2.dedipath-11.lax007.pnap.net                                0.0%    32    0.8   0.9   0.7   2.1   0.3
                             4. border10.ae5.lax012.pnap.net                                         0.0%    32    1.0   1.4   0.9  12.7   2.1
                             5. core2.po1-20g-bbnet1.lax012.pnap.net                                 0.0%    32    1.7   1.8   1.4   3.2   0.5
                             6. 0.xe-0-1-3.GW7.LAX1.ALTER.NET                                        0.0%    32    1.2   2.0   1.0  17.9   3.0
                             7. ???
                             8. google-gw.customer.alter.net                                         0.0%    32    1.4   1.8   1.3   9.6   1.5
                             9. 108.170.238.58                                                       0.0%    32    1.4   1.4   1.3   1.5   0.1
                            10. 172.253.50.119                                                       0.0%    32    1.4   1.4   1.3   2.3   0.2
                            11. dns.google                                                           0.0%    32    1.3   1.3   1.3   1.5   0.0
                            Ответить
                        • 8.8.8.8 — это так называемый anycast-адрес, если я ничего не путаю. Есть несколько физических серверов, размещённых в разных автономных сетях, которые отвечают на 8.8.8.8.

                          Да, для broadcast-multicast-anycast и прочей странной питушни раньше были зарезервированы IPv4-адреса с первым октетом 224 и выше (класс «D», класс «E»). Но потом классовое общество обоссали и стали лепить эту питушню во всех диапазонах.

                          К чему это я? При трассировке на разных шагах на 8.8.8.8 могут откликаться разные физические сервера, поэтому и задержка скачет.
                          Ответить
                          • Ну пингани govnokod.xyz, а потом трейсани. Может быть тоже самое. Половина хостов вообще не ответит.


                            Альсо, я сильно сомневаюсь, что 224 имел отношения к anycast.
                            В IPv4 вообще не было такого понятия: его слепили на уровне BGP: просто несколько автономок в мире анонисруют один и тот же префикс, и вроутер выбирает самый короткий путь.

                            224 использовался для мультикаст, и кажется что и до сих пор используется. У меня провайдер так IPTV стримает.

                            Но могу ошибаться
                            Ответить
                          • > При трассировке на разных шагах на 8.8.8.8 могут откликаться разные физические сервера, поэтому и задержка скачет.
                            Вряд ли у меня маршруты перестраиваются каждую секунду. К тому же, сам пинг до 8.8.8.8 не меняется, как и маршрут.
                            Ответить
      • блядь, невыносимо

        mihmig 15 июля 2020 в 09:15
        Буфер обмена не работает…

        zacisco сегодня в 13:42
        а ничего, что в той же бунте есть remote desktop, зачем ещё что-то ставить и городить огород?
        Ответить
    • Доброе утро, и в эфире снова я -- Капитан Очевидность.
      Напомню, что сахар сладкий, соль -- солёная, и читайте мою новую статью

      10 идей, о которых стоит знать всем программистам.

      1. Не надо решать вопросы безопасности в последнюю очередь

      2. Все приложения разные, у них разные нужды, поэтому выбирать технологии для разработки нужно, исходя из особенностей проектов. Не стоит ориентироваться на популярность технологий или поддаваться давлению руководства


      3. Микросервисы нужны далеко не всем


      4. Стандартизированное окружение разработки — это хорошо

      Ну и моя любимая:
      6. Зависимости стоит использовать тогда, когда они нужны
      https://habr.com/ru/company/ruvds/blog/508440/

      Не смотря на троллинг, идеи действительно здравые. Не переходите улицу в неположенном месте
      Ответить
      • Охуенная статья! Можно отправлять на «Хабр».
        UPD: А, она уже отправлена… Какой багор )))
        Ответить
      • > 6. Зависимости стоит использовать тогда, когда они нужны

        7. Код нужно писать без багов.
        Ответить
        • А я всегда с багами писал. Что же мне теперь, переписывать всё что ли?
          Ответить
        • Советую затыкать баги собачкой (@). Это проще, чем писать без них.
          Полезно так же отключать всякие глупые варнинги и стрикты: с ними у меня почему-то было много багов
          Ответить
          • Попробовал, не помогает. Конпелятор говорит, что он видит каких-то бездомных собак в моей программе. Как быть?

            error: stray ‘@’ in program
            Ответить
            • > error: stray ‘@’ in program
              Это что-то про микроконтроллеры?
              Ответить
            • Эм.. А у тебя PHP какой версии??
              Ответить
              • Будем честны, «PHP» менее 7 версии не нужен.
                Ответить
                  • Выглядит как хостинг из середины нулевых. Ещё и бегущая строка внизу главной страницы, лол.
                    Ответить
                    • <div id='pageContent'>
                      			<table class='full_width normal'>
                      			<tr>
                      				<td style='width:220px;'>
                      					<!-- <a href='/ru/hosting/'><img src='/images/logos/valuehost2.gif' alt='хостинг: ValueHost 2.0'></a> -->
                      					<a href='/'><img src='/images/logos/valuehost2.gif' alt='хостинг: ValueHost 2.0'></a>
                      				</td>
                      				<td>

                      угу
                      Ответить
                  • > Использование общедоступных библиотек Perl и PHP значительно упрощает работу веб-разработчикам.

                    Именно поэтому я за «PHP».
                    Ответить
                    • >Именно поэтому я за «Perl».
                      и я
                      Ответить
                        • Средства разработки приложений
                          Поддержка новой версии PHP 5.6, 7.0, 7.1, 7.2, 7.3
                          Работа PHP в режиме safe mode off
                          Наиболее полная коллекция последних PHP модулей

                          17139.28 руб в год
                          Ответить
                            • https://www.valuehost.ru/ru/hosting/about_service/shared/plans/

                              План MGTO
                              Зато дают электропочту, SSL сертификат и FTP логин)
                              Плюс полная поддержка .htaccess для каждой директории!!


                              Интересно, что они называют "виртуальными серверами"? привязку доменного имени к папке?


                              > БД на SSD (PostgreSQL 8.3.7)

                              Постгре не повезло. PHP, Ruby и Perl у них более-ли-менее свежие, а вот питон и постгря это пиздец

                              Про руби наврал, там тоже 2011. И мускуль ваш тоже пятый, лол
                              Ответить
                              • Компания ValueHost предоставляет для своих клиентов возможность завести свой персональный блог на BlogServer.

                                Блог (англ. blog, от web log, «сетевой журнал или дневник событий») — это веб-сайт, основное содержимое которого — регулярно добавляемые записи, изображения или мультимедиа.

                                Вести блог — это модно и интересно.


                                https://www.valuehost.ru/ru/hosting/about_service/blogs/
                                ----------

                                Вот это 2005-й здорового человека!
                                Ответить
                              • Охуеть, блядь, два косаря в месяц за шаред. За такие деньги можно слабенький выделенный сервер взять и радоваться.
                                Ответить
                                • У них как-то мутно.
                                  Я читал-читал и не понял.

                                  >Выделенный IP адрес — 1
                                  >Вирт. серверов — 100

                                  Виртуальный сервер [virtual server] - это веб-сервер, созданный для отдельного пользователя хостинга на специальном физическом сервере. Виртуальный серверпозволяет размещать несколько полноценных сайтов в рамках одной хостинг-площадки на аккаунте ValueHost 2.0.


                                  Что такое "виртуальынй сервер"?

                                  Можно сделать 400 сайтов на одном адресе?
                                  Это типа таких помоечных бекдоров для черного seo?
                                  Ответить
                                  • > Что такое "виртуальынй сервер"?
                                    Насколько я помню такие конторки — это они имеют в виду отдельные сайты, с раздельными доменными именами и раздельными же файлами. Ну типа как «sites-enabled» в «Nginx».

                                    > Можно сделать 400 сайтов на одном адресе?
                                    Ну да, шареды так и работают.
                                    Ответить
                                    • ну то-есть это именно те самые "папки с доменом", когда я захожу по FTP, и там у меня

                                      /site1.ru
                                      /site2.ru
                                      /site3.ru
                                      итд

                                      и таких питухов можно 100 создать, ок.

                                      Правда я хз, зачем мне столько
                                      Ответить
                                  • В версии ValueHost 2.0 доступны последние технологии для создания сайтов нового поколения: Ajax, PHP 5.6, 7.0, 7.1, 7.2, 7.3, MySQL 5, PostgreSQL, Python, Ruby on Rails (через Passenger).


                                    А вот хостер поддерживает технологию нового поколения ajax?

                                    Новый ValueHost 2.0 — это хостинг оптимизированный для баз данных MySQL. Только в новой версии ValueHost используется последний релиз профессионального сервера баз данных: MySQL Server 5.

                                    Для более требовательных веб-разработчиков и специальных задач в новой версии хостинга ValueHost 2.0 включены СУБД PostgreSQL 8.3.

                                    Теперь Вам не придется покупать хостинг заграницей. Современные технологии хостинга, качественное обслуживание и рыночные цены пришли в Россию вместе с ValueHost 2.0.

                                    Гарантии ValueHost по SLA выполняет ЗАО «Вэб Хостинг». Лицензии РОССВЯЗЬОХРАНКУЛЬТУРЫ № 46943 и № 50916.

                                    https://www.valuehost.ru/ru/hosting/about_service/shared/plans/
                                    Ответить
                                    • > Лицензии РОССВЯЗЬОХРАНКУЛЬТУРЫ
                                      >>>
                                      13.05.2008 Федеральная служба по надзору в сфере массовых коммуникаций,
                                      связи и охраны культурного наследия (Россвязьохранкультура) преобразована в 2 федеральные службы:
                                      1) В Федеральную службу по надзору в сфере связи и массовых коммуникаций
                                      (Россвязькомнадзор), которая подведомственна Минкомсвязи России.
                                      Россвязькомнадзору переданы:
                                      - функции по контролю и надзору в сфере средств массовой информации (в т.ч.
                                      электронных) и массовых коммуникаций, информационных технологий и связи;
                                      - функцию по регистрации средств массовой информации.
                                      2) В Федеральную службу по надзору за соблюдением законодательства в области
                                      охраны культурного наследия (Росохранкультура), которая подведомственна
                                      Минкультуры России.
                                      Росохранкультуре переданы:
                                      - функции по охране культурного наследия, авторского права и смежных прав

                                      Какой 2008-й )))
                                      Ответить
                                      • пароль от сервера с сайтом потеряли, а админ уволился

                                        так и висит с 2008
                                        Ответить
                                    • > ЗАО «Вэб Хостинг». Лицензии РОССВЯЗЬОХРАНКУЛЬТУРЫ № 46943 и № 50916.

                                      Одно это бесценно.
                                      Ответить
                                    • >> технологии для создания сайтов нового поколения: Ajax

                                      Где можно скачать «Ajax»?

                                      Хочу попробовать поставить «Ajax» на localhost.
                                      Ответить
      • >> Стандартизированное окружение разработки — это хорошо
        - работал как-то с одним qa, который умничал, что все должны перейти на один git-клиент, разумеется, такой, каким он пользуется.

        Так что могу согласиться только по поводу сore toolchain.
        Ответить
  • Как реализована такая хуета, что при переходе с айфона по ссылке https://yandex.ru/maps/-/CCQlZRccOA открываются «Яндекс.Карты», если они установлены?
    Ответить
    • <meta property="al:ios:url" content="yandexmaps://yandex.ru/maps/213/moscow/stops/station__9858919/?ll=37.606070%2C55.767665&z=12.75&mode=masstransit&masstransit=">

      или где-то там рядом
      Ответить
      • Там ещё перед этим:
        <meta property="al:ios:app_store_id" content="313877526">
        <meta name="twitter:app:id:iphone" content="313877526">
        <meta name="twitter:app:id:ipad" content="313877526">

        Ну чтобы уж точно все заметили, что нужно запустить приложение с id=313877526.

        Такая же питушня и для «Ведра»:
        <meta property="al:android:package" content="ru.yandex.yandexmaps">
        <meta name="twitter:app:id:googleplay" content="ru.yandex.yandexmaps">
        Ответить
          • Он придумал этот стандарт. Некоторые приложения (возможно, даже некоторые веб-браузеры) его подхватили: они сканируют N первых килобатов HTML-кода на предмет наличия фейсбуковских тегов.
            Ответить
      • Да можно просто дёрнуть кастомную схему (yandexmaps), если приложение установлено, оно и откроется.
        Ответить
        • А где прописывают схему? в plist?
          Ответить
          • Недолгая гуглёжка:
            https://stackoverflow.com/questions/8201724/how-to-register-a-custom-app-opening-url-scheme-with-xcode-4

            https://developer.apple.com/library/archive/documentation/Carbon/Conceptual/LaunchServicesConcepts/LSCConcepts/LSCConcepts.html#//apple_ref/doc/uid/TP30000999-CH202-SW11

            Зарегистрировать можно схему — то, что находится перед двоеточием, например, yandexmaps:

            На первоначальный вопрос Desktop не ответил.
            Ответить
            • Ответил, просто кто-то читать не умеет 😉

              Ставишь в onLoad страницы или как там ивент называется запрос на URL c кастомной схемой, если в системе есть приложение, которое умеет открывать такую схему, то оно и откроется. В plist клиенту схемы ничего прописывать не нужно, это уже должны были сделать разработчкики Яндекс.Карт.

              Теперь понятно?
              Ответить
              • Кажется, понял. На странице в JS делаем редирект на кастомную схему (yandexmaps:). Тогда если эта схема зарегистрирована, откроется специальное приложение. Если нет, продолжим просмотр в веб-браузере.

                Правда, такого кода конкретно на странице «Яндекс.Карт» я найти не смог.
                Ответить
                • Это один из вариантов того, «как реализована такая хуета». У Я.Карт могут быть и другие, типа той, про которую ты выше написал. Но в целом это, на мой взгляд, самый простой способ.

                  > такого кода конкретно на странице «Яндекс.Карт» я найти не смог
                  - та может там какой-то хитрый запрос сначала с редиректом, надо смотреть лог сетки.
                  Ответить
                  • Да, там некоторые js-файлы грузятся не сразу, а по хитрому условию. Т. е. если какие-то условия не выполнены, страница их может вообще не запросить.
                    Ответить
            • ну то-ест plist, как и было сказано

              Я всегда прав
              Ответить
    • Ого, какие маститые эксперты.

      >Это Вам сказали те, кто пишут на .NET C# под IIS? 🙂 Или большие поклонники Java Server Pages? *


      >Раньше из-за плохого внедрения ООП


      >guano-код можно написать на любом языке, особенно Си, С++, т.к. эти языки слабо поддаются тестированию.



      * это не язык
      Ответить
      • Парню вообще не очень везет с отвечающими.
        Вот тут у него в голове случилась манная каша: он еще не знает про shared memory (хотя уже знаком с основами виртуальной памяти -- знает про адресное пространство) и спотыкается на понятии "процесс читает из памяти другого процесса". С дуру он зачем-то приплел сюда критическую секцию, но я его не виню: Таненбауму следовало писать яснее.

        https://qna.habr.com/q/266568

        И тут приходит ёбаный питух, и сообщает:

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

        А? что? Это виндуос виноват? В виндуосе нет разделямой памяти? Ебаная прыщеблядь!

        А дальше питух жжот еще больше

        "Есть переменные с областью видимости: локальная, глобальная, уровня файла, уровня операционной системы...
        Ваша переменная разделена между процессами."

        На тебе еще больше говна в твою кашу, малыш. Покажите мне в позиксе понятие "переменная уровня операционной системы" и "переменная уровня файла"!
        Это он про видимость символов в си что-ли?

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

              С другой стороны их можно подменить через env. Однако это переменные, и глобальные. Хотя опять же для юзера. А не ОС в целом.

              Так что даже глупость "переменная уровня операционной системы", я могу оправдать лишь с большой натяжкой.

              Остальное — дичь несусветная.
              Ответить
    • >R&

      Перед Computer Science стоит несколько важных вопросов, на которые пока никто не смог дать ответ. Равен ли P NP? Как реализовать сверхтьюринговые вычисления? Как не обосраться с даблэскейпом?

      Последняя проблема стоит особенно остро. Миллионы вебсайтов заменяют амперсанд на энтити, а попытка это починить почти всегда приводит к XSS.
      Ответить
        • Вообще отлично.

          А я тупанул, на швабре изначально и было R&D.
          Ответить
      • Наверное, автор решил выебнуться и написать «R&D».
        Ответить
        • Как старый пользователь веба я знаю, что "больше", "меньше" и "амперсанд" лучше не писать без острой необходимости
          Ответить
          • Подтверждаю. На некоторых сайтах ещё «кавычки» и «апостроф» тоже лучше не писать. И «бекслеш» тоже.
            Ответить
  • https://phpclub.ru/talk/threads/Задачка-по-php.86886/
    > Помогите решить задачку, никак не пойму
    > Дан массив целых чисел. Найдите сумму всех элементов массива до элемента со значением 0.
    > $array = [10, 5, 8, -1, 7, 0, 9]; //данные в массиве получены пользователем с консоли
    > У меня получается только обрезать массив до 0, а дальше как не пойму, или я уже не правильно делаю?
    $array = stream_get_line(STDIN, 1024, PHP_EOL);
    $a = explode(' ', $array);
    foreach ($a as $value) {
    if ($value == 0) break;
    echo $value. " "; // 10 5 8 -1 7
    }

    Блядь, как же жалко человека: его первым языком программирования стал «PHP». Отвратительно.
    Ответить
    • И сразу получает совет
      >$result = array_sum(array_slice($array, 0, array_search(0, $array)));

      Вот по этому я за изучение основ прогаммирования на борланд паскале
      Ответить
      • Да ладно, учитывая, на каком сайте автор задал вопрос и что он уже и так испорчен пнёй, то нормальное решение. Можно сразу копировать в продакшен и заливать по ftp
        Ответить
      • И вообще, я за «Python» (не в обучении):
        sum(itertools.takewhile(bool, [10, 5, 8, -1, 7, 0, 9]))  # 29
        Ответить
        • >>> itertools.starmap(function, iterable)
          >>> itertools.accumulate(iterable[, func, *, initial=None])
          >>> itertools.takewhile(predicate, iterable)
          Какая консистентность )))
          Ответить
      • Функциональненько. Но у Царя от такого глаза вытекут:
        1. Сканируем несколько первых элементов в поиске нуля.
        2. Копируем элементы, пройденные на первом шаге, в слайс (ага, жрём память).
        3. В третий раз пробегаем циклом по тем же элементам, но уже для того, чтобы посчитать сумму.
        Ответить
        • Это правда.
          А как бы написал царь? Вот так?
          const uint8_t nums[] = {2, 12, 85, 0, 6};
          uint16_t acc = 0;
          for(const uint8_t* p = nums; const uint8_t v = *p; p++) acc += v;
          printf("%d", acc);
          Ответить
          • Возможно.

            Кстати, в «PHP» появились так называемые «генераторы», которые позволяют и не жрать память, и не делать лишних проходов, но при этом писать в «функциональном» стиле:
            https://www.php.net/manual/ru/language.generators.overview.php

            Генератор — это функция, у которой оператор yield внутри цикла вместо return в конце. При вызове генератора из внешнего цикла он останавливается на операторе yield, на следующей итерации выполнение генератора продолжается с точки останова. Таким образом, вложенный цикл вместе с внешним циклом превращаются в один цикл.

            Ну это примерно как range в «Python 3» или xrange в «Python 2».
            Ответить
            • Спиздили всё из «Python». Не удивительно.
              >>> def take_while(predicate, iterable):
              ...     for x in iterable:
              ...             if not predicate(x):
              ...                     break
              ...             yield x
              ...
              >>> take_while(bool, [1, 2, 3, 0, 5])
              <generator object take_while at 0x000002B081F77F90>
              >>> list(take_while(bool, [1, 2, 3, 0, 5]))
              [1, 2, 3]

              >>> list(take_while(lambda x: x < 10, range(100000000000000000)))
              [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
              Ответить
            • Ты не поверишь, но в питоне тоже есть генераторы, и работают они именно так.
              def gen():
                  while True:
                      yield random.random()
              
              
              
              for r in gen():
                  print(r)


              Попробуй в тройке лист кмпрхжн сделать не через квадратные скобки, а через круглые. Будет тоже самое.

              Кстати, такие же генераторы есть и в руби (ну, похожие) и JS (через жопу) и даже в lua.
              Пых долго думал у кого бы что спиздить, в итоге спиздил у питона, став еще менее консистентым
              Ответить
      • >поэтому я за изучение основ прогаммирования на борланд паскале

        Именно поэтому я против «борланд паскаля».

        Учиться нужно от простого к сложному.

        Чем раньше программист поймёт сильные и слабые стороны скриптухи, тем лучше.
        Ответить
        • Ничего он не поймет. Заучит три ссаные команды как мартышка, будет всю жизнь потом писать на пхп, и говорить, что "для веба ничего лучше нету".
          Ответить
          • Я вообще считаю что адекватный человек может начинать изучать программирование с произвольного императивного языка.

            >Заучит три ссаные команды как мартышка, будет всю жизнь потом писать на пхп
            Будто если мартышку учить «Паскалю» она не будет всю жизнь потом писать на «ПХП».
            Ответить
            • Ох-ох, ты за SICP с лиспом-схемой что-ли?:) Или ты как Дейкстра, который под конец жизни считал, что у студентов нужно отобрать компьютеры, и заставить их на лиспе писать в тетрадочке до второго курса?

              >Будто если мартышку учить «Паскалю» она не будет всю жизнь потом писать на «ПХП».

              Это как карта ляжет. Может писать, а может и нет.
              А если сразу дать пхп, то всё, пизда
              Ответить
              • >начинать изучать программирование с произвольного императивного языка
                >>произвольного императивного языка
                >>ты за SCIP с лиспом-схемой что-ли

                Пожалуй да. За «SKIP с лиспом-схемой»
                Ответить
                • Я не понял, видимо.
                  А какой язык не произвольный?
                  Ответить
                    • "(произвольного И императивного языка) == Плохо"
                      Следовтельно
                      "(произвольного И НЕ императивного языка) == НЕ Плохо"
                      Ответить
                      • Чому?
                        "(произвольного И императивного языка) == Плохо" => "НЕ (произвольного И императивного языка) == НЕ Плохо" => "(НЕ произвольного ИЛИ НЕ императивного языка) == НЕ Плохо".
                        Ответить
                        • И что?
                          "(НЕ произвольного ИЛИ НЕ императивного языка) == НЕ Плохо"
                          Лисп произвольный НЕ императивный язык, что не так?
                          Ответить
                            • Я не понял зачем он вообще приплёл «Лисп».

                              Когда я сказал что:
                              >адекватный человек может начинать изучать программирование с произвольного императивного языка

                              Похоже обучение программированию нужно начинать не с ЯВУ, а с логики и дискретной математики.

                              И никакой тут «Паскаль» не поможет.
                              Ответить
                              • Из твоего выражения следует, что обучение программированию следует начинать либо с непроизвольного императивного языка, либо с произвольного не императивного, либо с непроизвольного не императивного.
                                Лисп вполне попадает под это определение.
                                Ответить
                                • >может начинать изучать программирование с произвольного императивного языка

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

                                  Какое следствие )))
                                  Ответить
                                  • блядь
                                    блядь
                                    блядь

                                    я реально видел там "не"

                                    У меня видимо что-то на глазу выросло

                                    Извините
                                    Ответить
                                • Купи в магазине произвольное шоколадное мороженое.

                                  У тебя ошибка в том, что ты считаешь «произвольный» характеристикой языка, в то время как в утверждении ПИ это квантор.
                                  Ответить
                                  • Моя ошибка в том, что я прочитал
                                    "не может начинать изучать программирование с произвольного императивного языка", и я еще удивился, причем тут произвольность, потому что квантор прозвучал как "язык программирования, принадлежащий множеству "языки программирования"".

                                    У меня проблемы не логического, а скорее офтальмологического характера
                                    Ответить
                                      • нет, не похуй.
                                        Я хотел что-то умное спизднуть про паскаль, но после такого обсёра все мысли разбежались
                                        Ответить
                                  • > в утверждении ПИ это квантор

                                    Именно поэтому я против первоочередного изучения «Паскаля» и за изучение «основ логики».
                                    Ответить
                            • Во-первых какая разница какой он, если вторая половинка дизъюнкции истинна?

                              Во-вторых define "произвольный".
                              Ответить
                            • Отбой. Я не осилил прочитать буквы, просто
                              Ответить
        • Как программист поймёт сильные и слабые стороны скриптухи, если ему попросту не с чем будет сравнивать?
          Вот если он из очень строгого и явного языка с постоянными begin/end и объявлениями пельменных в начале функции перейдёт в неявную скриптуху — тогда да, тогда он сможет осознать и прелести неявной/слабой типизации, и багры с "[object Object]".
          Ответить
          • Багры с проёбами в имени переменной.
            Багры с неявной типизацией.
            Багры вроде скопинга var в js.

            >если ему попросту не с чем будет сравнивать?

            Не нужно представлять себе сферических программистов в вакууме.
            У всех есть интернет и возможность самообразовываться.
            Человек разумный, при желании, рано или поздно придёт к пониманию вещей.
            Ответить
            • >У всех есть интернет и возможность самообразовываться.
              Товарищ, вы сейчас точно про PHP программста?
              Ответить
    • Понравился комментарий
      >Ребята, вы слишком много думаете, там где думать не надо

      Это же форум ПХП программистов, а не философов.
      Ответить
  • Паранойи нить.

    Выполняю в сбербанковском банкомате некоторые операции (кстати, карта «Моментум», на которой моё имя не написано). Подходит сотрудник «Сбербанка» с электронным планшетом:
    –— [имя и отчество удалено цензурой], мы заметили, что Вы подключили «Сбербанк-онлайн», но не пользуетесь мобильным приложением. Вам нужна помощь в его установке?
    —– Спасибо, мобильное приложение я в состоянии установить без посторонней помощи.
    –— Хорошо, но если Вам понадобится помощь в установке приложения, Вы всегда можете к нам обратиться.

    Держался, как мог, чтобы не заржать. Девочки и мальчики, работающие в «Сбербанке», всерьёз думают, что я тупой?
    Ответить
    • Подходит сотрудник «Сбербанка» с электронным планшетом:
      – TEH3OPHblu_nemyx , мы заметили, что Вы подключили «Сбербанк-онлайн», но не пользуетесь мобильным приложением. Вам нужна помощь в его установке?

      Держался, как мог, чтобы не заржать.
      Ответить
      • Главное — не ответить случайно «Именно поэтому я против "Сбербанк-онлайн"».
        Ответить
        • Тоже думаешь, что лучше спросить у сотрудника банка, давно ли он вуз закончил?
          Ответить
          • Главное, не сказать ему "установил тебе за щеку, проверь"
            Ответить
            • Мы заметили, что Вы подключили «Стандарт крестов», но не пользуетесь Microsoft Visual C++ 2008 Redistributable x86
              Ответить
              • Мы заметили, что вы установили visual studio 2019, но используете не все возможности C++ 17.

                Заменить все циклы на std::for_each автоматически?
                Ответить
    • > всерьёз думают, что я тупой?
      Ну они же не знают, что ты на «ГК» сидишь.
      А вообще — это у них работа такая, ничего необычного.
      Ответить
      • Если я им расскажу, что сижу на «ГК», они меня за порог не пустят.

        А если серьёзно, нафига АСУ сообщает сотрудникам личные данные владельцев карт, вставленных в банкоматы?
        Ответить
        • > А если серьёзно, нафига АСУ сообщает сотрудникам личные данные владельцев карт, вставленных в банкоматы?
          Потому что в дивном новом мире личные данные уже не личные. Продажа, покупка и тщательная обработка любых крупиц «личных» данных — это уже давно прибыльный и эффективный бизнес.
          Ответить
      • Достаточно всё цинично.

        Девочки и мальчики заёбывают людей вопросами про установку приложения не потому, что людям нужна помощь, а потому, что Греф сказал, что надо всех перевести на мобильный банкинг. Который в итоге бОльшую часть таких девочек и мальчиков работы-то и лишит.
        Ответить
        • Изощрённая забава — заставлять сотрудников рыть яму себе.

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

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

              С другой стороны, воруют же у людей айфоны с паролем, которые хуй разблочишь. Чисто на запчасти выходит.
              Ответить
              • Двухфакторная нынче у всех.
                Думаешь, карту на запчасти хотели спиздить?
                Ответить
              • Магнитную полосу на металлолом сдадут.
                Не помню точно, но, кажется, то ли «Стим», то ли «Paypal» могут снимать деньги в обход двухфакторки, только по данным с самой карты. Другое дело, что так нагло пиздить карту возле банкомата кажется бесполезным: на самом банкомате обычно пишут номера банков и вообще куда звонить, если что-то пошло не так. Если клиент позвонит и скажет, что карту у него спиздили — её моментально заблокируют.
                Ответить
                • Ладно, сдаюсь. Не думаю, что какая-то тётка знает про эти ваши стимы и рауралы, потому соглашусь, что она ебанутая. Или правда где-то карту проебала и стрессует.

                  Хотя вот мой банк позволяет выпускать виртуальные карты, типа специально для оплаты в интернете, мол, физически же её нет, значит, не спиздят.
                  Ответить
                  • У нас в одном «Ашане» решили на кассе разделить подсчёт товара и оплату. Теперь кассир только считает товар и выдаёт талон на оплату. Покупатель оплачивает товар наличными или картой в терминале, а на выходе прикладывает к турникету чек об оплате (охранник может выборочно сверить выносимые товары с чеком).

                    Так вот одна тётка забыла взять чек, и её не выпустил турникет. Она на стрессе бегала от терминала к терминалу, дёргала у всех чеки и повторяла: «Нет, не мой. Где ж мне его искать?» Хотя проблема решалась проще: охранники могли позвать старшего кассира или дежурного администратора, чтобы по примерному времени покупки и списку товаров найти в базе эту покупку и проверить факт оплаты (турникет фиксирует приложенный к нему чек, так что вынести на дурачка те же покупки, если она врёт, не получится). В конечном итоге к этому и свелось.
                    Ответить
    • им капает за установки, насколько понимаю
      Ответить
  • На том канале на Ютубе, с которого я скидывал видос про турецкий "ноутбук", нашлись ролики про ЭЛТ-монитор с тачем из начала девяностых и фотокамеры, которые сохраняли снимки на флоппи-диск.

    Какой антураж )))
    Ответить
    • На флоппи в более-менее терпимом качестве только одна фотка влезет. Возможно, у тех камер разрешение было на уровне пиктограмм.
      Ответить
        • >> Memory Stick floppy disk adapter.

          Какая технология)))

          Если я правильно понял, то это адаптер в габаритах флоппи-диска, в который можно вставлять карточку Memory Stick. Он имитирует магнитное поле дискеты, чтобы Memory Stick можно было читать обычным дисководом на компе без картридера.

          В своё время были для автомагнитол «кассетные адаптеры»: адаптер в габаритах аудиокассеты, к которому тонким кабелем подключались внешние девайсы. Адаптер имитировал магнитное поле аудиокассеты, чтобы использовать автомагнитолу в качестве усилителя звука, если у неё нет входов.
          Ответить
    • хм
      обычнцый флоппи, или zip drive?
      Ответить
  • Сука, заебали ютубные уёбища, растягивающие свои говноролики на десять минут.

    > When your video is 10 minutes or longer, Youtube gives you the option to place more than one ad on whichever part of the video you want, completely manually.
    > Consequently, airing more than one ads on the same video gets you more Adsense money.
    Ответить
    • > если вы не математик и не говорите о личной жизни гомосексуала — не употребляйте слово «функционал». Никогда!
      Какой #include <functional> )))
      Ответить
      • boyer_moore_horspool_searcher
        (C++17)

        какой функционал))
        Ответить
    • >> 1. функция, заданная на произвольном множестве и имеющая числовую область значений: обычно множество вещественных чисел R или комплексных чисел C © Wikipedia
      >> 2. человек нетрадиционной ориентации, ведущий активную половую жизнь с разными партнёрами.

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

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

                  Ну, видимо, обеды кОмплексные, а числа комплЕксные, хотя я так их никогда не называл.

                  В общем, есть разница и так: кОмплекс, но комплЕкт. Явно зависит от того, из какого языка пришло слово.
                  Ответить
            • О, подтверждаю, нам тоже указывали на то, что числа не комплексные, а комплексные.
              Ответить
            • DVD-Video.
              АвтоВАЗ.
              Мужской половой хуй.
              Совет Федерации Федерального Собрания Российской Федерации.
              Ответить
      • Да просто человек не хочет принимать естественные изменения языка. Небось ещё и кофе у него исключительно мужского рода.

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

          Язык действительно вещь гибкая и динамичная, излишняя узость ему не поможет.

          Но некоторое время, например, пошла мода говорить "выиграть кого-то" в значении "победить кого-то", и за такие естественные изменения языка мне хочется убивать этих колхозников
          Ответить
          • Подтверждаю. В каждом из нас есть капелька грамматического нациста.
            Ответить
            • Кстати, на похожую тему всегда рекомендую почитать Левонтину.
              Ответить
  • https://ru.wikipedia.org/wiki/12-часовой_формат_времени#Проблемы_в_обозначениях_полудня_и_полуночи

    Несмотря на наличие международного стандарта ISO 8601, 12 часов ночи и 12 часов дня
    обозначаются в разных странах по-разному. Это связано с тем, что в латинских словосочетаниях
    лат. ante meridiem и лат. post meridiem слово meridiem означает буквально «середина дня» или «полдень»,
    и нет однозначности между обозначением полудня как «12 a.m.» («12 ante meridiem», или «12 часов
    до середины дня») или как «12 p.m.» («12 post meridiem», или «12 часов после середины дня»).
    
    С другой стороны, полночь также можно логично назвать «12 p.m.» (12 post meridiem, 12 часов после
    предыдущей середины дня) или «12 a.m.» (12 ante meridiem, 12 часов до следующей середины дня).
    
    Национальный морской музей в Гринвиче рекомендует обозначать эти временные моменты как «12 дня»
    и «12 ночи». То же советует и The American Heritage Dictionary of the English Language. Многие
    руководства по стилю, принятые в США, предлагают «полночь» заменять на «11:59 p.m.», если мы хотим
    обозначить конец дня, и «12:01 a.m.», если мы хотим обозначить начало следующего дня. Эта практика
    широко применяется в США для юридических контрактов, расписаний автобусов, поездов, хотя из
    этого правила есть и исключения.

    Пиздец. Придумали неудобное говно, а потом костыли ставят.
    Ответить
    • > предлагают «полночь» заменять на «11:59 p.m.», если мы хотим
      обозначить конец дня, и «12:01 a.m.»
      - я правильно понимаю, что 00:00 в этом случае не относится ни к какому дню в принципе?
      Ответить
      • Скорее мы делаем вид, что 00:00 нинужно. Оно там есть, но нинужно.

        Кстати, в 24-часовом формате эта проблема тоже есть, но не настолько абсурдна: «21 июля, 00:00» — это когда? Ночь с 20-го на 21-е, или с 21-го на 22-е?
        https://habr.com/post/441022/
        Ответить
        • 21 июля, 00:00 это первые секунды 21-го июля
          мне это очевидно
          было
          до твоего поста
          Ответить
          • > мне это очевидно
            > было
            > до твоего поста
            Какой багор )))
            Ответить
          • Тут всё просто.

            Представь, что там ещё есть миллисекунды, например. А они есть, хоть мы ими и не оперируем в общем случае. А, если есть миллисекунды, то 21-е июля уже наступило, но это именно 21-е число, потому что оно и указано.
            Ответить
          • Ещё, кстати, есть эдакое соглашение: для указания периода, который начинается в одних сутках и заканчивается в самом начале других, не переполнять счётчик часов. То есть, к примеру, вместо «пропуск действует с 15:00, 21 июля по 03:00, 22 июля» можно писать «пропуск действует 21 июля с 15:00 до 27:00».
            Ответить
        • Да таких приколов много, на самом деле.

          Зима 2020-го года уже прошла или ещё только будет, например?
          Ответить
          • Она началась, но ещё не закончилась.

            Именно поэтому я за «лето».

            Поскольку оно выступает единицей времени: 10 лет. А не 10 зим.
            Ответить
            • > Она началась, но ещё не закончилась.
              Именно поэтому я против «Вестероса».
              Ответить
            • >Именно поэтому я за «лето».
              Атредиса?
              Ответить
  • Традиционно, в европейской культуре время от полуночи до пения петухов считалось временем разгула нечистой силы,
    Ответить
      • Ты типа программируешь на пхп в темных очках под электронную музыку хуяча десятью пальцами 300 знаков в минуту, а на четырех огромных черных мониторах летают зеленые буквы?
        Ответить
    • Ничего не понимаю. Сначала сделали какую-то дичь, потом поняли что обосрались и дропнули.

      Есть какой-то способ в С++ аллоцировать VLA на стеке?
      Ответить
      • > Есть какой-то способ в С++ аллоцировать VLA на стеке?
        alloca().
        Ответить
          • Потому что не «C++» и не «VLA» (во всяком случае, не то, что под ним подразумевается в «C»).
            Ответить
            • ну в основных компиляторах обычно есть alloca или ее аналог.

              А чем не VLA? тем, что вручную надо выделять память? Ну да, ебли больше, но смысл-то тот же: быстро, и очищать не надо
              Ответить
              • > А чем не VLA?
                Синтаксис не тот. «VLA» — это когда «int x = rand(); int arr[x];».
                Ответить
                • Я понимаю. Грюж, больше ебаца надо, но usecase примерно такой же: ты в рунтайме вертишь стек
                  Ответить
                • Там ещё был багор, что при инлайнах функций, на некоторых компилерах стек переполнялся.

                  for (i=0;i<1000000:++i){
                      foo()
                  }
                  //42000000 allocated
                  
                  inline void foo()
                  {
                        char * = alloca(42);
                  }
                  Ответить
                  • Всё, что ты налалочил, будет жить до конца forа?
                    Ответить
                    • Наивный. Жить оно будет до конца функции, когда придёт mov esp, ebp и почистит стек вилкой.
                      Ответить
                        • Проверил.
                          https://gcc.godbolt.org/z/rK1Px3
                          В случае нормальной аллокации на стеке всё в порядке: конпелятор спокойно аллоцирует и деаллоцирует нужное место и вызывает соответствующие конструкторы-деструкторы (а без них вызов foo() просто на nop заменяет). А вот с alloca() получается описанный дядей Пи багор:
                          other_func_alloca():
                                  push    rbp
                                  mov     rbp, rsp
                                  sub     rsp, 16
                                  mov     QWORD PTR [rbp-8], 0
                          .L14:
                                  cmp     QWORD PTR [rbp-8], 999
                                  ja      .L15
                                  mov     eax, 16
                                  sub     rax, 1
                                  add     rax, 1073741832
                                  mov     ecx, 16
                                  mov     edx, 0
                                  div     rcx
                                  imul    rax, rax, 16
                                  sub     rsp, rax
                                  mov     rax, rsp
                                  add     rax, 15
                                  shr     rax, 4
                                  sal     rax, 4
                                  mov     QWORD PTR [rbp-16], rax
                                  nop
                                  add     QWORD PTR [rbp-8], 1
                                  jmp     .L14
                          .L15:
                                  nop
                                  leave
                                  ret

                          Вот это вот длинное дерьмо с умножениями-делениями (насколько я понял, это оно так выравнивает rsp по 16-ти байтам) — и есть вызов заинлайненной функции с alloca(). И на каждой итерации от rsp просто отнимается очередной гигабайт. Какой багор )))
                          Ответить
                          • > sub rsp, rax
                            ебать говно. А вручную кадр аллоке не сделать, чтобы почистить?
                            Ответить
                          • А вообще — эпическое дерьмо. Все вот эти вот кручу-верчу-imul-и-div-хочу конпелятор мог бы просто заменить на «sub rsp, 1073741840». Да и дальнейшие манипуляции с shr/sal полностью бессмысленны, rax уже и так по 16-и байтам выровнен. Не говоря уже о бессмысленной записи этого значения куда-то в стек. Какой говнокод )))
                            Ответить
                          • Мдяя.

                            Выходит сколько лет прошло, а вот по-прежнему, если gcc попросить хорошенько, то он с радостью распидорасит стек.
                            Ответить
                        • Я могу напиздеть. Проверяем. Берём кота:
                          #include <stdlib.h>
                          #include <stdio.h>
                          
                          inline __attribute__((always_inline)) void foo() {
                            char *pituh = alloca(42);
                          }
                          
                          int main() {
                            int i;
                            printf("peredloopa\n");
                            for(i=0;i<10;++i) {
                              printf("begin\n");
                              foo();
                              printf("end\n");
                            }
                            printf("zaloopa\n");
                            return 0;
                          }
                          Ответить
                          • Конпелируем (без оптимизации, потому что иначе alloca выкинет), в синтаксисе «Интела» (чтобы ламерам было понятнее). Выхлоп:
                            peredloopa:
                            	.ascii "peredloopa\0"
                            begin:
                            	.ascii "begin\0"
                            end:
                            	.ascii "end\0"
                            zaloopa:
                            	.ascii "zaloopa\0"
                            _main:
                            	lea	ecx, [esp+4]
                            	and	esp, -16
                            	push	DWORD PTR [ecx-4]
                            	push	ebp                             ; схороняем старое значение ebp
                            	mov	ebp, esp                        ; в ebp схороняем указатель на стек
                            	push	ecx
                            	sub	esp, 36                         ; выделяем в стеке под локальные пельменные
                            	call	___main
                            	mov	DWORD PTR [esp], OFFSET peredloopa
                            	call	_puts                           ; printf("peredloopa\n");
                            	mov	DWORD PTR [ebp-12], 0           ; i := 0;
                            	jmp	L2
                            L3:
                            	mov	DWORD PTR [esp], OFFSET begin
                            	call	_puts                           ; printf("begin\n");
                            	mov	eax, 16
                            	sub	eax, 1
                            	add	eax, 54
                            	mov	ecx, 16
                            	mov	edx, 0
                            	div	ecx
                            	imul	eax, eax, 16                    ; делим и умножаем, чтобы округлить до 16
                            	call	___chkstk_ms
                            	sub	esp, eax                        ; это alloca
                            	lea	eax, [esp+4]
                            	add	eax, 15
                            	shr	eax, 4
                            	sal	eax, 4
                            	mov	DWORD PTR [ebp-16], eax         ; а это типа pituh из foo, в который помещаем результат alloca
                            	nop
                            	mov	DWORD PTR [esp], OFFSET end
                            	call	_puts                           ; printf("end\n");
                            	add	DWORD PTR [ebp-12], 1           ; ++i;
                            L2:
                            	cmp	DWORD PTR [ebp-12], 9           ; if (i<=9)
                            	jle	L3
                            	mov	DWORD PTR [esp], OFFSET zaloopa
                            	call	_puts                           ; printf("zaloopa\n");
                            	mov	eax, 0
                            	mov	ecx, DWORD PTR [ebp-4]
                            	leave                                   ; а тут чистим стек вилкой. Это равно mov esp, ebp
                            	lea	esp, [ecx-4]                    ; а тут ещё раз чистим. В ecx какая-то защита от порчи стека
                            	ret

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

                              LLVM
                              ’alloca’d memory is automatically released when the function returns. The ‘alloca’ instruction is commonly used to represent automatic variables that must have an address available. When the function returns (either with the ret or resume instructions), the memory is reclaimed.

                              GCC:
                              A memory block allocated with alloca exists only until the function that calls alloca returns or exits abruptly.
                              Ответить
                              • Фактически получается, что alloca — аналог локальных переменных функций, но с существенной разницей: размер локальных переменных известен на этапе компиляции, а размер места, выделенного alloca, может варьироваться при каждом вызове функции.
                                Ответить
                                • Эм, ну типа да. В классических сях нельзя было динамически задавать размер чего-то на стеке вроде.

                                  Если не знаешь сколько тебе место нужно -- иди в кучу (ну или лоцируй сколько можно, благо это бесплатно).

                                  Потом завезли костыль alloca, с такой вот пизданутой семантикой, и никто его не любит.

                                  Потом в С99 укрепили VLA, и вроде как стало лучше.


                                  >локальных
                                  автоматических ;))
                                  Ответить
                                  • > Потом завезли костыль alloca
                                    Причём его не в Стандарт завезли, а как какое-то нестандартное говно. Подозреваю, именно поэтому оно и говно.
                                    Ответить
                                    • Да, его завезли во многие компиляторы, и везде написали "это не стандарт". Вероятно одна из причин, почему лучше его не
                                      Ответить
                                  • > автоматических

                                    А, ну да. Если объявить переменную со static, то она снаружи будет не видна, в отличие от глобальных, однако, лежать будет не в стеке, а там же, где глобальные.

                                    Т. е. нужно область видимости и место хранения отмечать отдельно.
                                    Ответить
                                    • > место хранения отмечать отдельно.
                                      Вроде бы в сишечке есть три стула:

                                      * Storage duration (сколько живет питух)
                                      * Scope (откуда питуха видать)
                                      * Linkage (указвают ли несколько деклараций в разных модулях трансляции на одного и того же питуха).
                                      Ответить
                              • >Там ещё был багор, что при инлайнах функций, на некоторых компилерах стек переполнялся.

                                Посоны, я вам сразу сообщил что в некоторых компилерах багры.

                                >GCC:
                                >A memory block allocated with alloca exists only until the function that calls alloca returns or exits abruptly.

                                Наебалово же. inline всё портит. И он существует до выхода из функции, которая вызввала функцию.
                                Ответить
                  • Какой багор )))

                    А как это обработали в «VLA»? Запретили инлайнить функции с ним?
                    Ответить
                    • https://gcc.gnu.org/onlinedocs/gcc/Inline.html
                      Note that certain usages in a function definition can make it unsuitable for inline substitution.
                      
                      Among these usages are: variadic functions, use of alloca, use of computed goto (see Labels as Values), use of nonlocal goto, use of nested functions, use of setjmp, use of __builtin_longjmp and use of __builtin_return or __builtin_apply_args.
                      
                      Using -Winline warns when a function marked inline could not be substituted, and gives the reason for the failure.
                      Ответить
                    • >Запретили инлайнить функции с ним?

                      Не помню.
                      gcc vla не упомнинает. Хотя раньше что-то такое было. И про alloca есть.

                      Может компилер стал достаточно умён чтобы менять esp между итерациями.
                      Ответить
                  • Чем вообще эта проблема отличается от обычново стека?
                    inline void foo()
                    {
                          struct _1_gig_petuhz p;
                    }
                    Ответить
                    • А здесь конпелятор достаточно умён, чтобы уничтожить p. Грубо говоря, вызов foo() будет представлять из себя что-то вроде
                      ; ... вызывающая функция
                      add esp, 1_gig
                      ; Работаем с p
                      sub esp, 1_gig
                      ; ... вызывающая функция
                      .
                      Ответить
                      • почему так нельзя для аллоки? семантика не позволя?
                        Ответить
                        • Подозреваю, что после alloca() конпелятор просто теряет полученное значение из вида, оно для него ничем не отличается от обычного у-ко-ко-ко-зателя. Но это просто мои подозрения, как оно там на самом деле — хуй знает.
                          Ответить
                          • То-есть alloca просто двигает SP. А кто его подвинул и когда и зачем -- этого компилятор не знает.

                            Он просто двиганет его обратно при выходе из функции, да?
                            Ответить