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

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    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, 18 Июля 2020

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

    • Добрый вечер.
      Ответить
    • Петух, какая погода в Яунде, петух?
      Ответить
    • https://kod.ru/net-prichin-pochemu-durov-prodast-ili-solyet-telegram/

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

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

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

                А так 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, если что
            Ответить
            • показать все, что скрытоvanished
              Ответить
              • > молодежь реально дрочит на такую вот не очень хорошо нарисованную анимешную модель?

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

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

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

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

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

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

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

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

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

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

                      За такое можно даже и дороже платить.
                      Ответить
      • показать все, что скрытоvanished
        Ответить
    • показать все, что скрытоvanished
      Ответить
      • > 14 июля 2020 в 11:57
        > Ubuntu 18.04
        Ответить
      • сука, они еще и берут "разовый инсталляционный платеж" за впс
        Ответить
        • Арендуя сервера у российского хостера всегда будь готов либо к наёбу, либо к проёбу.
          Ответить
      • они там еще со серьезными щами обсуждают в комментариях, какой подход лучше. самый топовый комментарий пока вот этот:

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

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

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


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

          PS, спокойно смотрю 4К-видео с «Ютуба» через «OpenVPN» на дешёвой впске со стамегабитным каналом (полнодуплексным). Неужели этого мало?
          Ответить
          • показать все, что скрытоvanished
            Ответить
          • просто дядьке выдавали один процент от заявленного трафика на его ссаной виртуалке, и он, скрепя сердцем, заплатил за такой же виртуальный гигабит.
            другого сетевого опыта у него очевидно не было.
            Ответить
          • а я взял впс на хецнер клауде за три евро, там полный гигабит, и я вытягивал на своем десктопе полгигабита, хоть и с латенси в 60 мс и это всё еще и через 802.11ax, отсосите!
            Ответить
            • Какой скилл )))

              Я хостера подбирал с нормальным ToS, специально под личный «VPN».
              Он, конечно, не очень скилловый, и иногда ложится поспать, но зато явно разрешает «VPN» и находится в более-менее интернет-свободных странах (как физически, так и юридически). Я через него даже торренты гоняю.
              Ответить
              • ну, строго говоря 60мс это до серверов спидтеста, хер знает с чем связано, так-то он достаточно шустрый, чтобы через него постоянно сидеть
                Ответить
                • Ну Хецнер — это Германия, где-то для середины России 60 миллисекунд это норма. До моей впски, например, чуть меньше, но несущественно (55 миллисекунд дом->впс->8.8.8.8, 6.9 миллисекунд впс->8.8.8.8).
                  Ответить
                  • показать все, что скрытоvanished
                    Ответить
                    • Именно поэтому я за «Америку».
                      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» на ней весьма… увлекательна.)
                      Ответить
                      • показать все, что скрытоvanished
                        Ответить
                        • > Это пинг из дому.
                          Ага, я понял. У меня из дома всё печальнее.
                          $ 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»).
                      Ответить
                  • показать все, что скрытоvanished
                    Ответить
                    • я сначала хотел взять хетцнеровскую впску в финляндии, которая ко мне гораздо ближе

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

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

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

                  какой ростелеком )))
                  Ответить
                  • показать все, что скрытоvanished
                    Ответить
                    • так я не пингую, мне трейсроут сообщает, через сколько ему уведомление пришло. да и вся цепочка после этого хоста идет с такой же задержкой + копейки
                      Ответить
                      • показать все, что скрытоvanished
                        Ответить
                        • Подтверждаю. Реальный пример:
                          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 — чуть больше одной.
                          Ответить
                          • показать все, что скрытоvanished
                            Ответить
                            • 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?
                              Ответить
                              • Оказывается, у неё есть графическая версия под «иксы»:
                                https://www.bitwizard.nl/mtr/screenshots.html
                                Ответить
                              • > libavahi-client3 libavahi-common-data libavahi-common3
                                > libcups2
                                Только почистишься от этого говна, а оно опять лезет.
                                Ответить
                            • 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 могут откликаться разные физические сервера, поэтому и задержка скачет.
                            Ответить
                            • показать все, что скрытоvanished
                              Ответить
                            • > При трассировке на разных шагах на 8.8.8.8 могут откликаться разные физические сервера, поэтому и задержка скачет.
                              Вряд ли у меня маршруты перестраиваются каждую секунду. К тому же, сам пинг до 8.8.8.8 не меняется, как и маршрут.
                              Ответить
        • блядь, невыносимо

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

          zacisco сегодня в 13:42
          а ничего, что в той же бунте есть remote desktop, зачем ещё что-то ставить и городить огород?
          Ответить
      • показать все, что скрытоvanished
        Ответить
        • Охуенная статья! Можно отправлять на «Хабр».
          UPD: А, она уже отправлена… Какой багор )))
          Ответить
        • > 6. Зависимости стоит использовать тогда, когда они нужны

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

          Так что могу согласиться только по поводу сore toolchain.
          Ответить
    • Как реализована такая хуета, что при переходе с айфона по ссылке https://yandex.ru/maps/-/CCQlZRccOA открываются «Яндекс.Карты», если они установлены?
      Ответить
      • показать все, что скрытоvanished
        Ответить
        • Там ещё перед этим:
          <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">
          Ответить
        • А вот документация по «al»:
          https://developers.facebook.com/docs/applinks/metadata-reference/
          Ответить
          • А при чем тут "Facebook"?
            Ответить
            • Он придумал этот стандарт. Некоторые приложения (возможно, даже некоторые веб-браузеры) его подхватили: они сканируют N первых килобатов HTML-кода на предмет наличия фейсбуковских тегов.
              Ответить
        • Да можно просто дёрнуть кастомную схему (yandexmaps), если приложение установлено, оно и откроется.
          Ответить
          • показать все, что скрытоvanished
            Ответить
            • Недолгая гуглёжка:
              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-файлы грузятся не сразу, а по хитрому условию. Т. е. если какие-то условия не выполнены, страница их может вообще не запросить.
                      Ответить
              • показать все, что скрытоvanished
                Ответить
      • при переходе с айфона по ссылке https://yandex.ru/maps/-/CCQlZ RccOA открываются «Яндекс.Карты» — такая хуета!
        Ответить
    • Почему у «PHP» плохая репутация?

      https://qna.habr.com/q/173757
      Ответить
    • https://habr.com/post/511728/
      > Старший инженер-проектировщик Dyson — о новых пылесосах, не взлетевших продуктах и R&amp;D
      Какой &amp; )))
      Ответить
    • 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». Отвратительно.
      Ответить
      • Да тут, похоже, дело даже не в PHP...
        Ответить
      • показать все, что скрытоvanished
        Ответить
        • Подтверждаю.
          Ответить
        • Да ладно, учитывая, на каком сайте автор задал вопрос и что он уже и так испорчен пнёй, то нормальное решение. Можно сразу копировать в продакшен и заливать по 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. В третий раз пробегаем циклом по тем же элементам, но уже для того, чтобы посчитать сумму.
          Ответить
          • показать все, что скрытоvanished
            Ответить
            • Возможно.

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

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

              Ну это примерно как range в «Python 3» или xrange в «Python 2».
              Ответить
        • >поэтому я за изучение основ прогаммирования на борланд паскале

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      Какой антураж )))
      Ответить
      • На флоппи в более-менее терпимом качестве только одна фотка влезет. Возможно, у тех камер разрешение было на уровне пиктограмм.
        Ответить
        • показать все, что скрытоvanished
          Ответить
        • 1997-ой год, про качество речь не идёт)

          https://www.youtube.com/watch?v=3Nu6C-Ci7_Q

          Фотка со сжатием вышла в 44кб.

          Можно сохранить в битмап, тогда да, только одна влезет.
          Ответить
          • >> Memory Stick floppy disk adapter.

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

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

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

              Боже, какую хуйню придумывали в 90-е!
              Ответить
            • > Он имитирует магнитное поле дискеты
              Какие нанотехнологии )))

              Впечатляет, на самом деле. Как это делалось, интересно?..
              Ответить
              • показать все, что скрытоvanished
                Ответить
                • Про одну из таких диковин даже есть статья в «Вике»:
                  https://en.wikipedia.org/wiki/FlashPath

                  «FlashPath» требовал наличия специального драйвера. Возможно, этот драйвер устанавливал головку на определённую дорожку.
                  Ответить
                  • P.S. Соньковский адаптер тоже без драйвера не работал:
                    https://www.sony.ru/electronics/support/res/manuals/3868/38683262M.pdf
                    Ответить
            • Ещё из интересного:

              https://www.youtube.com/watch?v=QEZEVy6aIww
              - уже упомянутый ЭЛТ-монитор с резистивным тачем из 1991-го

              https://www.youtube.com/watch?v=olmM3tNqHys
              - беспроводная клавиатура 1984-го года выпуска

              https://www.youtube.com/watch?v=fCWLaAwr3sM
              - формат виниловых видеодисков

              https://www.youtube.com/watch?v=hXk1AjRT2Pk
              - эквалайзер, который вставлялся в разъём флоппика. Абсолютно ненужная хуета, которую я при этом емнип когда-то даже встречал в реальной жизни.

              На закуску узнал, что есть Википедия на упрощённом английском:
              https://simple.wikipedia.org/wiki/Main_Page

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

      > 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.
      Ответить
    • https://i.imgur.com/ADRum1p.png
      Какой багор )))
      Ответить
    • показать все, что скрытоvanished
      Ответить
      • > если вы не математик и не говорите о личной жизни гомосексуала — не употребляйте слово «функционал». Никогда!
        Какой #include <functional> )))
        Ответить
      • >> 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/
          Ответить
          • показать все, что скрытоvanished
            Ответить
            • > мне это очевидно
              > было
              > до твоего поста
              Какой багор )))
              Ответить
            • Тут всё просто.

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

            Зима 2020-го года уже прошла или ещё только будет, например?
            Ответить
      • показать все, что скрытоvanished
        Ответить
      • https://cs5.pikabu.ru/post_img/big/2015/02/25/10/1424886189_922556378.png
        Ответить
    • показать все, что скрытоvanished
      Ответить
    • В чём отличие свиньи от кабана? Тонкая неочевидная грань
      https://zen.yandex.ru/media/knigajivotih/v-chem-otlichie-svini-ot-kabana-tonkaia-neochevidnaia-gran-5ede036c1394a14a1cc55cbd

      Однако, приготовься, читатель, сейчас будет шок-контент: свинья и кабан — это буквально одно и тоже!

      Кеп с хабра сбежал
      Ответить
    • показать все, что скрытоvanished
      Ответить
    • Пишут и пишут, стандарт, классы какие-то... Голова пухнет.

      http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3662.html#Builtin

      Вопрос.

      А чем крестовый dynarray лучше сишных VLA?
      Ответить
      • Ничего не понимаю. Сначала сделали какую-то дичь, потом поняли что обосрались и дропнули.

        Есть какой-то способ в С++ аллоцировать VLA на стеке?
        Ответить
        • > Есть какой-то способ в С++ аллоцировать VLA на стеке?
          alloca().
          Ответить
          • показать все, что скрытоvanished
            Ответить
            • Потому что не «C++» и не «VLA» (во всяком случае, не то, что под ним подразумевается в «C»).
              Ответить
              • показать все, что скрытоvanished
                Ответить
                • > А чем не VLA?
                  Синтаксис не тот. «VLA» — это когда «int x = rand(); int arr[x];».
                  Ответить
                  • показать все, что скрытоvanished
                    Ответить
                  • Там ещё был багор, что при инлайнах функций, на некоторых компилерах стек переполнялся.

                    for (i=0;i<1000000:++i){
                        foo()
                    }
                    //42000000 allocated
                    
                    inline void foo()
                    {
                          char * = alloca(42);
                    }
                    Ответить
                    • показать все, что скрытоvanished
                      Ответить
                      • Ну да, у foo()-то своего стекфрейма нет.
                        Ответить
                      • Наивный. Жить оно будет до конца функции, когда придёт mov esp, ebp и почистит стек вилкой.
                        Ответить
                        • показать все, что скрытоvanished
                          Ответить
                          • Проверил.
                            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 просто отнимается очередной гигабайт. Какой багор )))
                            Ответить
                            • показать все, что скрытоvanished
                              Ответить
                            • А вообще — эпическое дерьмо. Все вот эти вот кручу-верчу-imul-и-div-хочу конпелятор мог бы просто заменить на «sub rsp, 1073741840». Да и дальнейшие манипуляции с shr/sal полностью бессмысленны, rax уже и так по 16-и байтам выровнен. Не говоря уже о бессмысленной записи этого значения куда-то в стек. Какой говнокод )))
                              Ответить
                            • Мдяя.

                              Выходит сколько лет прошло, а вот по-прежнему, если gcc попросить хорошенько, то он с радостью распидорасит стек.
                              Ответить
                              • Именно поэтому я за «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.
                              Ответить
                              • показать все, что скрытоvanished
                                Ответить
                                • Фактически получается, что alloca — аналог локальных переменных функций, но с существенной разницей: размер локальных переменных известен на этапе компиляции, а размер места, выделенного alloca, может варьироваться при каждом вызове функции.
                                  Ответить
                                • >Там ещё был багор, что при инлайнах функций, на некоторых компилерах стек переполнялся.

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

                                  >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 между итерациями.
                        Ответить
                    • показать все, что скрытоvanished
                      Ответить
                      • А здесь конпелятор достаточно умён, чтобы уничтожить p. Грубо говоря, вызов foo() будет представлять из себя что-то вроде
                        ; ... вызывающая функция
                        add esp, 1_gig
                        ; Работаем с p
                        sub esp, 1_gig
                        ; ... вызывающая функция
                        .
                        Ответить
                        • показать все, что скрытоvanished
                          Ответить
                          • Подозреваю, что после alloca() конпелятор просто теряет полученное значение из вида, оно для него ничем не отличается от обычного у-ко-ко-ко-зателя. Но это просто мои подозрения, как оно там на самом деле — хуй знает.
                            Ответить
                            • показать все, что скрытоvanished
                              Ответить
                              • Исчёрпывающе же:

                                >придёт mov esp, ebp и почистит стек вилкой
                                https://govnokod.ru/26809#comment561148
                                Ответить
                              • «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 свободен, долбоёб?!
                                Ответить
                                • показать все, что скрытоvanished
                                  Ответить
                                • >> 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. Причём ассемблер за тебя это не сделает, это надо сделать явно.
                                        Ответить
                                        • https://alisdair.mcdiarmid.org/arm-immediate-value-encoding/
                                          Проверь. Там 8 бит на значение и 4 бита на смещение. Редкостное говно.

                                          P. S. Доброе утро.
                                          P. P. S. Не заметил https://govnokod.ru/26809#comment561192. Ладно, похуй.
                                          Ответить
                                          • Доброе утро. Ну я же говорю, плавающий питух. С восьмибитной мантиссой и четырёхбитным порядком, ага.

                                            Откопал заметку с более интересными примерами:
                                            @ умножение на 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.


                                                          Правда АРМ не рискуха в классическом понимании. От рискухи там только фиксированная длина команды, много регистров и всякие тупые ограничения.
                                                          Ответить
                            • Вот эта питушня с defer, которую предлагали в новый стандарт. https://govnokod.ru/26687#comment549271

                              Меня ещё тогда насторожила https://govnokod.ru/26687#comment552172

                              Говнище, почище лалоки.

                              Собрал с -fomit-frame-pointer и обосрался.
                              Ответить
          • Спасибо за ценный совет.

            Разве lallocу в Стандарт привезли?
            Ответить
            • > Разве lallocу в Стандарт привезли?
              Неа.
              Ответить
        • показать все, что скрытоvanished
          Ответить
          • МС-онли-питушня.
            Ответить
            • показать все, что скрытоvanished
              Ответить
              • Все лаллоки заслуженно считаются ещё большим говном чем VLA. (багры с инлайном).

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

                Короче, ясно

                Кресто-аллки опять слились божественной Сишке.
                Ответить
                • показать все, что скрытоvanished
                  Ответить
                  • У дедов была только божественная Сишка и прямые руки.

                    github.com/id-Software/DOOM
                    Ответить
                    • показать все, что скрытоvanished
                      Ответить
                      • а, так вот что такое R&D
                        Ответить
                        • Бывает R&D.
                          Бывает D&D.
                          А бывает R&R. А теперь слайды.
                          Ответить
                      • Дык всё прокомментировано же.
                        Ответить
                      • // 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,

                        Какие магические коньстанты )))
                        Ответить
                        • показать все, что скрытоvanished
                          Ответить
                        • >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

                              На самом деле, не сложене тех же гамма-таблиц.
                              Ответить
                          • показать все, что скрытоvanished
                            Ответить
                          • Да пиздец, всё понятно, конечно.

                            Два примера нечитаемых портянок. Может, это таблица неизданных синглов группы 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
                              Ответить
                      • показать все, что скрытоvanished
                        Ответить
    • https://coub.com/view/2gxkhh
      Ответить
    • Математики есть? Правда, что если в казино ставить на цифры, то матожидание выигрыша будет нулевое?
      Ответить
    • показать все, что скрытоvanished
      Ответить
      • >> за последние три года количество удаляемого контента возросло в разы

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

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

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

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

      Какой багор )))
      Ответить
      • >>> Комиссар Минфина назвала запрет на выпуск билетов «МММ» ошибкой
        Ответить
      • показать все, что скрытоvanished
        Ответить
      • Хестер Крипточелюсть

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

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

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

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

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

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

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

      Какая защита природных ресурсов )))
      Ответить
    • У ЙАЖИ теперь нету 3 биллиона девайсов :(

      https://sun9-17.userapi.com/c853520/v853520002/25065f/pYTmfE7jLpQ.jpg
      Ответить
    • показать все, что скрытоvanished
      Ответить
    • Перекат!

      https://govnokod.ru/26817 https://govnokod.xyz/_26817
      Ответить

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