Куча говна / Говнокод #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 )

Комментарии (608) 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
              Это что-то про микроконтроллеры?
              Ответить
                  • Выглядит как хостинг из середины нулевых. Ещё и бегущая строка внизу главной страницы, лол.
                    Ответить
                    • <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.
      Ответить
  • 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. человек нетрадиционной ориентации, ведущий активную половую жизнь с разными партнёрами.

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

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

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

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

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

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

          Но некоторое время, например, пошла мода говорить "выиграть кого-то" в значении "победить кого-то", и за такие естественные изменения языка мне хочется убивать этих колхозников
          Ответить
          • Подтверждаю. В каждом из нас есть капелька грамматического нациста.
            Ответить
            • Кстати, на похожую тему всегда рекомендую почитать Левонтину.
              Ответить
  • 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 попросить хорошенько, то он с радостью распидорасит стек.
                            Ответить
                            • Приведи реальный пример компилятора сишки, которого нельзя так хорошенько попросить, чтоб он с радостью распидорасил стек.
                              Ответить
                              • Так это же не рекурсия, а обычный цикл, с вызовом обычной функции.

                                Тем более ошибка может не проявляться вплоть до инлайна.
                                Ответить
                                • Если ты в сишке используешь какую-то сраную ебучую хуйню, типа VLA, alloca() или допустим гнутый goto label as values в крестоговне с RAII, то ты сам дурак должен соблюдать предельную осторожность с этой хуйней, и вся ответственность за распидорашивание стеков и прочие подобные спецэффекты лежат на тебе. И нехуй в этом винить компилятор
                                  Ответить
                        • Я могу напиздеть. Проверяем. Берём кота:
                          #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. А кто его подвинул и когда и зачем -- этого компилятор не знает.

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

                              А вот «Шланг» оказался гораздо умнее: https://gcc.godbolt.org/z/PjEKPz.
                              Я добавил использование питушни:
                              __attribute__((always_inline)) void foo_alloca() 
                              {
                                   Gigabyte *gigabyte = (Gigabyte*)alloca(sizeof(Gigabyte));
                                   gigabyte->pitushnya[1024] = 42;
                              }

                              И получил:
                              other_func_alloca():                 # @other_func_alloca()
                                      push    rbp
                                      mov     rbp, rsp
                                      sub     rsp, 1073741728
                                      mov     qword ptr [rbp - 1073741848], 0
                              .LBB5_1:                                # =>This Inner Loop Header: Depth=1
                                      cmp     qword ptr [rbp - 1073741848], 1000
                                      jae     .LBB5_4
                                      lea     rax, [rbp - 1073741840]
                                      mov     qword ptr [rbp - 8], rax
                                      mov     rax, qword ptr [rbp - 8]
                                      mov     byte ptr [rax + 1024], 42
                                      mov     rax, qword ptr [rbp - 1073741848]
                                      add     rax, 1
                                      mov     qword ptr [rbp - 1073741848], rax
                                      jmp     .LBB5_1
                              .LBB5_4:
                                      add     rsp, 1073741728
                                      pop     rbp
                                      ret

                              Как видно, стек не распидорашивается, «Шланг» сумел понять, как мы используем «alloca()», и выделил только один гигабайт, в самом начале «other_func()».
                              Код, правда, всё равно дерьмо: нахрена держать счётчик цикла в памяти, если у тебя rcx свободен, долбоёб?!
                              Ответить
                              • GCC явно не советует играть с огнем


                                When this happens, the memory blocks allocated with alloca will not be freed until the end of the calling function. If this calling function runs a loop calling the function that uses alloca, the program easily gets a stack overflow and crashes. To protect against this compiler behaviour, you can mark the function that uses alloca with the following attribute:
                                [code]
                                #ifdef __GNUC__
                                __attribute__ ((__noinline__))
                                #endif
                                ['/code]
                                Ответить
                              • >> mov qword ptr [rbp - 1073741848], 0

                                Красиво. Счётчик цикла в самом низу под гигабайтом.

                                Кстати, гигабайт помещается в 32 бита, поэтому влезло в одну инструкцию. А если выделить не гигабайт, а чуть больше четырёх гигов, то в рахитектуре x86_64 в непосредственную константу не влезет (напомню, что 64-битные константы может использовать единственная инструкция: mov reg, imm).

                                Попробуй создать объект на 5 гигов и посмотри ассемблерный выхлоп.
                                Ответить
                                • >в рахитектуре x86_64 в непосредственную константу не влезет

                                  У рискухов, где все инструкции по 4 бата, туда не влезут даже 32-битные константы.
                                  Ответить
                                  • 32-битный ARM:
                                    char *pituh = alloca(1024uL*1024*1024);

                                    Листинг:
                                    49 0028 03D18DE2 		add	sp, sp, #-1073741824


                                    В четырёх батах (03D18DE2) закодирована и инструкция add sp, sp, константа (трёхместная инструкция, кстати), и число 1024uL*1024*1024.

                                    Похоже, что у «ARM» есть инструкции, принимающие «круглые» числа.
                                    Ответить
                                    • Прибавляем единичку:
                                      char *pituh = alloca(1024uL*1024*1024 + 1);


                                      Компилятор должен округлить выделяемую память. Результат:
                                      49 0028 21D14DE2 		sub	sp, sp, #1073741832

                                      Значит, округляет до восьми.

                                      В инструкции изменилось два бата: вместо 03 стало 21, а вместо 4D стало 8D.

                                      Стоп! была инструкция add с отрицательным числом, а стала sub с положительным.
                                      Ответить
                                      • Пробуем выделить на 8 бат меньше, чем гигабайт:
                                        49 0028 23D18DE2 		add	sp, sp, #-1073741816


                                        Вообще не понял, как «ARM» кодирует аргумент.
                                        Ответить
                                        • > Пробуем выделить на 8 бат меньше

                                          да в тайланде вечно всякая хуйня происходит
                                          Ответить
                                  • Разобрался с «ARM». У него «плавучка» для целых питухов.

                                    В процессоре ARM есть специальная схема “barrel shifter” которая позволяет один из операндов сдвинуть или развернуть на заданное число бит перед любой арифметической или логической операцией.
                                    Ответить
                                    • С «круглыми» (в двоичной системе счисления) числами всё легко:
                                      24 0000 02D18DE2 		add	sp, sp, #0x80000000
                                        25 0004 01D18DE2 		add	sp, sp, #0x40000000
                                        26 0008 02D28DE2 		add	sp, sp, #0x20000000
                                        27 000c 01D28DE2 		add	sp, sp, #0x10000000
                                        28 0010 02D38DE2 		add	sp, sp, #0x8000000
                                        29 0014 01D38DE2 		add	sp, sp, #0x4000000
                                        30 0018 02D48DE2 		add	sp, sp, #0x2000000
                                        31 001c 01D48DE2 		add	sp, sp, #0x1000000
                                        32 0020 02D58DE2 		add	sp, sp, #0x800000
                                        33 0024 01D58DE2 		add	sp, sp, #0x400000
                                        34 0028 02D68DE2 		add	sp, sp, #0x200000
                                        35 002c 01D68DE2 		add	sp, sp, #0x100000
                                        36 0030 02D78DE2 		add	sp, sp, #0x80000
                                        37 0034 01D78DE2 		add	sp, sp, #0x40000
                                        38 0038 02D88DE2 		add	sp, sp, #0x20000
                                        39 003c 01D88DE2 		add	sp, sp, #0x10000
                                        40 0040 02D98DE2 		add	sp, sp, #0x8000
                                        41 0044 01D98DE2 		add	sp, sp, #0x4000
                                        42 0048 02DA8DE2 		add	sp, sp, #0x2000
                                        43 004c 01DA8DE2 		add	sp, sp, #0x1000
                                        44 0050 02DB8DE2 		add	sp, sp, #0x800
                                        45 0054 01DB8DE2 		add	sp, sp, #0x400
                                        46 0058 02DC8DE2 		add	sp, sp, #0x200
                                        47 005c 01DC8DE2 		add	sp, sp, #0x100
                                        48 0060 80D08DE2 		add	sp, sp, #0x80
                                        49 0064 40D08DE2 		add	sp, sp, #0x40
                                        50 0068 20D08DE2 		add	sp, sp, #0x20
                                        51 006c 10D08DE2 		add	sp, sp, #0x10
                                        52 0070 08D08DE2 		add	sp, sp, #0x8
                                        53 0074 04D08DE2 		add	sp, sp, #0x4
                                        54 0078 02D08DE2 		add	sp, sp, #0x2
                                        55 007c 01D08DE2 		add	sp, sp, #0x1

                                      Но сто́ит только попытаться записа́ть большую некруглую константу, как ассемблер обламывается:
                                      add	sp, sp, #0x87654321

                                      Выдаёт:
                                      Error: invalid constant (87654321) after fixup

                                      Т. е. операцию добавления некруглой константы к регистру приходится разбивать на несколько подряд идущих add. Причём ассемблер за тебя это не сделает, это надо сделать явно.
                                      Ответить
                                        • Доброе утро. Ну я же говорю, плавающий питух. С восьмибитной мантиссой и четырёхбитным порядком, ага.

                                          Откопал заметку с более интересными примерами:
                                          @ умножение на 9 – это умножение числа на 8
                                          @ путем сдвига влево на 3 бита плюс еще число
                                          add r0, r1, r1, lsl #3      @ r0= r1+(r1<<3) = r1*9
                                          
                                          @ умножение на 15 – это умножение на 16 минус число
                                          rsb r0, r1, r1, lsl #4      @ r0= (r1<<4)-r1 = r1*15


                                          А ещё вот это:
                                          «Кроме логического сдвига влево lsl есть еще логический сдвиг вправо lsr и арифметический сдвиг вправо asr (сдвиг с сохранением знака числа, старший бит размножается слева одновременно со сдвигом).

                                          Еще есть ротация бит ror – биты выдвигаются вправо и те, что выдвинуты - задвигаются слева.
                                          Есть сдвиг на один бит через флаг C – это команда rrx. Значение регистра сдвигается вправо на один бит. Слева в старший разряд регистра загружается флаг C.»
                                          Ответить
                                          • > Плавающий питух. С восьмибитной мантиссой и четырёхбитным порядком.
                                            На самом деле не так уж и плохо.

                                            >умножение на 15 – это умножение на 16 минус число
                                            Именно поэтому я за «x86 и lea».
                                            Ответить
                                            • > Именно поэтому я за «x86 и lea».
                                              Подтверждаю. Годная команда.
                                              Ответить
                                            • После того, как в 80386 в 32-битном режиме появилась адресация s-i-b (scale-index-base), инструкция LEA автоматически научилась не только складывать, но и умножать на степени двойки.
                                              Ответить
                                              • > умножение на 9 – это умножение числа на 8
                                                > путем сдвига влево на 3 бита плюс еще число
                                                lea rsi, [rbx + 8*rbx + 42] ; ещё и константу прибавили

                                                > умножение на 15 – это умножение на 16 минус число
                                                >rsb r0, r1, r1, lsl #4 @ r0= (r1<<4)-r1 = r1*15
                                                Так lea уже не умеет.

                                                Но на этот случай есть imul eax,ebx,15.

                                                Короче странно упрекать x64 в наличи 64-битного mov, при том что у конкурентов даже нельзя нормально 32-битную константу загрузить.
                                                Ответить
                                                • Гнутый ассемблер на «ARM» поддерживает такой синтаксис: если перед константой поставить знак равенства, то он разместит её где-то в коде, а в инструкцию вставит адрес этой константы («rip-based», так что фиксить его не нужно). Реальный пример:
                                                  ldr r1, =0x87654321
                                                  bx lr
                                                  Обратим внимание на = вместо #. Результат:
                                                  24 0000 00101FE5 		ldr r1, =0x87654321
                                                    25 0004 1EFF2FE1 	        bx lr
                                                    27 0008 21436587
                                                  Он прямо в код (после инструкции разврата из подпрограммы bx lr) насрал константу, а в инструкцию ldr насрал её относительный адрес.

                                                  Но такой трюк проходит только с инструкцией ldr (аналог mov). Если мы попытаемся сделать то же самое с инструкцией add, нас пошлют, потому что прибавлять можно только содержимое регистра или immediate, а из памяти константу нужно предварительно загрузить в ненужный регистр инструкцией ldr.
                                                  Ответить
                                                  • Прикольно.

                                                    Интересно как оно её кеширует для ldr. Код же по идее лежит в l1i, а не в l1d.

                                                    >инструкцией add, нас пошлют, потому что прибавлять можно только содержимое регистра или immediate

                                                    Ничего удивительного. Это всё-таки RISC.
                                                    Ответить
                                                    • У рискухов, поди, предиктора переходов и спекулятивного исполнения нет. А вот на x86 цепочка батов 21 43 65 87 вместо реальной инструкции может натолкать говна в предиктор.
                                                      Ответить
                                                      • >предиктора переходов и спекулятивного исполнения нет

                                                        У АРМа вроде есть. Они ведь тоже уязвимы ко всяким «spectre».

                                                        Но там же безусловный разврат.

                                                        Если бы не было, хрен бы они Штеуд по пирформансу догнали.

                                                        https://www.techrepublic.com/article/spectre-and-meltdown-explained-a-comprehensive-guide-for-professionals/

                                                        Как раз высокопирфомансные «уязвимые» чипы использую branch prediction и OoO.
                                                        According to Arm, only the Cortex-R7, R8, A8, A9, A12, A15, A57, A72, A73, A75, and A76 are affected by any variant of Spectre or Meltdown. 
                                                        These designs are used in SoCs by the aforementioned vendors; the designs are used in smartphones, tablets, and other devices.


                                                        Правда АРМ не рискуха в классическом понимании. От рискухи там только фиксированная длина команды, много регистров и всякие тупые ограничения.
                                                        Ответить
        • Спасибо за ценный совет.

          Разве lallocу в Стандарт привезли?
          Ответить
            • Так а зачем тогда вообще этот ваш С++ нужон?

              Выходит Сишка действительно быстрее чем С++, т.к. там я могу из коробки, кроссплатформенно размещать на стеке небольшие массивы.
              Ответить
              • так вектром нельзя? или он типа оверхеднутый дохуяч?
                Ответить
      • я как-то налетел на отсутствие VLA в VC, и очень злился. Оказалось, нужна _malloca
        Ответить
          • ну вон в прыще есть alloca же, и в gcc
            Ответить
            • Все лаллоки заслуженно считаются ещё большим говном чем VLA. (багры с инлайном).

              Потому gost зелёным написал.

              Короче, ясно

              Кресто-аллки опять слились божественной Сишке.
              Ответить
              • лаллоки

                Деды память на стеке умели выделять только статически, а Doom написали.
                Или у дедов вектор был?
                Ответить
                • У дедов была только божественная Сишка и прямые руки.

                  github.com/id-Software/DOOM
                  Ответить
                  • #define R ((8*PLAYERRADIUS)/7)
                    mline_t cheat_player_arrow[] = {
                        { { -R+R/8, 0 }, { R, 0 } }, // -----
                        { { R, 0 }, { R-R/2, R/6 } },  // ----->
                        { { R, 0 }, { R-R/2, -R/6 } },
                        { { -R+R/8, 0 }, { -R-R/8, R/6 } }, // >----->
                        { { -R+R/8, 0 }, { -R-R/8, -R/6 } },
                        { { -R+3*R/8, 0 }, { -R+R/8, R/6 } }, // >>----->
                        { { -R+3*R/8, 0 }, { -R+R/8, -R/6 } },
                        { { -R/2, 0 }, { -R/2, -R/6 } }, // >>-d--->
                        { { -R/2, -R/6 }, { -R/2+R/6, -R/6 } },
                        { { -R/2+R/6, -R/6 }, { -R/2+R/6, R/4 } },
                        { { -R/6, 0 }, { -R/6, -R/6 } }, // >>-dd-->
                        { { -R/6, -R/6 }, { 0, -R/6 } },
                        { { 0, -R/6 }, { 0, R/4 } },
                        { { R/6, R/4 }, { R/6, -R/7 } }, // >>-ddt->
                        { { R/6, -R/7 }, { R/6+R/32, -R/7-R/32 } },
                        { { R/6+R/32, -R/7-R/32 }, { R/6+R/10, -R/7 } }
                    };
                    #undef R

                    блядь
                    Ответить
                            • Ну а что не нравится тогда? Намного нагляднее, чем "рисует стрелу с двойным оперением и надписью ddt поверх неё". Иногда картинка лучше слов.
                              Ответить
                              • Единственная придирка по делу: нет тарасоформатирования.
                                Ответить
                              • С чего ты взял, что мне не понравилось?

                                Напротив, я умилился такой декларативности, и прием с определением макроса (чтобы не копипастить) и деопределением его после тоже милый
                                Ответить
                    • // Now where did these came from?
                      byte gammatable[5][256] =
                      {
                          {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,
                           17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,
                           33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,
                           49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,
                           65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,
                           81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,
                           97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,
                           113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,
                           128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,
                           144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,
                           160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,
                           176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,
                           192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,
                           208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,
                           224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,
                           240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255},
                      
                          {2,4,5,7,8,10,11,12,14,15,16,18,19,20,21,23,24,25,26,27,29,30,31,

                      Какие магические коньстанты )))
                      Ответить
                      • >gammatable[5][256]
                        Вроде всё понятно по названию. 5 таблиц для гаммы.
                        В каждой яркость x => y.

                        Фаулеру с Мартином нужно в взять чистый/совершенный/идеальный код, вместо Йажа-питушни.

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

                        Эта чуть темнее.
                        >{1,2,3,4,5,6,7,8,9

                        Эта ярче.
                        >{2,4,5,7,8,10,11
                        Ответить
                        • > таблицы квантайзеров

                          Ну их то вообще нереально самому вывести и заполнить, только хардкодить и остаётся?
                          Ответить
                          • Когда-то видел эксперименты, чтобы выводить их в зависимости от битрейта/контента.

                            Для низких битрейтов одни, для высоких другие более равномерные.

                            >их то вообще нереально самому вывести и заполнить
                            Реально. Но обычно тупо используют те что в референсном кодеке MPEG сделал.
                            Ответить
                          • Похоже что они они уже их генерят в зависимости от qp.
                            * AOM can operate with different ranges of quantisation matrices.
                            +   * As quantisation levels increase, the matrices get flatter. This
                            +   * control sets the flatness for luma (Y).
                            +   *
                            +   *  By default, the encoder sets this minimum at half the available
                            +   *  range.
                            +   *
                            +   * Experiment: AOM_QM
                            +   */

                            https://aomedia.googlesource.com/aom/+/master/aom/aomcx.h

                            На самом деле, не сложене тех же гамма-таблиц.
                            Ответить
                            • AOM_CTRL_USE_TYPE(AOME_SET_ROI_MAP, aom_roi_map_t *)
                              #define AOM_CTRL_AOME_SET_ROI_MAP
                              AOM_CTRL_USE_TYPE(AOME_SET_ACTIVEMAP, aom_active_map_t *)
                              #define AOM_CTRL_AOME_SET_ACTIVEMAP
                              AOM_CTRL_USE_TYPE(AOME_SET_SCALEMODE, aom_scaling_mode_t *)
                              #define AOM_CTRL_AOME_SET_SCALEMODE
                              AOM_CTRL_USE_TYPE(AOME_SET_SPATIAL_LAYER_ID, unsigned int)
                              #define AOM_CTRL_AOME_SET_SPATIAL_LAYER_ID
                              AOM_CTRL_USE_TYPE(AOME_SET_CPUUSED, int)
                              #define AOM_CTRL_AOME_SET_CPUUSED


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

                          Два примера нечитаемых портянок. Может, это таблица неизданных синглов группы Gamma Ray и тогда ты обосрался.
                          Ответить
                          • Time has come; the world lies dying
                            Our faith has gone; our souls are crying
                            Resurrecting paradise, cry for freedom
                            Killing pain, a million lies
                            Ответить
                    • commandbuf[0] -=
                      				commandbuf[0]>='a' ? 'a'-10 : '0';
                      			    commandbuf[1] -=
                      				commandbuf[1]>='a' ? 'a'-10 : '0';
                      			    commandbuf[2] -=
                      				commandbuf[2]>='a' ? 'a'-10 : '0';
                      			    commandbuf[3] -=
                      				commandbuf[3]>='a' ? 'a'-10 : '0';
                      			    commandbuf[4] -=
                      				commandbuf[4]>='a' ? 'a'-10 : '0';
                      			    commandbuf[5] -=
                      				commandbuf[5]>='a' ? 'a'-10 : '0';
                      			    commandbuf[6] -=
                      				commandbuf[6]>='a' ? 'a'-10 : '0';
                      			    commandbuf[7] -=
                      				commandbuf[7]>='a' ? 'a'-10 : '0';


                      какой анрол))
                      Ответить
  • Математики есть? Правда, что если в казино ставить на цифры, то матожидание выигрыша будет нулевое?
    Ответить
    • В казино матожидание выигрыша по определению отрицательно.
      Ответить
    • А, я понял. Ставка умножится на (количество цифр - 1), и ты все равно проебал.
      Ответить
      • Ага. Даже если бы ставка «честно» умножалась на число ячеек, получить стабильный профит с этого было бы нельзя (вернее, можно, но для этого нужен бесконечный начальный капитал, см. https://ru.wikipedia.org/wiki/Мартингейл).
        Ответить
        • Да, я такую схему в детстве придумывал, и не понимал почему её не используют.
          Ответить
          • У нас на рынке вещевом её использовали.

            Есть три лица Лох (Л) Разводила1 (Р1) и Разводила2 (Р2).

            Р1: участвуйте в бесплатной лотерее, возьмите билет
            Л (берет билет, вскрывает)
            Р2 (берет билет, вскрывает)
            Р1: Ого, Л выиграл холодильник. Ого, кажется Р2 тоже выиграл. Нужен аукцион: кто больше денег даст -- того и холодильник.

            Р2 имеет настолько больше денег, что на фоне средств Л их бесконечно много.
            Конец аукциона немного предсказуем
            Ответить
            • В чём прекол? Почему Л не может отказаться после выигрыша аукциона?
              Ответить
              • Л проигрывает (у него обычная средняя зарплата, а Р2 заранее имеет крупную сумму в размере 5-7 таких зарплат), но деньги не возвращаются.
                Это важная деталь, я забыл ее упомянуть.

                Впрочем, бывали и варианты, где Л выигрывал, но тогда вместо холодильника там был какой-нибудь плеер. Когда сумма, уплаченная Л, превышала стоимость плеера в 3-4 раза, Р2 сдавался
                Ответить
                • > но деньги не возвращаются
                  Какой аукцион )))
                  Ответить
                  • Ну ты представляешь себе вещевой рынок середины 90-х, и двух крепких Р в спортивных костюмах?
                    Там своя атмосфера
                    Ответить
    • >> за последние три года количество удаляемого контента возросло в разы

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

      https://i.ytimg.com/vi/twGphG3VOfQ/hqdefault.jpg
      Ответить
  • а посоветуйте хостинг имейлов вместо блядского яндекса. не хочу иметь с ним дел по этически-моральным причинам.

    нужно: алиасы/группы, до двадцати ящиков на домен, кетч-олл, фильтры-правила, подписи-хуёдписи и прочий spf
    желательно: веб-админка на всякий, плата не за каждого юзера, а за тарифный план, отсутствие подзалупной перхоти и вообще за пределами рф

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

              Я бесплатны только у я знаю
              Кажется, есть еще какой-то у мылору, но он еще хуевее наверняка.
              Ответить
              • да я не против баксов двадцать в месяц отваливать, просто у меня несколько доменов, и тут сразу лимит пробивается
                Ответить
                • У тебя варианты
                  * Заплатить гуглу
                  * Бесплатно юзать яндекс
                  * Заплатить студенту, чтобы он тебе всё один раз настроил на ВПСке
                  * Настроить самому. Мы можем тебе ответить на всякие вопросы, и книжку присоветовать
                  Ответить
                  • * Случайно найти уже настроенный сервер на помойке

                    А, извините, я юзера перепутал
                    Ответить
                      • Да не стертор это!

                        Кстати, написать нормальный почтовый сервер не так-то просто: нужно штудировать кучу RFC кмк
                        Ответить
                        • Доктор Стертор и мистер Файк

                          Я знаю, знаю, просто в рифму
                          Ответить
                    • Я даже и не знал, что они ещё и конкретно почту умеют.

                      На одной из предыдущих работ была система управления прости господи персоналом от Зохо.

                      С другой стороны, Zoho Corporation Private Limited is an Indian software development company, то есть, пока слоны танцуют, можно и почту успеть настроить, и тостер перепрошить, и брата застрелить.
                      Ответить
                    • вот я и спрашиваю, есть ли кто такой, но с фиксированными тарифами и чтобы не платить за лишние плюшки, а тупо почтой распоряжаться
                      Ответить
                      • Извини, не знаю. Я в своё время приделывал почту на «NGK», находил парочку подобных сервисов, но уже забыл их. В итоге остановился на собственном почтовом петухе (и это было очень, очень много пердолинга, я чуть ли не целый день ебался с этим говном).
                        Ответить
                          • Больше всего времени, ЕМНИП, ушло на ёблю с прикручиванием секьюрности. HTTPS, сертификаты, DKIM, все дела. «Dovecot» какой-то ёбанный пришлось ставить. Плюс ещё какое-то правило для вырезания моего айпишника, когда я через «Thunderbird» почту посылаю.
                            Ответить
                            • DKIM реализует opendkim, и подключается через milter (причем два раза по причине ебанутости архитоектуры постфикс с двумя точками входа).
                              Единственное, на что можно наступить, это на подключение его к постфикусу: если сделать это через domain socket, то придется smtpd (или кого-то другого) доставать из sandbox, чтобы он чужой domain socket увидел.
                              Сам автор рекомендует юзать 127.0.0.1:tcp, и течь.

                              TLS вроде тоже из коробки, нужно только пару ключей сгенерить, ну и включить два сорта (явный и неявный через starttls)

                              > HTTPS, сертификаты,
                              Причем тут постфикс? Это же не веб сервер

                              >Dovecot
                              Причем тут постфикс>? Это же IMAP сервер

                              > Плюс ещё какое-то правило для вырезания моего айпишника, когда я через «Thunderbird» почту посылаю.
                              Из заголовков? Лал, я его вроде регуляркой вырезал, Received этот ебучий. ХЗ как правильно
                              Ответить
                              • > Причем тут постфикс>? Это же IMAP сервер
                                Я почту настраивал же. Чтобы я мог читать её со своего компа, а не лазить в терминал впски на другой стороне планеты. Ну и чтобы уведомления приходили, конечно.
                                Сертификаты для «IMAPS».
                                Ответить
                                • Понятно. А HTTPS тебе для веб-морды что-ли?
                                  Еще небось и spamassasin?

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

                                  А почему не пересылать почту себе на gmail через .forward или правилом?
                                  Ответить
                                  • > А HTTPS тебе для веб-морды что-ли?
                                    Перепутал с «IMAPS».

                                    > Еще небось и spamassasin?
                                    Нет, до такого не дошло.

                                    > А почему не пересылать почту себе на gmail через .forward или правилом?
                                    А обратно как?
                                    Ответить
                                    • >А обратно как?
                                      Что обратно?

                                      FROM: petuh@petuh.org
                                      TO: gost@gost.ru
                                      Письмо идет на gost.ru, он форвардит его на gost@gmail.com. Оттуда ты забираешь его по IMAP а свой громоптах.

                                      Ответ обратно ты шлешь письмо через gost.ru по SMTP.

                                      FROM: petuh@petuh.org
                                      TO: gost@gost.ru
                                      шлется через SMTP сервер на gost.ru
                                      Ответить
                                        • Что костыли? forward?

                                          Типа лучше всю почту у себя держать, и по imap забирать?
                                          Ответить
                                            • На всякий случай напомню, что "~/.forward" файлы, вместе с обрабатывающим их доставщиком procmail, были придуманы автором книги "The art of Unix programming" когда некоторые из нас еще не родились.

                                              Ровно в таком же виде их понимает и postfix:
                                              http://www.postfix.org/local.8.html

                                              Я не считаю костылём добавление файла с емейлом в домашнюю папку, но как грит Торвальдс "I am not your mom", так что настаивать не буду)
                                              Ответить
                                              • спасибо доброму еловеку за блядь конфиг-файл вне .config
                                                Ответить
                                                • Алиасы можно настроить и в /etc/aliases, а можно в домашней папке конкретного человека.

                                                  Юзкейс там был такой: ты уезжаешь в отпуск, и просишь форвардить всю почту на другой адрес.
                                                  Ответить
                                              • Да нет, против форвардинга я ничего не имею. Мне не нравится, во-первых, лишняя зависимость от гуглопочты, а во-вторых — лишний пердолинг на стороне клиента. Так я просто ввёл адрес/логин/пароль от почтового петуха и потёк: сразу могу принимать письма, могу отправлять, и все письма (входящие и исходящие) лежат в отдельном аккаунте (в терминах громоптицы). А как схему с форвардингом нормально на клиенте настроить (ну то есть чтобы я мог отвечать одной кнопкой, например) — хз.
                                                Ответить
                                                • > Мне не нравится, во-первых, лишняя зависимость от гуглопочты,

                                                  Я не предлагаю ради этого заводить почту!
                                                  У тебя есть какая-либо почта кроме этой своей?

                                                  >а во-вторых — лишний пердолинг на стороне клиента.

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

                                                  Можно ли там выбирать FROM, который будет использоваться в зависимости от того, на какое письмо ты отвечаешь -- я хз.
                                                  А аутлуке я бы посоветовал написить макрос (это легко), в ссандерберде -- я не знаю.

                                                  Ну если эти проблемы реально стоят настройки IMAP, то ок.
                                                  Ответить
                                                  • > У тебя есть какая-либо почта кроме этой своей?
                                                    Ну либо личная гуглопочта, либо яндексопочта, либо вообще мейлру.

                                                    Кстати, с учётом алиасов гуглопочты (inbox+forwarded_from_huj@gmail.com == inbox@gmail.com) можно даже организовать автоматическое складирование всех пересланных сообщений в отдельную папку.

                                                    > Ну если эти проблемы реально стоят настройки IMAP, то ок.
                                                    Наверное. Если когда-нибудь опять ебанусь и решу проверить — скажу.
                                                    Ответить
                                                    • Может, тебе просто нравится пирдолиться?

                                                      Питухи, кстати, запилили целый DSL для фильтрации почты
                                                      https://www.ietf.org/rfc/rfc5228.txt
                                                      if size :over 100k { # this is a comment
                                                                      discard;
                                                                   }

                                                      Можно ебануться на отличнень ко
                                                      Ответить
                          • А можно ли запустить почтовый сервак на Винде? Это какой-то Аутлук придётся купить?
                            Ответить
                            • Аутлук это клиент.

                              Простейший сервер есть в IIS, но я не знаю, доступен-ли он в Win10 (возможно, что только в серверных виндах).

                              Так же очень популярен у виндоадминов MDaemon (ну или раньше был популярен), но он платный, хотя это скорее groupware: с вебмордой и пр.

                              У MS есть Exchange: это оче суровый groupware, он требует домена, и вроде использует IIS под капотом. У него есть и вебморда, и доступ по smtp/pop/imap, и по своему какому-то протоколу, и календарь, и общие папки, и форум, и ну ты понел.

                              Вот к нему можно подключаться аутлуком.
                              Ответить
                              • > MDaemon
                                - ого, почти 400 баксов. Надеюсь, за эту цену дяди уже поебались со всем, чем можно, за меня.
                                Ответить
                                • Ну судя по вики с чем-то поебались:

                                  Mdaemon supports multiple client-side protocols, including IMAP, POP3, SMTP/MSA, webmail, CalDAV, CardDAV, and optionally ActiveSync for mobile clients and Outlook, and its Connector for Outlook add-on.

                                  MDaemon's features include a built-in spam filter with Heuristic and Bayesian analysis, SSL and TLS encryption, client-side and server-side email and attachment encryption, public and shared folder support, mailing list, and support for sharing of groupware data (calendar, contacts, tasks & notes)

                                  Вот тут маркетологи Mdaemon сравнивают его с Exchange (с известным результатом), там правда соовсем другие цены

                                  http://static.altn.com/Collateral/Comparison-Guides/A4_MDaemon-Mail-Server-vs-Microsoft-Exchange-Standard_Comparison-Guide.pdf
                                  Ответить
                                  • > $ 7,458
                                    Охуеть.

                                    Впрочем, понятно: копрпоративное ПО, крупный бизнес, все дела.
                                    Ответить
                                    • Я думаю, что это они посчитали во-первых на какую-нить 1000 пользователей, во-вторых могли и присуммировать стоимость Windows Server (Exchange на десятку не ставится).
                                      Ответить
                                        • Ну там ещё небось сто одна свистоперделка типа Skype for Business, майковского аналога Конфлюенса и чёрта лысого
                                          Ответить
                                          • В Exchange 2000 был мессенджер *, потом его оттуда выкинули) Есть ли сейчас там скайп -- хз, но очень может быть.

                                            Конфлюенс у MS называется SharePoint: он вроде идет отдельно, но в Exhcange есть общие папки, в которых можно постить хуйню, и поиск по ним есть, так что какой-то аналог Confluence всё таки есть.

                                            Кстати, есть еще тоже самое в облаке: Exchange-365: там примерно такие же перделки, но на серверах MS (в Azure что-ли), то-есть ебаться с установкой не нужно.


                                            * http://techgenix.com/the_exchange_2000_server_instant_messaging_service/
                                            Ответить
                                            • Да есть, он ещё умеет смотреть в AD или как оно правильно называется в поисках календаря и информации.

                                              А щас у них ещё и Teams!

                                              Короче, есть где разгуляться. Но да, тут нужно держать целый отдел
                                              Ответить
                                              • Когда я последний раз видел exchange, он действительно брал список пользователей из AD, а календарь вроде хранил у себя, но в AD хранились адреса людей.

                                                Открываешь аутлук, и у тебя во FROM выпадающий список всех сотрудников.

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

                                                Там еще был API, чтобы делать поверх этого workflow, так что можно было наговнокодить документооборот полноценный.

                                                И специальные люди -- интеграторы -- умели "автоматизировать предприятие" с помощью этой хуйни за много денег.

                                                Но если просто нужен SMTP сервер, то вероятно хватит IIS:
                                                https://www.znetlive.com/blog/how-to-configure-smtp-server-in-windows-server-2016/
                                                Ответить
                                                      • А клиенты вообще проверяют сертификаты SMTP и IMAP?

                                                        Как я могу быть уверен, что SMTP не спуфнули, например?
                                                        Ответить
                                                        • Проверяют, точно так же, как и обычный «HTTPS». Недавно реальный пример видел, когда серт протух.
                                                          Ответить
                                                          • То-есть если у меня самоподписанный серт, то мне почту не принять с гугла?
                                                            Ответить
                                                            • Не знаю, не проверял. По идее, «Гуглопочта» должна иметь возможность откатиться обратно на 25-й порт (если ты явно не запретил), но это не точно.
                                                              Ответить
                                                              • так по 25-му можно starttls же, там нет серта?
                                                                Ответить
                                                                • Нашёл.
                                                                  >>> At the "may" TLS security level, TLS encryption is opportunistic. The SMTP transaction is encrypted if the STARTTLS ESMTP feature is supported by the server. Otherwise, messages are sent in the clear. Opportunistic TLS can be configured by setting "smtp_tls_security_level = may". For LMTP, use the corresponding "lmtp_" parameter.

                                                                  >>> With opportunistic TLS, mail delivery continues even if the server certificate is untrusted or bears the wrong name. When the TLS handshake fails for an opportunistic TLS session, rather than give up on mail delivery, the Postfix SMTP client retries the transaction with TLS disabled. Trying an unencrypted connection makes it possible to deliver mail to sites with non-interoperable server TLS implementations.
                                                                  http://www.postfix.org/TLS_README.html
                                                                  Ответить
                                    • Круто, когда ищешь на сайте цену, а тебе говорят: а ты нам напиши, а мы скажем.

                                      Вот щас пытался вспомнить, сколько стоят проприетарные лицензии на liblinphone и pjsip, а хуй.

                                      Но там тоже в килобаксах.
                                      Ответить
                        • да, у меня тоже был опыт с как раз таки постфиксом, я бы туда не хотел пока соваться
                          Ответить
      • sendmail.org/~ca/email/doc8.12
        Кстати, exim мощнее постфикса: можно нахуевертить безумные ACL.
        Вот пример работы с BATV*

        external_smtp_batv:
          driver = smtp
          return_path = ${prvs {$return_path} \
                               {${lookup mysql{SELECT \
                               secret FROM batv_prvs WHERE \
                               sender='${quote_mysql:$sender_address}'} \
                               {$value}fail}}}

        https://www.exim.org/exim-html-current/doc/html/spec_html/ch-access_control_lists.html

        Понятно, что админы без легкой степени шизофрении так не делают

        * https://en.wikipedia.org/wiki/Bounce_Address_Tag_Validation
        Ответить
  • https://habr.com/post/512126/
    > Комиссар SEC назвала запрет на выпуск Gram ошибкой
    Представитель Комиссии по ценным бумагам и биржам (SEC) США Хестер Пирс
    заявила, что запрет на выпуск токенов Gram и запуск блокчейна TON был неверным.
    Ее слова прозвучали на конференции Blockchain Association Singapore. По мнению Пирс,
    регулятор следовал ложному утверждению, что токены компании Павла Дурова являются
    ценными бумагами.
    
    «Telegram создал функционирующую сеть, добросовестно стремился соблюсти
    требования федеральных законов о ценных бумагах при привлечении средств на
    создание этой сети и активно взаимодействовал с сотрудниками SEC», — сказала
    комиссар по криптовалюте.

    Какой багор )))
    Ответить
    • >>> Комиссар Минфина назвала запрет на выпуск билетов «МММ» ошибкой
      Ответить
    • А кошелек был бы привязан к телефону?
      Ответить
      • Он, ЕМНИП, привязан к привязанному к телефону «Телеграму».
        Ответить
        • А телефон к паспорту.
          Какая секурность))
          Ответить
    • Хестер Крипточелюсть

      Йозеф, доставайте инструменты, будем измерять
      Ответить
    • Кто-то может мне перевести статью на человеческий язык?

      Что такое модель SAFT?

      Что подразумевается под покупкой токенов в спекулятивных целях? Перепродажа фантиков по бОльшей цене? Этот фактор сразу приравнивает криптоговно к ценным бумагам?

      «Я не поддерживаю мнение о том, что распределение токенов подразумевает под собой сделку с ценными бумагами» - что такое распределение токенов и бывает ли крипта без него?

      Howey Test та ещё забавная шняга, кстати
      https://www.investopedia.com/terms/h/howey-test.asp
      Ответить
  • Вы ещё не обнулились?
    Держите ещё порцию говна.

    Поправки, принятые в федеральный закон о защите озера Байкал, разрешают проведение сплошных рубок.

    Параллельно к рассмотрению в первом чтении в Госдуме готовят законопроект, позволяющий правительству России изменять границы национальных парков. Поправки внесены в Госдуму группой депутатов и сенаторов, представляющих «Единую Россию». Отсутствие такого механизма мешало реализации крупномасштабных проектов вроде прокладки дублёра Щёлковского шоссе через «Лосиный остров» в Москве, изъятие месторождения золота из «Югыд ва» в Республике Коми или расширение горнолыжных курортов в Сочинском нацпарке. Экологи опасаются, что поправки «девальвируют борьбу за целостность нацпарков, которая велась последние десять лет».

    Какая защита природных ресурсов )))
    Ответить
    • Проголосуйте за новую конституцию с вечным Путиным, это защитит котиков, природу, и родной язык.

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

        «Все животные равны, но одно животное равнее других».
        Ответить
    • Ну да, сами ж не дали назвать дальвика жабой. Вот и соснули. Теперь 3 миллиарда девайсов не у них.
      Ответить
        • Почему тогда для запуска приложения в «ART» мне нужно готовить dex-файл с опкодами «Дальвика»?
          Ответить
          • В те годы, когда Инью коммент написал два часа назад?
            Ответить
              • Тут тоже смешно: официальный способ получения dex-файла — это трансляция жабьих class-файлов транспилером «dx». Т. е. предварительно нужно получить байткод «JVM». Хотя этот этап можно было пропустить, если ты настолько скилловой, что можешь сразу генерировать байткод «Дальвика».

                Кстати, какие конпеляторы умеют получать байткод «Дальвика» напрямую?
                Ответить
                • Но как? Где у тебя копмилятор жабы в дальвик?
                  Ответить
                  • «dx.jar» (да, для запуска его требуется «JVM») является частью «Android Studio» (или как там этот комплект называется).
                    Ответить
                    • ".java -> байткод дальваика" ?
                      без javac?
                      воу
                      Ответить
                      • Нет, после «javac».

                        dx умеет class-файлы переводить в «Дальвик».

                        А чем ты получил class-файлы — это твоё дело. Можешь получить из «Йажи», можешь из «Коко», можешь из какого-нибудь «MIDletPascal» (если библиотеку допилишь).
                        Ответить
                        • Так я про это знал.
                          Я спросил "Где у тебя копмилятор жабы в дальвик?"

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

Добавить комментарий для guest Отменить ответ

Семь раз отмерь — один отрежь, guest!

    А не использовать ли нам bbcode?


    8