1. C++ / Говнокод #20472

    +10

    1. 1
    2. 2
    3. 3
    4. 4
    #ifdef _MSC_VER
    template<typename> using void_t = void;
    __if_exists(void_t<int>) {}
    #endif

    Эти строчки превратят Visual Studio 2015 в блокнот с подсветкой синтаксиса.
    Для максимального эффекта их следует поместить в stdafx.h или любой другой повсеместно используемый заголовок.
    Предположительно, на более старых студиях будет тот же эффект, но я не проверял.

    Запостил: gammaker, 05 Августа 2016

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

    • Уважаемый говномейкер! Студию очень легко превратить в блокнот путём замены экзешника студии на экзешник блокнота. Она вообще очень ранимое существо.
      Если это из серии define true = false, то уже давно не смешно. Давай уж годный говнокод
      Ответить
      • Для подмены экзешника нужны права админа как минимум. А строчки эти может написать любой. А если ещё их закоммитить куда-нибудь глубоко в проект с миллионом строк кода, где никто не найдёт, то это подействует на всех, кто работает над этим проектом.
        Чувствуете масштаб? А все эти define банальны, ошибку сразу найдут. IntelliSense сразу подсветит такой макрос, и его уберут. А мой говнокод просто убьёт intellisense.

        Сам код с точки зрения компилятора студии корректен и ничего не делает.
        Ответить
        • Как говорится "сдуру можно и хер сломать".

          Один вопрос: как вы вообще себе представляете программирование без прав админа на компе?
          Ответить
          • Если уже стоит IDE, то просто берёшь и программируешь, разве нет? Во всяких школах и институтах прав админа пользователям не дают например.
            Смысл в том, что эти строчки можно закоммитить куда-нибудь в git, и, не имея доступа ко всем компьютерам, которые его используют, сломать там IntelliSense. Если в проекте например миллион строк кода, то причину наверное месяц будут искать.
            Ответить
            • > Если уже стоит IDE, то просто берёшь и программируешь, разве нет?

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

                  > результаты отладки видели в распечатках
                  Вот под механическую [color=black]Э[/color]ВМ небось писали без таких подсказок.
                  Ответить
                  • ЭВМ
                    Ответить
                    • Наткнулся на статью о том, как изобретатель скрестил ткацкий станок Жаккарда с арифмометром, чтобы получить вычислительную машину:
                      http://chernykh.net/content/view/121/

                      Жаль, что современники его не оценили. Это было бы покруче стим-панка!
                      Ответить
                • > сдавали наборщице, а результаты отладки видели в распечатках
                  А потом сдавали прошивальщице ПЗУ, а результаты отладки видели в телеметрии с орбиты...
                  Ответить
              • > кому надо системные вещи программировать
                > зашибенно программируются системные службы из-под юзера.
                Вы чем упарываетесь там? Нахуя запускать свой код, особенно драйверы и сервисы, на своей машине? Виртуалки на что? Так же и комп забриковать можно...
                Ответить
                • Шоб нескучно было.
                  Ответить
                  • Угу. Можно по полдня хуи пинать, пока образ откатывается. Работать то не на чем :3
                    Ответить
                • Да уж... Напомнил, как коллега однажды неудачно потестил патчинг фирмвари. С первого раза не заработало что-то, ну надо ещё разок попробовать. А старый девайс что-то не поднимается. Он такой "дай telnet позвонитьгонять, прошивка своя".
                  ...В итоге хардварщиком в удалённой лабе пришлось два дорогущих девайса программатором воскрешать. ^___~
                  Ответить
                • чтобы было как под дос. Одно неверное движение, и перезаписал обработчик прерывания клавиатуры. и только ребут
                  Ответить
                  • ... вышли все под дос
                    а проклятый шиндошс удаляли, черт возьми
                    Ответить
                    • а еще была песенка про ламера, у которого связь сотню cps
                      "льет мне windows nt выпучив глаза'
                      Ответить
                    • Ставь лайк, если когда поёт Шевчук, вместо слов песни про дождь слышатся слова песни про ДОС.
                      Ответить
                  • Ребут — фигня, если перед этим неверным движением не запорол бутсектор.
                    Ответить
                    • Бутсектор - фигня, если перед этим неверным движением не запорол фирмварь.
                      Ответить
                      • Въебал лайк за bootsector
                        Ответить
                      • фирмварь фигня, если перед этим неверной частотой не сжег, например, монитор.

                        ps: кто помнит вирус "чернобыль", который жег микросхему пзу с бивисом?
                        Ответить
                        • Без монитора работать можно: есть пищалка, а если повезёт, то и принтер. А вот без фирмвари никак, если нет точно такой же прошитой микросхемы или программатора.

                          BIOS в DIP-корпусе, если он не впаян, а воткнут в съёмную панель, можно переставлять на горячей машине: берём годный BIOS с компьютера-донора, загружаемся с него, выдёргиваем на ходу, втыкаем испорченный BIOS и прошиваем.
                          Ответить
                          • Это если шедоу включен.
                            Ответить
                            • Точно! Без него распидорасит на первом же вызове прерывания...
                              Ответить
                              • Там скорее ME или сетевуху распидорасит, с которыми эта флеха расшарена.

                                З.Ы. И ещё штатный видеодрайвер 32-битной венды, емнип, пинал биос чтобы разрешение поменять.
                                Ответить
                      • А сегодня ее вообще можно запороть? Там нету неубиваемого режима, который позволяет перешить убитый биос?
                        Ответить
                        • Сложно. На современных чипсетах, емнип, биос uefi включает блокировку от записи во флеш перед тем, как отдать управление операционке загрузчику.

                          > неубиваемого
                          Ну это или 2 флешки или особый USB порт, в который можно сунуть флешку с образом (у асусов что ли был). Далеко не на всех материнках есть.
                          Ответить
                          • На современных чипсетах ЕМНИП есть неперезаписываемая копия, которую можно использовать для восстановления биоса.
                            Ответить
                            • На интеловских нету нифига, если вендор сам не придумает куда её припаять. Одна копеечная SPI флешка, которая шарится между самим процом, ME и сетевухой. Вот и вся система.

                              Как на АМД дела обстоят - х.з.
                              Ответить
                • Забриковать стационарник? Это вообще что нужно сделать?
                  Ответить
            • дело в другом. IDE то стоит, но завтра оьновится фреймворк, послезавтра надо будет поставить дрова (ибо дивайсина без них не пашет), через день понадобится внутренняя софтина, через неделю надо форматировать флешку, а потом заставят написать инсталлятор. По крайней мере у меня так и без админки я бы заебал админа
              Ответить
              • > заставят написать инсталлятор
                И протестировать его прямо на девелоперской машине? Вот так и рождается софт, который потом в полях не взлетает...

                Зачем в этом кейсе права админа? SDK для разработки инсталляторов поставить, разве что.
                Ответить
                • Только недавно вспоминали глюк в клиенте для Яндекс-Диска, который проявлялся только в полях.
                  Ответить
                • у нас в конторе 90% всего софта для сугубо внутреннего использования
                  Ответить
          • Я так программирую - полет нормальный.
            Ответить
          • Усе кроме мелкомягкого говна и системного программирования замечательно работает под юзером.
            Ответить
            • А системщики один фиг на своей машине почти никогда не дебажатся.
              Ответить
              • Фреймверки стоят по дефолту. Что остается? Студия?
                Ответить
                • Всякое vcredist говнище, которое прямо в корень диска срёт временными файлами :)

                  З.Ы. Сука, ну почему оно всегда это делает?
                  Ответить
                  • Оно еще в корень флешек/внешних дисков насрать норовит по рендому. Видимо, ищет где места больше.

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

                    даже пистоничик 3.5 научился ставиться в локальную папку (а не в корень диска тсэ)
                    Ответить
                    • Гость опять сморозил хуйню. Питончик никогда в корень и не срал.
                      Ответить
                      • > ставиться
                        он имеет в виду что когда ставиш себе питон на комп, он устанавливается в корень С

                        Это действительно так
                        Ответить
                        • Только по дефолту. Так-то ещё 2.5 можно было в другую папку поставить.
                          Ответить
                      • Сёма, ты дурак

                        Пиздон ставился в c:\pythonNN по умолчанию с Win98 и по Python3.5
                        Потом НАКОНЕЦ они услышали MS, который 17 лет (начиная с Win2K) орал: "СТАВЬТЕСЬ В ДОМАШНЮЮ ПАПКУ БЛЯДЕ"
                        Ответить
                        • >по умолчанию
                          Ты ведь знаешь что надо делать?

                          >СТАВЬТЕСЬ В ДОМАШНЮЮ ПАПКУ
                          Ебанутый? Ставиться надо в program files
                          Ответить
                          • Бинарники в Program Files, конфиги в appdata.

                            А вообще видел такую штуку как установка без административных прав? АмигоГовнобраузер её любит. Вот установить программу без прав можно только в пользовательскую папку.
                            Ответить
                            • Путь установки изменяется. Ставь хоть на флешку. Что мы обсуждаем?
                              Ответить
                              • > Что мы обсуждаем?
                                Путь установки по умолчанию.

                                > Ставь хоть на флешку
                                Это если у тебя прав хватает на доступ к флешкам.

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

                                  >Это если у тебя прав хватает на доступ к флешкам.
                                  Штоооо?

                                  >Только сколько человек так сделают?
                                  Сколько человек способны поменять путь установки? Ты что, гонишь?
                                  Я согласен что не очень красиво, в 2016-то году, но путь меняется и концерт устраивать не надо. Да и питон винду вообще не очень любит. Я об этом писал и не раз. Ну то есть формально работает, но то тут путь надо руками поменять, то вручную в path добавить + переименовать файлы для решения конфликтов.
                                  Ответить
                                  • > Сколько человек способны поменять путь установки?

                                    Нет, я спрашиваю, сколько человек это сделают. У нас была система, которую надо было пересобрать для внесений каких-либо изменений. Для опытных юзеров был опубликован гайд по пересборке, который включал в себя установку MinGW, который по умолчанию ставился в C:\MinGW. В случае, если что-то пойдёт не так, скрипт собирает отчёт об ошибке, который надо передать разработчикам. В общем, из десятков отчётов, изменён каталог установки был у единиц.

                                    > Кого он ебет?
                                    Будь реалистичен. Изменят что-то при установке процента два пользователей.

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

                                      Я не работал в местах, где доступ к компу был, а флешки совать было нельзя.
                                      Ответить
                                      • Груп политика даже такая есть. И ты нигде не работалжи
                                        Ответить
                                        • Работал за компьютером же.

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

                                            Был глюк с какой-то старой версией. Исправлялось только удалением предыдущей версии AIR с помощью специального анинсталлятора (Windows Installer CleanUp Utility).
                                            Ответить
                                  • >> Путь установки по умолчанию.
                                    > Кого он ебет?
                                    Ха. Так и становятся прыщецарями. Сначала путь установки руками вписываешь. Кряхтишь, но вписываешь. Потом уже привыкаешь, файлы переименовываешь. Трудно, но начинает нравиться. Потом конфиги править начинаешь. Говоришь, что умолчания не нужны, умолчания для ламеров, а 50 параметров можно и руками вписать, это же один раз, потом же puppet всё сам запилит (если версия ОС не изменится, в программе параметры не изменятся, да и вообще она нужна будет). Потом гуиды в реестре наизусть знаешь, всё у тебя делают баш-скрипты, а ты уже 18 часов в день у монитора сидишь автоматизируешь свою автоматизацию. А этим ламерам надо, чтобы программа сразу работала, лошары! API, плагины, скрипты. Сидишь компилируешь что-то. Уже не заметил, как дописал половину какой-то программы из-за того, что нужного функционала не было. А тут ядро тормозит, отладить и перекомпилировать надо.
                                    Сидишь, смотришь по сторонам, всё как в тумане. "Люди? Люди, где вы?" А вокруг только белые стены, белые и мягкие. И где-то в углу кнопка "Пуск" то исчезает, то появляется. Бормочешь про себя "Ламеры компилирую -O4 -stack-check sed /^:)))$/ grep сейчас только ещё один модуль допишу и выключу конпелятор CLSID/{fa2808-438bc3-00032b6-28c52}".
                                    Ответить
                            • > АмигоГовнобраузер её любит.

                              Да всякое прыщеговно любит устанавливаться в домашнюю папку. Пример:
                              C:\Users\имяпользователя\AppData\Local\Google\Chrome\Application\chrome.exe


                              Попробуй найди.
                              Ответить
                              • Там же есть переменная окружения до этой папки
                                не нужно это говно запоминать наизусть
                                Ответить
                                • Но многие такой вариант почему-то считают ненормальным.
                                  Ответить
                                  • Ну это единственный вариант если прога должна автоапдейтиться под ограниченным юзером.
                                    Ответить
                                    • > если прога должна автоапдейтиться под ограниченным юзером

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

                                        А потом ПК тормозит, потому что таких служб более 9000.
                                        Ответить
                                        • Его храм был разработан настолько, что мог вместить более 9000 служб.
                                          Ответить
                                        • Ну если бы была стандартная служба, где можно зарегистрироваться и отдать проверку обновлений ей, то проблем бы не было. ВинCтор? Кто сказал ВинCтор?
                                          Ответить
                        • > Пиздон ставился в c:\pythonNN

                          Но ведь c:\pythonNN — это не корень. А есть софт, который свои файлы оставляет именно в корне.
                          Ответить
              • да, довольно сложно дебажить ядро своей операционки

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

                    ну ты что, руссиновича не читал? Он же там этим дебагером каждую вторую главу иллюстрирует

                    https://msdn.microsoft.com/en-us/library/windows/hardware/hh451166(v=vs.85).aspx
                    Ответить
                    • А представь как врачам иногда трудно: скальпель есть, желание изучить внутреннее устройство есть, но никого рядом нет. Джек-потрошитель был просто студентом без наглядных пособий
                      Ответить
                      • а был же чувак который сам себе апендицит вырезал
                        Ответить
                        • Вроде даже и не один...

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

                          Иначе бы найм бомжей за полтиник.
                          Ответить
                          • > бомжей за полтиник
                            Да кто там докажет, что они не сами заразились...
                            Ответить
                            • If you're interested in an additional sixty dollars, flag down a test associate and let 'em know. You could walk out of here with a hundred and twenty weighing down your bindle if you let us take you apart, put some science stuff in you, then put you back together good as new.

                              In case you're interested, there's still some positions available for that bonus opportunity I mentioned earlier. Again: all you gotta do is let us disassemble you. We're not banging rocks together here. We know how to put a man back together

                              For many of you, I realize 60 dollars is an unprecedented windfall, so don't go spending it all on... I don't know. Caroline, what do these people buy? Tattered hats? Beard dirt?
                              Ответить
                    • > не всегда есть рядом машина
                      Господи, ну к виртуалке зацепи эту самую виндебугу, и копайся в ядре с бряками и шлюхами сколько душе угодно... Или так нравится пилить сук, на которых сидишь?
                      Ответить
                      • лайв дебаг появился в 1999м году
                        какие тогда на юг виртуалки?

                        да и дебажить иногда лучше на реальном железе, например чтобы понять почему хуевничает твой драйвер
                        Ответить
                        • USB можно прокидывать в виртуалку, в вмварь по крайней мере.
                          Ответить
                          • Да прокинуть то даже PCI можно.
                            Ответить
                            • Ну прокинь мне pci.
                              Ответить
                              • http://wiki.xenproject.org/wiki/Xen_PCI_Passthrough

                                PCI passthrough allows you to give control of physical devices to guests: that is, you can use PCI passthrough to assign a PCI device (NIC, disk controller, HBA, USB controller, firewire controller, soundcard, etc) to a virtual machine guest, giving it full and direct access to the PCI device.

                                З.Ы. Сам не делал, у меня проц без IOMMU, а без него - беспонт, ибо карточка по DMA может хосту память засрать.
                                Ответить
                                • Так это мало того что зен надо юзать, так еще и комп не со шрота иметь?
                                  Ответить
                                  • > зен
                                    Ну зен вроде не обязательно, какая-то из версий вмвари вроде тоже умеет. Но без IOMMU это всё беспонт.
                                    Ответить
                                    • Ну найди мне эту версию.
                                      Ответить
                                      • > Ну найди мне эту версию.
                                        А если найду?

                                        https://kb.vmware.com/selfservice/search.do?cmd=displayKC&docType=kc&docTy peID=DT_KB_1_1&externalId=2142307
                                        Ответить
                                        • а у вас урл порвался
                                          Ответить
                                        • >А если найду?
                                          Ты подтвердишь свое утверждение http://govnokod.ru/20472#comment342971

                                          >VMware vSphere
                                          Что за хуйня? Дай лучше для Workstation.
                                          Ответить
                                          • > Что за хуйня?
                                            Серверная хуита.

                                            Утверждение я уже подтвердил - прокинуть PCI можно. Но надо достаточно свежий комп и не далеко не любую виртуалку.
                                            Ответить
                                            • Нахуй мне твоя серверная, как под ней основную ось завести?
                                              Ответить
                                              • > Нахуй мне твоя серверная
                                                Можно подумать, что ты комп уже добыл, у которого мать, биос и проц правильно поддерживают IOMMU... И что тебе реально надо прокидывать PCI в виртуалку.

                                                > как под ней основную ось завести
                                                Ставишь сферу, создаёшь виртуалку, ставишь в неё основную ось... Как-то так вроде. Если я правильно понимаю, эта ESXi - сама как ось.
                                                Ответить
                                                • >Ставишь сферу, создаёшь виртуалку, ставишь в неё основную ось...
                                                  И нахуй мне эти танцы на десктопе?
                                                  Ответить
                                                  • Блеать, ну ты же спрашивал, как пробросить PCI? Я тебе ответил. Или тебе надо чтобы в пару кнопочек и с ложечки?
                                                    Ответить
                                                    • Я имел в виду как пробросить в юзабельную на десктопе виртуалку. Я хостингом виртуалок не собираюсь заниматься, знаешь ли.
                                                      Ответить
                                                      • > юзабельную на десктопе виртуалку
                                                        На десктопе виртуалбокс умеет. Но тебе опять не понравится, ибо "When running on Linux hosts, with a recent enough kernel (at least version 2.6.31) experimental host PCI devices passthrough is available. To be fully functional, PCI passthrough support in VirtualBox depends upon an IOMMU hardware unit."
                                                        Ответить
                                                        • Прыщи не нравятся.
                                                          Ответить
                                                          • Ну тогда у тебя последний выход - винсервер 2016 с гипер-ви. Он тоже научился.
                                                            Ответить
                                                            • Лол, тот факт што сема ненавидит линукс, совсем не означает что он умеет виндуос
                                                              Ответить
                                                            • Ну млять, сказал же - мне для декстопа надо.
                                                              Ответить
                                          • > Дай лучше для Workstation.
                                            Воркстейшенбляди соснули: VMware Workstation can't do PCI Passthrough.The only VMware product which can do PCI Passthrough is ESXi.
                                            Ответить
                                            • ну это жи очевидно
                                              как не будучи ядром зохватить писиайную карту, не дать её пользовать хостовой ОС, а дать пользовать гостевой?

                                              кстати, гиперви в юсб пасструъ так не научилось даже в 2016 насколько мне известно
                                              Ответить
                                              • > как не будучи ядром
                                                Попросить об этом ядро. Видимо, виртуалбокс так и делает.
                                                Ответить
                                                • > When running on Linux hosts
                                                  а не можешь попросить - вкомпилься в ядро
                                                  разве это не так работает?
                                                  Ответить
                                    • зен не нужен
                                      есть же kvm
                                      Ответить
          • > как вы вообще себе представляете программирование без прав админа на компе?

            Почему-то у меня не возникает необходимости в правах админа (т.е. root) при программировании в среде GNU/Linux (разве что для особых случаев, вроде написания и подгрузки кернел модулей). Почему же в Windows они требуются для программирования?
            Ответить

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