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

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 Оффтоп #48


#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

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

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

        • Журнал «Canard PC».

          «Canard» — это утка внезапно. Употребляется как в прямом смысле (означает птицу), так и в переносном (означает непроверенную информацию в СМИ).

          Первыми непроверенную информацию называть уткой начали немцы. По-латыни «не проверено» = «non testatur», сокращённо «NT». Сокращение читается как «энтэ», а в немецком слово «Ente» означает утку (в смысле птицу).

          Интересно, что этот термин как калька вошёл и в другие языки.
          Ответить
            • Я однажды видел французскую клавиатуру. На ней была клавиша «Annuler» (вместо «Delete», если не путаю).
              Ответить
              • а компутер знаешь как будет по ихнему?
                Ответить
                    • Немцы, кстати, тоже часто употребляют сокращение «PC». У немцев ещё есть слово «Rechner» (дословно «решатель», но обычно этим словом называют микрокалькуляторы) и термин «elektronische Datenverarbeitungsanlage» (буквально «электронное данноперерабатывающее устройство», почти как наш термин «ЭВМ»), но последний термин слишком пафосный и употребляется, пожалуй, только в их ГОСТах.
                      Ответить
                      • У немцев еще был Планкалкюль, лол.

                        Если бы гилтер не откатил Гермашку в жопу своей талантливой внешней политикой, то возможно первые компы начали бы массово внедрять именно там в 40-х -- 50-х. Ща бы питухи учили немецкий
                        Ответить
                    • Интересно у французов:
                      ноутбук — ординатёр портабль;
                      настольный комп — ординатёр дэ бюро;
                      планшет — таблет тактиль или таблет нумерик;
                      КПК — ассистант перзонель;
                      мейнфрейм — ординатёр сентраль.

                      Рабочая станция — стасьён дэ травэль.
                      Ответить
                      • Париж узнал стасьёна дэ травэээээээля
                        Ответить
                        • Ты не радуйся. Скоро общество лишится своего, гм, члена, в твоём лице.
                          Ответить
  • Из distutils/ccompiler.py
    # Map compiler types to (module_name, class_name) pairs -- ie. where to
    # find the code that implements an interface to this compiler.  (The module
    # is assumed to be in the 'distutils' package.)
    compiler_class = { 'unix':    ('unixccompiler', 'UnixCCompiler',
                                   "standard UNIX-style compiler"),
                       'msvc':    ('_msvccompiler', 'MSVCCompiler',
                                   "Microsoft Visual C++"),
                       'cygwin':  ('cygwinccompiler', 'CygwinCCompiler',
                                   "Cygwin port of GNU C Compiler for Win32"),
                       'mingw32': ('cygwinccompiler', 'Mingw32CCompiler',
                                   "Mingw32 port of GNU C Compiler for Win32"),
                       'bcpp':    ('bcppcompiler', 'BCPPCompiler',
                                   "Borland C++ Compiler"),
                     }

    Реально есть официальная сборка «CPython» бормандовским конпелятором?
    Ответить
  • Илон Макс успешно запустил в космос «Falcon 9» с двумя космонавтами.
    Ответить
    • Возврат первой ступени выглядел как фейк. Сигнал пропал прям в самый интересный момент и потом раз и всё уже на месте. Походу они её всё-таки проебали, но решили не портить впечатление этой мелочью...

      А в остальном - круто всё.
      Ответить
      • Только я не понял, в чём сложность запустить космонавта в космос? Такое же хуй знает сколько лет умеют.
        Ответить
        • Америка последние 9 лет не умела, лол. После того как шаттлы закопали.

          Вот собственно первый запуск после перерыва.
          Ответить
          • А как же фотки и видео их космонавтов вместе с российскими на МКСе?
            Ответить
            • Дык там полно космонавтов, страны которых вообще никого никогда сами не запускали.
              Ответить
            • Да нет, проблема как всегда в бабле. Люди в космосе никому особо не интересны. Риска очень много, а профита мало. Проще запустить ещё пучок спутников, а пара-тройка космонавтов и на Союзе долетит.

              Грустно это всё.
              Ответить
              • Так Маркс планирует зарабатывать на космическом туризме. Клиенты есть.
                Ответить
                • Ну я надеюсь, что у Макса что-нибудь получится. Туризм - ну х.з., это для Макса больше PR чем доход, имхо. По сравнению со спутниками выглядит не особо прибыльно. И на первом факапе может закрыться навсегда.

                  В худшем случае это будет самая дорогая реклама Теслы (там минут 10-20 показывали как они едут к ракете). Ну и по крайней мере будет чем людей с орбиты снять если наши обосрутся. А то единая точка отказа - это совсем не айс.
                  Ответить
                  • В смысле у нас единственный аппарат, который может сгонять на МКС?
                    Ответить
                    • Внезапно, но да. Грузы то много кто мог туда дотащить - европка, япошки, тот же Маск. А вот людей после смерти Шаттлов только на Союзах возили.

                      Именно поэтому этот запуск Dragon'а был так важен.
                      Ответить
                      • Да еще и дешевле. 55 лямов за человека у амеров, 80 - у нас.
                        Ответить
                        • Глупо сравнивать цену задранную монополистом с ценой заниженной любителем хайпа 😉

                          Вот поработают вместе пару лет, тогда уже можно будет смотреть на цены.
                          Ответить
        • Я так понимаю, что это была первая негосударственная фирма, т.е. такое себе космическое такси. Монополия сломана.
          Ответить
          • Да, и это самое крутое.

            Маск не только провернул на хую рогозина (который ничего не умеет, кроме того, что воровать и нести свою черносотенную фаш-хуйню) но и бюрократов из NASA. И это лулзовее всего.

            Через двадцать лет у нас будет пол сотни фирм, которые умеют летать на МКС. И туда не только Шимоньи с Шатлвротом, но и сраные питузы будут на выходные летать
            Ответить
            • Интересно, какие перспективы у полётов на выходные.

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

              С другой стороны, статус и подтверждающий сертификат с подписью Маска.

              В любом случае, очередь первые годы будет. Чисто потому, что даже если захочет каждый миллионный, будет уже людей на провинциальный американский городок.
              Ответить
        • >в чём сложность запустить космонавта в космос?
          >Такое же хуй знает сколько лет умеют.

          Автомобили на батарейках тоже хуй знает сколько лет умеют (с начала ХХ века).
          Но пиар и хайп превыше всего.
          Ответить
          • А вот тут не соглашусь. В такой питушне важны конкурентноспособность и инфраструктура.

            Есть несколько стадий:
            1. Наука открывает какой-то принцип.
            2. Строят первые рабочие экземпляры на этом принципе.
            3. Начинают производить первые массовые партии.
            4. В Больших Лопухах можно осуществить гарантийный ремонт или достать детали.
            5. Питушня на основе этого принципа стоит не дороже, чем её аналоги на другом принципе.

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

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

            А по факту какой-нибудь математик из раш-ки не купит SSD, который стоит на 50% дороже HDD или молоко, которое стоит на 10 рублей дороже аналога. Речь даже не идёт о том, чтобы не покупать продукт, который в сто раз дороже или в десять. Массы не купят уже питушню, которая в два раза дороже, либо для которой запчасти нужно выписывать из Москвы или из Парижу. А новые технологии стоят дорого, для них быть на порядок дороже - вполне нормально, и даже немножко успех.

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

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

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

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

    На почти чистую систему установил «Python 3.8.3», скачанный с python.org. Настройки по умолчанию.

    По ссылке, которую я показывал, скачал «Visual Studio Build Tools». В инсталляторе выбрал список отдельных пакетов и поставил всего две галочки:
    • MSVC версии 140 (хотя я лох, надо было выбирать 14.25, потому что Python 3.8.3 пишет «MSC v. 1925», но они совместимы, так что пофигу).
    • SDK для Windows 10 (можно выбрать любой билд).

    Инсталлятор установил 97 пакетов.

    Обновляю pip:
    py -3 -m pip install --upgrade pip

    Создаю чистую директорию и в ней ввожу команды:
    py -3 -m pip download bitarray
    py -3 -m pip wheel bitarray-1.2.2.tar.gz

    Матерится, что не понимает команду «bdist_wheel» и подсказывает, что нужно установить пакет «wheel». Ставим:
    py -3 -m pip install wheel
    py -3 -m pip wheel bitarray-1.2.2.tar.gz

    Как ни странно, компилируется (и даже SDK автоматически подцепился), но не линкуется. Оказывается, не может найти rc.exe. Он находится в директории SDK, а не компилятора. Вот уроды... Добавляем в PATH:
    set PATH=%PATH%;C:\Program Files\Windows Kits\10\bin\10.0.18362.0\x86
    py -3 -m pip wheel bitarray-1.2.2.tar.gz

    Теперь даже линкуется, получаем колесо: bitarray-1.2.2-cp38-cp38-win32.whl.

    А теперь твой любимый mitmproxy:
    py -3 -m pip install mitmproxy --log pituh.log

    Выгрызка из лога:
    Successfully built urwid kaitaistruct pyperclip blinker ruamel.yaml.clib

    Пять пакетов скомпилировано. Сообщений об ошибках нет.
    mitmproxy.exe появился в директории Scripts.
    Ответить
    • а теперь найди файл vsvars32.bat и запусти его
      и проверь, есть ли в пасе что нужно
      Ответить
      • Не скажу за build tools, но у обычной установки студии даже ярлык в пуске есть, который запускает сосноль с нужным окружением. Чот в духе visual studio XXXX command prompt.
        Ответить
        • и у билдтулз есть
          а у студии даже есть пункт в меню tools.
          и оба запускают этот батник

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

            Ладно, скажу. Билдтулз добавляет точно такой же пункт в меню «Пуск». Любая блондинка может выбрать пункт «Visual Studio 2019 → Visual Studio Tools → Developer Command Prompt», откроется чёрный экранчик, и оттудова будут запускаться cl.exe, rc.exe, и даже компилироваться колёса.
            Ответить
            • тогда я не понимаю, в чем семина проблема
              Ответить
              • Видимо в инструкции по установке пакетов это не написано?
                Ответить
                  • If the package's setup.py (still) uses distutils rather than the recommended setuptools, you may need extra steps:

                    • distutils only supports the very minimum of compiler setups. The sections in this guide corresponding to them explicitly mention distutils.

                    • For other setups, you need to run the compilation from the "SDK prompt" of the corresponding toolchain and set the DISTUTILS_USE_SDK environment variable to a non-empty value.

                    Тут даже упомянули «SDK prompt», но новичок может не догадаться, что это такое.
                    Ответить
                    • > explicitly mention

                      Ааа, дошло. distutils умеет детектить только полноценную установку студии. Причём только 2015, 2010 и 2008. А BuildTools он юзать без пердолинга с соснолью не умеет.
                      Ответить
                      • Охуеть, правда?

                        Building wheel for brotlipy (setup.py) ... error
                        ...
                         error: Microsoft Visual C++ 14.0 is required. Get it with "Build Tools for Visual Studio": https://visualstudio.microsoft.com/downloads/

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

                          c:\program files (x86)\microsoft visual studio 14.0\vc\bin>c:\temp\py38\Scripts\activate
                          
                          (py38) c:\program files (x86)\microsoft visual studio 14.0\vc\bin>pip install brotlipy
                          Collecting brotlipy
                            Downloading brotlipy-0.7.0.tar.gz (413 kB)
                               |████████████████████████████████| 413 kB 656 kB/s
                          Requirement already satisfied: cffi>=1.0.0 in c:\temp\py38\lib\site-packages (from brotlipy) (1.14.0)
                          Requirement already satisfied: pycparser in c:\temp\py38\lib\site-packages (from cffi>=1.0.0->brotlipy) (2.20)
                          Building wheels for collected packages: brotlipy
                            Building wheel for brotlipy (setup.py) ... done
                            Created wheel for brotlipy: filename=brotlipy-0.7.0-cp38-cp38-win32.whl size=344289 sha256=4c1056f79c3399d1095ed1a78796601dab1ae1df746ce043c367e3b4eded5fed
                            Stored in directory: c:\users\MAKAKA\appdata\local\pip\cache\wheels\cf\1a\c2\6960e0438c1b79edcee75bc8a2a34e972a93ef5738f8e28e03
                          Successfully built brotlipy
                          Installing collected packages: brotlipy
                          Successfully installed brotlipy-0.7.0
                          
                          (py38) c:\program files (x86)\microsoft visual studio 14.0\vc\bin>
                          Ответить
                          • А вдруг он не троллит, а и вправду возникла какая-то проблема? Вдруг «билдтулз» установлены для одного юзера, а он сейчас залогинен другим? Вдруг он нужные галочки не поставил, например, установил компилятор C#, а C++ не установил или установил «Clang» вместо «MSVC»? Или реестр чем-нибудь загажен, так что есть фейковые записи о «Visual Studio», ведущие в пустоту?
                            Ответить
                            • мы бы всё это поняли, если бы хоть раз увидели его аутпут

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

                                  я два раза сказал скомпилировать cl.exe простую программу хеллу ворлд на си. Где это всё?
                                  Ответить
                      • У меня «distutils» почему-то детектирует «Build Tools».

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

                      Если ты пишешь документ для django girls, которые день назад начали изучать программирование, то конечно нужно делать скриншоты установки питона на винду.

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

                          Алсо, проблема не в незнании (все мы чего-то не знали когда-то), а в неумении сформулировать проблему.

                          Прочитать ошибку о ненахождении cl.exe, и пойти с ней разбираться.
                          Ответить
                          • Я же сформулировал: я поставил то что модуль просил - а он не компилируется. Дальше ковыряться с чужим модулем я в гробу видал.
                            Ответить
                            • У меня скомпилировался
                              У Икануса скомпилировался
                              А у тебя нет

                              Может, в консерватории что-то подправить?
                              Ответить
                              • Я тоже думаю, что проблема в консерватории.

                                Сёма в учебном заведении изучал «Питон» — у него не компилируется.

                                Я «Питон» в учебных заведениях не изучал — у меня всё работает.

                                Может быть, их там неправильным вещам учат?
                                Ответить
                                • Но разве в учебном заведении тебя учили ставить mitmproxy на python38?
                                  Ответить
                                  • Не учили. Поэтому и возникает вопрос, почему у «математика из рашки» всё устанавливается, а у германского программиста — нет.
                                    Ответить
                                    • может, там нужна была математика? Тебе случайно не приходилось диффуры использовать, чтобы поставить пакет?
                                      Ответить
                                      • Диффуры не пригодились, а вот топология помогла. Пришлось пересечения множеств считать.
                                        Ответить
                      • Пидорас анонимный, у тебя волшебным образом юзеры делятся для тех кому для мастера нужны скриншоты (уметь юзать мастер называется продвинутый пользователь, к программированию вообще не имеет отношения, идиота кусок!) и те кто за каким-то хером умеют работать с си(++) или готовы ковыряться с чужими модулями дальше pip install. Прав я был, анонимов надо скрывать.
                        Ответить
                        • Если для тебя установка sdk это "ковыряться", то ок.

                          Сиди на линуксе или маке: там компилятор проще ставица
                          Ответить
                          • Я же писал: билет тулзы поставил, ничего не завелась.
                            Ответить
                            • А сборку колёс запускал из обычного cmd или из visual studio command prompt как инканус и гость предлагали?
                              Ответить
              • Я тоже. Он так долго настаивал, что проблема именно в «Питоне 3.8» и именно в пакете «mitmproxy», что я поверил, что у него и вправду серьёзная проблема, и решил пройти все шаги с самого начала.

                Бывает же, что какой-то пакет сломан и без хаков не поставить...
                Ответить
                • Можно включить бритву Оккама

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

                  Если бы там было все так плохо, то наверное это было бы указано в документации.
                  Ответить
                • Русьня не мыслит себя без бутылки в жопе. За каким хуем я вообще должен ебаться, чтобы поставить написанное другим человеком? Тут еботни реально больше, чем поставить прыщи в виртуалку / wsl.
                  Ответить
                  • >За каким хуем я вообще должен ебаться, чтобы поставить написанное другим человеком?

                    Потому что ты хочешь это использовать.


                    На самом деле ты не должен, конечно. Никто не заставляет тебя использовать этот пакет. Можешь просто не использовать его, и всё.
                    Ответить
            • Твоя блондинка яйцами немытыми не воняет?
              Ответить
            • Специально для тебя, петуха, это сделал - нет, как раньше не собиралось, так и сейчас.
              Ответить
              • Что я неправильно делаю? Поставил «Python» и «Visual Studio Build Tools» на чистую систему. Даже специально галочек ставил по минимуму (всего две). Всё работает, только пакет wheel пришлось установить через pip.

                Попробуй явно добавить компилятор версии 140 (14.00). Вдруг пакет distutils более новые компиляторы у тебя почему-то не находит.
                Ответить
              • Перевернутый мир какой-то.

                Тупому неосилятору всем форумом помогают делать его работу, разжевывают, в рот кладут, Иканус вот на чистой системе все пробует, а тупой неосилятор мало того, что не может даже ошибку прочитать (видимо по причине незнания букв английского алфавита) так еще и хуями всех в ответ обкладывает, словно ему все обязаны.
                Ответить
                • Инканус вообще бешеный. Мне кажется, он поставил себе борговскую аппаратуру в мозг и тонко троллит неосиляторов благодаря знаниям ассимиляторов. Иначе объяснить широту его знаний и количество экспериментов на единицу времени невозможно.
                  Ответить
                • У меня есть гипотеза, зачем Сёме это нужно: он хочет кому-нибудь под видом полезной программы подбросить троянца (его увлечённость «шкриптами для какиров» на это намекает, да и название пакета «mitmproxy» тоже). Поскольку лучше всего он знает «Питон», то писать будет на нём (и я его понимаю, менять язык программирования тяжело, каждый раз ощущение неизвестности).

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

                  Если что, всё это — лишь наскоро слепленная гипотеза, все совпадения случайны.
                  Ответить
                  • А нельзя собрать всё вместе в одну папку: и питон, и колеса скомпилированные?
                    Ответить
                      • В него можно сунуть уже всё скомпилированное. У винды же ABI стабильный, это же не OpenBSD, где под каждую версию надо перебирать софт.

                        Тогда я не понимаю проблемы: пусть соберет локально через tools, и запакует свой вирус сбинарями
                        Ответить
                        • В «Линуксе» бывает проблема, когда «libc» линкуется динамически. Правда, статическая линковка решает эту проблему. Гораздо хуже, когда программа использует «qt», потому что «qt» весит в разы больше. А какие-нибудь программы типа «busybox» запускаются чуть ли не на любой версии «Линукса».

                          А что в «OpenBSD»? Там меняется формат экзешников или соглашение вызова?
                          Ответить
                          • Там может поменяться ABI. Могут подкрутить что-то в либси, могут поменять сискол ядра.
                            Сисколы ядра так же не являются стабильными (в отличие от linux).

                            Тебе гарантируется лишь стабильность API.
                            Ты должен пересобрать приложение под новую версию.
                            Ответить
                            • В «Windows» сисколы тоже нестабильны, в каждой версии меняются их номера, но они и не документированы: не надо их вызвать напрямую, есть клиентская DLL.
                              Ответить
                              • да, но у винды стабильна ABI библиотек.
                                Ответить
                                • У Винды ABI библиотек у x86 менялся ровно два раза: при переходе на 32 бита и при переходе на 64 бита, причём 32-битная система умеет запускать 16-битные приложения, а 64-битная умеет запускать 32-битные.

                                  У Линукса тоже была смена формата: «ELF» появился не сразу, раньше был «a.out». Правда, в 2020-м году найти систему, не поддерживающую «ELF», уже тяжело.
                                  Ответить
                                  • Тяжело лежать ночи напролёт под аппаратами, а ты - пфу, про такую безделицу!
                                    Ответить
        • ну или так (с)

          у меня 15я студия имеет именно такой файлик, видимо с билдтулзами онп другмоу называютеся
          Ответить
          • vcvars32.bat, vcvarsall.bat есть в любой версии, но в некоторых их как-то хитро запускать надо. В старых был setenv.bat, который выполнял всё необходимое.

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

              а у меня студия, там все говно вместе, и потому мне хватает одного файла

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

                С другой стороны, если бы он читал сообщения об ошибках, он бы нам сказал, что сборщик ругается на отсутствие rc.exe.
                Ответить
                • любой из нас когда-то ничего не компилировал вижуал сями, все бывает в первый раз.

                  Можно было прочитать сообщение об ошибке, и вбить в гугл такую фразу
                  "rc.exe not found in path"
                  и сразу узнать как что-либо собиррается под винду
                  Ответить
                  • У меня как-то под «Ноду» на «Windows» пакет не ставился. Посмотрел лог, оказалось, что там используется нативная библиотека, а бинарник не приложили. Запустил «npm» из «Visual Studio Command Prompt» — всё скомпилировалось и установилось.
                    Ответить
    • Пользователям это тоже надо будет объяснять? Скажи уже, не может питон в винду. Не-мо-жет!

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

      >> По ссылке, которую я показывал, скачал «Visual Studio Build Tools». В инсталляторе выбрал список отдельных пакетов и поставил всего две галочки:
      >> • MSVC версии 140 (хотя я лох, надо было выбирать 14.25, потому что Python 3.8.3 пишет «MSC v. 1925», но они совместимы, так что пофигу).
      >> • SDK для Windows 10 (можно выбрать любой билд).
      >>
      Там еще что-то выбирать надо было?
      Ответить
      • Пользователям ты собрал бы инсталлятор, который в себе все нужные пакеты нужных версий тащит. Вместе с питоном и прочей хуйнёй, которая нужна для работы.
        Ответить
        • Почему я должен заниматься этой хуйней? Почему на прыщах всё ставится через pip install? Может, виртуалку на прыщах сразу создать?

          Я хуею как вы, русьня, не понимаете простую вещь: какого хера я должен ебаться, чтобы запустить то что написали другие? Какой от этих писюлек прок? Или тут сидят одни админы - профессиональные пердолики? Но тогда вы хоть за свой пердолинг деньги получаете, а мне нахуя геморрой за бесплатно?
          Ответить
          • Ну так забей. Особенно если ты денег за пердолинг не получишь. Лимит на решение проблемы вышел.
            Меня как-то из-за одной фигни винда задолбала (кажется XP), я ее снес и года три сидел в Убунте. Потом захотел поиграть и снова поставил (Win7).
            Ответить
            • > Лимит на решение проблемы вышел.
              Вот! Я о чем!
              Нет, я могу конечно погуглить-попердолиться, но... Мой богатый опыт с питоном и не только показывает, что послушал шпыняния русьнявых пидарков и начал пердолиться - будешь пердолиться вечно. И ни за хуй - ты даже не своё пишешь, а чужое пердолишь.
              Понятия "бюджет времени" ты от них не услышишь. Они о нем не знают? Или просто не озвучивают? Я не пойму. Вообще, пердолиться ни за хуй - это такая часть (условно) русьнявого менталитета? Или просто в интернете любо попонтоваться, вот смотрите, он не сделал, а я сделал? Объясните.
              Ответить
              • Но! Попердовлишись в каком-то участке кода, в какой-то области ты становишь экспертом. Жаль лишь на время.
                Ответить
              • Так ты пердолишься, чтобы это помогло решить твою задачу. Можешь не пердолиться - нихуя не получишь или будешь делать с нуля и дольше. Если уметь пердолиться как икарус, то можно быстро чинить какую-то разную хуйню вроде сломанного вифи на андроиде (я не утверждаю, что ты обязан это уметь).
                Ответить
        • Я даже сделал что просил модуль - поставил build tools. А оно один хер не конпелируется.
          Ответить
        • Но питон же интерпретируемый язык, а по факту его приходится "конпелировать" в один экзешник для пользователей. как же так?
          Ответить
          • Компилировать в один экзешник надо ровно потому, что он интерпретируемый, а интерпретатора у пользователя может и не быть.

            под винду точно есть интерпретаторы js и vbs (под wsh, очень старые) и powershell.
            Есть скорее всего какой-то .net.

            Под никсы скорее всего будет perl. Других гарантий нет.

            Сёма, выучи Go. Будешь компилировать всё в один гигансткий .exe файл, и течь.
            Go вроде не сложный, вряд-ли он сложнее питона.

            Либо выучи C#, и пиши под винду: .NET нынче везде есть.
            Ответить
      • >> Там еще что-то выбирать надо было?

        Нет. Больше ничего я не выбирал. Специально ставил на машину, на которой никаких конпеляторов (кроме штатного csc.exe от Microsoft.NET) не установлено. Там даже vcredist не было, установщик «Build Tools» его добавил.
        Ответить
        • А у меня не работает. Сколько мне ещё времени надо въебать, чтобы оно заработало?
          Ответить
      • >> Пользователям это тоже надо будет объяснять?

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

        Ну или собрать экзешник с интерпретатором «Питона» внутри:
        https://pypi.org/project/auto-py-to-exe/
        https://pypi.org/project/py2exe/
        Ответить
    • >> Successfully built urwid kaitaistruct pyperclip blinker ruamel.yaml.clib

      Кстати, для пакетов urwid, kaitaistruct, pyperclip, blinker в «pypi» вообще колёс нет. Их под любую платформу нужно компилировать.

      Для «ruamel.yaml.clib» колёса есть, но под «Windows» только для 2.7, 3.5, 3.6, 3.7. Под 3.8 скомпилировали только для «Линукса», и то только 64-битного:
      https://pypi.org/project/ruamel.yaml.clib/#files
      Ответить
  • Если какой-то мусор летает на орбите, то километр ближе к земле — он начнёт падать, километр дальше — отдаляться? Или это не так работает?
    Ответить
    • Не, пока мусор за пределами атмосферы - он так и будет вечно крутиться по своему эллипсу. Если же он заденет атмосферу, то его скорость начнёт падать, орбита будет снижаться и в конце концов он упадёт и сгорит.
      Ответить
      • Ну то есть орбита - это точка, где гравитация равна нулю?
        Ответить
        • Да, при определенной скорости. Скорость упала - снижаешься, увеличилась - взлетаешь.
          Ответить
          • А за счёт чего спутник поддерживает скорость?
            Ответить
            • За счет двигателей. 10-15 раз в сутки корректирует орбиту.
              Ответить
              • А топливо у них обычно химическое, сотня-две кг, рассчитанное на несколько лет. Кончилось - падает.
                Ответить
            • В основном за счёт закона сохранения энергии. На него там ничего особо не действует, разве что об атмосферу трётся если низко летит. Ну и двигателями компенсирует эти потери на трение, как выше написали.

              Поэтому спутники для gps и телефонов, которые как раз летают низко, живут не особо долго.
              Ответить
              • Конечно ничего не действует - гравитационные лунно-солнечные возмущения, влияние неоднородности гравитационного поля Земли, эллиптичность экватора. Может застрять в одной из ям геостационарной орбиты.
                Ответить
                • > застрять

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

                Луна вызывает морские приливы на Земле, поэтому между Луной и Землёй возникает сила трения: Луна тратит свою энергию на подъём воды на Земле, а вода от трения нагревается, поэтому всю свою энергию вернуть Луне не может. Это приводит к замедлению Луны. К счастью, эта сила не настолько велика, чтобы заметить замедление Луны невооружённым глазом.
                Ответить
  • Питух начинает новый проект, и хочет выбрать язык.
    Представим, что Питух умеет выучить любой нужный язык за несколько месяцев, так что сложность языка для Питуха не принципиальна.

    Питух выдвигает требования:
    * Без GС. Подойдет любой другой способ управления памятью с предсказумым временем жизни объектов. Если небольшие структуры можно будет размещать на стеке -- вообще класс.
    * Статическая типизация. Желательно какой-то вывод типов (и вообще поменьше бойлерплейта). Типы хочется указывать как "varName: type".
    * Хочется чтобы все было как можно более иммутабл (или становилось таким с легкостью)
    * Питуху нужны средства профилирования. Хочется каких-то тулов, которые боль-мень красиво показали бы чем забита память, и что делали потоки.
    * Полезно будет иметь немного функциональщины

    Посоветуйте язык питуху.
    Ответить
    • Боюсь половину требований не выполнить, но я за «Object Pascal».
      • Явное выделение и освобождение памяти через New/Dispose, GetMem/FreeMem или Create/Destroy. Можно и на стеке, если вместо class использовать object.
      • Типизация статическая, varName: type. К сожалению, вывода типов нет.
      Ответить
      • А профилирование и функциональщина как?
        Ответить
      • С PascalABC.NET авторы знатно порезвились, там тебе и вывод типов, и лямбды, и функциональщина, и многопоточность.

        Насчёт тулзов не знаю, последний раз писал на нём ещё в школе, тогда я такими вещами не пользовался да и сейчас не особо-то пользуюсь.
        Ответить
        • >.NET
          Он, вроде, без GC просил? Или там все объекты на стеке как value types?
          Ответить
    • Нихуя себе требования. Все нормальные языки можно перечислить по пальцам рук и ног. Либо ты загадал какой-то существующий язык, либо рофлишь.
      Ответить
      • Какие из этих требований кажутся тебе неадекватными?
        Ответить
        • Не неадекватные, а их слишком много, чтобы под каждую кобенацию таких требований существовал язык.

          Хотя «Типы хочется указывать как "varName: type"» - странное требование.
          Ответить
          • The total number of computer languages to exist is approximately 9,000, though there are 50 that are the most popular programming languages in use today.

            Неужели ни одного языка нету?

            >странное
            А что странного? Вроде как общепринято считать, что такой "паскалевый" синтаксис лучше сишного.
            Современные языки вроде так и пишут. Впрочем, это не обязательно
            Ответить
      • Чот мне кажется, что нас обрадуют очередным форсом Котлина, на этот раз Native.
        Ответить
          • И вправду.

            Kotlin/Native provides an automated memory management scheme, similar to what Java or Swift provides. The current implementation includes an automated reference counter with a cycle collector to collect cyclical garbage.
            Ответить
            • Тоесть гибридный подход: для всего реф каунтер, а именно для циклов GC.

              Выходит, что если у меня нет циклов, то деструктор вызовется предсказуемо, а если случайно будет цикл, то нет?

              Интересно, можно это как-то отключить?
              Ответить
                • Угу.
                  GC находит strong reference cycles, на которые нет ссылок из стеков потоков и всяких других областей. Такие циклы называются "islands of isolation", и GC их выпиливает.

                  Потому в Java и Kotlin дофига кода типа
                  val petuh = Petuh()
                  val kurochka = Kurochka(muzh=petuh)
                  petuh.zhena = kurochka

                  и пиздец без GC
                  Ответить
                      • Про фантомные ссылки не очень понял, конечно.

                        А так с учётом того, что что со слабыми, что с сильными ссылками всё будет чистить вилкой гц, то смысла в слабых действительно не так много.

                        Кстати, кто там спрашивал про говно в свифте: почитайте про unowned reference.
                        Ответить
                        • Фантомные ссылки нужны для каких-то хаков, я даже не помню, когда я их использовал.

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

                    SJW напряглись за кадром
                    Ответить
                    • Обоим быть weak, и объекту Couple иметь на них ссылки:)
                      Ответить
              • Гибридный GC - худшее из двух миров. Недетерминированные деструкторы, к которым добавили оверхед от рефкаунтера. Нафиг так жить?
                Ответить
                • Тоже так думаю
                  А как сделать котлин без ГЦ? Всю стандартную библиотеку переписать?
                  Ответить
                  • Да оставить GC, имхо, и не выёбываться. Раз уж заявляешь совместимость с джавой.

                    Ну нету никакой пользы от RC если у тебя в любой момент объект может улететь на необитаемый остров и проторчать там до следующей уборки. Только оверхед и мнимая детерминированность.
                    Ответить
                    • нахуй нужен еще один сраный язык с гц? их жопой жуй так-то
                      Ответить
                  • Ну либо делать 2 сорта ссылок - RC и GC.

                    RC могут ссылаться и на RC и на GC и разрушаются детерминированно. GC могут иметь на RC только слабую ссылку и разрушаются в рандомное время.

                    Но х.з. насколько это удобно для реализации GC. Слишком много корней на первый взгляд, может на пирфомансе сказаться.
                    Ответить
                    • чтобы у питуха мозги взорвались?
                      Если ты уже вынужден включать мозг чтобы понять, когда тебе нужно RC, а коли GC, то чому бы сразу всегда не RC?
                      Ответить
                      • Не ну есть моменты когда GC удобнее. Чистые данные со сложными взаимоотношениями, как в примере про жену и мужа.
                        Ответить
                        • привели риальный пример, когда утечка пкамяти это плохо, и RC плохо, а GC хорошо
                          Ответить
    • Кстати, поскольку требования к кроссплатформенности нет, то Swift. Под все пункты попадает. Но – желательно купить технику Эппл.
      Ответить
      • На Свифте пример из недавнего топика про яблоки и идиотов выглядит примерно так:

        enum Product {
            case apple(price: UInt, amount: UInt)
            case grape(price: UInt, amount: UInt)
            case `default`(price: UInt, amount: UInt)
                
            func total() -> UInt {
                switch self {
                case let .apple(price, amount):
                    return (amount - amount / 2) * price
                case let .grape(price, amount):
                    return (amount > 1 ? amount * 4 / 5 : amount) * price
                case let .default(price, amount):
                    return amount * price
                }
            }
        }
        
        let products: [Product] = [.apple(price: 10, amount: 4), .grape(price: 20, amount: 3), .default(price: 30, amount: 1)]
        print(products.reduce(0) { $0 + $1.total() })


        19 строчек, по длине как мой же пример на Рэкете из топика. Только Рэкет выводит натуральные дроби, а здесь целочисленное деление.
        Ответить
        • Кстати, если пример на Рэкете переводить буквально, то Свифт сосёт: в нём есть встроенная функция zip, но она принимает только два аргумента. Для бóльшего количества последовательностей уже надо извращаться или писать свою функцию.
          Ответить
        • Выглядит интересно

          Почему не сделать его кроссплатформенным языком?
          Ответить
    • Q: Поздно ли вкатываться в айти в 20/30/40/100 лет?

      А: Поздно. Иди лучше в дворники.

      Q: Cобираюсь учить джаву по 2/5/20 часов в день. За сколько дней я выучу достаточно, чтобы зарабатывать фрилансом?

      A: Лет за сорок. Столько времени у тебя нет. Иди лучше в дворники.

      Q: Хули все книги на английском?

      A: Так случилось. Английский надо было учить 20 лет назад. Теперь ты уже его не выучишь, и прогаммистом не станешь. Иди лучше в дворники.
      Ответить
      • Q: Поздно ли вкатываться в айти в 20/30/40/100 лет?

        А: Кому оно сейчас нужно? Иди санитаром в ковидный госпиталь.

        Q: Cобираюсь учить джаву по 2/5/20 часов в день. За сколько дней я выучу достаточно, чтобы зарабатывать фрилансом?

        A: Пока выучишь, все заказчики вымрут. Иди санитаром в ковидный госпиталь.

        Q: Хули все книги на английском?

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

          http://bigor.bmstu.ru/?cnt/?doc=103_Computers/1005.mod/?cou=140_CADedu/CAD.cou
          Ответить
          • В качестве шины для подключения графического контроллера используются последовательные шины AGP или PCI Expre

            В настоящее время используют контроллеры типов IDE (Integrated Drive Electronics) или EIDE (Enhanced IDE), допускающие подключение к одному контроллеру до четырех устройств.
            ------
            Как Михаила Гука почитал за 2002-й год:)


            Однако следует отметить, что архитектура описана всё таки валидно, хотя и на момент двадцатилетней давности
            Ответить
          • Приведем примеры HTML-тегов. К тегам форматирования текста (тегам компоновки) относятся:
            <P> — конец абзаца;
            <BR> — перевод строки;
            <HR> — перевод строки с печатью горизонтальной линии, разделяющей части текста;
            <CENTER> — выравнивание изображения по центру страницы;
            <LISTING> Текст </LISTING> — представление листингов программ;
            <BLOCKQUOTE> Текст </BLOCKQUOTE> — выделение цитат;
            <FONT> — задание типа, размера и цвета используемого шрифта, имена этих параметров (атрибутов) FACE, SIZE и COLOR соответственно.

            http://bigor.bmstu.ru/?cnt/?doc=270_Web/web102.mod/?cou=140_CADedu/CAD.cou
            Ответить
              • Кроме того, было разработано расширение DHTML (Dynamic Hyper Text Markup Language) языка HTML, названное динамическим языком разметки гипертекста. С помощью DHTML можно создавать Web-страницы, включающие интерактивные элементы, анимацию, движущиеся объекты и фон, расположенный под основным содержимым документа, выпадающие меню и т.п. Стандарт DHTML используется для создания скриплетов -- сценариев, обрабатываемых браузером совместно с кодом HTML.
                Ответить
              • Интересно, CSS animation когда-нибудь выпилят как мелькающее говно, или нет.
                Ответить
  • Есть какие-либо альтернативы «HTML»-ю?
    Ответить
    • • WML
      • XML+XSLT (Docbook)
      • PDF
      • RTF
      • OpenDocument/OOXML (docx)
      • SWF
      • SVG
      • BBCode
      • SMIL
      • Texinfo
      • Разные форматы хелпов
      Ответить
    • Смотря в какой области.

      Для построения GUI? Для сематического описания документа?
      Ответить
  • Петухи, мне надо
    with get_pituh() as p1, get_pituh() as p2, get_pituh() as p3:
       ...


    Заменить на
    def get_pituhs():
       return [get_pituh() for _ in range(3)]
    
    with get_pituhs() as pp:
       ...


    Как правильно сделать? Можно как-то сделать свой класс, отнаследовав от list, и прописать ему "конструкторы" и "деструкторы"?
    Ответить
    • нельзя сделать генератор с @contextmanager, который yeieldит что-то?
      Ответить
      • Можешь реальный пример привести?
        Мне нужно в with работать как с массивом.
        Ответить
      • А, понял тебя.
        Типа
        class Spam(AbstractContextManager, list):
            def __exit__(self, exc_type, exc_value, traceback):
                for i in self:
                    i.__exit__()
        
        
        spam = Spam()
        spam.append(open("1.txt", "w"))
        spam.append(open("1.txt", "w"))
        
        with spam as s:
            for f in s:
                f.write("a")
        Ответить
        • Посмотри ещё ExitStack, может подойдёт чтобы вручную этот цикл не писать.
          Ответить
          • 0н хочет вернуть однровременно и лист и контекст
            Ответить
            • @contextmanager
              def open_files(names):
                  with ExitStack() as s:
                      yield [s.enter_context(open(name, 'w')) for name in names]
              
              with open_files(['1.txt', '2.txt']) as files:
                  ...
              Ответить
                • > если твой вариант работает

                  Ну я надеюсь, что он работает... Ибо я его юзаю.

                  Перетестировал на всякий случай - нормально всё закрывает при успешном исполнении, при исключении во внешнем with и при исключении в инициализации какого-то из ресурсов. Вроде все случаи, которые надо рассмотреть?
                  Ответить
                  • Да, кажется всё верно.

                    Блядь, как увсё сложно
                    Ответить
                    • Это ещё фигня, ты попробуй сделать класс, который менеджит несколько ресурсов и живёт достаточно долго (т.е. в with его не засунуть)... Ну и корректно их закрывает при любых исключениях, само собой.
                      Ответить
                      • работает
                        class Foo:
                            def __enter__(self):
                                print("entered")
                                return self
                        
                            def __exit__(self, a, b, c):
                                print("Closed")
                        
                            def __str__(self):
                                return "23"
                        
                        
                        @contextmanager
                        def open_files():
                            with ExitStack() as s:
                                yield [s.enter_context(x) for x in [Foo()]]
                        
                        
                        with open_files() as foos:
                            for f in foos:
                                print(f)


                        entered
                        23
                        Closed

                        -----------

                        [quote]
                        Это ещё фигня, ты попробуй сделать класс, который менеджит несколько ресурсов и живёт достаточно долго (т.е. в with его не засунуть)
                        [/quote]

                        гц_говно.txt
                        Ответить
                        • > class Foo

                          Можно через contextmanager, если код несложный:
                          @contextmanager
                          def foo():
                              try:
                                  print("entered")
                                  yield "23"
                              finally:
                                  print("closed")
                          Ответить
                      • зы:

                        1) @contextmanager
                        2) ExitStack
                        3) yield
                        4) with / as

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

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

                          File.open('1.txt', 'w') do |f|
                            f.write 'hello'
                          end
                          .

                          Кажется, что универсального, красивого решения тут нет
                          Ответить
                    • В принципе я тут подумал, что походу вообще все кейсы можно свести к дереву контекст манагеров, почти как в языках с RC.

                      У ExitStack есть pop_all, так что можно даже вытаскивать узлы дерева из под with и перецеплять в другое место. Ну либо сделать свой манагер из которого можно убрать элемент.
                      Ответить
                            • В Qt как-то обошлись без shared_ptr, используя голые указатели и создав иерархию с правилами владения объектами.
                              Ответить
                              • Там тоже не всё так просто и безоблачно - deleteLater, слабые поинтеры которые зануляются при смерти объекта, магия по отписке от сигналов и т.п.
                                Ответить
                                  • Главное, чтобы розовые блюющие единороги не пришли.
                                    Ответить
                                    • Со статическим анализом? Были уже. Макросами подавились.
                                      Ответить
                                      • Что мешает статическому анализатору раскрыть макросы? отсутствтие знаний параметров компилятора?
                                        Ответить
                      • и будет язык двумя сортами блоков: плохая, сраная пародия на RC.

                        Ну вообще так ведь и должно быть: все популярные технологии проходят две стадии:

                        1) отказываемся от изобретений прошлого, и очень этим гордимся
                        2) делаем кривую хуйевую наколенную пародию на изобретения прошлого, и очень этим гордимся
                        Ответить
              • По ссылке еще такой вариант приводили:
                with contextlib.nested(*[open(fn, 'w') for fn in arr]) as files:
                    print files
                Ответить
                • Хуйня. Может не закрыть ресурс если во время инициализации следующего исключение стрельнет.

                  З.Ы. И вообще депрекейтед с 2.7
                  Ответить
        • Спасибо. В моём питоне 3.7.7 почему-то вместо элементов массива какой-то "_GeneratorContextManager"
          В онлайн интерпретаторах не воспроизводится.

          https://ideone.com/bjJwUl
          Ответить
          • Нашел проблему, это я дурак.

            Блять, как всё сложно. Именно поэтому я за "PHP".
            Ответить
              • У меня оказывается Pituh был обернут в @contextlib.contextmanager
                У меня тут целая иерархия этих стеков, я заебался уже.
                Ответить
                • А классно в языках с ГЦ, правда?;)
                  В сраной C++ ты бы закрывал файлы в деструкторах.

                  А чево ты делаешь?
                  Ответить
    • кто про что, а иню про поиск тянок
      Ответить
      • увлёкся темой, теперь за глаз цепляется
        Ответить
    • >> Автоматическая дикпик-машина

      >> Если тебе лень генерировать и рассылать пейлоады вручную, и ты хочешь автоматизировать процесс, можно изготовить автоматическую дикпик-машину, которая в фоне будет рассылать картинки по AirDrop всем, кто находится в радиусе действия.

      ...

      >> Мы можем отсечь лишние с помощью HLR-запроса или невидимой SMS.

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

                В ВК была группа, где тян выкладывали способы подката к ним из всяких соцсетей.
                Там типа чувак приходит знакомица, и сразу заходит с козырей: предлагает отсосать
                Ответить
          • Говорят, если на СЗ первым предложением предлагать переспать, то одна из 200 точно согласится. При условии, что у тебя нормальные фотки, конечно. Если бы это не работало, так бы не делали. Тоже самое с дикпиками, наверное.
            Ответить
              • Сайт знакомств (tinder, badoo, mamba и прочее).
                Ответить
              • были такие процессоры у VIA C3, крайне хуевые. Хуже селерона
                Ответить
            • Это как нигерийский спам.

              Если миллиону людей послать письмо от имени адвоката Мнямба, которому нужно $20 чтобы разлочить твой счет на $1000000, то один согласится.
              Ответить
                      • Давно вам говорю: сделайте тулу для глобального бана.

                        А вы мало того, что не делаете, так еще и кормите рака.
                        Ответить
    • Какой айфон )))

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

      Отдать пароль от вайфая просто потому что чел находится рядом и добавлен в контакты? Они серьёзно?

      З.Ы. А, там явное подтверждение, тогда норм.
      Ответить
    • zhovner: «Моя подруга Аня koteeq, специально по моей просьбе, написала Телеграм-бота, который генерирует нужные картинки с подписью на лету: @AirTrollBot».

      koteeq вчера в 17:14: «Паша, ты говорил, что бот нужен для генерации добрых поздравительных открыток. Что происходит?!»

      Какой развод )))
      Ответить
        • Ну видимо с нормальной вилкой зарядник будет слишком большой и не везде воткнется.
          Ответить
          • и типа пусть питуза ебет током?
            Ответить
              • Там в комментариях одна макоблядь жалуется, что у неё воспаление суставов из-за этого. Какой багор )))
                Ответить
                • Спец предложение! Только сегодня! iСуставы! Всего по $999 каждый!
                  Ответить
                • Я думаю у нее воспаление суставов просто от ебанутого положения рук. Именно поэтому я против ноутов.
                  Ответить
                    • Если мембрана — советую «A4Tech X7 G300». Такая себе стандартная клавиатурка с одним большим преимуществом: её можно спокойно мыть под краном, вымывая из неё иные формы жизни. Очень удобно.
                      Ответить
                      • Ого. Прямо помыл и сразу пользоваться? И нихуя?
                        Ответить
                        • Не, ну просушить-то хотя б часик надо, а так да — помыл, поставил боком (чтобы вода вытекала), подождал и вперёд.
                          Такую процiдурку за время эксплуатации проводил уже раз пять, всё окей.
                          Кстати, в комплекте идёт специальный экстрактор колпачков клавиш и нормальные, человеческие WASD (с рекламными резиновыми попробовал поиграть — не, хрень какая-то).
                          Ответить
                      • Стандартная у меня в принципе есть. Марку правда не скажу, потому что коробки нет, а на ней самой только какой-то ноунейм логотип))

                        Я как-то пару лет назад пробовал на эргоклаве от MS работать, вообще не понял, в чём прикол. Сильно здоровая, к тому же
                        Ответить
                      • > das keyboard

                        Он же оверпрайснутый. Я думаю какого-нибудь логитека хватит, типа моего G610, один хер свичи те же самые стоят и сборка норм.
                        Ответить
                        • зато он на свичах, как классический IBM
                          Ответить
                              • Ну это да, дизайн у das'а прикольный.

                                Хотя в теории можно у китайцев заказать мешок кейкапов. Хоть чёрных хоть розовых. У меня вон вместо Z и X кнопки с логотипом osu стоят.

                                З.Ы. И к механике стоит сразу резиновых колечек заказать, особенно если не один живёшь. Ибо пока пальцы не привыкнут не вбивать клавиши в пол как на мембранке - это пиздец.
                                Ответить
                                • > У меня вон вместо Z и X кнопки с логотипом osu стоят
                                  Какой анимешник )))
                                  Ответить
                                • да, меня коллеги попросили дазкиборд не использвать
                                  Ответить
                                  • Хорошие у тебя коллеги. Сам бы не догадался?
                                    Ответить
                                    • А сам он поди в наушниках с шумодавкой музыку на всю слушал 🙂
                                      Ответить
                                      • И семечки жрал или яблоком хрустел.
                                        Ответить
                                        • А разве мы шумели?
                                          Ну, Андрюша стучал еле-еле
                                          Молотком по железной трубе,
                                          Я тихонько играл на губе,
                                          Восемь пятых размер соблюдая,
                                          Таня хлопала дверью сарая,
                                          Саша камнем водил по стеклу,
                                          Коля бил по кастрюле в углу
                                          Кирпичом, но негромко и редко.
                                          Ответить
              • при этом iMac имеет нормальную вилку)

                Кстати, обсуждали как-то с коллегами землю. Оказалось, что у половины примерно питухов земли нет, а иные вообще не ебут, что это такое. 2020-й год, блять
                Ответить
                • У меня в конуре проводка алюминиевая в 2020-м, лол. И кое-где с медью соединяется, ага.
                  Ответить
                  • надеюсь, скруткой имени Гальвани?

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

                        Кстати, аллюминий не нужен. Он хрупкий, толстый, и говно.

                        Выкинь нахуй всю свою проводку, и проведи медь и три провода.
                        Ответить
                          • ахаха, вот пидор
                            хорошо, что у него нету керосинового завода
                            Ответить
                        • > Выкинь нахуй всю свою проводку, и проведи медь и три провода.
                          Я бы с радостью, но это ж надо по сути капитальный ремонт делать: всю мебель двигать, обои и прочий декор от стен отдирать, сами стены разъёбывать, потолок тоже расхуяривать. А потом всё собирать как было. Слишком много стресса для моей ленивой душонки.
                          Ответить
                • Ну у меня дом относительно новый, с землёй всё норм. Комп током не бьётся, искр при подключении моников нету. Так что иногда всё-таки нормальная проводка встречается.
                  Ответить
  • This is really cool feature. If you want to just pass all the arguments of the current method to a new method, Ruby 2.7 makes it dead easy with the help (...).

    def hello(...)
      Greeter.new.hello(...)
    end


    все сосат6 у яебу
    Ответить
    • Improvements to JIT
      There have been improvements made to the JIT compiler which introduced in Ruby 2.6. You can run your Rails application with JIT by adding a flag like this:

      все сосат6 у яебу (кроме ноды)
      Ответить
      • да везде так можно
        и в перле
        и в питоне
        я хз, о чем гость
        Ответить
        • В J нельзя, там бывает либо один, либо джва аргумента.

          А в форте даже не надо ничего для этого писать, стек-то данных-то на всех-то общий.
          Ответить
        • Да даже в крестах есть (не то многоточие, которое сишное, а то, которое от шаблонов).
          Ответить
      • а что это за яебу
        и где онa живет?
        Ответить
        • Twenty four years just wating for a chance...

          Чёрт, а ведь этой новомодной фигне в этом году должно стукнуть 25 лет.
          Ответить
          • --а что это тут пролетело?
            --а это пять лет, они часто тут пролетают
            Ответить
  • У кого-то тут ещё стоит говно под названием OnlyOffice?
    Ответить
  • Клопо́вник му́сорный, также воню́чник, ве́ничник (лат. Lepídium ruderále) — как правило, однолетнее травянистое растение, вид рода Клоповник (Lepidium) семейства Крестоцветные (Cruciferae).

    Широко распространённое в Северном полушарии сорное растение с резким неприятным запахом.
    Ответить
      • ага) надо бы кое-кому погоняло такое дать
        Ответить
        • Офтопик. Я читал статьи про так называемые опасные инвазивные виды живых существ (животных, растений, грибов). Оказалось, что в России вдоль железных дорог как сорняки растут американские растения (топинамбур; белая акация; ясенелистный клён; ещё какие-то травы), а в США вдоль железных дорог как сорняки растут российские растения (сходу не вспомню, придётся гуглить). Местная флора не выдерживает жёстких условий, а занесённая рада хоть такому, к тому же у неё нет конкурентов.
          Ответить
            • бОРЩЕВИК ВКУЧСНЫЙ И ПОЛЕЗНАЫ. я С ДЕТСВА СЪЕДАЮ ПО 5 КАЛОГРАММ БОРЩЕВИКА В ДНЕЬ И НИЧГО.
              Ответить
              • Ну я про то, что он растёт где угодно и забивает все остальные растения. И хер выкорчуешь потом.
                Ответить
                • > хер выкорчуешь
                  бОРЩЕВИК ВЫЗЫВАЕТ ГЕНДЕРНУЮ ДИСФОРИЮ?
                  Ответить
                • да и человеку о тоже вреден

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

            ты увеен, что она сорняк?
            Ответить
            • Я не против белой акации. Она мне даже нравится. Первоначально её сажали в парках как декоративное растение. Она красиво цветёт, она прекрасный медонос (из её нектара получается съедобный мёд, несмотря на то, что растение в целом ядовито).

              Но ты видел, как она размножается? Это бобовое растение, у неё бобы, как у диких родственников гороха. Только вот белая акация — это не травинка, как горох, а дерево. Причём быстрорастущее: в год может давать метр прироста в высоту.

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

              Представляешь, что будет, если хотя бы один процент этих семян даст всходы, которые переживут зиму?

              Итого: если белую акацию не контролировать, она может превратить окрестности в непроходимые дебри.
              Ответить
    • Прорыв дамбы в Брумадинью произошёл 25 января 2019 года вследствие катастрофического повреждения хвостохранилища на железнорудной шахте в городе Брумадинью бразильского штата Минас-Жерайс. Владельцем дамбы была компания Vale, она же была ответственна за аварию на дамбе в Бенту-Родригесе в 2015 году. Плотина 1 пропустила наносы грязи, распространившиеся на дома в пригородной сельской местности.
      Ответить
  • Только у меня телеграм не работает?
    Ответить
    • Ахах, тупые сисадмины нарисовали карту распространения проблемы. Ебать информативно. Понятно, что количество проблемных коррелирует с количеством пользователей, а количество пользователей с количеством населения.

      https://vk.com/wall-39243732_1704098
      Ответить
        • Я что-то вообще легенду карты не нашёл. Вдруг это средняя температура пуканов?
          Ответить
          • Да, ебать, такая питушня везде. Про то, что такое легенда карты знают лишь школьники изучающие географию.
            Ответить
      • Это тепловая карта с https://downdetector.com/. Количество пользователей, нажавших кнопку «у меня не работает», каким-то образом нормализованное.

        UPD: чистые данные там тоже есть, на графиках.
        Ответить
          • Это с «nginx» говно, уже не в первый раз он поздно ночью зависает с разными симптомами.
            nginx.service - A high performance web server and a reverse proxy server
               Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
               Active: active (running) since Sun 2020-05-17 04:37:28 CEST; 2 weeks 6 days ago
                 Docs: man:nginx(8)
             Main PID: 32051 (nginx)
                Tasks: 4 (limit: 2359)
               Memory: 19.2M
               CGroup: /system.slice/nginx.service
                       ├─ 3879 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
                       └─32051 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;

            Вот что это за хуйня? Нахуя он запустил два мастер-процесса? Сысоев что, долбоёб?
            Ответить
            • В error.log куча вот такого сранья вывалилась на момент зависания:
              2020/06/07 00:54:50 [info] 3423#3423: Using 32768KiB of shared memory for nchan in /etc/nginx/nginx.conf:72
              2020/06/07 00:54:53 [notice] 3425#3425: signal process started
              2020/06/07 00:54:59 [notice] 3428#3428: signal process started
              ter process /usr/sbin/nginx -g daemon on; master_process on;: /build/nginx-tBUzFN/nginx-1.14.2/debian/modules/nchan/src/store/memory/memstore.c:701: nchan_store_init_worker: Assertion `procslot_found == 1' failed.
              2020/06/07 00:54:59 [alert] 32051#32051: worker process 3430 exited on signal 6
              2020/06/07 00:54:59 [alert] 32051#32051: shared memory zone "memstore" was locked by 3430
              ter process /usr/sbin/nginx -g daemon on; master_process on;: /build/nginx-tBUzFN/nginx-1.14.2/debian/modules/nchan/src/store/memory/memstore.c:701: nchan_store_init_worker: Assertion `procslot_found == 1' failed.
              2020/06/07 00:54:59 [alert] 32051#32051: worker process 3429 exited on signal 6
              2020/06/07 00:54:59 [alert] 32051#32051: shared memory zone "memstore" was locked by 3429
              ter process /usr/sbin/nginx -g daemon on; master_process on;: /build/nginx-tBUzFN/nginx-1.14.2/debian/modules/nchan/src/store/memory/memstore.c:701: nchan_store_init_worker: Assertion `procslot_found == 1' failed.
              2020/06/07 00:54:59 [alert] 32051#32051: worker process 3432 exited on signal 6
              2020/06/07 00:54:59 [alert] 32051#32051: shared memory zone "memstore" was locked by 3432
              ter process /usr/sbin/nginx -g daemon on; master_process on;: /build/nginx-tBUzFN/nginx-1.14.2/debian/modules/nchan/src/store/memory/memstore.c:701: nchan_store_init_worker: Assertion `procslot_found == 1' failed.
              2020/06/07 00:54:59 [alert] 32051#32051: worker process 3433 exited on signal 6
              Ответить
              • Нагуглил какое-то говно двухлетней давности, в котором пишут, что вот это говно пофиксили много лет назад, а все беды из-за старого говна в репах: https://github.com/slact/nchan/issues/446. Отключил «nchan», проверю.
                Ответить
                • зачем ты поставил на нгинкс какую-то сраную питуню? что вообще это такое -- нчан? нахуй он нужен? нахуй грузить в адресное пространство нгинкса какой-то левый код?
                  Ответить
                      • Он сам включился после «apt install nginx». Спроси тех дебиановцев, кто этот пакет собирает.
                        Ответить
                        • Спрос не с дебиановцев, а с тебя.
                          Ответить
                        • то-есть ты не добавил врручную директиву nchan_, не заказал модуль при установке nginx, а он просто взял и появился?

                          говно-то какое

                          покаж
                          nginx -V
                          Ответить
                          • Именно так. Взял и появился после «apt install nginx». Более того, в modules-enabled валяется ещё куча какого-то дерьма, которое хрен пойми зачем нужно.
                            nginx version: nginx/1.14.2
                            built with OpenSSL 1.1.1c  28 May 2019 (running with OpenSSL 1.1.1d  10 Sep 2019)
                            TLS SNI support enabled

                            UPD: -V целиком: https://pastebin.com/RhzsWDNk
                            Ответить
                            • а, ну так поудаляй всё из -enabld, этож просто ссылки на avail

                              хорошая штука дебиан
                              стобильная
                              Ответить
                              • С «nchan» я так и сделал, остальные трогать опасаюсь. Хер знает, для чего все эти «mod-http-subs-filter» и «mod-http-upstream-fair» нужны.
                                Ответить
                                • ngx_http_upstream_fair_module - sends an incoming request to the least-busy backend server, rather than distributing requests round-robin.


                                  Это всё очень нужно говностоку
                                  Ответить
                                • Ты DAV и RTMP пользуешься? На «Луа» и на «Перле» конфиги пишешь? MP4 и FLV «нгинксом» кодируешь? Преобразование XSLT «нгинксом» выполняешь?
                                  Ответить
                                  • Не знаю, надо проверять.
                                    У меня просто фобия: боюсь изменять сложные системы. А вдруг вылезут какие-то плавающие гейзенбагры, которые придётся долго и упорно чинить? Или там просто производительность просядет, а я не замечу. Или ещё что-нибудь отвалится.
                                    Ответить
                                    • Что может отвалиться? Сток продолжит работать - значит ок.
                                      Ответить
                                      • Какие-нибудь вебсокеты начнут отваливаться, например.
                                        Ответить
                                        • я всё равно не понима. Ты не ставил extras? не выбирал модули при установке nginx? не соглашался на рекомендованные депенденсы или как там блядь оно у дебина называется

                                          может, рекомендеды надо забблчить?
                                          https://www.debian.org/doc/manuals/debian-reference/ch02.en.html#_blocking_packages_installed_by_recommends
                                          Ответить
                                          • Я ввёл «apt install nginx-extras» (да, за давностью лет забыл точную ко-ко-команду), подтвердил установку пакета, и мне установился «nginx» со включёнными по-умолчанию мудулями. Года два они никак не мешали работе, а в начале этого мудуль «nchan» начал примерно раз в две недели вешать весь «nginx».
                                            Ответить
                                            • зачем ты это сделал? зачем? зачем?
                                              Ответить
                                                  • А вдруг пригодится? В то время мне надо было просто и быстро поставить «nginx» и запустить сайтец. Ебаться с установкой мудулей по невнятным ошибкам в мои планы не входило.
                                                    Ответить
                                              • Вообще я понимаю gost'а: хорошая система не должна внезапно падать из-за какого-то модуля, включенного в комплект поставки. Потребитель не должен думать, что нужно отключить, чтобы система работала.

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

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

                                                        Там вообще много чего было клёвого. Часть "новых" розеток на кухне вообще попросту не работала, в сливной трубе от унитаза вызванные сантехники нашли нихуясебе кусочек цемента, а всё электричество в квартире выключалось тумблером возле счётчика, который просто поплавился через три недели.
                                                        Ответить
                                                          • Да, поэтому съём квартиры "после ремонта" это всегда немного русская рулетка.

                                                            Чувствуешь себя как раллист, который едет первым на участке и собирает все камни и ветки.
                                                            Ответить